From 5faeed8dc34924d1465ea87c35f4587c21cc982c Mon Sep 17 00:00:00 2001 From: spiwar <92001312+spiwar@users.noreply.github.com> Date: Tue, 27 Jan 2026 16:38:43 -0700 Subject: [PATCH 01/19] feat(endfield): switch to neutwo tonemapping by default --- src/games/endfield/common.hlsl | 8 ++++++++ .../endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl | 3 +-- .../endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl | 2 +- .../endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl | 2 +- 29 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/games/endfield/common.hlsl b/src/games/endfield/common.hlsl index e01e5651d..9cfcbb2fe 100644 --- a/src/games/endfield/common.hlsl +++ b/src/games/endfield/common.hlsl @@ -55,6 +55,14 @@ float3 ApplyHermiteSplineByMaxChannel(float3 input, float peak_ratio, float whit float3 tonemapped = input * scale; return tonemapped; } +float3 ApplyNeutwoByMaxChannel(float3 input, float peak_ratio, float white_clip = 100.f) { + float max_channel = renodx::math::Max(input); + + float mapped_peak = renodx::tonemap::Neutwo(max_channel, peak_ratio, white_clip); + float scale = renodx::math::DivideSafe(mapped_peak, max_channel, 1.f); + float3 tonemapped = input * scale; + return tonemapped; +} struct UserGradingConfig { float exposure; diff --git a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl index 84dc9d6af..447dfa06c 100644 --- a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl @@ -215,7 +215,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl index 501784663..d3c824438 100644 --- a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl @@ -242,7 +242,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl index 542a13bec..3bcd28f0c 100644 --- a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl @@ -182,7 +182,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl index 176d15313..fad31252b 100644 --- a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl @@ -252,7 +252,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl index b5ce43fec..fdd474499 100644 --- a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl @@ -197,7 +197,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl index cdf3c2342..0c31cdb79 100644 --- a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl @@ -286,9 +286,8 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); - } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl index 1493b24d6..b1789ab45 100644 --- a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl @@ -194,7 +194,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl index 65ef2875a..bdcc4c283 100644 --- a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl @@ -224,7 +224,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl index 5425472b9..64e4bf825 100644 --- a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl @@ -199,7 +199,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl index 55da2c3fd..e3555fba0 100644 --- a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl @@ -307,7 +307,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl index c669fb040..80c060588 100644 --- a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl @@ -184,7 +184,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl index 2151594ba..6d28f1397 100644 --- a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl @@ -240,7 +240,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl index fdbba0cbb..99a4e2027 100644 --- a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl @@ -260,7 +260,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl index cb85e0019..0aba090c6 100644 --- a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl @@ -176,7 +176,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl index cf8b817f9..ba736ddd3 100644 --- a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl @@ -209,7 +209,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl index 2bc6e6ea6..43e78dd8d 100644 --- a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl @@ -144,7 +144,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl index c7c6f5055..39326ae46 100644 --- a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl @@ -146,7 +146,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl index 2c9390cd2..5780c9dac 100644 --- a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl @@ -166,7 +166,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl index b87937fee..c27cd4488 100644 --- a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl @@ -253,7 +253,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl index 923bda04c..5d67f0b0e 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl @@ -99,7 +99,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl index b1abcfa6b..4919319ac 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl @@ -220,7 +220,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl index 7d762160c..afa235123 100644 --- a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl @@ -159,7 +159,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl index 1b345ce82..6580e9fb6 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl @@ -175,7 +175,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl index 68dd99ccb..765451136 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl @@ -224,7 +224,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl index 0c93caafd..a9d0334c4 100644 --- a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl @@ -83,7 +83,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl index 07af03a62..6ac49b370 100644 --- a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl @@ -178,7 +178,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl index fcdb84ba4..512b46034 100644 --- a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl @@ -118,7 +118,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl index b6c5791e2..e47da5fb8 100644 --- a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl @@ -116,7 +116,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( From 6394307d8d9a6538c11d2ebb8908e698be420cf8 Mon Sep 17 00:00:00 2001 From: Arnas Golubeckas <139492523+SGTForgery@users.noreply.github.com> Date: Wed, 28 Jan 2026 04:12:52 +0000 Subject: [PATCH 02/19] feat(endfield): disable cloning, fix hair shadows, fix reshade bypass Fixed up some internal code Disabled cloning and other resource upgrade code again (to improve mem and VRAM issues maybe) Hair bangs shadow fix included again AO now applies on to grass/foliage again Added red text explaining shader bypass --- src/games/endfield/addon.cpp | 120 +++++++++++------- .../endfield/shadows/0x61FA72DD.ps_5_0.hlsl | 4 +- .../endfield/shadows/0xB8580FF6.ps_5_0.hlsl | 8 +- ...=> grass-shadowing_0x0C02AB31.cs_5_0.hlsl} | 2 +- src/games/endfield/shared.h | 4 +- .../endfield/ui/ui12_0x684B1BD3.ps_5_0.hlsl | 53 ++++++++ 6 files changed, 139 insertions(+), 52 deletions(-) rename src/games/endfield/shadows/{0x0C02AB31.cs_5_0.hlsl => grass-shadowing_0x0C02AB31.cs_5_0.hlsl} (99%) create mode 100644 src/games/endfield/ui/ui12_0x684B1BD3.ps_5_0.hlsl diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index de6ec8693..568feb697 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -451,6 +451,18 @@ renodx::utils::settings::Settings settings = { .tooltip = "Adjusts the intensity of bloom effects.", .min = 0.f, .max = 100.f, + }, + new renodx::utils::settings::Setting{ + .value_type = renodx::utils::settings::SettingValueType::CUSTOM, + .label = std::string("Reshade shader bypass, applies on_drawn after game's deferred lighting pass. Only properly works with DLAA/TAAU 100 scaling atm"), + .on_draw = []() { + ImGui::SetWindowFontScale(2.0f); + ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.0f, 0.0f, 0.0f, 1.0f)); + ImGui::TextWrapped("Reshade shader bypass, applies on_drawn after game's deferred lighting pass. Only properly works with DLAA/TAAU 100 scaling atm"); + ImGui::PopStyleColor(); + ImGui::SetWindowFontScale(1.0f); + return false; + }, }, new renodx::utils::settings::Setting{ .key = "RenderReshadeBeforeUI", @@ -483,8 +495,8 @@ renodx::utils::settings::Settings settings = { .labels = {"Off", "Vanilla", "2x", "3x"}, }, new renodx::utils::settings::Setting{ - .key = "AO_INTENSITY", - .binding = &shader_injection.ao_intensity, + .key = "SHADOW_HARDENING", + .binding = &shader_injection.shadow_hardening, .value_type = renodx::utils::settings::SettingValueType::INTEGER, .default_value = 1.f, .label = "Improved Shadows", @@ -584,6 +596,11 @@ renodx::utils::settings::Settings settings = { .label = "- Made for Arknights: Endfield 1.0", .section = "About", }, + new renodx::utils::settings::Setting{ + .value_type = renodx::utils::settings::SettingValueType::TEXT, + .label = std::string("- Special thanks to both Musa & Miru for helping with the addon"), + .section = "About", + }, new renodx::utils::settings::Setting{ .value_type = renodx::utils::settings::SettingValueType::TEXT, .label = std::string("- Many thanks to ShortFuse for RenoDX"), @@ -791,62 +808,77 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({ .old_format = reshade::api::format::r8g8b8a8_typeless, .new_format = reshade::api::format::r16g16b16a16_float, - .ignore_size = false, - .use_resource_view_cloning = true, - .aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), - .usage_include = reshade::api::resource_usage::render_target, + //.ignore_size = false, + //.use_resource_view_cloning = true, + //.aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), + //.usage_include = reshade::api::resource_usage::render_target, }); renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({ .old_format = reshade::api::format::r8g8b8a8_unorm, .new_format = reshade::api::format::r16g16b16a16_float, - .ignore_size = false, - .use_resource_view_cloning = true, - .aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), - .usage_include = reshade::api::resource_usage::render_target, + //.ignore_size = false, + //.use_resource_view_cloning = true, + //.aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), + //.usage_include = reshade::api::resource_usage::render_target, }); renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({ .old_format = reshade::api::format::r10g10b10a2_unorm, .new_format = reshade::api::format::r16g16b16a16_float, - .ignore_size = false, - .use_resource_view_cloning = true, - .aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), - .usage_include = reshade::api::resource_usage::render_target, + //.ignore_size = false, + //.use_resource_view_cloning = true, + //.aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), + //.usage_include = reshade::api::resource_usage::render_target, }); const uint32_t target_crcs[] = { - 0x00C16AFBu, - 0x039C28DAu, - 0x086097D2u, - 0x09270FDAu, - 0x0E520F06u, - 0x10076711u, - 0x21241B7Au, - 0x51359B4Du, - 0x53875523u, - 0x53D50BD5u, - 0x57737D9Fu, - 0x5FC0BD3Cu, - 0x6166487Au, - 0x61908D50u, - 0x64CEB255u, - 0x6A76C719u, - 0x86420EBCu, - 0x9790A50Cu, - 0x9AA3FC1Fu, - 0xA6501734u, - 0xA6E6ABE6u, - 0xA8213A68u, - 0xAFDCA263u, - 0xAFECA8F4u, - 0xBCD91195u, - 0xD5BC74ACu, - 0xE0058043u, - 0xF8FA587Fu, + + 0x37837806u, + 0xD3FA93FCu, + + /* + 0x00C16AFBu, + 0x039C28DAu, + 0x086097D2u, + 0x09270FDAu, + 0x0E520F06u, + 0x10076711u, + 0x21241B7Au, + 0x51359B4Du, + 0x53875523u, + 0x53D50BD5u, + 0x57737D9Fu, + 0x5FC0BD3Cu, + 0x6166487Au, + 0x61908D50u, + 0x64CEB255u, + 0x6A76C719u, + 0x86420EBCu, + 0x9790A50Cu, + 0x9AA3FC1Fu, + 0xA6501734u, + 0xA6E6ABE6u, + 0xA8213A68u, + 0xAFDCA263u, + 0xAFECA8F4u, + 0xBCD91195u, + 0xD5BC74ACu, + 0xE0058043u, + 0xF8FA587Fu, + */ + }; for (uint32_t crc : target_crcs) { - if (custom_shaders.find(crc) != custom_shaders.end()) { - custom_shaders[crc].on_drawn = ExecuteReshadeEffects; + + // Ensure an entry exists for the shader hash even if we don't have compiled HLSL + auto it = custom_shaders.find(crc); + if (it == custom_shaders.end()) { + renodx::mods::shader::CustomShader cs{}; + cs.crc32 = crc; + cs.on_drawn = ExecuteReshadeEffects; + custom_shaders.emplace(crc, std::move(cs)); + } else { + it->second.on_drawn = ExecuteReshadeEffects; } } diff --git a/src/games/endfield/shadows/0x61FA72DD.ps_5_0.hlsl b/src/games/endfield/shadows/0x61FA72DD.ps_5_0.hlsl index d5b205bc5..ce0c66570 100644 --- a/src/games/endfield/shadows/0x61FA72DD.ps_5_0.hlsl +++ b/src/games/endfield/shadows/0x61FA72DD.ps_5_0.hlsl @@ -372,8 +372,8 @@ void main( r0.y = -1 + r0.y; r0.y = cb0[175].z * r0.y + 1; - if (AO_INTENSITY >= 1.f) { - // Boost AO intensity (hardcoded 4x) + if (SHADOW_HARDENING>= 1.f) { + r0.y = 1.0 + (r0.y - 1.0) * 4.0; } diff --git a/src/games/endfield/shadows/0xB8580FF6.ps_5_0.hlsl b/src/games/endfield/shadows/0xB8580FF6.ps_5_0.hlsl index de6e5c809..8f82563c3 100644 --- a/src/games/endfield/shadows/0xB8580FF6.ps_5_0.hlsl +++ b/src/games/endfield/shadows/0xB8580FF6.ps_5_0.hlsl @@ -336,11 +336,13 @@ void main( r0.w = -1 + r0.w; r0.w = cb0[175].z * r0.w + 1; - if (AO_INTENSITY >= 1.f) { - // Boost AO intensity (hardcoded 4x) + /* + if (SHADOW_HARDENING>= 1.f) { + r0.w = 1.0 + (r0.w - 1.0) * 4.0; } - + */ + r0.z = r0.z * r0.w; } r0.w = cb2[35].z + -r0.z; diff --git a/src/games/endfield/shadows/0x0C02AB31.cs_5_0.hlsl b/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl similarity index 99% rename from src/games/endfield/shadows/0x0C02AB31.cs_5_0.hlsl rename to src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl index 939eb641e..28cfa687e 100644 --- a/src/games/endfield/shadows/0x0C02AB31.cs_5_0.hlsl +++ b/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl @@ -388,7 +388,7 @@ void main(uint3 vThreadIDInGroup : SV_GroupThreadID, uint3 vThreadGroupID : SV_G r1.w = max(0, r1.w); r0.y = r1.w * r0.y; - if (AO_INTENSITY>= 1.f) { + if (SHADOW_HARDENING>= 1.f) { r0.y = r0.y * 4.0; } diff --git a/src/games/endfield/shared.h b/src/games/endfield/shared.h index 9ede27511..eecc1a515 100644 --- a/src/games/endfield/shared.h +++ b/src/games/endfield/shared.h @@ -87,7 +87,7 @@ struct ShaderInjectData { float bloom_strength; float godrays_intensity; float perchannelblowout; - float ao_intensity; + float shadow_hardening; }; #ifndef __cplusplus @@ -144,7 +144,7 @@ cbuffer shader_injection : register(b13) { #define BLOOM_STRENGTH shader_injection.bloom_strength #define GODRAYS_INTENSITY shader_injection.godrays_intensity #define PER_CHANNEL_BLOWOUT shader_injection.perchannelblowout -#define AO_INTENSITY shader_injection.ao_intensity +#define SHADOW_HARDENING shader_injection.shadow_hardening #include "../../shaders/renodx.hlsl" diff --git a/src/games/endfield/ui/ui12_0x684B1BD3.ps_5_0.hlsl b/src/games/endfield/ui/ui12_0x684B1BD3.ps_5_0.hlsl new file mode 100644 index 000000000..1cd31e791 --- /dev/null +++ b/src/games/endfield/ui/ui12_0x684B1BD3.ps_5_0.hlsl @@ -0,0 +1,53 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Jan 27 19:44:20 2026 + +#include "../shared.h" + +Texture2D t1 : register(t1); + +Texture2D t0 : register(t0); + +SamplerState s1_s : register(s1); + +SamplerState s0_s : register(s0); + +cbuffer cb0 : register(b0) +{ + float4 cb0[7]; +} + + + + +// 3Dmigoto declarations +#define cmp - + + +void main( + float4 v0 : SV_Position0, + float4 v1 : TEXCOORD0, + float4 v2 : TEXCOORD1, + float4 v3 : TEXCOORD2, + float4 v4 : TEXCOORD3, + out float4 o0 : SV_Target0) +{ + float4 r0; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xy = cmp(v3.xy >= cb0[4].xy); + r0.zw = cmp(cb0[4].zw >= v3.xy); + r0.xyzw = r0.xyzw ? float4(1,1,1,1) : 0; + r0.xy = r0.xy * r0.zw; + r0.x = r0.x * r0.y; + r0.y = t1.Sample(s1_s, v2.xy).w; + r0.y = cb0[3].w + r0.y; + r0.y = v1.w * r0.y; + o0.w = r0.y * r0.x; + r0.xyz = t0.SampleLevel(s0_s, v4.xy, 0).xyz; + r0.xyz = v1.xyz * r0.xyz; + o0.xyz = cb0[6].xxx * r0.xyz; + + if (UI_VISIBILITY < 0.5f) o0 = 0; + + return; +} \ No newline at end of file From cb1d5fddf50be7efa2a481efa4e3ff0fab131145 Mon Sep 17 00:00:00 2001 From: spiwar <92001312+spiwar@users.noreply.github.com> Date: Tue, 27 Jan 2026 23:24:52 -0700 Subject: [PATCH 03/19] feat(endfield): re-tuned SDR and HDR hue correction values --- .../uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x039C28DA.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x086097D2.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x09270FDA.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x0E520F06.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x10076711.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x21241B7A.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x51359B4D.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x53875523.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x57737D9F.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x6166487A.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x61908D50.ps_5_0.hlsl | 82 ++++++++++--------- .../uberpost/uberpost_0x64CEB255.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x6A76C719.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x86420EBC.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x9790A50C.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0xA6501734.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0xA8213A68.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0xBCD91195.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl | 18 +++- .../uberpost/uberpost_0xE0058043.ps_5_0.hlsl | 20 +++-- .../uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl | 18 +++- 28 files changed, 421 insertions(+), 149 deletions(-) diff --git a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl index 447dfa06c..d2504860f 100644 --- a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl @@ -204,14 +204,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl index d3c824438..b6e294617 100644 --- a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl @@ -231,14 +231,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl index 3bcd28f0c..77bf8b12a 100644 --- a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl @@ -171,14 +171,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl index fad31252b..4ae06b437 100644 --- a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl @@ -241,14 +241,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl index fdd474499..de170b416 100644 --- a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl @@ -186,14 +186,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl index 0c31cdb79..f902211f8 100644 --- a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl @@ -275,14 +275,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl index b1789ab45..97cfc587d 100644 --- a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl @@ -183,14 +183,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl index bdcc4c283..1f771a6c5 100644 --- a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl @@ -213,14 +213,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl index 64e4bf825..59513e699 100644 --- a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl @@ -188,14 +188,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl index e3555fba0..91b5daad7 100644 --- a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl @@ -296,14 +296,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl index 80c060588..0e1d95b21 100644 --- a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl @@ -173,14 +173,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl index 6d28f1397..f845f7415 100644 --- a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl @@ -229,14 +229,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl index 99a4e2027..7b46273db 100644 --- a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl @@ -249,14 +249,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl index 0aba090c6..387f0e008 100644 --- a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl @@ -8,29 +8,22 @@ Texture2D t0 : register(t0); SamplerState s0_s : register(s0); -cbuffer cb1 : register(b1) -{ +cbuffer cb1 : register(b1) { float4 cb1[26]; } -cbuffer cb0 : register(b0) -{ +cbuffer cb0 : register(b0) { float4 cb0[110]; } - - - // 3Dmigoto declarations #define cmp - - void main( - float4 v0 : SV_Position0, - float2 v1 : TEXCOORD0, - out float4 o0 : SV_Target0) -{ - float4 r0,r1,r2,r3,r4,r5,r6; + float4 v0: SV_Position0, + float2 v1: TEXCOORD0, + out float4 o0: SV_Target0) { + float4 r0, r1, r2, r3, r4, r5, r6; uint4 bitmask, uiDest; float4 fDest; @@ -45,44 +38,44 @@ void main( r0.z = exp2(r0.z); r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s0_s, v1.xy, 0).xyzw; - r1.xyz = float3(1,0,0) * r1.xyz; + r1.xyz = float3(1, 0, 0) * r1.xyz; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { - r2.xy = cmp(float2(0,0) != cb1[25].wz); + r2.xy = cmp(float2(0, 0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; r0.z = cb1[25].y + cb1[0].z; r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r3.xyzw = cb1[25].yyyy * float4(3, 3, 4, 4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz; - r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; + r4.xyz = r4.xyz * float3(1, 0, 0) + r1.xyz; r0.z = r0.z + r0.z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; - r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; + r4.xyz = r5.xyz * float3(1, 0, 0) + r4.xyz; r5.xy = -r2.xy * cb1[25].yy + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; - r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; + r4.xyz = r5.xyz * float3(0, 1, 0) + r4.xyz; r0.z = cb1[25].y * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; - r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r3.xyzw = cb1[0].zzzz * float4(2,2,2,2) + r3.xyzw; + r4.xyz = r5.xyz * float3(0, 1, 0) + r4.xyz; + r3.xyzw = cb1[0].zzzz * float4(2, 2, 2, 2) + r3.xyzw; r3.xyzw = -r2.xyxy * r3.xyzw + v1.xyxy; r5.xyz = t0.SampleLevel(s0_s, r3.xy, 0).xyz; - r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; + r4.xyz = r5.xyz * float3(0, 1, 0) + r4.xyz; r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; - r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; + r4.xyz = r5.xyz * float3(0, 0, 1) + r4.xyz; r0.z = cb1[25].y * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s0_s, r2.xy, 0).xyz; - r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; + r2.xyz = r2.xyz * float3(0, 0, 1) + r4.xyz; r3.xyz = t0.SampleLevel(s0_s, r3.zw, 0).xyz; - r2.xyz = r3.xyz * float3(0,0,1) + r2.xyz; - r2.xyz = float3(0.333333403,0.333333403,0.333333403) * r2.xyz; + r2.xyz = r3.xyz * float3(0, 0, 1) + r2.xyz; + r2.xyz = float3(0.333333403, 0.333333403, 0.333333403) * r2.xyz; } else { r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; @@ -90,22 +83,22 @@ void main( r0.z = cb1[25].y * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; - r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; + r1.xyz = r3.xyz * float3(0, 1, 0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; r0.z = cb1[25].y * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz; - r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; + r2.xyz = r0.xyz * float3(0, 0, 1) + r1.xyz; } r0.xyz = cb0[109].xxx * r2.zxy; r1.xyz = t1.SampleLevel(s0_s, v1.xy, 0).xyz; r0.w = -cb1[9].z + 1; r3.xyz = r1.zxy * r0.www; - r3.xyz = cmp(float3(0.300000012,0.300000012,0.300000012) < r3.xyz); + r3.xyz = cmp(float3(0.300000012, 0.300000012, 0.300000012) < r3.xyz); r4.xyz = log2(r1.zxy); - r4.xyz = float3(0.330000013,0.330000013,0.330000013) * r4.xyz; + r4.xyz = float3(0.330000013, 0.330000013, 0.330000013) * r4.xyz; r4.xyz = exp2(r4.xyz); - r4.xyz = r4.xyz * float3(1.49380004,1.49380004,1.49380004) + float3(-0.699999988,-0.699999988,-0.699999988); + r4.xyz = r4.xyz * float3(1.49380004, 1.49380004, 1.49380004) + float3(-0.699999988, -0.699999988, -0.699999988); r0.w = max(r0.y, r0.z); r0.w = max(r0.w, r0.x); r5.xy = -cb1[10].yx + r0.ww; @@ -151,8 +144,8 @@ void main( r0.w = cb1[2].y * r0.w; r0.w = exp2(r0.w); float vignette_value = lerp(1.0, r0.w, VIGNETTE_STRENGTH); - r0.w = 1.0; // Disable original vignette, apply after tonemapping - r1.xyz = -cb1[4].zxy + float3(1,1,1); + r0.w = 1.0; // Disable original vignette, apply after tonemapping + r1.xyz = -cb1[4].zxy + float3(1, 1, 1); r1.xyz = r0.www * r1.xyz + cb1[4].zxy; r0.xyz = r1.xyz * r0.xyz; renodx::lut::Config lut_config = renodx::lut::config::Create( @@ -161,18 +154,27 @@ void main( 0.f, renodx::lut::config::type::ARRI_C1000_NO_CUT, renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); + cb1[7].xyz); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); @@ -191,4 +193,4 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); o0.w = min(1, r1.w); return; -} \ No newline at end of file +} diff --git a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl index ba736ddd3..b394b9866 100644 --- a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl @@ -198,14 +198,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl index 43e78dd8d..343a52122 100644 --- a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl @@ -133,14 +133,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl index 39326ae46..11322fcf7 100644 --- a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl @@ -135,14 +135,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl index 5780c9dac..b12a8268f 100644 --- a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl @@ -155,14 +155,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl index c27cd4488..dbdfb8876 100644 --- a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl @@ -242,14 +242,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl index 5d67f0b0e..b5ea88b1f 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl @@ -88,14 +88,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl index 4919319ac..3c92d0a1e 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl @@ -209,14 +209,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl index afa235123..db271a9fa 100644 --- a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl @@ -148,14 +148,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl index 6580e9fb6..261f12ec8 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl @@ -164,14 +164,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl index 765451136..a08bc5316 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl @@ -213,14 +213,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl index a9d0334c4..3e74f9445 100644 --- a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl @@ -72,14 +72,24 @@ void main( ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl index 6ac49b370..19e3711c9 100644 --- a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl @@ -167,14 +167,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl index 512b46034..8de46c790 100644 --- a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl @@ -106,15 +106,25 @@ void main( cb1[7].xyz ); float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - + + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); diff --git a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl index e47da5fb8..c5919dd02 100644 --- a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl @@ -105,14 +105,24 @@ void main( ); float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); + float y = renodx::color::y::from::BT709(graded); + float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = 0.f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = 0.7f; + cg_config.highlight_saturation = 0.f; + o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); + o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); + o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { + float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.18f)); float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); From a38e514520fdf4eb5498114086ea28f7619629a3 Mon Sep 17 00:00:00 2001 From: spiwar <92001312+spiwar@users.noreply.github.com> Date: Wed, 28 Jan 2026 00:45:07 -0700 Subject: [PATCH 04/19] feat(endfield): adjust white clip for sdr & hdr --- .../endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl | 8 ++++---- .../endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl | 8 ++++---- 28 files changed, 112 insertions(+), 112 deletions(-) diff --git a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl index d2504860f..cb4f105ff 100644 --- a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl @@ -211,13 +211,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -225,7 +225,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl index b6e294617..fcc6984b0 100644 --- a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl @@ -238,13 +238,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -252,7 +252,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl index 77bf8b12a..456684e8e 100644 --- a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl @@ -178,13 +178,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -192,7 +192,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl index 4ae06b437..c8a03191f 100644 --- a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl @@ -248,13 +248,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -262,7 +262,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl index de170b416..69b6c57dc 100644 --- a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl @@ -193,13 +193,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -207,7 +207,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl index f902211f8..0fd7d6f09 100644 --- a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl @@ -282,13 +282,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -296,7 +296,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl index 97cfc587d..ba1649e85 100644 --- a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl @@ -190,13 +190,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -204,7 +204,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl index 1f771a6c5..62a0d96c4 100644 --- a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl @@ -220,13 +220,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -234,7 +234,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl index 59513e699..1d01934cf 100644 --- a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl @@ -195,13 +195,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -209,7 +209,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl index 91b5daad7..e9b960d8a 100644 --- a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl @@ -303,13 +303,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -317,7 +317,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl index 0e1d95b21..8f8bc3ccf 100644 --- a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl @@ -180,13 +180,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -194,7 +194,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl index f845f7415..541c0165d 100644 --- a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl @@ -236,13 +236,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -250,7 +250,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl index 7b46273db..7f8a91f1d 100644 --- a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl @@ -256,13 +256,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -270,7 +270,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl index 387f0e008..db6069ffa 100644 --- a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl @@ -164,13 +164,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -178,7 +178,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl index b394b9866..33404169f 100644 --- a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl @@ -205,13 +205,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -219,7 +219,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl index 343a52122..4f1d353c5 100644 --- a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl @@ -140,13 +140,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -154,7 +154,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl index 11322fcf7..85ae862da 100644 --- a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl @@ -142,13 +142,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -156,7 +156,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl index b12a8268f..470836b4b 100644 --- a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl @@ -162,13 +162,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -176,7 +176,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl index dbdfb8876..b5d67478a 100644 --- a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl @@ -249,13 +249,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -263,7 +263,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl index b5ea88b1f..ae3724137 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl @@ -95,13 +95,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -109,7 +109,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl index 3c92d0a1e..a5e402d31 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl @@ -216,13 +216,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -230,7 +230,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl index db271a9fa..2f105ee84 100644 --- a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl @@ -155,13 +155,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -169,7 +169,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl index 261f12ec8..1ea2d938d 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl @@ -171,13 +171,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -185,7 +185,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl index a08bc5316..9e8ff513a 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl @@ -220,13 +220,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -234,7 +234,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl index 3e74f9445..8138b25ac 100644 --- a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl @@ -79,13 +79,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -93,7 +93,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl index 19e3711c9..bd8a9a600 100644 --- a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl @@ -174,13 +174,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -188,7 +188,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl index 8de46c790..b82b2ea78 100644 --- a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl @@ -114,13 +114,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -128,7 +128,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl index c5919dd02..69a5e0302 100644 --- a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl @@ -112,13 +112,13 @@ void main( float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); UserGradingConfig cg_config; cg_config.saturation = 1.f; - cg_config.dechroma = 0.f; + cg_config.dechroma = .1f; cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = 0.7f; + cg_config.chrominance_emulation_strength = .7f; cg_config.highlight_saturation = 0.f; o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, 1.0f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } else { float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); @@ -126,7 +126,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = ApplyNeutwoByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( From a640aa9c3f2bc94e3c7c4dcacacee2dbbd693d83 Mon Sep 17 00:00:00 2001 From: spiwar <92001312+spiwar@users.noreply.github.com> Date: Thu, 29 Jan 2026 00:53:38 -0700 Subject: [PATCH 05/19] fix(endfield): re-enable swapchain encoding option, only upgrade RGBA8_UNORM by Aspect Ratio, disable RGB10A2 upgrades. --- src/games/endfield/addon.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index 568feb697..7f107f0a0 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -737,7 +737,7 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { // return void }, .is_global = true, - .is_visible = []() { return false; }, + .is_visible = []() { return current_settings_mode >= 1; }, }; renodx::utils::settings::LoadSetting(renodx::utils::settings::global_name, setting); bool is_hdr10 = setting->GetValue() == 4; @@ -813,14 +813,17 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { //.aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), //.usage_include = reshade::api::resource_usage::render_target, }); + // Need aspect ratio upgrade or grass will be broken renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({ .old_format = reshade::api::format::r8g8b8a8_unorm, .new_format = reshade::api::format::r16g16b16a16_float, - //.ignore_size = false, + .ignore_size = false, //.use_resource_view_cloning = true, - //.aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), - //.usage_include = reshade::api::resource_usage::render_target, + .aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), + .aspect_ratio_tolerance = 0.02f, + .usage_include = reshade::api::resource_usage::render_target, }); + /* not sure if even needed so skipped renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({ .old_format = reshade::api::format::r10g10b10a2_unorm, .new_format = reshade::api::format::r16g16b16a16_float, @@ -829,7 +832,7 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { //.aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), //.usage_include = reshade::api::resource_usage::render_target, }); - + */ const uint32_t target_crcs[] = { 0x37837806u, From 4e2917bd6dfb20534bd1775898cd8cffeb0f12da Mon Sep 17 00:00:00 2001 From: Arnas Golubeckas <139492523+SGTForgery@users.noreply.github.com> Date: Thu, 29 Jan 2026 21:26:09 +0000 Subject: [PATCH 06/19] feat(endfield): Added alt fog blend mode with hue preservation, Improved cloud shadows, Added chromatic aberration slider --- src/games/endfield/addon.cpp | 50 +- .../endfield/deferred-lighting/0x1E8A471E.cso | Bin 0 -> 47548 bytes .../deferred-lighting/0x1E8A471E.ps_5_0.asm | 1581 ++++++++++++++++ .../0x1E8A471E.ps_5_0_original_backup.asm | 1516 +++++++++++++++ .../endfield/deferred-lighting/0x37837806.cso | Bin 0 -> 27444 bytes .../deferred-lighting/0x37837806.ps_5_0.asm | 949 ++++++++++ .../0x37837806.ps_5_0_original_backup.asm | 884 +++++++++ .../endfield/deferred-lighting/0xD3FA93FC.cso | Bin 0 -> 49064 bytes .../deferred-lighting/0xD3FA93FC.ps_5_0.asm | 1638 +++++++++++++++++ .../0xD3FA93FC.ps_5_0_original_backup.asm | 1573 ++++++++++++++++ .../endfield/deferred-lighting/0xD88CD7C9.cso | Bin 0 -> 26660 bytes .../deferred-lighting/0xD88CD7C9.ps_5_0.asm | 918 +++++++++ .../0xD88CD7C9.ps_5_0_original_backup.asm | 853 +++++++++ .../deferred-lighting/fog_blend_test.asm | 50 + ...l => cloud-shadows_0x61FA72DD.ps_5_0.hlsl} | 10 +- src/games/endfield/shared.h | 4 + .../uberpost/uberpost_0x039C28DA.ps_5_0.hlsl | 17 +- .../uberpost/uberpost_0x09270FDA.ps_5_0.hlsl | 17 +- .../uberpost/uberpost_0x10076711.ps_5_0.hlsl | 17 +- .../uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl | 15 +- .../uberpost/uberpost_0x57737D9F.ps_5_0.hlsl | 17 +- .../uberpost/uberpost_0x6166487A.ps_5_0.hlsl | 17 +- .../uberpost/uberpost_0x61908D50.ps_5_0.hlsl | 25 +- .../uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl | 17 +- .../uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl | 17 +- .../uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl | 17 +- 26 files changed, 10101 insertions(+), 101 deletions(-) create mode 100644 src/games/endfield/deferred-lighting/0x1E8A471E.cso create mode 100644 src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x37837806.cso create mode 100644 src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x37837806.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xD3FA93FC.cso create mode 100644 src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xD88CD7C9.cso create mode 100644 src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/fog_blend_test.asm rename src/games/endfield/shadows/{0x61FA72DD.ps_5_0.hlsl => cloud-shadows_0x61FA72DD.ps_5_0.hlsl} (98%) diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index 7f107f0a0..8cccde573 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -440,6 +440,17 @@ renodx::utils::settings::Settings settings = { .max = 100.f, .parse = [](float value) { return value * 0.01f; }, }, + new renodx::utils::settings::Setting{ + .key = "ChromaticAberrationStrength", + .binding = &shader_injection.chromatic_aberration_strength, + .default_value = 50.f, + .label = "Chromatic Aberration", + .section = "Effects", + .tooltip = "Controls the intensity of chromatic aberration effect.", + .min = 0.f, + .max = 100.f, + .parse = [](float value) { return value * 0.01f; }, + }, new renodx::utils::settings::Setting{ .key = "BloomStrength", .binding = &shader_injection.bloom_strength, @@ -505,6 +516,16 @@ renodx::utils::settings::Settings settings = { .labels = {"Off", "On"}, .is_visible = []() { return current_settings_mode >= 1; }, }, + new renodx::utils::settings::Setting{ + .key = "FogModification", + .binding = &shader_injection.fog_modification, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 1.f, + .label = "Hue-Preserving Fog", + .section = "Rendering Improvements", + .tooltip = "Toggles alternative hue-preserving fog", + .labels = {"Original", "Alt"}, + }, new renodx::utils::settings::Setting{ .key = "SwapChainCustomColorSpace", .binding = &shader_injection.swap_chain_custom_color_space, @@ -806,12 +827,13 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({ - .old_format = reshade::api::format::r8g8b8a8_typeless, - .new_format = reshade::api::format::r16g16b16a16_float, - //.ignore_size = false, - //.use_resource_view_cloning = true, - //.aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), - //.usage_include = reshade::api::resource_usage::render_target, + .old_format = reshade::api::format::r8g8b8a8_typeless, + .new_format = reshade::api::format::r16g16b16a16_float, + .ignore_size = false, + //.use_resource_view_cloning = true, + .aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), + .aspect_ratio_tolerance = 0.02f, + .usage_include = reshade::api::resource_usage::render_target, }); // Need aspect ratio upgrade or grass will be broken renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({ @@ -823,21 +845,22 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { .aspect_ratio_tolerance = 0.02f, .usage_include = reshade::api::resource_usage::render_target, }); - /* not sure if even needed so skipped + /* renodx::mods::swapchain::swap_chain_upgrade_targets.push_back({ .old_format = reshade::api::format::r10g10b10a2_unorm, .new_format = reshade::api::format::r16g16b16a16_float, - //.ignore_size = false, + .ignore_size = false, //.use_resource_view_cloning = true, - //.aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), - //.usage_include = reshade::api::resource_usage::render_target, + .aspect_ratio = static_cast(renodx::mods::swapchain::SwapChainUpgradeTarget::BACK_BUFFER), + .aspect_ratio_tolerance = 0.02f, + .usage_include = reshade::api::resource_usage::render_target, }); */ const uint32_t target_crcs[] = { - 0x37837806u, 0xD3FA93FCu, - + }; + /* 0x00C16AFBu, 0x039C28DAu, @@ -868,11 +891,8 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { 0xE0058043u, 0xF8FA587Fu, */ - - }; for (uint32_t crc : target_crcs) { - // Ensure an entry exists for the shader hash even if we don't have compiled HLSL auto it = custom_shaders.find(crc); if (it == custom_shaders.end()) { diff --git a/src/games/endfield/deferred-lighting/0x1E8A471E.cso b/src/games/endfield/deferred-lighting/0x1E8A471E.cso new file mode 100644 index 0000000000000000000000000000000000000000..e44e7c989a18d506fa4a2db2a04e8be8dd82be3d GIT binary patch literal 47548 zcmcJYeUM&Pec$iiwO7(gw&leLv(WG$Gi{?J#ag+Rkg@h^ZEp;8YLCGR&L4$(g4?u| z7eOJVrCu#W1Edf)v~EpO0w#!#-D#(8XGmXyY_;)ZGNePC#PnrartZ{b=rq$&W-{#z zg?>N3d%oxSJ$LUTOG$fX?sM)vzxS8(JLkTvbm!YQ?%4mIANb$@@H@ZrU!ULH_1}Kt z`7b}T&@|1z{AW$GsQ!m_d|byb>v+>!fAmk^tG?B-TgNdSH1NTtU8j>f`_uSkJm5Nc z>#29#``!=ycGuhQxaXex?rffX^2vL|7dha;ccR0s^3{Oo-}Yxu|G9U4 zP(*LN`>wZtS4yGJ`k!c;zp%Sm_>(s_&7mONS~vZ)zx*-mLzkx6I?$_D$9N8X6uFsMA*c}qUSI$5Ufw=m7ya=|=69{H3;uP3YdjG6 z1%CbDdS!6^vcdHYzAo}#KDa(GxPHapTB#oLe`3;HwYI;H2QheXf3wIn=kHRSFHU;c zpI3^$PGhfbnyc5Eer&VQ-Kw#TGPckON$p3P=93qiX6ugoU*4P+41Sx-h3>EKZ_sau zL(DS{Ix@R>t+xB1 zaLKdd8b7HXoqKz>)(Y{Mt?zJKNq11@F|t{;g*OM|Ruk zr?y_lqs4CXq;EU@3~VT4vbnD#V5qL{%KAY2qI^#;zI*N~`v3lQeO#6ndKf+WC`#4V z&9?W6`#TkD`$2vRA0hAbfT!_Km3)COzM%8f70whOR- zxawMdYpb!3SWpiJu~6(Aj%e1wc=TC^yPM|I7vxm(*Y?5>yhlIK+wB_YJP^-47YmMj z8##o}U8`TIbJ@0R9FO0q@pC0Uo7eU-#_(2!=a?B!L%S=#LTkRS5>Rz0ViR^Mmh|wT z#|O5JoM!CM)eL<~QRTgK^|DPb>?6F-A@o*}>oQWC#Q2 z7Wo~%#2;I2(}%zQLube7X4SI~sdU zbJZd=z~9_7pSe(SdQD@jdDL+Hu&J8N8bVHUZ65E|`HEP}PcdhqX*>N4>X2v`jubty zf3@%@SD;Y~f502v>CyK$zW%3v<=A8#_SnBT%X|&niKlt?c5a6|M z=%cO|oE>#tao+b}(UCagC+Z;hZKt1T({%$IiJk2ruGUMZH5SsR%0f5r(ATu+iJ$0^ zY5m~=4*2tUYzvNl%j)s1`J2aZU1jf**Hz6kTF5DOgs$+i-^O$`fBF*BQC-J)EYH!^ zc@IDG9(|Z+=xi8!ttHVL2Cnp5W`2fk1wYY;J zX}-*N^38fI7F^~m^Bov6u@#)&54{}+HO3y1coRGK*a#i_Md(aV4-DOhFs@C9oK@k# z+r8=Xm~~;k$3GqpFjEQPkm8*`iv3mT&bS9mja{nW$1RBaNt zc~*Gjg!M&t{P|zL`{i}Uu$3|A5d5nvKctZNO)!%fGw*-#+u{zw>AA0LQTa zFZ=kuPrUlhje9>YoId|74EhgSH{YLHNTsA~qqK;tCB7=#KY23?> zy{E;2_!(dN2M-7{Kgro+eKxlzfm8SgEj*}^@Qc`QPb@#`ap4!T*lU=VbzzSMKm03M z(_Biq4`1(xa$FWV0h+C2cb5H7hEc<;lVgLe@DgmdVIDj6(^EZU&%O#D*nCd+8P?ad zm(u%6b@RRvzoIwIa_Eb{_f-8f#y$XCd}ti&G^EeI1m-vleVJiHUuK^BC(W*diX3Z_ zWz*v$V2-!P=+VLZAn!w%Q$>e$@(DV}Q=q6zrQX#%6<*Cv?8x}$WgUPa+j9gR)OPGY zz%wm&Z;LN}&HTa1FxLn7h7lLj8K$Awz1RR{c_DYwSQ?5DmZPzr1_uX;34-G|(yg%D0F|{9Z9Fo6g<^r^y@9f8k0r7wr z&H3(LdQ{l5aJ;61ODxtj2IWJgJ`$^?f~T>_d;DxX*2RJ!Fyp>OHEM{1ULJe&>N1B4 zy~NbL;%XT~zut-|%sS(bSA6w1k73V>u&|@|QL}EGF+XJ3Y0)t+@E9Y0 z(jD!&A0-!jKU#b-nhV(nmd#uu*AE4^>D~*L9`k&|ulO$H%0D^BGc5ZRT>0x7=n8(! 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
  • N<}rHi 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 Q4VdH8Tl>=B*{`qv0UufvWB>pF literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm new file mode 100644 index 000000000..7a5838d00 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm @@ -0,0 +1,949 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Thu Jan 29 17:17:27 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[4], immediateIndexed +dcl_constantbuffer CB13[13], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_default +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture2d (float,float,float,float) t19 +dcl_resource_texture2d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 25 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t20.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t21.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t22.xyzw +mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) +ftou r1.xz, r1.xxzx +ubfe r4.x, l(7), l(3), r1.x +utof r4.x, r4.x +round_ne r1.y, r1.y +ftou r1.y, r1.y +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.y, l(1.000000) +lt r4.y, r5.y, l(0.000000) +ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) +movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) +mul r4.zw, r4.zzzw, r6.xxxy +movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r5.xyz, r2.xxxx, r5.xyzx +and r2.x, r1.y, l(7) +utof r2.x, r2.x +mad r2.x, r2.x, l(0.107142866), l(0.500000) +utof r4.yz, r0.xxyx +mul r6.xy, v0.xyxx, cb0[82].zwzz +mad r6.zw, r6.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r7.xy, r4.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r7.xy, r7.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r2.y, r7.xyxx, t1.yxzw, s0, l(0.000000) +mul r7.xyzw, -r6.wwww, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r6.zzzz, r7.xyzw +mad r7.xyzw, cb0[26].xyzw, r2.yyyy, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r2.y, r7.y, cb0[1].z +mad r2.y, cb0[0].z, r7.x, r2.y +mad r2.y, cb0[2].z, r7.z, r2.y +add r2.y, r2.y, cb0[3].z +eq r4.w, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r8.xyz, r4.wwww, r8.xyzx, r9.xyzx +dp3 r4.w, r8.xyzx, r8.xyzx +max r6.z, r4.w, l(9.999999939E-09) +rsq r6.z, r6.z +mul r10.xyz, r6.zzzz, r8.xyzx +mul r4.w, r4.w, r6.z +lt r6.w, l(0.000488281250), cb0[234].x +if_nz r6.w + sample_b_indexable(texture2d)(float,float,float,float) r6.w, v1.xyxx, t19.yzwx, s1, cb0[108].x +else + mov r6.w, l(1.000000) +endif +add r6.w, -r6.w, l(1.000000) +mad_sat r8.w, r2.z, l(0.300000), l(0.250000) +mul r8.w, r8.w, cb0[222].x +mul r8.w, r6.w, r8.w +mad r8.w, r8.w, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r8.wwww +min r8.w, r2.z, l(0.300000) +mul r6.w, r6.w, cb0[222].x +mul r6.w, r6.w, l(0.500000) +add r8.w, -r2.z, r8.w +mad r11.z, r6.w, r8.w, r2.z +mul r2.zw, r2.xxxw, l(0.000000, 0.000000, 0.080000, 3.000000) +dp3 r6.w, r5.xyzx, r10.xyzx +max r8.w, r6.w, l(0.000000) +mad r12.xyzw, r11.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r9.w, r12.x, r12.x +mul r10.w, r8.w, l(-9.280000) +exp r10.w, r10.w +min r9.w, r9.w, r10.w +mad r9.w, r9.w, r12.x, r12.y +mad r12.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r12.zwzz +ld_indexable(texture2d)(float,float,float,float) r12.z, r0.xyzz, t6.zwxy +lt r0.z, l(0.001000), r12.z +if_nz r0.z + bfi r0.z, l(3), l(2), r1.x, l(0) + mul r1.x, r1.w, l(3.000000) + ftou r1.x, r1.x + bfi r0.z, l(2), l(0), r1.x, r0.z + utof r0.z, r0.z + mul r1.x, r0.z, l(0.0322580636) + ubfe r1.y, l(7), l(3), r1.y + utof r1.y, r1.y + mul r1.y, r1.y, l(0.00787401572) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t9.yzwx, s1, l(0.000000) + dp3 r9.w, -r10.xyzx, r5.xyzx + add r9.w, r9.w, r9.w + mad r13.xyz, r5.xyzx, -r9.wwww, -r10.xyzx + dp3 r9.w, -cb2[0].xyzx, r13.xyzx + mad r14.xyz, cb2[0].xyzx, r9.wwww, r13.xyzx + lt r9.w, r9.w, cb2[4].z + dp3 r10.w, r14.xyzx, r14.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r14.xyz, r10.wwww, r14.xyzx + mul r14.xyz, r14.xyzx, cb2[4].yyyy + mad r14.xyz, -cb2[0].xyzx, cb2[4].zzzz, r14.xyzx + dp3 r10.w, r14.xyzx, r14.xyzx + rsq r10.w, r10.w + mul r14.xyz, r10.wwww, r14.xyzx + movc r13.xyz, r9.wwww, r14.xyzx, r13.xyzx + mad r8.xyz, r8.xyzx, r6.zzzz, r13.xyzx + dp3 r6.z, r8.xyzx, r8.xyzx + max r6.z, r6.z, l(0.0000610351562) + rsq r6.z, r6.z + mul r8.xyz, r6.zzzz, r8.xyzx + dp3 r6.z, r5.xyzx, r13.xyzx + mov_sat r11.x, r6.z + dp3_sat r9.w, r5.xyzx, r8.xyzx + dp3 r10.w, r10.xyzx, r13.xyzx + min r11.y, r8.w, l(1.000000) + mul r11.w, r11.z, r11.z + mul r11.w, r11.w, r11.w + mad r13.x, r9.w, r11.w, -r9.w + mad r9.w, r13.x, r9.w, l(1.000000) + dp3_sat r8.x, r10.xyzx, r8.xyzx + add r8.x, -r8.x, l(1.000000) + mul r8.y, r8.x, r8.x + mul r8.y, r8.y, r8.y + mul r8.z, r8.x, r8.y + add r13.x, -r11.z, l(1.000000) + mad r13.y, -r13.x, l(0.383026), l(-0.0761947036) + mad r13.y, r13.x, r13.y, l(1.049970) + mad r13.x, r13.x, r13.y, l(0.409255) + min r13.x, r13.x, l(0.999000) + add r13.y, -r13.x, l(1.000000) + mad r2.x, -r2.x, l(0.080000), l(1.000000) + mad r2.x, r2.x, l(0.0476190485), r2.z + mov_sat r13.z, -r10.w + mul r13.z, r13.z, r13.z + mad r13.z, r13.z, l(-0.640000), l(1.000000) + mul r13.z, r13.z, r13.z + mad r8.x, -r8.y, r8.x, l(1.000000) + mad r8.x, r2.z, r8.x, r8.z + mul r8.y, r9.w, r9.w + div r8.y, r11.w, r8.y + mad r14.xy, -r11.yxyy, r11.wwww, r11.yxyy + mad r14.xy, r14.xyxx, r11.yxyy, r11.wwww + sqrt r14.xy, r14.xyxx + mul r14.xy, r11.xyxx, r14.xyxx + add r8.z, r14.y, r14.x + add r8.z, r8.z, l(0.000100) + div r8.z, l(0.500000), r8.z + mul r8.y, r8.z, r8.y + mul r8.x, r8.y, r8.x + min r8.x, r8.x, l(2048.000000) + mad r14.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r8.y, r14.xyxx, t8.yxzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r8.z, r14.zwzz, t8.yzxw, s1, l(0.000000) + mul r8.y, r8.z, r8.y + mul r8.y, r13.x, r8.y + div r8.y, r8.y, r13.y + mul r8.z, r2.x, r2.x + mul r8.y, r8.y, r8.z + mad r2.x, -r2.x, r13.y, l(1.000000) + div r2.x, r8.y, r2.x + add r2.x, r2.x, r8.x + add_sat r6.w, r6.w, l(0.200000) + mov_sat r8.x, r10.w + add r8.x, r8.x, l(0.500000) + min r8.x, r8.x, l(1.000000) + mul r8.y, r6.w, r8.x + add_sat r8.z, r10.w, l(1.000000) + mad r6.w, -r6.w, r8.x, l(1.000000) + mad r6.w, r8.z, r6.w, r8.y + mul r2.x, r2.x, r6.w + mul r2.x, r1.y, r2.x + mul r8.xyz, r1.yyyy, r3.xyzx + ubfe r6.w, l(7), l(3), r1.z + utof r6.w, r6.w + mul r6.w, r6.w, l(0.00787401572) + mul r2.x, r2.x, cb2[4].x + max r2.x, r2.x, l(0.000000) + min r2.x, r2.x, l(1000.000000) + mul r2.x, r11.x, r2.x + mad r8.xyz, r8.xyzx, r6.wwww, r2.xxxx + max r2.x, r3.y, r3.x + max r2.x, r3.z, r2.x + max r2.x, r2.x, l(0.010000) + div r13.xyw, r3.xyxz, r2.xxxx + mul r2.x, r4.x, l(0.00393700786) + mul r13.xyw, r2.xxxx, r13.xyxw + add_sat r2.x, -r6.z, l(0.500000) + ne r6.w, r13.z, l(0.360000) + div r9.w, l(0.360000), r13.z + movc r6.w, r6.w, r9.w, l(1.000000) + mul r2.x, r2.x, r6.w + mad_sat r0.z, r0.z, l(0.0322580636), r6.z + add r0.z, -r11.x, r0.z + mul r11.xyw, r0.zzzz, r3.xyxz + mad r11.xyw, r13.xyxw, r2.xxxx, r11.xyxw + mad r8.xyz, r11.xywx, r1.yyyy, r8.xyzx + mul r8.xyz, r8.xyzx, cb2[1].xyzx + mov r12.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r12.zwzz, t7.xywz, s1, cb0[108].x + add r0.z, -r12.z, l(1.000000) + mad r11.xyw, r8.xyxz, r11.xyxw, -r8.xyxz + mad r8.xyz, r0.zzzz, r11.xywx, r8.xyzx + max r0.z, r1.y, r1.w + add r0.z, -r1.w, r0.z + mad r0.z, r1.x, r0.z, r1.w + mul r1.xyw, r0.zzzz, r8.xyxz +else + mov r1.xyw, l(0,0,0,0) +endif +ne r6.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r6.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r2.x, r0.z, r8.w + mad r6.z, r11.z, l(-16.000000), l(-1.000000) + exp r6.z, r6.z + log r2.x, |r2.x| + mul r2.x, r2.x, r6.z + exp r2.x, r2.x + add r2.x, r0.z, r2.x + add r2.x, r2.x, l(-1.000000) + mov_sat r8.xyz, r2.xxxx + mad r11.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) + mul r11.xyw, r0.zzzz, r11.xyxw + mad r11.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r11.xyxw + add r11.xyw, r11.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) + mul r11.xyw, r0.zzzz, r11.xyxw + mad r11.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r11.xyxw + add r11.xyw, r11.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) + mul r11.xyw, r0.zzzz, r11.xyxw + max r11.xyw, r0.zzzz, r11.xyxw +else + mov r8.xyz, r3.wwww + mov r11.xyw, r3.wwww +endif +mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r13.xyz, r7.xzyx, -r13.xyzx +max r0.z, |r13.y|, |r13.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r2.x, |r13.z|, l(-208.000000) +mul_sat r2.x, r2.x, l(0.031250) +max r0.z, r0.z, r2.x +ne r2.x, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r2.x, r2.x, r3.w +if_nz r2.x + mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r13.xyz, r7.xzyx, -r13.xyzx + max r2.x, |r13.y|, |r13.x| + add r2.x, r2.x, l(-29.000000) + mul_sat r2.x, r2.x, l(0.500000) + add r3.w, |r13.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r2.x, r2.x, r3.w + lt r3.w, r2.x, l(1.000000) + if_nz r3.w + mad r13.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r13.xyzx, cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r14.xyw, r13.xyzx, t13.yzwx, s2, l(0.000000) + add r3.w, -r2.x, l(1.000000) + mul r6.z, l(0.500000), cb0[211].y + mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) + max r6.z, r6.z, r13.y + min r6.z, r9.w, r6.z + mul r13.w, r6.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t14.xyzw, s1, l(0.000000) + mad r6.z, r15.w, r3.w, r0.z + add r16.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t14.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r14.yyyy, r16.xyzx + mov r16.w, r14.y + mul r16.xyzw, r3.wwww, r16.xyzw + add r13.xyz, r13.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xyz, r13.xyzx, t14.xyzw, s1, l(0.000000) + mad r13.xyz, r13.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r13.xyz, r14.xxxx, r13.xyzx + mov r13.w, r14.x + mul r13.xyzw, r3.wwww, r13.xyzw + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r14.wwww, r15.xyzx + mul r14.xyzw, r3.wwww, r14.xyzw + else + mov r16.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r6.z, r0.z + endif + mad r15.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r15.xyz, r7.xzyx, -r15.xyzx + max r3.w, |r15.y|, |r15.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r9.w, |r15.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r3.w, r3.w, r9.w + lt r9.w, r3.w, l(1.000000) + if_nz r9.w + mad r15.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r15.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r15.xyzx, t15.yzwx, s2, l(0.000000) + add r9.w, -r3.w, l(1.000000) + mul r2.x, r2.x, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r15.y + min r9.w, r10.w, r9.w + mul r15.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t16.xyzw, s1, l(0.000000) + mad r6.z, r18.w, r2.x, r6.z + add r19.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t16.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mad r16.xyzw, r19.xyzw, r2.xxxx, r16.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t16.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r17.xxxx, r15.xyzx + mov r15.w, r17.x + mad r13.xyzw, r15.xyzw, r2.xxxx, r13.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r15.xyzx + mad r14.xyzw, r17.xyzw, r2.xxxx, r14.xyzw + endif + lt r2.x, l(0.000000), r3.w + if_nz r2.x + mad r15.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r15.xyzx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r17.xyzx + mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r18.xyzx, r15.xyzx + min r15.xyz, r17.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) + add r2.x, -r0.z, l(1.000000) + mul r2.x, r2.x, r3.w + max r3.w, r18.y, r15.y + min r3.w, r17.y, r3.w + mul r15.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) + add r18.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.yyyy, r18.xyzx + mov r18.w, r19.y + mad r16.xyzw, r18.xyzw, r2.xxxx, r16.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r19.xxxx, r15.xyzx + mov r15.w, r19.x + mad r13.xyzw, r15.xyzw, r2.xxxx, r13.xyzw + mad r15.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r15.xyzx + mad r14.xyzw, r19.xyzw, r2.xxxx, r14.xyzw + mad r6.z, r17.w, r2.x, r6.z + endif + mad_sat r2.x, r6.z, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r2.x + add r0.z, r0.z, r2.x + mul r15.y, r0.z, l(0.500000) +else + mov r16.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r17.xyzw, r15.yyyx, cb0[213].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[213].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r14.xyzw, r14.xyzw, r17.xyzw +mul r17.xyzw, r15.yyyx, cb0[214].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[214].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r13.xyzw, r13.xyzw, r17.xyzw +mul r17.xyzw, r15.yyyx, cb0[215].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[215].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r15.xyzw, r16.xyzw, r17.xyzw +ge r12.zw, r6.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r12.w, r12.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r16.xyzw, r6.xyxx, t12.xyzw, s1, l(0.000000) + lt r17.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r16.xyzw| + or r6.xy, r17.zwzz, r17.xyxx + or r0.z, r6.y, r6.x + if_nz r0.z + dp3 r0.z, r16.yzwy, r16.yzwy + sqrt r0.z, r0.z + mov r6.x, l(1.000000) + mov r6.y, r0.z + mov r2.x, l(0) + loop + ge r3.w, l(4.600000), r6.y + breakc_nz r3.w + iadd r3.w, r2.x, l(1) + mul r12.zw, r6.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) + mov r6.xy, r12.zwzz + mov r2.x, r3.w + continue + endloop + mul r16.xyzw, r6.xxxx, r16.xyzw + dp3 r0.z, r16.yzwy, r16.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb3[3].x, cb3[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r6.x, r0.z, l(0.00390625000) + mov r6.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyxx, t11.xyzw, s1, l(0.000000) + mad r6.xy, r6.xyxx, cb3[2].xyxx, cb3[2].zwzz + mul r17.x, r6.x, l(3.54490781) + mul r17.yzw, r6.yyyy, r16.yyzw + mul r0.z, r16.x, l(0.406976730) + exp r0.z, r0.z + mul r16.xyzw, r0.zzzz, r17.xyzw + mov r17.xyzw, r16.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r2.x + breakc_nz r3.w + mul r18.xyzw, r17.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r18.xyzw, r17.xyzw + dp2 r6.x, r18.yxyy, r17.xyxx + dp2 r6.y, r18.zxzz, r17.xzxx + dp2 r6.z, r18.wxww, r17.xwxx + iadd r9.w, r0.z, l(1) + mov r17.x, r3.w + mov r17.yzw, r6.xxyz + mov r0.z, r9.w + continue + endloop + mul r16.xyzw, r17.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r17.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r16.xyzw, r17.xyzw + dp2 r2.x, r16.yxyy, r17.xyxx + dp2 r3.w, r16.zxzz, r17.xzxx + dp2 r6.x, r16.wxww, r17.xwxx + mul r17.xyzw, r13.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r6.y, r16.xyzw, r17.xyzw + dp2 r6.z, r16.yxyy, r17.xyxx + dp2 r9.w, r16.zxzz, r17.xzxx + dp2 r10.w, r16.wxww, r17.xwxx + mul r17.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r12.z, r16.xyzw, r17.xyzw + dp2 r12.w, r16.yxyy, r17.xyxx + dp2 r16.y, r16.zxzz, r17.xzxx + dp2 r16.x, r16.wxww, r17.xwxx + mul r14.w, r0.z, l(0.886226952) + mul r14.x, r6.x, l(-1.02332675) + mul r14.y, r2.x, l(-1.02332675) + mul r14.z, r3.w, l(1.02332675) + mul r13.x, r10.w, l(-1.02332675) + mul r13.yw, r6.zzzy, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r13.z, r9.w, l(1.02332675) + mul r15.yw, r12.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r15.xz, r16.xxyx, l(-1.02332675, 0.000000, 1.02332675, 0.000000) + endif +endif +mov r5.w, l(1.000000) +dp4 r6.x, r14.xyzw, r5.xyzw +dp4 r6.y, r13.xyzw, r5.xyzw +dp4 r6.z, r15.xyzw, r5.xyzw +max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +dp3 r0.z, -r10.xyzx, r5.xyzx +add r0.z, r0.z, r0.z +mad r16.xyz, r5.xyzx, -r0.zzzz, -r10.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r2.x, r11.z, l(0.001000) +log r2.x, r2.x +mad r2.x, -r2.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r2.x +mul r12.zw, r4.yyyz, cb1[0].wwww +round_ni r12.zw, r12.zzzw +add r2.x, |r2.y|, -cb1[2].y +round_ni r2.x, r2.x +add r3.w, l(-1.000000), cb1[1].x +max r9.w, r2.x, l(0.000000) +min r3.w, r3.w, r9.w +ge r2.x, r3.w, r2.x +mad r9.w, r12.w, cb1[0].x, r12.z +ftoi r9.w, r9.w +iadd r9.w, r9.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r9.w, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r9.w +and r2.x, r2.x, r3.w +mul r17.xyz, r6.xyzx, cb0[111].xxxx +dp3 r3.w, r17.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r17.xyz, l(0,0,0,0) +mov r9.w, l(1.000000) +mov r10.w, r2.x +mov r11.z, l(0) +loop + lt r12.z, l(0.010000), r9.w + ine r12.w, r10.w, l(0) + and r12.w, r12.z, r12.w + if_nz r12.w + firstbit_lo r12.w, r10.w + ishl r16.w, l(1), r12.w + xor r10.w, r10.w, r16.w + ishl r12.w, r12.w, l(3) + dp4 r18.x, cb1[r12.w + 6].xyzw, r7.xyzw + dp4 r18.y, cb1[r12.w + 7].xyzw, r7.xyzw + dp4 r18.z, cb1[r12.w + 8].xyzw, r7.xyzw + ge r19.xyz, cb1[r12.w + 5].xyzx, |r18.xyzx| + and r16.w, r19.y, r19.x + and r16.w, r19.z, r16.w + if_nz r16.w + mul r16.w, l(0.100000), cb1[r12.w + 5].x + mul r19.xyz, |r18.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r19.xy, r19.xyxx, r19.xyxx + add r20.xyz, -|r18.xyzx|, cb1[r12.w + 5].xyzx + mul r20.xyz, r20.xyzx, cb1[r12.w + 9].xyzx + eq r17.w, l(1.000000), cb1[r12.w + 10].x + if_nz r17.w + dp3 r21.x, cb1[r12.w + 6].xyzx, r16.xyzx + dp3 r21.y, cb1[r12.w + 7].xyzx, r16.xyzx + dp3 r21.z, cb1[r12.w + 8].xyzx, r16.xyzx + add r22.xyz, -r18.xyzx, cb1[r12.w + 5].xyzx + div r22.xyz, r22.xyzx, r21.xyzx + add r23.xyz, -r18.xyzx, -cb1[r12.w + 5].xyzx + div r23.xyz, r23.xyzx, r21.xyzx + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + movc r22.xyz, r24.xyzx, r22.xyzx, r23.xyzx + min r17.w, r22.y, r22.x + min r17.w, r22.z, r17.w + mad r18.xyz, r21.xyzx, r17.wwww, r18.xyzx + else + mov r18.xyz, r16.xyzx + endif + dp3 r17.w, r18.xyzx, r18.xyzx + rsq r17.w, r17.w + mul r18.xyz, r17.wwww, r18.xyzx + lt r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + lt r22.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r21.xyz, -r21.xyzx, r22.xyzx + itof r21.xyz, r21.xyzx + dp3 r17.w, r18.xyzx, r21.xyzx + div r18.xyz, r18.xyzx, r17.wwww + lt r17.w, r18.z, l(0.000000) + add r18.zw, -|r18.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r18.zw, r18.zzzw, r21.xxxy + movc r18.xy, r17.wwww, r18.zwzz, r18.xyxx + dp4 r17.w, cb1[r12.w + 4].xyzw, r5.xyzw + max r17.w, r17.w, l(0.000000) + max r17.w, r17.w, l(0.000100) + min r18.z, r20.z, r20.y + min r18.z, r18.z, r20.x + add r18.w, r19.y, r19.x + mad r18.w, r19.z, r19.z, r18.w + mad r16.w, r16.w, r16.w, -r18.w + mul r16.w, r16.w, cb1[r12.w + 9].x + mul r16.w, r16.w, cb1[r12.w + 9].x + add r18.w, l(1.000000), -cb1[r12.w + 10].y + mul r16.w, r16.w, r18.w + mul r16.w, r16.w, l(100.000000) + mad_sat r16.w, r18.z, cb1[r12.w + 10].y, r16.w + mul r18.z, r16.w, cb1[r12.w + 10].w + mad r18.xy, r18.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r19.xy, r18.xyxx, cb1[1].wwww, cb1[2].wwww + mov r19.z, cb1[r12.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r18.xyw, r19.xyzx, t5.xywz, s3, r0.z + mul r18.xyw, r18.xyxw, cb1[r12.w + 9].wwww + div r19.x, r3.w, r17.w + min r19.x, |r19.x|, l(1.000000) + mad r19.x, r19.x, l(2.000000), r3.w + add r17.w, r17.w, l(2.000000) + div r17.w, r19.x, r17.w + add r17.w, r17.w, l(-1.000000) + mad r17.w, r17.w, cb0[112].w, l(1.000000) + mul r18.xyw, r17.wwww, r18.xyxw + mul r18.xyz, r18.zzzz, r18.xywx + mad r17.xyz, r18.xyzx, r9.wwww, r17.xyzx + mad r12.w, -r16.w, cb1[r12.w + 10].w, l(1.000000) + mul r9.w, r9.w, r12.w + endif + mov r11.z, l(-1) + continue + else + mov r11.z, r12.z + break + endif + mov r11.z, r12.z +endloop +if_nz r11.z + dp3 r2.x, r16.xyzx, r16.xyzx + rsq r2.x, r2.x + mul r7.xzw, r2.xxxx, r16.xxyz + lt r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r7.xzwx + lt r18.xyz, r7.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r16.xyz, -r16.xyzx, r18.xyzx + itof r16.xyz, r16.xyzx + dp3 r2.x, r7.xzwx, r16.xyzx + div r7.xzw, r7.xxzw, r2.xxxx + lt r2.x, r7.w, l(0.000000) + add r12.zw, -|r7.zzzx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r12.zw, r12.zzzw, r16.xxxy + movc r7.xz, r2.xxxx, r12.zzwz, r7.xxzx + dp4 r2.x, cb1[3].xyzw, r5.xyzw + max r2.x, r2.x, l(0.000000) + max r2.x, r2.x, l(0.000100) + mad r7.xz, r7.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) + mad r16.xy, r7.xzxx, cb1[1].wwww, cb1[2].wwww + mov r16.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r7.xzw, r16.xyzx, t5.xwyz, s3, r0.z + div r0.z, r3.w, r2.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r2.x, r2.x, l(2.000000) + div r0.z, r0.z, r2.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r7.xzw, r0.zzzz, r7.xxzw + mad r17.xyz, r7.xzwx, r9.wwww, r17.xyzx +endif +mul r7.xzw, r17.xxyz, cb0[112].zzzz +mul r7.xzw, r7.xxzw, cb0[111].yyyy +if_nz r6.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r16.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r2.x, -r0.z, l(1.000000) + mul r17.xyz, r2.xxxx, r7.xzwx + mad r7.xzw, r16.xxyz, r0.zzzz, r17.xxyz +endif +mul r6.xyz, r3.xyzx, r6.xyzx +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mad r0.z, r2.z, r12.x, r12.y +mul r7.xzw, r0.zzzz, r7.xxzw +mul r7.xzw, r8.xxyz, r7.xxzw +mad r6.xyz, r6.xyzx, r11.xywx, r7.xzwx +mul r5.xyzw, r5.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r8.x, r14.xyzw, r5.xyzw +dp4 r8.y, r13.xyzw, r5.xyzw +dp4 r8.z, r15.xyzw, r5.xyzw +max r5.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r5.xyz, r5.xyzx, cb0[111].xxxx +mul r5.xyz, r11.xywx, r5.xyzx +max r0.z, r3.y, r3.x +max r0.z, r3.z, r0.z +max r0.z, r0.z, l(0.010000) +div r3.xyz, r3.xyzx, r0.zzzz +mul r3.xyz, r3.xyzx, r5.xyzx +mul r0.z, r4.x, l(0.00787401572) +min r2.x, r8.w, l(1.000000) +bfi r1.z, l(3), l(2), r1.z, l(0) +ftou r2.z, r2.w +bfi r1.z, l(2), l(0), r2.z, r1.z +utof r1.z, r1.z +mul r1.z, r1.z, l(0.0322580636) +mad r0.z, r0.z, r2.x, r1.z +mul r2.xzw, r0.zzzz, r3.xxyz +mad r2.xzw, r2.xxzw, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r6.xxyz +add r1.xyz, r1.xywx, r2.xzwx +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r4.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r7.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xzw, r0.zzzz, cb0[155].xxyz +mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r2.xzw, r2.xxzw +dp3 r0.z, -r10.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.x, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r3.x +lt r3.x, l(0.000000), cb0[163].z +if_nz r3.x + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r10.xyzx, -r9.xyzx + add r3.z, r7.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.w + mul r0.x, r0.x, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul r4.x, r0.x, r3.w + mad r5.x, r4.x, r3.z, cb0[44].y + mad r3.z, -r4.x, r3.z, r3.z + mul r4.x, r3.z, cb0[159].z + max r4.x, r4.x, l(-127.000000) + mul r3.z, r3.z, cb0[162].x + max r3.z, r3.z, l(-127.000000) + add r5.y, r5.x, -cb0[159].x + mul r5.y, r5.y, cb0[159].z + max r5.y, r5.y, l(-127.000000) + exp r5.y, -r5.y + mul r5.y, r5.y, cb0[159].y + lt r5.z, l(5.960464478E-08), |r4.x| + exp r5.w, -r4.x + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r5.z, r5.w, r4.x + add r5.x, r5.x, -cb0[162].z + mul r5.x, r5.x, cb0[162].x + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[162].y + lt r5.z, l(5.960464478E-08), |r3.z| + exp r5.w, -r3.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r5.z, r5.w, r3.z + mul r3.z, r3.z, r5.x + mad r3.z, r5.y, r4.x, r3.z + mad r0.x, -r0.x, r3.w, l(1.000000) + mul r0.x, r4.w, r0.x + mul r0.x, r0.x, r3.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r4.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r2.y|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t10.xyzw, s1, l(0.000000) + add r0.y, |r2.y|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.y, cb0[44].y, -cb0[159].x + mul r2.y, r2.y, cb0[159].z + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.y, r0.w, r0.y + mul r0.y, r4.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r4.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xzwx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.y, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx + +// Check fog modification toggle (cb13[12].y) +// If 0 (Original), skip fog modification and output original +if_z cb13[12].y + mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx + dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + ret +endif + +// === Custom Hue-Preserving Fog Blend === +// FOG_INTENSITY = 0.7, HUE_PRESERVATION = 0.6 +// r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter (0-255) + +// Normalize colors to 0-1 range +mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 +mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 + +// Reduce fog intensity: transmittance = lerp(transmittance, 1, 0.3) +add r7.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r7.xyz, r7.xyzx, l(0.300000, 0.300000, 0.300000, 0.000000), r4.xyzx // adjusted transmittance + +// fogColor *= FOG_INTENSITY (0.7) +mul r6.xyz, r6.xyzx, l(0.700000, 0.700000, 0.700000, 0.000000) + +// Standard fog blend: foggedScene = sceneColor * transmittance + fogColor +mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx + +// Calculate fog amount: fogAmount = 1 - avg(transmittance) +dp3 r3.w, r7.xyzx, l(0.333333, 0.333333, 0.333333, 0.000000) +add r3.w, -r3.w, l(1.000000) + +// Scene luminance (BT.709) +dp3 r5.w, r5.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) + +// Fogged luminance +dp3 r6.w, r8.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) + +// lumaWeight = saturate(sceneLuma * 100) for smooth falloff +mul_sat r7.w, r5.w, l(100.000000) + +// Safe luma for division +max r5.w, r5.w, l(0.0001) + +// sceneRatios = sceneColor / safeLuma +div r9.xyz, r5.xyzx, r5.wwww + +// Clamp ratios to prevent artifacts +max r9.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r9.xyz, r9.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000) + +// huePreserved = sceneRatios * foggedLuma +mul r9.xyz, r9.xyzx, r6.wwww + +// preserveAmount = HUE_PRESERVATION * saturate(1 - fogAmount*0.5) * lumaWeight +mul r5.w, r3.w, l(0.500000) +add_sat r5.w, -r5.w, l(1.000000) +mul r5.w, r5.w, l(0.600000) // HUE_PRESERVATION +mul r5.w, r5.w, r7.w + +// foggedScene = lerp(foggedScene, huePreserved, preserveAmount) +add r9.xyz, r9.xyzx, -r8.xyzx +mad r8.xyz, r5.wwww, r9.xyzx, r8.xyzx + +// Output: scale back to 0-255 range +mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x37837806.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x37837806.ps_5_0_original_backup.asm new file mode 100644 index 000000000..0b71e1b3d --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x37837806.ps_5_0_original_backup.asm @@ -0,0 +1,884 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Thu Jan 29 18:08:39 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[4], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_default +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture2d (float,float,float,float) t19 +dcl_resource_texture2d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 25 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t20.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t21.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t22.xyzw +mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) +ftou r1.xz, r1.xxzx +ubfe r4.x, l(7), l(3), r1.x +utof r4.x, r4.x +round_ne r1.y, r1.y +ftou r1.y, r1.y +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.y, l(1.000000) +lt r4.y, r5.y, l(0.000000) +ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) +movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) +mul r4.zw, r4.zzzw, r6.xxxy +movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r5.xyz, r2.xxxx, r5.xyzx +and r2.x, r1.y, l(7) +utof r2.x, r2.x +mad r2.x, r2.x, l(0.107142866), l(0.500000) +utof r4.yz, r0.xxyx +mul r6.xy, v0.xyxx, cb0[82].zwzz +mad r6.zw, r6.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r7.xy, r4.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r7.xy, r7.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r2.y, r7.xyxx, t1.yxzw, s0, l(0.000000) +mul r7.xyzw, -r6.wwww, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r6.zzzz, r7.xyzw +mad r7.xyzw, cb0[26].xyzw, r2.yyyy, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r2.y, r7.y, cb0[1].z +mad r2.y, cb0[0].z, r7.x, r2.y +mad r2.y, cb0[2].z, r7.z, r2.y +add r2.y, r2.y, cb0[3].z +eq r4.w, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r8.xyz, r4.wwww, r8.xyzx, r9.xyzx +dp3 r4.w, r8.xyzx, r8.xyzx +max r6.z, r4.w, l(9.999999939E-09) +rsq r6.z, r6.z +mul r10.xyz, r6.zzzz, r8.xyzx +mul r4.w, r4.w, r6.z +lt r6.w, l(0.000488281250), cb0[234].x +if_nz r6.w + sample_b_indexable(texture2d)(float,float,float,float) r6.w, v1.xyxx, t19.yzwx, s1, cb0[108].x +else + mov r6.w, l(1.000000) +endif +add r6.w, -r6.w, l(1.000000) +mad_sat r8.w, r2.z, l(0.300000), l(0.250000) +mul r8.w, r8.w, cb0[222].x +mul r8.w, r6.w, r8.w +mad r8.w, r8.w, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r8.wwww +min r8.w, r2.z, l(0.300000) +mul r6.w, r6.w, cb0[222].x +mul r6.w, r6.w, l(0.500000) +add r8.w, -r2.z, r8.w +mad r11.z, r6.w, r8.w, r2.z +mul r2.zw, r2.xxxw, l(0.000000, 0.000000, 0.080000, 3.000000) +dp3 r6.w, r5.xyzx, r10.xyzx +max r8.w, r6.w, l(0.000000) +mad r12.xyzw, r11.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r9.w, r12.x, r12.x +mul r10.w, r8.w, l(-9.280000) +exp r10.w, r10.w +min r9.w, r9.w, r10.w +mad r9.w, r9.w, r12.x, r12.y +mad r12.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r12.zwzz +ld_indexable(texture2d)(float,float,float,float) r12.z, r0.xyzz, t6.zwxy +lt r0.z, l(0.001000), r12.z +if_nz r0.z + bfi r0.z, l(3), l(2), r1.x, l(0) + mul r1.x, r1.w, l(3.000000) + ftou r1.x, r1.x + bfi r0.z, l(2), l(0), r1.x, r0.z + utof r0.z, r0.z + mul r1.x, r0.z, l(0.0322580636) + ubfe r1.y, l(7), l(3), r1.y + utof r1.y, r1.y + mul r1.y, r1.y, l(0.00787401572) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t9.yzwx, s1, l(0.000000) + dp3 r9.w, -r10.xyzx, r5.xyzx + add r9.w, r9.w, r9.w + mad r13.xyz, r5.xyzx, -r9.wwww, -r10.xyzx + dp3 r9.w, -cb2[0].xyzx, r13.xyzx + mad r14.xyz, cb2[0].xyzx, r9.wwww, r13.xyzx + lt r9.w, r9.w, cb2[4].z + dp3 r10.w, r14.xyzx, r14.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r14.xyz, r10.wwww, r14.xyzx + mul r14.xyz, r14.xyzx, cb2[4].yyyy + mad r14.xyz, -cb2[0].xyzx, cb2[4].zzzz, r14.xyzx + dp3 r10.w, r14.xyzx, r14.xyzx + rsq r10.w, r10.w + mul r14.xyz, r10.wwww, r14.xyzx + movc r13.xyz, r9.wwww, r14.xyzx, r13.xyzx + mad r8.xyz, r8.xyzx, r6.zzzz, r13.xyzx + dp3 r6.z, r8.xyzx, r8.xyzx + max r6.z, r6.z, l(0.0000610351562) + rsq r6.z, r6.z + mul r8.xyz, r6.zzzz, r8.xyzx + dp3 r6.z, r5.xyzx, r13.xyzx + mov_sat r11.x, r6.z + dp3_sat r9.w, r5.xyzx, r8.xyzx + dp3 r10.w, r10.xyzx, r13.xyzx + min r11.y, r8.w, l(1.000000) + mul r11.w, r11.z, r11.z + mul r11.w, r11.w, r11.w + mad r13.x, r9.w, r11.w, -r9.w + mad r9.w, r13.x, r9.w, l(1.000000) + dp3_sat r8.x, r10.xyzx, r8.xyzx + add r8.x, -r8.x, l(1.000000) + mul r8.y, r8.x, r8.x + mul r8.y, r8.y, r8.y + mul r8.z, r8.x, r8.y + add r13.x, -r11.z, l(1.000000) + mad r13.y, -r13.x, l(0.383026), l(-0.0761947036) + mad r13.y, r13.x, r13.y, l(1.049970) + mad r13.x, r13.x, r13.y, l(0.409255) + min r13.x, r13.x, l(0.999000) + add r13.y, -r13.x, l(1.000000) + mad r2.x, -r2.x, l(0.080000), l(1.000000) + mad r2.x, r2.x, l(0.0476190485), r2.z + mov_sat r13.z, -r10.w + mul r13.z, r13.z, r13.z + mad r13.z, r13.z, l(-0.640000), l(1.000000) + mul r13.z, r13.z, r13.z + mad r8.x, -r8.y, r8.x, l(1.000000) + mad r8.x, r2.z, r8.x, r8.z + mul r8.y, r9.w, r9.w + div r8.y, r11.w, r8.y + mad r14.xy, -r11.yxyy, r11.wwww, r11.yxyy + mad r14.xy, r14.xyxx, r11.yxyy, r11.wwww + sqrt r14.xy, r14.xyxx + mul r14.xy, r11.xyxx, r14.xyxx + add r8.z, r14.y, r14.x + add r8.z, r8.z, l(0.000100) + div r8.z, l(0.500000), r8.z + mul r8.y, r8.z, r8.y + mul r8.x, r8.y, r8.x + min r8.x, r8.x, l(2048.000000) + mad r14.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r8.y, r14.xyxx, t8.yxzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r8.z, r14.zwzz, t8.yzxw, s1, l(0.000000) + mul r8.y, r8.z, r8.y + mul r8.y, r13.x, r8.y + div r8.y, r8.y, r13.y + mul r8.z, r2.x, r2.x + mul r8.y, r8.y, r8.z + mad r2.x, -r2.x, r13.y, l(1.000000) + div r2.x, r8.y, r2.x + add r2.x, r2.x, r8.x + add_sat r6.w, r6.w, l(0.200000) + mov_sat r8.x, r10.w + add r8.x, r8.x, l(0.500000) + min r8.x, r8.x, l(1.000000) + mul r8.y, r6.w, r8.x + add_sat r8.z, r10.w, l(1.000000) + mad r6.w, -r6.w, r8.x, l(1.000000) + mad r6.w, r8.z, r6.w, r8.y + mul r2.x, r2.x, r6.w + mul r2.x, r1.y, r2.x + mul r8.xyz, r1.yyyy, r3.xyzx + ubfe r6.w, l(7), l(3), r1.z + utof r6.w, r6.w + mul r6.w, r6.w, l(0.00787401572) + mul r2.x, r2.x, cb2[4].x + max r2.x, r2.x, l(0.000000) + min r2.x, r2.x, l(1000.000000) + mul r2.x, r11.x, r2.x + mad r8.xyz, r8.xyzx, r6.wwww, r2.xxxx + max r2.x, r3.y, r3.x + max r2.x, r3.z, r2.x + max r2.x, r2.x, l(0.010000) + div r13.xyw, r3.xyxz, r2.xxxx + mul r2.x, r4.x, l(0.00393700786) + mul r13.xyw, r2.xxxx, r13.xyxw + add_sat r2.x, -r6.z, l(0.500000) + ne r6.w, r13.z, l(0.360000) + div r9.w, l(0.360000), r13.z + movc r6.w, r6.w, r9.w, l(1.000000) + mul r2.x, r2.x, r6.w + mad_sat r0.z, r0.z, l(0.0322580636), r6.z + add r0.z, -r11.x, r0.z + mul r11.xyw, r0.zzzz, r3.xyxz + mad r11.xyw, r13.xyxw, r2.xxxx, r11.xyxw + mad r8.xyz, r11.xywx, r1.yyyy, r8.xyzx + mul r8.xyz, r8.xyzx, cb2[1].xyzx + mov r12.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r12.zwzz, t7.xywz, s1, cb0[108].x + add r0.z, -r12.z, l(1.000000) + mad r11.xyw, r8.xyxz, r11.xyxw, -r8.xyxz + mad r8.xyz, r0.zzzz, r11.xywx, r8.xyzx + max r0.z, r1.y, r1.w + add r0.z, -r1.w, r0.z + mad r0.z, r1.x, r0.z, r1.w + mul r1.xyw, r0.zzzz, r8.xyxz +else + mov r1.xyw, l(0,0,0,0) +endif +ne r6.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r6.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r2.x, r0.z, r8.w + mad r6.z, r11.z, l(-16.000000), l(-1.000000) + exp r6.z, r6.z + log r2.x, |r2.x| + mul r2.x, r2.x, r6.z + exp r2.x, r2.x + add r2.x, r0.z, r2.x + add r2.x, r2.x, l(-1.000000) + mov_sat r8.xyz, r2.xxxx + mad r11.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) + mul r11.xyw, r0.zzzz, r11.xyxw + mad r11.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r11.xyxw + add r11.xyw, r11.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) + mul r11.xyw, r0.zzzz, r11.xyxw + mad r11.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r11.xyxw + add r11.xyw, r11.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) + mul r11.xyw, r0.zzzz, r11.xyxw + max r11.xyw, r0.zzzz, r11.xyxw +else + mov r8.xyz, r3.wwww + mov r11.xyw, r3.wwww +endif +mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r13.xyz, r7.xzyx, -r13.xyzx +max r0.z, |r13.y|, |r13.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r2.x, |r13.z|, l(-208.000000) +mul_sat r2.x, r2.x, l(0.031250) +max r0.z, r0.z, r2.x +ne r2.x, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r2.x, r2.x, r3.w +if_nz r2.x + mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r13.xyz, r7.xzyx, -r13.xyzx + max r2.x, |r13.y|, |r13.x| + add r2.x, r2.x, l(-29.000000) + mul_sat r2.x, r2.x, l(0.500000) + add r3.w, |r13.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r2.x, r2.x, r3.w + lt r3.w, r2.x, l(1.000000) + if_nz r3.w + mad r13.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r13.xyzx, cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r14.xyw, r13.xyzx, t13.yzwx, s2, l(0.000000) + add r3.w, -r2.x, l(1.000000) + mul r6.z, l(0.500000), cb0[211].y + mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) + max r6.z, r6.z, r13.y + min r6.z, r9.w, r6.z + mul r13.w, r6.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t14.xyzw, s1, l(0.000000) + mad r6.z, r15.w, r3.w, r0.z + add r16.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t14.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r14.yyyy, r16.xyzx + mov r16.w, r14.y + mul r16.xyzw, r3.wwww, r16.xyzw + add r13.xyz, r13.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xyz, r13.xyzx, t14.xyzw, s1, l(0.000000) + mad r13.xyz, r13.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r13.xyz, r14.xxxx, r13.xyzx + mov r13.w, r14.x + mul r13.xyzw, r3.wwww, r13.xyzw + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r14.wwww, r15.xyzx + mul r14.xyzw, r3.wwww, r14.xyzw + else + mov r16.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r6.z, r0.z + endif + mad r15.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r15.xyz, r7.xzyx, -r15.xyzx + max r3.w, |r15.y|, |r15.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r9.w, |r15.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r3.w, r3.w, r9.w + lt r9.w, r3.w, l(1.000000) + if_nz r9.w + mad r15.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r15.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r15.xyzx, t15.yzwx, s2, l(0.000000) + add r9.w, -r3.w, l(1.000000) + mul r2.x, r2.x, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r15.y + min r9.w, r10.w, r9.w + mul r15.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t16.xyzw, s1, l(0.000000) + mad r6.z, r18.w, r2.x, r6.z + add r19.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t16.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mad r16.xyzw, r19.xyzw, r2.xxxx, r16.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t16.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r17.xxxx, r15.xyzx + mov r15.w, r17.x + mad r13.xyzw, r15.xyzw, r2.xxxx, r13.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r15.xyzx + mad r14.xyzw, r17.xyzw, r2.xxxx, r14.xyzw + endif + lt r2.x, l(0.000000), r3.w + if_nz r2.x + mad r15.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r15.xyzx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r17.xyzx + mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r18.xyzx, r15.xyzx + min r15.xyz, r17.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) + add r2.x, -r0.z, l(1.000000) + mul r2.x, r2.x, r3.w + max r3.w, r18.y, r15.y + min r3.w, r17.y, r3.w + mul r15.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) + add r18.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.yyyy, r18.xyzx + mov r18.w, r19.y + mad r16.xyzw, r18.xyzw, r2.xxxx, r16.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r19.xxxx, r15.xyzx + mov r15.w, r19.x + mad r13.xyzw, r15.xyzw, r2.xxxx, r13.xyzw + mad r15.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r15.xyzx + mad r14.xyzw, r19.xyzw, r2.xxxx, r14.xyzw + mad r6.z, r17.w, r2.x, r6.z + endif + mad_sat r2.x, r6.z, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r2.x + add r0.z, r0.z, r2.x + mul r15.y, r0.z, l(0.500000) +else + mov r16.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r17.xyzw, r15.yyyx, cb0[213].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[213].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r14.xyzw, r14.xyzw, r17.xyzw +mul r17.xyzw, r15.yyyx, cb0[214].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[214].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r13.xyzw, r13.xyzw, r17.xyzw +mul r17.xyzw, r15.yyyx, cb0[215].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[215].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r15.xyzw, r16.xyzw, r17.xyzw +ge r12.zw, r6.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r12.w, r12.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r16.xyzw, r6.xyxx, t12.xyzw, s1, l(0.000000) + lt r17.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r16.xyzw| + or r6.xy, r17.zwzz, r17.xyxx + or r0.z, r6.y, r6.x + if_nz r0.z + dp3 r0.z, r16.yzwy, r16.yzwy + sqrt r0.z, r0.z + mov r6.x, l(1.000000) + mov r6.y, r0.z + mov r2.x, l(0) + loop + ge r3.w, l(4.600000), r6.y + breakc_nz r3.w + iadd r3.w, r2.x, l(1) + mul r12.zw, r6.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) + mov r6.xy, r12.zwzz + mov r2.x, r3.w + continue + endloop + mul r16.xyzw, r6.xxxx, r16.xyzw + dp3 r0.z, r16.yzwy, r16.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb3[3].x, cb3[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r6.x, r0.z, l(0.00390625000) + mov r6.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyxx, t11.xyzw, s1, l(0.000000) + mad r6.xy, r6.xyxx, cb3[2].xyxx, cb3[2].zwzz + mul r17.x, r6.x, l(3.54490781) + mul r17.yzw, r6.yyyy, r16.yyzw + mul r0.z, r16.x, l(0.406976730) + exp r0.z, r0.z + mul r16.xyzw, r0.zzzz, r17.xyzw + mov r17.xyzw, r16.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r2.x + breakc_nz r3.w + mul r18.xyzw, r17.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r18.xyzw, r17.xyzw + dp2 r6.x, r18.yxyy, r17.xyxx + dp2 r6.y, r18.zxzz, r17.xzxx + dp2 r6.z, r18.wxww, r17.xwxx + iadd r9.w, r0.z, l(1) + mov r17.x, r3.w + mov r17.yzw, r6.xxyz + mov r0.z, r9.w + continue + endloop + mul r16.xyzw, r17.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r17.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r16.xyzw, r17.xyzw + dp2 r2.x, r16.yxyy, r17.xyxx + dp2 r3.w, r16.zxzz, r17.xzxx + dp2 r6.x, r16.wxww, r17.xwxx + mul r17.xyzw, r13.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r6.y, r16.xyzw, r17.xyzw + dp2 r6.z, r16.yxyy, r17.xyxx + dp2 r9.w, r16.zxzz, r17.xzxx + dp2 r10.w, r16.wxww, r17.xwxx + mul r17.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r12.z, r16.xyzw, r17.xyzw + dp2 r12.w, r16.yxyy, r17.xyxx + dp2 r16.y, r16.zxzz, r17.xzxx + dp2 r16.x, r16.wxww, r17.xwxx + mul r14.w, r0.z, l(0.886226952) + mul r14.x, r6.x, l(-1.02332675) + mul r14.y, r2.x, l(-1.02332675) + mul r14.z, r3.w, l(1.02332675) + mul r13.x, r10.w, l(-1.02332675) + mul r13.yw, r6.zzzy, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r13.z, r9.w, l(1.02332675) + mul r15.yw, r12.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r15.xz, r16.xxyx, l(-1.02332675, 0.000000, 1.02332675, 0.000000) + endif +endif +mov r5.w, l(1.000000) +dp4 r6.x, r14.xyzw, r5.xyzw +dp4 r6.y, r13.xyzw, r5.xyzw +dp4 r6.z, r15.xyzw, r5.xyzw +max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +dp3 r0.z, -r10.xyzx, r5.xyzx +add r0.z, r0.z, r0.z +mad r16.xyz, r5.xyzx, -r0.zzzz, -r10.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r2.x, r11.z, l(0.001000) +log r2.x, r2.x +mad r2.x, -r2.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r2.x +mul r12.zw, r4.yyyz, cb1[0].wwww +round_ni r12.zw, r12.zzzw +add r2.x, |r2.y|, -cb1[2].y +round_ni r2.x, r2.x +add r3.w, l(-1.000000), cb1[1].x +max r9.w, r2.x, l(0.000000) +min r3.w, r3.w, r9.w +ge r2.x, r3.w, r2.x +mad r9.w, r12.w, cb1[0].x, r12.z +ftoi r9.w, r9.w +iadd r9.w, r9.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r9.w, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r9.w +and r2.x, r2.x, r3.w +mul r17.xyz, r6.xyzx, cb0[111].xxxx +dp3 r3.w, r17.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r17.xyz, l(0,0,0,0) +mov r9.w, l(1.000000) +mov r10.w, r2.x +mov r11.z, l(0) +loop + lt r12.z, l(0.010000), r9.w + ine r12.w, r10.w, l(0) + and r12.w, r12.z, r12.w + if_nz r12.w + firstbit_lo r12.w, r10.w + ishl r16.w, l(1), r12.w + xor r10.w, r10.w, r16.w + ishl r12.w, r12.w, l(3) + dp4 r18.x, cb1[r12.w + 6].xyzw, r7.xyzw + dp4 r18.y, cb1[r12.w + 7].xyzw, r7.xyzw + dp4 r18.z, cb1[r12.w + 8].xyzw, r7.xyzw + ge r19.xyz, cb1[r12.w + 5].xyzx, |r18.xyzx| + and r16.w, r19.y, r19.x + and r16.w, r19.z, r16.w + if_nz r16.w + mul r16.w, l(0.100000), cb1[r12.w + 5].x + mul r19.xyz, |r18.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r19.xy, r19.xyxx, r19.xyxx + add r20.xyz, -|r18.xyzx|, cb1[r12.w + 5].xyzx + mul r20.xyz, r20.xyzx, cb1[r12.w + 9].xyzx + eq r17.w, l(1.000000), cb1[r12.w + 10].x + if_nz r17.w + dp3 r21.x, cb1[r12.w + 6].xyzx, r16.xyzx + dp3 r21.y, cb1[r12.w + 7].xyzx, r16.xyzx + dp3 r21.z, cb1[r12.w + 8].xyzx, r16.xyzx + add r22.xyz, -r18.xyzx, cb1[r12.w + 5].xyzx + div r22.xyz, r22.xyzx, r21.xyzx + add r23.xyz, -r18.xyzx, -cb1[r12.w + 5].xyzx + div r23.xyz, r23.xyzx, r21.xyzx + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + movc r22.xyz, r24.xyzx, r22.xyzx, r23.xyzx + min r17.w, r22.y, r22.x + min r17.w, r22.z, r17.w + mad r18.xyz, r21.xyzx, r17.wwww, r18.xyzx + else + mov r18.xyz, r16.xyzx + endif + dp3 r17.w, r18.xyzx, r18.xyzx + rsq r17.w, r17.w + mul r18.xyz, r17.wwww, r18.xyzx + lt r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + lt r22.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r21.xyz, -r21.xyzx, r22.xyzx + itof r21.xyz, r21.xyzx + dp3 r17.w, r18.xyzx, r21.xyzx + div r18.xyz, r18.xyzx, r17.wwww + lt r17.w, r18.z, l(0.000000) + add r18.zw, -|r18.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r18.zw, r18.zzzw, r21.xxxy + movc r18.xy, r17.wwww, r18.zwzz, r18.xyxx + dp4 r17.w, cb1[r12.w + 4].xyzw, r5.xyzw + max r17.w, r17.w, l(0.000000) + max r17.w, r17.w, l(0.000100) + min r18.z, r20.z, r20.y + min r18.z, r18.z, r20.x + add r18.w, r19.y, r19.x + mad r18.w, r19.z, r19.z, r18.w + mad r16.w, r16.w, r16.w, -r18.w + mul r16.w, r16.w, cb1[r12.w + 9].x + mul r16.w, r16.w, cb1[r12.w + 9].x + add r18.w, l(1.000000), -cb1[r12.w + 10].y + mul r16.w, r16.w, r18.w + mul r16.w, r16.w, l(100.000000) + mad_sat r16.w, r18.z, cb1[r12.w + 10].y, r16.w + mul r18.z, r16.w, cb1[r12.w + 10].w + mad r18.xy, r18.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r19.xy, r18.xyxx, cb1[1].wwww, cb1[2].wwww + mov r19.z, cb1[r12.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r18.xyw, r19.xyzx, t5.xywz, s3, r0.z + mul r18.xyw, r18.xyxw, cb1[r12.w + 9].wwww + div r19.x, r3.w, r17.w + min r19.x, |r19.x|, l(1.000000) + mad r19.x, r19.x, l(2.000000), r3.w + add r17.w, r17.w, l(2.000000) + div r17.w, r19.x, r17.w + add r17.w, r17.w, l(-1.000000) + mad r17.w, r17.w, cb0[112].w, l(1.000000) + mul r18.xyw, r17.wwww, r18.xyxw + mul r18.xyz, r18.zzzz, r18.xywx + mad r17.xyz, r18.xyzx, r9.wwww, r17.xyzx + mad r12.w, -r16.w, cb1[r12.w + 10].w, l(1.000000) + mul r9.w, r9.w, r12.w + endif + mov r11.z, l(-1) + continue + else + mov r11.z, r12.z + break + endif + mov r11.z, r12.z +endloop +if_nz r11.z + dp3 r2.x, r16.xyzx, r16.xyzx + rsq r2.x, r2.x + mul r7.xzw, r2.xxxx, r16.xxyz + lt r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r7.xzwx + lt r18.xyz, r7.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r16.xyz, -r16.xyzx, r18.xyzx + itof r16.xyz, r16.xyzx + dp3 r2.x, r7.xzwx, r16.xyzx + div r7.xzw, r7.xxzw, r2.xxxx + lt r2.x, r7.w, l(0.000000) + add r12.zw, -|r7.zzzx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r12.zw, r12.zzzw, r16.xxxy + movc r7.xz, r2.xxxx, r12.zzwz, r7.xxzx + dp4 r2.x, cb1[3].xyzw, r5.xyzw + max r2.x, r2.x, l(0.000000) + max r2.x, r2.x, l(0.000100) + mad r7.xz, r7.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) + mad r16.xy, r7.xzxx, cb1[1].wwww, cb1[2].wwww + mov r16.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r7.xzw, r16.xyzx, t5.xwyz, s3, r0.z + div r0.z, r3.w, r2.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r2.x, r2.x, l(2.000000) + div r0.z, r0.z, r2.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r7.xzw, r0.zzzz, r7.xxzw + mad r17.xyz, r7.xzwx, r9.wwww, r17.xyzx +endif +mul r7.xzw, r17.xxyz, cb0[112].zzzz +mul r7.xzw, r7.xxzw, cb0[111].yyyy +if_nz r6.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r16.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r2.x, -r0.z, l(1.000000) + mul r17.xyz, r2.xxxx, r7.xzwx + mad r7.xzw, r16.xxyz, r0.zzzz, r17.xxyz +endif +mul r6.xyz, r3.xyzx, r6.xyzx +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mad r0.z, r2.z, r12.x, r12.y +mul r7.xzw, r0.zzzz, r7.xxzw +mul r7.xzw, r8.xxyz, r7.xxzw +mad r6.xyz, r6.xyzx, r11.xywx, r7.xzwx +mul r5.xyzw, r5.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r8.x, r14.xyzw, r5.xyzw +dp4 r8.y, r13.xyzw, r5.xyzw +dp4 r8.z, r15.xyzw, r5.xyzw +max r5.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r5.xyz, r5.xyzx, cb0[111].xxxx +mul r5.xyz, r11.xywx, r5.xyzx +max r0.z, r3.y, r3.x +max r0.z, r3.z, r0.z +max r0.z, r0.z, l(0.010000) +div r3.xyz, r3.xyzx, r0.zzzz +mul r3.xyz, r3.xyzx, r5.xyzx +mul r0.z, r4.x, l(0.00787401572) +min r2.x, r8.w, l(1.000000) +bfi r1.z, l(3), l(2), r1.z, l(0) +ftou r2.z, r2.w +bfi r1.z, l(2), l(0), r2.z, r1.z +utof r1.z, r1.z +mul r1.z, r1.z, l(0.0322580636) +mad r0.z, r0.z, r2.x, r1.z +mul r2.xzw, r0.zzzz, r3.xxyz +mad r2.xzw, r2.xxzw, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r6.xxyz +add r1.xyz, r1.xywx, r2.xzwx +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r4.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r7.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xzw, r0.zzzz, cb0[155].xxyz +mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r2.xzw, r2.xxzw +dp3 r0.z, -r10.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.x, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r3.x +lt r3.x, l(0.000000), cb0[163].z +if_nz r3.x + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r10.xyzx, -r9.xyzx + add r3.z, r7.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.w + mul r0.x, r0.x, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul r4.x, r0.x, r3.w + mad r5.x, r4.x, r3.z, cb0[44].y + mad r3.z, -r4.x, r3.z, r3.z + mul r4.x, r3.z, cb0[159].z + max r4.x, r4.x, l(-127.000000) + mul r3.z, r3.z, cb0[162].x + max r3.z, r3.z, l(-127.000000) + add r5.y, r5.x, -cb0[159].x + mul r5.y, r5.y, cb0[159].z + max r5.y, r5.y, l(-127.000000) + exp r5.y, -r5.y + mul r5.y, r5.y, cb0[159].y + lt r5.z, l(5.960464478E-08), |r4.x| + exp r5.w, -r4.x + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r5.z, r5.w, r4.x + add r5.x, r5.x, -cb0[162].z + mul r5.x, r5.x, cb0[162].x + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[162].y + lt r5.z, l(5.960464478E-08), |r3.z| + exp r5.w, -r3.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r5.z, r5.w, r3.z + mul r3.z, r3.z, r5.x + mad r3.z, r5.y, r4.x, r3.z + mad r0.x, -r0.x, r3.w, l(1.000000) + mul r0.x, r4.w, r0.x + mul r0.x, r0.x, r3.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r4.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r2.y|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t10.xyzw, s1, l(0.000000) + add r0.y, |r2.y|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.y, cb0[44].y, -cb0[159].x + mul r2.y, r2.y, cb0[159].z + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.y, r0.w, r0.y + mul r0.y, r4.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r4.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xzwx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.y, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD3FA93FC.cso b/src/games/endfield/deferred-lighting/0xD3FA93FC.cso new file mode 100644 index 0000000000000000000000000000000000000000..f7740c34d15134b0d10688be39dd46600384e9ce GIT binary patch literal 49064 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 mlWV=@gW!*!J=eIlPw= 1.f) { - - r0.y = 1.0 + (r0.y - 1.0) * 4.0; + if (SHADOW_HARDENING >= 1.f) { + r0.y = 1.0 + (r0.y - 1.0) * 2.0; + + // Soften cloud shadow transitions for diffused look + r0.y = smoothstep(0.0, 1.0, r0.y); + r0.y = lerp(r0.y, 1.0, 0.25); } r0.x = r0.x * r0.y; @@ -385,6 +388,7 @@ void main( r0.x = cb2[35].z; } r0.x = min(1, r0.x); + r0.x = -1 + r0.x; o0.x = cb2[34].x * r0.x + 1; o0.yz = float2(1,0); diff --git a/src/games/endfield/shared.h b/src/games/endfield/shared.h index eecc1a515..471a406e3 100644 --- a/src/games/endfield/shared.h +++ b/src/games/endfield/shared.h @@ -88,6 +88,8 @@ struct ShaderInjectData { float godrays_intensity; float perchannelblowout; float shadow_hardening; + float chromatic_aberration_strength; + float fog_modification; }; #ifndef __cplusplus @@ -145,6 +147,8 @@ cbuffer shader_injection : register(b13) { #define GODRAYS_INTENSITY shader_injection.godrays_intensity #define PER_CHANNEL_BLOWOUT shader_injection.perchannelblowout #define SHADOW_HARDENING shader_injection.shadow_hardening +#define CHROMATIC_ABERRATION_STRENGTH shader_injection.chromatic_aberration_strength +#define FOG_MODIFICATION shader_injection.fog_modification #include "../../shaders/renodx.hlsl" diff --git a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl index fcc6984b0..0b7177229 100644 --- a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl @@ -49,15 +49,16 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s1_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s1_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; @@ -65,10 +66,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -79,7 +80,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s1_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -90,12 +91,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s1_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s1_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl index c8a03191f..933e10242 100644 --- a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl @@ -47,15 +47,16 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s0_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; @@ -63,10 +64,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -77,7 +78,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s0_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -88,12 +89,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl index 0fd7d6f09..ac3ea9efa 100644 --- a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl @@ -46,15 +46,16 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s0_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; @@ -62,10 +63,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -76,7 +77,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s0_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -87,12 +88,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl index e9b960d8a..2f1a82342 100644 --- a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl @@ -50,14 +50,15 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s1_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s1_s, r4.xy, 0).xyz; @@ -66,10 +67,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -80,7 +81,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s1_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -91,12 +92,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s1_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s1_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl index 8f8bc3ccf..17c70cb72 100644 --- a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl @@ -46,15 +46,16 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s0_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; @@ -62,10 +63,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -76,7 +77,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s0_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -87,12 +88,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl index 7f8a91f1d..1a8d342f4 100644 --- a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl @@ -44,15 +44,16 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s0_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; @@ -60,10 +61,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -74,7 +75,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s0_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -85,12 +86,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl index db6069ffa..116477eca 100644 --- a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl @@ -38,27 +38,28 @@ void main( r0.z = exp2(r0.z); r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s0_s, v1.xy, 0).xyzw; - r1.xyz = float3(1, 0, 0) * r1.xyz; + r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0, 0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3, 3, 4, 4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1, 0, 0) + r1.xyz; r0.z = r0.z + r0.z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; - r4.xyz = r5.xyz * float3(1, 0, 0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; - r4.xyz = r5.xyz * float3(0, 1, 0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0, 1, 0) + r4.xyz; @@ -68,8 +69,8 @@ void main( r4.xyz = r5.xyz * float3(0, 1, 0) + r4.xyz; r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; - r4.xyz = r5.xyz * float3(0, 0, 1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s0_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0, 0, 1) + r4.xyz; @@ -80,12 +81,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0, 1, 0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0, 0, 1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl index b5d67478a..4e8a53fce 100644 --- a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl @@ -50,15 +50,16 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s1_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s1_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; @@ -66,10 +67,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -80,7 +81,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s1_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -91,12 +92,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s1_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s1_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl index a5e402d31..2120a0047 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl @@ -50,15 +50,16 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s1_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s1_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; @@ -66,10 +67,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -80,7 +81,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s1_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s1_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -91,12 +92,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s1_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s1_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; diff --git a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl index bd8a9a600..f8f3fd293 100644 --- a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl @@ -44,15 +44,16 @@ void main( r0.xy = r0.xy * r0.zz; r1.xyzw = t0.SampleLevel(s0_s, v1.xy, 0).xyzw; r1.xyz = float3(1,0,0) * r1.xyz; + float ca_strength = CHROMATIC_ABERRATION_STRENGTH; r0.z = cmp(3 < cb1[25].x); if (r0.z != 0) { r2.xy = cmp(float2(0,0) != cb1[25].wz); r0.z = (int)r2.y | (int)r2.x; r2.xy = r0.xy * r0.ww; r2.xy = r0.zz ? r2.xy : r0.xy; - r0.z = cb1[25].y + cb1[0].z; - r2.z = cb1[25].y + cb1[25].y; - r3.xyzw = cb1[25].yyyy * float4(3,3,4,4); + r0.z = cb1[25].y * ca_strength + cb1[0].z; + r2.z = cb1[25].y * ca_strength + cb1[25].y * ca_strength; + r3.xyzw = cb1[25].yyyy * ca_strength * float4(3,3,4,4); r4.xy = -r2.xy * r0.zz + v1.xy; r4.xyz = t0.SampleLevel(s0_s, r4.xy, 0).xyz; r4.xyz = r4.xyz * float3(1,0,0) + r1.xyz; @@ -60,10 +61,10 @@ void main( r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(1,0,0) + r4.xyz; - r5.xy = -r2.xy * cb1[25].yy + v1.xy; + r5.xy = -r2.xy * cb1[25].yy * ca_strength + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r5.xy = -r2.xy * r0.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r5.xy, 0).xyz; r4.xyz = r5.xyz * float3(0,1,0) + r4.xyz; @@ -74,7 +75,7 @@ void main( r2.zw = -r2.xy * r2.zz + v1.xy; r5.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; r4.xyz = r5.xyz * float3(0,0,1) + r4.xyz; - r0.z = cb1[25].y * 3 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 3 + cb1[0].z; r2.xy = -r2.xy * r0.zz + v1.xy; r2.xyz = t0.SampleLevel(s0_s, r2.xy, 0).xyz; r2.xyz = r2.xyz * float3(0,0,1) + r4.xyz; @@ -85,12 +86,12 @@ void main( r0.z = cmp(0.000000 != cb1[25].w); r3.xy = r0.xy * r0.ww; r0.xy = r0.zz ? r3.xy : r0.xy; - r0.z = cb1[25].y * 2 + cb1[0].z; + r0.z = cb1[25].y * ca_strength * 2 + cb1[0].z; r0.zw = -r0.xy * r0.zz + v1.xy; r3.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; r1.xyz = r3.xyz * float3(0,1,0) + r1.xyz; r0.z = cb1[0].z + cb1[0].z; - r0.z = cb1[25].y * 3 + r0.z; + r0.z = cb1[25].y * ca_strength * 3 + r0.z; r0.xy = -r0.xy * r0.zz + v1.xy; r0.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz; r2.xyz = r0.xyz * float3(0,0,1) + r1.xyz; From c2fe561468e15e250ffc798208a32a5eac2f9d4b Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Sun, 1 Feb 2026 03:01:38 +0000 Subject: [PATCH 07/19] feat(endfield) Added deferred shader support for alt fog / bypass for Wulin, UI toggle hotkey, Reworked UID / latency bar toggles to work with every res --- src/games/endfield/addon.cpp | 289 ++- .../endfield/deferred-lighting/0x05D849CE.cso | Bin 0 -> 57276 bytes .../deferred-lighting/0x05D849CE.ps_5_0.asm | 1864 ++++++++++++++ .../0x05D849CE.ps_5_0_original_backup.asm | 1844 ++++++++++++++ .../endfield/deferred-lighting/0x0E84DFD1.cso | Bin 0 -> 59992 bytes .../deferred-lighting/0x0E84DFD1.ps_5_0.asm | 1962 +++++++++++++++ .../0x0E84DFD1.ps_5_0_original_backup.asm | 1942 ++++++++++++++ .../endfield/deferred-lighting/0x1E8A471E.cso | Bin 47548 -> 47020 bytes .../deferred-lighting/0x1E8A471E.ps_5_0.asm | 49 +- .../endfield/deferred-lighting/0x37837806.cso | Bin 27444 -> 26916 bytes .../deferred-lighting/0x37837806.ps_5_0.asm | 49 +- .../endfield/deferred-lighting/0x518D3855.cso | Bin 0 -> 51720 bytes .../deferred-lighting/0x518D3855.ps_5_0.asm | 1698 +++++++++++++ .../0x518D3855.ps_5_0_original_backup.asm | 1678 +++++++++++++ .../endfield/deferred-lighting/0x5468822B.cso | Bin 0 -> 57096 bytes .../deferred-lighting/0x5468822B.ps_5_0.asm | 1860 ++++++++++++++ .../0x5468822B.ps_5_0_original_backup.asm | 1840 ++++++++++++++ .../endfield/deferred-lighting/0x620A40FD.cso | Bin 0 -> 27940 bytes .../deferred-lighting/0x620A40FD.ps_5_0.asm | 945 +++++++ .../0x620A40FD.ps_5_0_original_backup.asm | 901 +++++++ .../endfield/deferred-lighting/0x7010AF4B.cso | Bin 0 -> 27140 bytes .../deferred-lighting/0x7010AF4B.ps_5_0.asm | 913 +++++++ .../0x7010AF4B.ps_5_0_original_backup.asm | 869 +++++++ .../endfield/deferred-lighting/0x8BA3C806.cso | Bin 0 -> 48028 bytes .../deferred-lighting/0x8BA3C806.ps_5_0.asm | 1576 ++++++++++++ .../0x8BA3C806.ps_5_0_original_backup.asm | 1532 +++++++++++ .../endfield/deferred-lighting/0x8D6CC6FA.cso | Bin 0 -> 67840 bytes .../deferred-lighting/0x8D6CC6FA.ps_5_0.asm | 2234 +++++++++++++++++ .../0x8D6CC6FA.ps_5_0_original_backup.asm | 2190 ++++++++++++++++ .../endfield/deferred-lighting/0x9630ACD4.cso | Bin 0 -> 48560 bytes .../deferred-lighting/0x9630ACD4.ps_5_0.asm | 1596 ++++++++++++ .../0x9630ACD4.ps_5_0_original_backup.asm | 1576 ++++++++++++ .../endfield/deferred-lighting/0x99725481.cso | Bin 0 -> 60512 bytes .../deferred-lighting/0x99725481.ps_5_0.asm | 1979 +++++++++++++++ .../0x99725481.ps_5_0_original_backup.asm | 1959 +++++++++++++++ .../endfield/deferred-lighting/0xB094C87E.cso | Bin 0 -> 51188 bytes .../deferred-lighting/0xB094C87E.ps_5_0.asm | 1681 +++++++++++++ .../0xB094C87E.ps_5_0_original_backup.asm | 1661 ++++++++++++ .../endfield/deferred-lighting/0xC34914B1.cso | Bin 0 -> 58856 bytes .../deferred-lighting/0xC34914B1.ps_5_0.asm | 1931 ++++++++++++++ .../0xC34914B1.ps_5_0_original_backup.asm | 1911 ++++++++++++++ .../endfield/deferred-lighting/0xD3FA93FC.cso | Bin 49064 -> 48536 bytes .../deferred-lighting/0xD3FA93FC.ps_5_0.asm | 49 +- .../endfield/deferred-lighting/0xD5B102A4.cso | Bin 0 -> 38580 bytes .../deferred-lighting/0xD5B102A4.ps_5_0.asm | 1283 ++++++++++ .../0xD5B102A4.ps_5_0_original_backup.asm | 1263 ++++++++++ .../endfield/deferred-lighting/0xD88CD7C9.cso | Bin 26660 -> 26132 bytes .../deferred-lighting/0xD88CD7C9.ps_5_0.asm | 49 +- .../endfield/deferred-lighting/0xE322C21D.cso | Bin 0 -> 49564 bytes .../deferred-lighting/0xE322C21D.ps_5_0.asm | 1634 ++++++++++++ .../0xE322C21D.ps_5_0_original_backup.asm | 1590 ++++++++++++ .../endfield/deferred-lighting/0xEC0BE43D.cso | Bin 0 -> 57296 bytes .../deferred-lighting/0xEC0BE43D.ps_5_0.asm | 1867 ++++++++++++++ .../0xEC0BE43D.ps_5_0_original_backup.asm | 1847 ++++++++++++++ .../endfield/deferred-lighting/0xF901F0EC.cso | Bin 0 -> 29572 bytes .../deferred-lighting/0xF901F0EC.ps_5_0.asm | 993 ++++++++ .../0xF901F0EC.ps_5_0_original_backup.asm | 973 +++++++ .../deferred-lighting/fog_blend_test.cso | Bin 0 -> 1052 bytes .../cloud-shadows_0x61FA72DD.ps_5_0.hlsl | 4 +- .../endfield/ui/uid_0x6B8E9049.ps_5_0.hlsl | 17 +- 60 files changed, 51881 insertions(+), 217 deletions(-) create mode 100644 src/games/endfield/deferred-lighting/0x05D849CE.cso create mode 100644 src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x0E84DFD1.cso create mode 100644 src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x518D3855.cso create mode 100644 src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x518D3855.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x5468822B.cso create mode 100644 src/games/endfield/deferred-lighting/0x5468822B.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x5468822B.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x620A40FD.cso create mode 100644 src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x7010AF4B.cso create mode 100644 src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x8BA3C806.cso create mode 100644 src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x8D6CC6FA.cso create mode 100644 src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x9630ACD4.cso create mode 100644 src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0x99725481.cso create mode 100644 src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0x99725481.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xB094C87E.cso create mode 100644 src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xC34914B1.cso create mode 100644 src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xD5B102A4.cso create mode 100644 src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xE322C21D.cso create mode 100644 src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xEC0BE43D.cso create mode 100644 src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xF901F0EC.cso create mode 100644 src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/fog_blend_test.cso diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index 8cccde573..9d44b0be0 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -71,6 +71,114 @@ bool ExecuteReshadeEffects(reshade::api::command_list* cmd_list) { return true; } +// Hotkey state tracking (defined before settings array for use in on_draw lambdas) +bool ui_toggle_key_was_pressed = false; +int ui_toggle_hotkey = 0; +bool hotkey_input_active = false; + +// Heuristic tracking for ping/UID UI +bool is_ping_input_candidate = false; +bool is_ping_drawn = false; +bool is_uid_input_candidate = false; + +// on_draw callback for ping/latency bar shader (0xEF07F89A) +bool OnPingDraw(reshade::api::command_list* cmd_list) { + if (is_ping_input_candidate) { + is_ping_drawn = true; + return shader_injection.ping_text_opacity >= 0.5f; + } + is_ping_drawn = false; + return true; +} + +// on_draw callback for UID text shader (0x6B8E9049) +bool OnUIDDraw(reshade::api::command_list* cmd_list) { + if (is_uid_input_candidate) { + if (shader_injection.status_text_opacity < 0.5f) { + return false; + } + } + return true; +} + +// Helper function to get key name from virtual key code +std::string GetKeyName(int keycode) { + if (keycode == 0 || keycode >= 256) return ""; + + static const char* keyboard_keys[256] = { + "", "Left Mouse", "Right Mouse", "Cancel", "Middle Mouse", "X1 Mouse", "X2 Mouse", "", "Backspace", "Tab", "", "", "Clear", "Enter", "", "", + "Shift", "Control", "Alt", "Pause", "Caps Lock", "", "", "", "", "", "", "Escape", "", "", "", "", + "Space", "Page Up", "Page Down", "End", "Home", "Left Arrow", "Up Arrow", "Right Arrow", "Down Arrow", "Select", "", "", "Print Screen", "Insert", "Delete", "Help", + "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "", "", "", "", "", "", + "", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", + "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "Left Windows", "Right Windows", "Apps", "", "Sleep", + "Numpad 0", "Numpad 1", "Numpad 2", "Numpad 3", "Numpad 4", "Numpad 5", "Numpad 6", "Numpad 7", "Numpad 8", "Numpad 9", "Numpad *", "Numpad +", "", "Numpad -", "Numpad Decimal", "Numpad /", + "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", + "F17", "F18", "F19", "F20", "F21", "F22", "F23", "F24", "", "", "", "", "", "", "", "", + "Num Lock", "Scroll Lock", "", "", "", "", "", "", "", "", "", "", "", "", "", "", + "Left Shift", "Right Shift", "Left Control", "Right Control", "Left Menu", "Right Menu", "Browser Back", "Browser Forward", "Browser Refresh", "Browser Stop", "Browser Search", "Browser Favorites", "Browser Home", "Volume Mute", "Volume Down", "Volume Up", + "Next Track", "Previous Track", "Media Stop", "Media Play/Pause", "Mail", "Media Select", "Launch App 1", "Launch App 2", "", "", "OEM ;", "OEM +", "OEM ,", "OEM -", "OEM .", "OEM /", + "OEM ~", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", "", "", "", "OEM [", "OEM \\", "OEM ]", "OEM '", "OEM 8", + "", "", "OEM <", "", "", "", "", "", "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "Attn", "CrSel", "ExSel", "Erase EOF", "Play", "Zoom", "", "PA1", "OEM Clear", "" + }; + + return keyboard_keys[keycode]; +} + +int GetLastKeyPressedImGui() { + + struct KeyMapping { + ImGuiKey imgui_key; + int vk_code; + }; + + static const KeyMapping kKeyMappings[] = { + // Function keys + {ImGuiKey_F1, VK_F1}, {ImGuiKey_F2, VK_F2}, {ImGuiKey_F3, VK_F3}, {ImGuiKey_F4, VK_F4}, + {ImGuiKey_F5, VK_F5}, {ImGuiKey_F6, VK_F6}, {ImGuiKey_F7, VK_F7}, {ImGuiKey_F8, VK_F8}, + {ImGuiKey_F9, VK_F9}, {ImGuiKey_F10, VK_F10}, {ImGuiKey_F11, VK_F11}, {ImGuiKey_F12, VK_F12}, + // Navigation keys + {ImGuiKey_Insert, VK_INSERT}, {ImGuiKey_Delete, VK_DELETE}, {ImGuiKey_Home, VK_HOME}, {ImGuiKey_End, VK_END}, + {ImGuiKey_PageUp, VK_PRIOR}, {ImGuiKey_PageDown, VK_NEXT}, + // Arrow keys + {ImGuiKey_LeftArrow, VK_LEFT}, {ImGuiKey_RightArrow, VK_RIGHT}, {ImGuiKey_UpArrow, VK_UP}, {ImGuiKey_DownArrow, VK_DOWN}, + // Special keys + {ImGuiKey_Backspace, VK_BACK}, {ImGuiKey_Space, VK_SPACE}, {ImGuiKey_Enter, VK_RETURN}, + {ImGuiKey_Escape, VK_ESCAPE}, {ImGuiKey_Tab, VK_TAB}, + {ImGuiKey_Pause, VK_PAUSE}, {ImGuiKey_ScrollLock, VK_SCROLL}, {ImGuiKey_PrintScreen, VK_SNAPSHOT}, + // Numpad + {ImGuiKey_Keypad0, VK_NUMPAD0}, {ImGuiKey_Keypad1, VK_NUMPAD1}, {ImGuiKey_Keypad2, VK_NUMPAD2}, + {ImGuiKey_Keypad3, VK_NUMPAD3}, {ImGuiKey_Keypad4, VK_NUMPAD4}, {ImGuiKey_Keypad5, VK_NUMPAD5}, + {ImGuiKey_Keypad6, VK_NUMPAD6}, {ImGuiKey_Keypad7, VK_NUMPAD7}, {ImGuiKey_Keypad8, VK_NUMPAD8}, + {ImGuiKey_Keypad9, VK_NUMPAD9}, {ImGuiKey_KeypadDecimal, VK_DECIMAL}, + {ImGuiKey_KeypadDivide, VK_DIVIDE}, {ImGuiKey_KeypadMultiply, VK_MULTIPLY}, + {ImGuiKey_KeypadSubtract, VK_SUBTRACT}, {ImGuiKey_KeypadAdd, VK_ADD}, {ImGuiKey_KeypadEnter, VK_RETURN}, + // Letters + {ImGuiKey_A, 'A'}, {ImGuiKey_B, 'B'}, {ImGuiKey_C, 'C'}, {ImGuiKey_D, 'D'}, {ImGuiKey_E, 'E'}, + {ImGuiKey_F, 'F'}, {ImGuiKey_G, 'G'}, {ImGuiKey_H, 'H'}, {ImGuiKey_I, 'I'}, {ImGuiKey_J, 'J'}, + {ImGuiKey_K, 'K'}, {ImGuiKey_L, 'L'}, {ImGuiKey_M, 'M'}, {ImGuiKey_N, 'N'}, {ImGuiKey_O, 'O'}, + {ImGuiKey_P, 'P'}, {ImGuiKey_Q, 'Q'}, {ImGuiKey_R, 'R'}, {ImGuiKey_S, 'S'}, {ImGuiKey_T, 'T'}, + {ImGuiKey_U, 'U'}, {ImGuiKey_V, 'V'}, {ImGuiKey_W, 'W'}, {ImGuiKey_X, 'X'}, {ImGuiKey_Y, 'Y'}, {ImGuiKey_Z, 'Z'}, + // Numbers + {ImGuiKey_0, '0'}, {ImGuiKey_1, '1'}, {ImGuiKey_2, '2'}, {ImGuiKey_3, '3'}, {ImGuiKey_4, '4'}, + {ImGuiKey_5, '5'}, {ImGuiKey_6, '6'}, {ImGuiKey_7, '7'}, {ImGuiKey_8, '8'}, {ImGuiKey_9, '9'}, + // Punctuation + {ImGuiKey_GraveAccent, VK_OEM_3}, {ImGuiKey_Minus, VK_OEM_MINUS}, {ImGuiKey_Equal, VK_OEM_PLUS}, + {ImGuiKey_LeftBracket, VK_OEM_4}, {ImGuiKey_RightBracket, VK_OEM_6}, {ImGuiKey_Backslash, VK_OEM_5}, + {ImGuiKey_Semicolon, VK_OEM_1}, {ImGuiKey_Apostrophe, VK_OEM_7}, + {ImGuiKey_Comma, VK_OEM_COMMA}, {ImGuiKey_Period, VK_OEM_PERIOD}, {ImGuiKey_Slash, VK_OEM_2}, + }; + + for (const auto& mapping : kKeyMappings) { + if (ImGui::IsKeyPressed(mapping.imgui_key, false)) { + return mapping.vk_code; + } + } + return 0; +} + renodx::utils::settings::Settings settings = { new renodx::utils::settings::Setting{ .key = "SettingsMode", @@ -355,7 +463,7 @@ renodx::utils::settings::Settings settings = { .binding = &shader_injection.status_text_opacity, .value_type = renodx::utils::settings::SettingValueType::INTEGER, .default_value = 0.f, - .label = "UID Text", + .label = "UID / Latency Text", .section = "User Interface & Video", .tooltip = "Toggle UID text visibility", .labels = {"Hidden", "Visible"}, @@ -365,7 +473,7 @@ renodx::utils::settings::Settings settings = { .binding = &shader_injection.ping_text_opacity, .value_type = renodx::utils::settings::SettingValueType::INTEGER, .default_value = 0.f, - .label = "Ping Text", + .label = "Latency Bar", .section = "User Interface & Video", .tooltip = "Toggle ping text visibility", .labels = {"Hidden", "Visible"}, @@ -377,9 +485,71 @@ renodx::utils::settings::Settings settings = { .default_value = 1.f, .label = "UI Visibility", .section = "User Interface & Video", - .tooltip = "Toggle UI visibility for screenshots", + .tooltip = "Toggle UI visibility for screenshots (use hotkey for quick toggle)", .labels = {"Hidden", "Visible"}, }, + new renodx::utils::settings::Setting{ + .key = "UIVisibilityHotkey", + .value_type = renodx::utils::settings::SettingValueType::CUSTOM, + .default_value = 0.f, + .label = "UI Toggle Hotkey", + .section = "User Interface & Video", + .tooltip = "Click in the field and press any key to set the hotkey, or press Backspace/Delete to clear", + .on_draw = []() { + static bool key_was_pressed = false; + bool changed = false; + + // Get current key name for display + std::string key_name = ui_toggle_hotkey != 0 ? GetKeyName(ui_toggle_hotkey) : ""; + char buf[64] = {0}; + if (!key_name.empty()) { + size_t copy_len = (key_name.size() < sizeof(buf) - 1) ? key_name.size() : sizeof(buf) - 1; + memcpy(buf, key_name.c_str(), copy_len); + } + + // Create the input text widget + ImGui::InputTextWithHint( + "UI Toggle Hotkey", + "Click to set keyboard shortcut", + buf, + sizeof(buf), + ImGuiInputTextFlags_ReadOnly | ImGuiInputTextFlags_NoUndoRedo | ImGuiInputTextFlags_NoHorizontalScroll + ); + + // Check if widget is active and capture key presses + if (ImGui::IsItemActive()) { + hotkey_input_active = true; + int key_pressed = GetLastKeyPressedImGui(); + + if (key_pressed != 0 && !key_was_pressed) { + if (key_pressed == VK_BACK || key_pressed == VK_DELETE) { + ui_toggle_hotkey = 0; + changed = true; + } else if (key_pressed != VK_ESCAPE) { + ui_toggle_hotkey = key_pressed; + changed = true; + } + + if (changed) { + reshade::set_config_value(nullptr, renodx::utils::settings::global_name.c_str(), "UIVisibilityHotkey", ui_toggle_hotkey); + } + key_was_pressed = true; + } else if (key_pressed == 0) { + key_was_pressed = false; + } + } else { + hotkey_input_active = false; + key_was_pressed = false; + } + + if (ImGui::IsItemHovered(ImGuiHoveredFlags_ForTooltip)) { + ImGui::SetTooltip("Click and press any key to set hotkey.\nPress Backspace or Delete to clear."); + } + + return changed; + }, + .is_global = true, + }, new renodx::utils::settings::Setting{ .key = "VideoAutoHDR", .binding = &shader_injection.tone_map_hdr_video, @@ -547,6 +717,22 @@ renodx::utils::settings::Settings settings = { }, .is_visible = []() { return settings[0]->GetValue() >= 1; }, }, + new renodx::utils::settings::Setting{ + .key = "SwapChainEncoding", + .binding = &shader_injection.swap_chain_encoding, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 4.f, + .label = "Encoding", + .section = "Display Output", + .labels = {"None", "SRGB", "2.2", "2.4", "HDR10", "scRGB"}, + .is_enabled = []() { return shader_injection.tone_map_type >= 1; }, + .on_change_value = [](float previous, float current) { + bool is_hdr10 = current == 4; + shader_injection.swap_chain_encoding_color_space = (is_hdr10 ? 1.f : 0.f); + }, + .is_global = true, + .is_visible = []() { return current_settings_mode >= 1; }, + }, new renodx::utils::settings::Setting{ .key = "IntermediateDecoding", .binding = &shader_injection.intermediate_encoding, @@ -649,6 +835,23 @@ void OnPresetOff() { // renodx::utils::settings::UpdateSetting("colorGradeLUTScaling", 0.f); } +// OnDrawIndexed event handler for heuristic-based ping/UID detection +bool OnDrawIndexed( + reshade::api::command_list* cmd_list, + uint32_t index_count, + uint32_t instance_count, + uint32_t first_index, + int32_t vertex_offset, + uint32_t first_instance) { + // Detect ping/latency bar: drawn with index_count=18, first_index=0, vertex_offset=0 + is_ping_input_candidate = ((index_count == 18) && (first_index == 0) && (vertex_offset == 0)); + + // Detect UID text: drawn right after ping (first_index=18) when ping was drawn + is_uid_input_candidate = ((first_index == 18) && is_ping_drawn); + + return false; // Don't skip the draw call +} + void OnPresent(reshade::api::command_queue* queue, reshade::api::swapchain* swapchain, const reshade::api::rect* source_rect, @@ -660,6 +863,22 @@ void OnPresent(reshade::api::command_queue* queue, shader_injection.custom_flip_uv_y = 1.f; } + // Reset heuristic tracking flags for ping/UID detection + is_ping_input_candidate = false; + is_uid_input_candidate = false; + is_ping_drawn = false; + + // Check UI visibility hotkey (skip if user is currently setting a new hotkey) + if (ui_toggle_hotkey != 0 && !hotkey_input_active) { + bool key_down = (GetAsyncKeyState(ui_toggle_hotkey) & 0x8000) != 0; + if (key_down && !ui_toggle_key_was_pressed) { + // Toggle UI visibility + shader_injection.ui_visibility = (shader_injection.ui_visibility == 0.f) ? 1.f : 0.f; + // Update the setting value to keep UI in sync + renodx::utils::settings::UpdateSetting("UIVisibility", shader_injection.ui_visibility); + } + ui_toggle_key_was_pressed = key_down; + } } bool initialized = false; @@ -742,30 +961,14 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { settings.push_back(setting); } + // Initialize SwapChainEncoding-related settings { - auto* setting = new renodx::utils::settings::Setting{ - .key = "SwapChainEncoding", - .binding = &shader_injection.swap_chain_encoding, - .value_type = renodx::utils::settings::SettingValueType::INTEGER, - .default_value = 4.f, - .label = "Encoding", - .section = "Display Output", - .labels = {"None", "SRGB", "2.2", "2.4", "HDR10", "scRGB"}, - .is_enabled = []() { return shader_injection.tone_map_type >= 1; }, - .on_change_value = [](float previous, float current) { - bool is_hdr10 = current == 4; - shader_injection.swap_chain_encoding_color_space = (is_hdr10 ? 1.f : 0.f); - // return void - }, - .is_global = true, - .is_visible = []() { return current_settings_mode >= 1; }, - }; - renodx::utils::settings::LoadSetting(renodx::utils::settings::global_name, setting); - bool is_hdr10 = setting->GetValue() == 4; + float encoding_value = 4.f; // default + reshade::get_config_value(nullptr, renodx::utils::settings::global_name.c_str(), "SwapChainEncoding", encoding_value); + bool is_hdr10 = encoding_value == 4; renodx::mods::swapchain::SetUseHDR10(is_hdr10); - renodx::mods::swapchain::use_resize_buffer = setting->GetValue() < 4; + renodx::mods::swapchain::use_resize_buffer = encoding_value < 4; shader_injection.swap_chain_encoding_color_space = is_hdr10 ? 1.f : 0.f; - settings.push_back(setting); } { @@ -783,14 +986,21 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { bool use_device_proxy = setting->GetValue() == 1.f; renodx::mods::swapchain::use_device_proxy = use_device_proxy; renodx::mods::swapchain::set_color_space = !use_device_proxy; - if (use_device_proxy) { - reshade::register_event(OnPresent); - } else { + if (!use_device_proxy) { shader_injection.custom_flip_uv_y = 0.f; } + reshade::register_event(OnPresent); settings.push_back(setting); } + // Load UI visibility hotkey from saved config + { + int saved_hotkey = 0; + if (reshade::get_config_value(nullptr, renodx::utils::settings::global_name.c_str(), "UIVisibilityHotkey", saved_hotkey)) { + ui_toggle_hotkey = saved_hotkey; + } + } + { auto* setting = new renodx::utils::settings::Setting{ .key = "SwapChainDeviceProxyBaseWaitIdle", @@ -859,6 +1069,11 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { const uint32_t target_crcs[] = { 0x37837806u, 0xD3FA93FCu, + 0x620A40FDu, + 0xE322C21Du, + 0xB094C87Eu, + 0xF901F0ECu, + 0x518D3855u, }; /* @@ -905,11 +1120,31 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { } } + // Add on_draw callbacks for ping/UID shaders (heuristic-based detection) + // Ping/latency bar shader: 0xEF07F89A + { + auto it = custom_shaders.find(0xEF07F89Au); + if (it != custom_shaders.end()) { + it->second.on_draw = OnPingDraw; + } + } + // UID text shader: 0x6B8E9049 + { + auto it = custom_shaders.find(0x6B8E9049u); + if (it != custom_shaders.end()) { + it->second.on_draw = OnUIDDraw; + } + } + + // Register draw_indexed event for heuristic ping/UID detection + reshade::register_event(OnDrawIndexed); + initialized = true; } break; case DLL_PROCESS_DETACH: + reshade::unregister_event(OnDrawIndexed); reshade::unregister_event(OnPresent); reshade::unregister_addon(h_module); break; diff --git a/src/games/endfield/deferred-lighting/0x05D849CE.cso b/src/games/endfield/deferred-lighting/0x05D849CE.cso new file mode 100644 index 0000000000000000000000000000000000000000..263e61cb3e8d02eecb2d8052d78a1234aac0e553 GIT binary patch literal 57276 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

    lPVxyEAdtm=H^`}Rk@79~7r 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 ac*rt;=8^E%4+@^`;Wv2xh@?9s-2V&jW7)v~ literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm new file mode 100644 index 000000000..a8663b864 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm @@ -0,0 +1,1962 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 16:35:51 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[5], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB7[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_sampler s5, mode_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture2d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture3d (float,float,float,float) t23 +dcl_resource_texture3d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture2d (float,float,float,float) t27 +dcl_resource_texture2d (float,float,float,float) t28 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 38 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t26.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t27.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r2.xyw, r1.wwww, r3.xyxz +utof r4.xy, r0.xyxx +mul r4.zw, v0.xxxy, cb0[82].zzzw +mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r5.zw, r5.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.yyyy, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw +mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r3.w, r5.y, cb0[1].z +mad r3.w, cb0[0].z, r5.x, r3.w +mad r3.w, cb0[2].z, r5.z, r3.w +add r3.w, r3.w, cb0[3].z +eq r6.x, l(0.000000), cb0[86].w +add r6.yzw, -r5.xxyz, cb0[44].xxyz +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r6.xyz, r6.xxxx, r6.yzwy, r7.xyzx +dp3 r6.w, r6.xyzx, r6.xyzx +max r7.w, r6.w, l(9.999999939E-09) +rsq r7.w, r7.w +mul r8.xyz, r6.xyzx, r7.wwww +mul r6.w, r6.w, r7.w +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r9.xy, v1.xyxx, t25.xyzw, s1, cb0[108].x +else + mov r9.xy, l(1.000000,1.000000,0,0) +endif +lt r9.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy +if_nz r9.z + add r9.z, |r2.y|, |r2.x| + add r9.z, |r2.w|, r9.z + div r9.z, l(1.000000, 1.000000, 1.000000, 1.000000), r9.z + mul r10.xyz, |r2.xywx|, r9.zzzz + mul r11.xyz, r5.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r9.z, r11.xyzx, t10.yzxw, s2, l(0.000000) + mul r11.xyzw, r10.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) + add r10.xyw, r11.zwzz, r11.xxxy + mad r10.xyz, r10.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r10.xywx + mad r10.w, r9.z, l(2.000000), l(-1.000000) + mul r10.xyz, r10.wwww, r10.xyzx + mov r10.w, |r2.y| + add r10.w, r10.w, l(-0.700000) + mul_sat r10.w, r10.w, l(4.000000) + mad r11.x, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r11.x + add r11.x, -cb0[229].z, cb0[229].y + mad r10.w, r10.w, r11.x, cb0[229].z + mul r10.xyz, r10.wwww, r10.xyzx +else + mov r10.xyz, l(0,0,0,0) + mov r9.z, l(0) +endif +mad r10.w, -r3.y, r1.w, l(-0.200000) +if_nz r9.w + mul r11.xyz, r2.xywx, cb0[233].zzzz + mul r12.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r11.xyz, r11.xyzx, cb0[225].xxxx, r12.xyzx + max r9.w, -r2.y, l(0.000000) + min r9.w, r9.w, l(0.900000) + add r9.w, -r9.w, l(1.000000) + mul_sat r11.w, r10.w, l(-10.000000) + mad r12.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.x + max r11.w, r11.w, l(0.100000) + min r11.w, r11.w, l(1.000000) + mul r9.w, r9.w, r11.w + mad r11.xyz, r11.xyzx, r9.wwww, r5.xyzx + add r10.xyz, r10.xyzx, r11.xyzx + mul r11.xyz, r10.yyyy, cb5[1].xyzx + mad r11.xyz, cb5[0].xyzx, r10.xxxx, r11.xyzx + mad r10.xyz, cb5[2].xyzx, r10.zzzz, r11.xyzx + add r10.xyz, r10.xyzx, cb5[3].xyzx + mad r11.x, r10.x, l(0.500000), cb5[4].x + mad r9.w, r10.y, l(0.500000), l(0.500000) + add r11.z, -r9.w, cb5[4].y + add r10.xy, r11.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r9.w, r10.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r10.xyxx, t9.xxxx, s5, r9.w +else + mov r9.w, l(1.000000) +endif +mov_sat r10.x, r2.y +add r10.y, l(1.000000), -cb0[230].w +mad r10.x, r10.x, r10.y, cb0[230].w +add r10.yz, r5.xxzx, -cb0[44].xxzx +max r10.y, |r10.z|, |r10.y| +mul r10.z, r9.w, r10.x +mul r11.x, l(0.0500000119), cb0[222].w +mad r11.y, -cb0[222].w, l(0.700000), r10.y +div r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.x +mul_sat r11.x, r11.x, r11.y +mad r11.y, r11.x, l(-2.000000), l(3.000000) +mul r11.x, r11.x, r11.x +mul r11.x, r11.x, r11.y +mad r9.w, -r10.x, r9.w, l(1.000000) +mad r9.w, r11.x, r9.w, r10.z +ge r10.z, r1.z, l(0.045000) +and r10.z, r10.z, l(0x3f800000) +mul r10.z, r9.w, r10.z +deriv_rty_coarse r11.xyz, r5.xyzx +deriv_rtx_coarse r12.xyz, r5.zxyz +mul r13.xyz, r11.xyzx, r12.xyzx +mad r11.xyz, r11.zxyz, r12.yzxy, -r13.xyzx +dp3 r11.w, r11.xyzx, r11.xyzx +max r11.w, r11.w, l(1.175494351E-38) +rsq r11.w, r11.w +mul r12.xyz, r11.wwww, r11.xzyx +mov_sat r11.y, r12.x +add r11.z, r11.y, l(-0.988000) +mul_sat r11.z, r11.z, l(1000.012878) +mad r12.w, r11.z, l(-2.000000), l(3.000000) +mul r11.z, r11.z, r11.z +mul r11.z, r11.z, r12.w +add r12.w, |r3.w|, l(-15.000000) +mul_sat r12.w, r12.w, l(0.015000) +add r12.w, -r12.w, l(1.000000) +lt r13.x, l(0.000488281250), cb0[223].y +mad r13.y, cb0[223].z, l(0.300000), l(0.687000) +add r11.y, r11.y, -r13.y +mul_sat r11.y, r11.y, l(-1000.012878) +mad r13.y, r11.y, l(-2.000000), l(3.000000) +mul r11.y, r11.y, r11.y +mul r11.y, r11.y, r13.y +mad r11.x, r11.x, r11.w, l(0.500000) +mul_sat r11.x, r11.x, l(2.500000) +mad r11.w, r11.x, l(-2.000000), l(3.000000) +mul r11.x, r11.x, r11.x +mul r11.x, r11.x, r11.w +mul r11.x, r11.x, r11.y +lt r11.x, l(0.000488281250), r11.x +and r11.x, r11.x, r13.x +if_nz r11.x + mul r11.xy, |r12.yzyy|, |r12.yzyy| + add r11.w, r11.y, r11.x + div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w + mul r11.xy, r11.wwww, r11.xyxx + mul r13.xyz, r12.xzyx, l(0.000000, 1.000000, 0.000000, 0.000000) + mad r13.xyz, r12.yxzy, l(1.000000, 0.000000, 0.000000, 0.000000), -r13.xyzx + dp2 r11.w, r13.xyxx, r13.xyxx + rsq r11.w, r11.w + mul r13.xyz, r11.wwww, r13.xyzx + mul r14.xyz, r12.xzyx, r13.xyzx + mad r14.xyz, r13.zxyz, r12.zyxz, -r14.xyzx + dp3 r11.w, r14.xyzx, r14.xyzx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + add r15.xyz, r5.xyzx, r5.xyzx + round_ni r15.xyz, r15.xyzx + add r15.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + add r13.zw, r15.yyyy, r15.xxxz + dp2 r11.w, r13.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + lt r13.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.zzzy + lt r15.xy, r12.zyzz, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r13.zw, r13.zzzw, -r15.xxxy + itof r13.zw, r13.zzzw + mul r15.xy, r5.xzxx, r13.zwzz + mul r13.z, r9.z, r11.w + add r13.w, -r11.w, l(1.000000) + mad r13.w, r13.w, l(0.700000), l(0.300000) + mul r16.xy, r13.zzzz, l(3.000000, 6.000000, 0.000000, 0.000000) + mad r13.z, -cb0[223].x, r13.w, r16.x + frc r17.x, r13.z + mad r13.z, cb0[223].x, l(-0.300000), r16.y + frc r17.y, r13.z + mul r11.w, r11.w, l(5.000000) + round_ni r11.w, r11.w + add r16.x, r11.w, l(1.000000) + mul r16.y, r5.y, r16.x + mov r5.w, l(0.100000) + mul r13.zw, r5.yyyw, r16.xxxy + frc r13.zw, r13.zzzw + add r16.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + add r16.xy, r13.zwzz, -r16.xyxx + add r16.xy, r16.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) + mul_sat r16.xy, r16.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) + mad r16.zw, r16.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) + mul r16.xy, r16.xyxx, r16.xyxx + mul r16.xy, r16.xyxx, r16.zwzz + add r16.zw, -r13.zzzw, r17.xxxy + max r16.xy, r16.zwzz, r16.xyxx + add r17.zw, -r17.xxxy, r13.zzzw + add r17.zw, r17.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) + mul r17.zw, r17.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) + max r17.zw, r17.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r18.xy, r17.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r17.zw, r17.zzzw, r17.zzzw + mul r17.zw, r17.zzzw, r18.xxxy + add r16.zw, r16.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + max r16.zw, r16.zzzw, r17.zzzw + ge r13.zw, r13.zzzw, r17.xxxy + and r13.zw, r13.zzzw, l(0, 0, 0x3f800000, 0x3f800000) + add r16.zw, -r16.xxxy, r16.zzzw + mad r13.zw, r13.zzzw, r16.zzzw, r16.xxxy + mad r11.w, r13.z, r13.z, l(-0.400000) + mul_sat r11.w, r11.w, l(1.66666663) + mad r13.z, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r13.z + mad r13.z, r13.w, l(2.000000), l(-1.000000) + mul r16.x, r11.w, l(0.010000) + mul r16.y, r13.z, r16.x + mad r17.x, r9.z, l(0.100000), r16.y + mul r16.x, r11.w, r16.x + mad r16.x, r16.x, r13.z, r9.z + mul r17.y, r9.z, r16.x + mov r15.z, r5.y + mad r16.xy, r15.yzyy, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t11.xyzw, s2, cb0[108].x + mov r15.w, -r15.x + mad r15.xy, r15.wzww, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r15.xyzw, r15.xyxx, t11.xyzw, s2, cb0[108].x + mul r15.xyzw, r11.yyyy, r15.xyzw + mad r15.xyzw, r16.xyzw, r11.xxxx, r15.xyzw + mad r11.xy, r15.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r9.z, r11.w, l(2.000000), l(-1.000000) + mad_sat r9.z, r9.z, l(0.800000), r13.w + mad r13.w, -r15.w, l(0.500000), l(1.000000) + mad r9.z, r9.z, r13.w, l(-0.700000) + mul_sat r9.z, r9.z, l(3.33333325) + mad r13.w, r9.z, l(-2.000000), l(3.000000) + mul r9.z, r9.z, r9.z + mul r9.z, r9.z, r13.w + mul r13.z, r13.z, r15.w + mad_sat r11.w, r13.z, l(0.500000), r11.w + mad r11.w, r11.w, l(0.500000), l(0.100000) + max r9.z, r9.z, r11.w + add r11.w, -r9.z, l(1.000000) + max r11.w, r11.w, l(0.000000) + mul r13.z, r11.w, r11.w + mul r13.z, r13.z, r13.z + mul r11.w, r11.w, r13.z + ge r11.w, r15.z, r11.w + and r11.w, r11.w, l(0x3f800000) + mad r9.z, r9.z, l(0.700000), l(0.200000018) + mad r9.z, r11.w, r9.z, l(0.100000) + mul r9.z, r15.z, r9.z + mul r9.z, r9.z, cb0[223].y + mul r9.z, r9.z, l(0.330000) + mul r11.w, r10.z, cb0[222].x + mul r11.w, r12.w, r11.w + mul r9.z, r9.z, r11.w + dp2 r11.w, r11.xyxx, r11.xyxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r11.w, r11.w, l(0.000488281250) + mul_sat r13.z, r9.z, l(10.000000) + mad r13.w, r13.z, l(-2.000000), l(3.000000) + mul r13.z, r13.z, r13.z + mul r13.z, r13.z, r13.w + mul r13.z, r13.z, cb0[223].y + mul r15.xy, r11.xyxx, r13.zzzz + add r11.x, l(-1.500000), cb0[223].y + mul_sat r11.x, r11.x, l(0.666666687) + mad r11.y, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r11.y + mul r11.y, r11.x, l(-0.200000) + mad r11.x, -r11.x, l(-0.200000), r11.w + mad r15.z, r9.z, r11.x, r11.y + dp3 r11.x, r15.xyzx, r15.xyzx + max r11.x, r11.x, l(1.175494351E-38) + rsq r11.x, r11.x + mul r11.xyw, r11.xxxx, r15.xyxz + mov r15.x, r13.y + mov r15.y, r14.x + mov r15.z, r12.y + dp3 r15.x, r15.xyzx, r11.xywx + mov r14.w, r12.x + dp2 r15.y, r14.ywyy, r11.ywyy + mov r12.x, r13.x + mov r12.y, r14.z + dp3 r15.z, r12.xyzx, r11.xywx + mad r11.xyw, -r3.xyxz, r1.wwww, r15.xyxz + mad r13.xyz, r9.zzzz, r11.xywx, r2.xywx + mul r9.z, r9.z, cb0[223].y + mul r9.z, r9.z, l(0.330000) +else + mov r13.xyz, r2.xywx + mov r9.z, l(0) +endif +lt r11.xy, l(0.000488281250, 0.000488281250, 0.000000, 0.000000), cb0[227].ywyy +or r11.x, r11.y, r11.x +lt r11.y, l(0.000488281250), r11.z +and r11.x, r11.y, r11.x +if_nz r11.x + mul r11.xyw, r2.ywyx, l(1.000000, 0.000000, 0.000000, 0.000000) + mad r11.xyw, r2.xyxw, l(0.000000, 0.000000, 0.000000, 1.000000), -r11.xyxw + dp2 r12.x, r11.xwxx, r11.xwxx + rsq r12.x, r12.x + mul r11.xyw, r11.xyxw, r12.xxxx + mul r12.xyz, r2.ywxy, r11.xywx + mad r12.xyz, r11.wxyw, r2.wxyw, -r12.xyzx + dp3 r11.y, r12.xyzx, r12.xyzx + rsq r11.y, r11.y + mul r14.xyz, r11.yyyy, r12.xzyx + mul r12.xy, -r5.xzxx, cb0[228].xyxx + frc r15.xy, r12.xyxx + round_ni r12.xy, r12.xyxx + dp2 r11.y, r12.xyxx, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.y, null, r11.y + mul r11.y, r11.y, l(43758.546875) + frc r11.y, r11.y + add r12.x, r11.y, cb0[227].x + frc r12.x, r12.x + mul r12.y, cb0[228].z, cb0[228].z + mul r12.x, r12.y, r12.x + round_ni r12.x, r12.x + div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z + mad r15.zw, -r5.xxxz, cb0[228].xxxy, cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r15.zwzz, t12.zwxy, s2, cb0[108].x + mad r15.zw, -r5.xxxz, cb0[228].xxxy, -cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r15.zwzz, t12.xyzw, s2, cb0[108].x + mul r16.xyzw, r16.xyzw, cb0[227].wwww + mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww + ge r11.y, l(0.500000), r11.y + and r11.y, r11.y, l(0x3f800000) + add r15.zw, -r15.xxxy, r15.yyyx + mad r15.xy, r11.yyyy, r15.zwzz, r15.xyxx + div r11.y, r12.x, cb0[228].z + ge r12.z, r11.y, -r11.y + frc r11.y, |r11.y| + movc r11.y, r12.z, r11.y, -r11.y + mul r11.y, r11.y, cb0[228].z + mul r17.x, r11.y, r12.y + add r15.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz + mul r11.y, r12.y, r12.x + round_ni r11.y, r11.y + add r11.y, -r11.y, r15.w + mul r17.y, r11.y, r12.y + mad r12.xy, r15.xyxx, r12.yyyy, r17.xyxx + frc r12.xy, r12.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r12.xy, r12.xyxx, t12.xyzw, s1, cb0[108].x + mul r12.xy, r12.xyxx, cb0[227].yyyy + mad r12.xy, r12.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), -cb0[227].yyyy + add r15.xy, r16.zwzz, r16.xyxx + add r12.xy, r12.xyxx, r15.xyxx + dp2 r11.y, r12.xyxx, r12.xyxx + min r11.y, r11.y, l(1.000000) + add r11.y, -r11.y, l(1.000000) + sqrt r11.y, r11.y + max r12.z, r11.y, l(0.000488281250) + dp3 r11.y, r12.xyzx, r12.xyzx + rsq r11.y, r11.y + mul r12.xyz, r11.yyyy, r12.xyzx + mov r14.w, r2.x + dp2 r16.x, r14.xwxx, r12.yzyy + mov r17.x, r11.w + mov r17.y, r14.z + mov r17.z, r2.y + dp3 r16.y, r17.xyzx, r12.xyzx + mov r14.x, r11.x + mov r14.z, r2.w + dp3 r16.z, r14.xyzx, r12.xyzx + mul r10.z, r10.z, cb0[222].x + mul r10.z, r11.z, r10.z + max r11.x, l(0.000488281250), cb0[228].w + mov_sat r15.z, r15.z + add r11.y, -r11.x, r15.z + add r11.x, r2.z, -r11.x + div r11.y, l(1.000000, 1.000000, 1.000000, 1.000000), r11.y + mul_sat r11.x, r11.y, r11.x + mad r11.y, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r11.y + mul r10.z, r10.z, r11.x + mul r10.z, r12.w, r10.z + mad r3.xyz, -r3.xyzx, r1.wwww, r16.xyzx + mad r13.xyz, r10.zzzz, r3.xyzx, r2.xywx +endif +min r1.w, r9.y, r9.x +mul r3.x, r10.x, cb0[230].z +mad r3.y, -cb0[230].z, r10.x, l(1.000000) +mad r3.x, r9.w, r3.y, r3.x +mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r3.z, r10.y, -cb0[222].w +div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y +mul_sat r3.y, r3.y, r3.z +mad r3.z, r3.y, l(-2.000000), l(3.000000) +mul r3.y, r3.y, r3.y +mul r3.y, r3.y, r3.z +add r3.z, -r3.x, cb0[230].y +mad r3.x, r3.y, r3.z, r3.x +add r3.x, -r3.x, l(1.000000) +mul r3.y, r3.x, r9.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r3.z, -r2.z, l(1.000000) +mad_sat r9.w, r3.z, cb0[222].z, cb0[222].y +mad_sat r9.w, r9.z, cb0[224].z, r9.w +add r10.x, -r9.w, l(1.000000) +mad r9.w, r1.x, r10.x, r9.w +mul_sat r10.x, r10.w, l(3.33333325) +mad r10.y, r10.x, l(-2.000000), l(3.000000) +mul r10.x, r10.x, r10.x +mad r10.x, -r10.y, r10.x, l(1.000000) +mul r10.y, r9.w, cb0[222].x +add r10.z, -r1.x, l(1.000000) +mul r10.y, r10.z, r10.y +mul r10.y, r10.x, r10.y +mad r10.y, r10.y, l(-0.750000), l(1.000000) +mad r9.w, r9.w, l(-0.299999952), l(0.900000) +sqrt r10.z, r3.z +add r9.w, r9.w, r10.z +add_sat r9.w, r9.w, l(-0.600000) +max r9.w, r3.z, r9.w +min r9.w, r9.w, l(0.990000) +add_sat r10.z, l(2.000000), -cb0[222].x +mul r10.z, r10.z, cb0[222].x +mul r10.x, r10.x, r10.z +mad r3.x, -r9.x, r3.x, l(1.000000) +mul r3.x, r3.x, r10.x +add r9.x, -r3.z, r9.w +mad r3.x, r3.x, r9.x, r3.z +add r3.x, -r3.x, l(1.000000) +mul_sat r3.z, r9.z, l(20.000000) +mad r9.x, r3.z, l(-2.000000), l(3.000000) +mul r3.z, r3.z, r3.z +mul r3.z, r3.z, r9.x +mad r3.z, r3.z, l(-0.900000), l(1.000000) +mul r9.x, r3.z, r3.x +add r9.y, r9.y, l(-1.000000) +mad r11.x, r1.z, r9.y, l(1.000000) +add r11.y, -r1.z, l(1.000000) +movc r9.yz, r8.wwww, r11.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r9.x, r9.y +mad r3.x, r3.x, r3.z, -r1.z +mad r1.z, r1.w, r3.x, r1.z +add r2.z, -r1.z, r2.z +mad r11.w, r3.y, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r9.xyw, r0.xyzz, t28.xywz +min r1.z, r10.y, r9.z +add r2.z, -r1.z, r10.y +mad r1.z, r1.w, r2.z, r1.z +add r1.w, -r1.z, l(1.000000) +mad r1.z, r3.y, r1.w, r1.z +mul r3.xyz, r1.zzzz, r9.xywx +mul r10.xyz, r1.xxxx, r3.xyzx +mad r9.xyz, r9.xywx, r1.zzzz, -r10.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz +dp3 r2.z, r13.xyzx, r8.xyzx +max r10.x, r2.z, l(0.000000) +mul r3.y, r11.w, r11.w +mul r12.x, r10.x, r10.x +mul r12.z, r10.x, r12.x +mul r2.z, r3.y, r3.y +mul r3.z, r3.y, r2.z +mov r10.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r14.x, l(3.327070, 1.000000, 0.000000, 0.000000), r10.xyxx +dp2 r14.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r10.xzxx +mov r3.x, l(1.000000) +dp2 r8.w, r14.xyxx, r3.xyxx +mov r12.yw, l(0,9.044010,0,1.000000) +dp3 r14.x, l(3.596850, -1.367720, 1.000000, 0.000000), r12.xzwx +dp3 r14.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r12.xyzx +mov r15.x, l(5.565890) +mov r15.yz, r12.xxzx +dp3 r14.z, l(1.000000, 19.788601, -20.212299, 0.000000), r15.xyzx +dp3 r9.w, r14.xyzx, r3.xyzx +div r8.w, r8.w, r9.w +dp2 r14.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r10.xwxx +mov r12.x, l(1.296780) +mov r12.y, r10.x +dp2 r14.y, l(1.000000, -0.755907, 0.000000, 0.000000), r12.xyxx +dp2 r9.w, r14.xyxx, r3.xyxx +dp3 r14.x, l(2.923380, 59.418800, 1.000000, 0.000000), r12.yzwy +mov r12.xw, l(20.322500,0,0,121.563004) +dp3 r14.y, l(1.000000, -27.030199, 222.591995, 0.000000), r12.xyzx +dp3 r14.z, l(626.130005, 316.627014, 1.000000, 0.000000), r12.yzwy +dp3 r3.x, r14.xyzx, r3.xyzx +div r3.x, r9.w, r3.x +mad r10.yzw, r1.xxzw, r8.wwww, r3.xxxx +add r3.x, r3.x, r8.w +ld_indexable(texture2d)(float,float,float,float) r12.x, r0.xyzz, t7.xyzw +lt r0.z, l(0.001000), r12.x +if_nz r0.z + dp3 r0.z, -r8.xyzx, r13.xyzx + add r0.z, r0.z, r0.z + mad r14.xyz, r13.xyzx, -r0.zzzz, -r8.xyzx + dp3 r0.z, -cb3[0].xyzx, r14.xyzx + mad r15.xyz, cb3[0].xyzx, r0.zzzz, r14.xyzx + lt r0.z, r0.z, cb3[4].z + dp3 r3.z, r15.xyzx, r15.xyzx + max r3.z, r3.z, l(0.0000610351562) + rsq r3.z, r3.z + mul r15.xyz, r3.zzzz, r15.xyzx + mul r15.xyz, r15.xyzx, cb3[4].yyyy + mad r15.xyz, -cb3[0].xyzx, cb3[4].zzzz, r15.xyzx + dp3 r3.z, r15.xyzx, r15.xyzx + rsq r3.z, r3.z + mul r15.xyz, r3.zzzz, r15.xyzx + movc r14.xyz, r0.zzzz, r15.xyzx, r14.xyzx + mad r15.xyz, r6.xyzx, r7.wwww, r14.xyzx + dp3 r0.z, r15.xyzx, r15.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r15.xyz, r0.zzzz, r15.xyzx + dp3_sat r11.y, r14.xyzx, r13.xyzx + dp3_sat r0.z, r13.xyzx, r15.xyzx + min r11.z, r10.x, l(1.000000) + mad r3.z, r0.z, r2.z, -r0.z + mad r0.z, r3.z, r0.z, l(1.000000) + dp3_sat r3.z, r8.xyzx, r15.xyzx + add r3.z, -r3.z, l(1.000000) + mul r8.w, r3.z, r3.z + mul r8.w, r8.w, r8.w + mul r9.w, r3.z, r8.w + add r12.z, -r11.w, l(1.000000) + mad r12.w, -r12.z, l(0.383026), l(-0.0761947036) + mad r12.w, r12.z, r12.w, l(1.049970) + mad r12.z, r12.z, r12.w, l(0.409255) + min r12.z, r12.z, l(0.999000) + add r12.w, -r12.z, l(1.000000) + add r15.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx + mad r3.z, -r8.w, r3.z, l(1.000000) + mad r16.xyz, r1.xzwx, r3.zzzz, r9.wwww + mul r0.z, r0.z, r0.z + div r0.z, r2.z, r0.z + mad r17.xy, -r11.zyzz, r2.zzzz, r11.zyzz + mad r17.xy, r17.xyxx, r11.zyzz, r2.zzzz + sqrt r17.xy, r17.xyxx + mul r17.xy, r11.yzyy, r17.xyxx + add r2.z, r17.y, r17.x + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.z, r0.z, r2.z + mul r16.xyz, r0.zzzz, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r17.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r17.xyxx, t13.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r17.zwzz, t13.yzxw, s1, l(0.000000) + mul r0.z, r0.z, r2.z + mul r0.z, r12.z, r0.z + div r0.z, r0.z, r12.w + mul r17.xyz, r15.xyzx, r15.xyzx + mul r17.xyz, r0.zzzz, r17.xyzx + mad r15.xyz, -r15.xyzx, r12.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r15.xyz, r17.xyzx, r15.xyzx + add r15.xyz, r15.xyzx, r16.xyzx + mul r15.xyz, r15.xyzx, cb3[4].xxxx + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r15.xyz, r15.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + dp3_sat r0.z, r14.xyzx, r2.xywx + mul r14.xyz, r0.zzzz, r9.xyzx + mad r14.xyz, r15.xyzx, r11.yyyy, r14.xyzx + mul r14.xyz, r14.xyzx, cb3[1].xyzx + mov r12.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r12.yzw, r12.xyxx, t8.wxyz, s1, cb0[108].x + add r0.z, -r12.x, l(1.000000) + mad r12.xyz, r14.xyzx, r12.yzwy, -r14.xyzx + mad r12.xyz, r0.zzzz, r12.xyzx, r14.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t14.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r12.xyz, r0.zzzz, r12.xyzx +else + mov r12.xyz, l(0,0,0,0) +endif +mul r11.yz, r4.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r11.yz, r11.yyzy +mad r0.z, r11.z, cb2[1].y, r11.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r2.z, -cb0[85].y, cb2[2].w, |r3.w| +round_ni r2.z, r2.z +add r3.z, l(-1.000000), cb2[1].w +max r8.w, r2.z, l(0.000000) +min r3.z, r3.z, r8.w +mul r8.w, r3.z, l(8.000000) +ftoi r8.w, r8.w +ge r2.z, r3.z, r2.z +iadd r3.z, r8.w, cb0[110].y +dp3 r8.w, -r8.xyzx, r13.xyzx +add r8.w, r8.w, r8.w +mad r14.xyz, r13.xyzx, -r8.wwww, -r8.xyzx +min r11.x, r10.x, l(1.000000) +add r8.w, -r11.w, l(1.000000) +mad r9.w, -r8.w, l(0.383026), l(-0.0761947036) +mad r9.w, r8.w, r9.w, l(1.049970) +mad r8.w, r8.w, r9.w, l(0.409255) +min r8.w, r8.w, l(0.999000) +add r9.w, -r8.w, l(1.000000) +add r15.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx +mad r11.yz, r11.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r10.x, r11.yzyy, t13.xyzw, s1, l(0.000000) +mad r16.xyz, -r15.xyzx, r9.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r15.xyz, r15.xyzx, r15.xyzx +mov r17.w, l(1.000000) +mov r18.y, l(1.000000) +mov r19.z, r11.w +mov r20.xyz, l(0,0,0,0) +mov r11.yz, l(0,1.000000,0,0) +loop + ilt r12.w, l(7), r11.z + breakc_nz r12.w + iadd r12.w, r0.z, r11.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx + iadd r14.w, r3.z, r11.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.w, r14.w, l(0), t0.xxxx + and r12.w, r12.w, r14.w + and r12.w, r2.z, r12.w + ishl r14.w, r11.z, l(5) + mov r21.xyz, l(0,0,0,0) + mov r15.w, r11.y + mov r16.w, r12.w + loop + breakc_z r16.w + firstbit_lo r18.z, r16.w + ishl r18.w, l(1), r18.z + xor r18.w, r16.w, r18.w + iadd r18.z, r14.w, r18.z + bfi r22.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r18.zzzz, l(1, 3, 5, 6) + bfi r19.w, l(29), l(3), r18.z, l(7) + ftou r20.w, cb3[r22.z + 6].w + ieq r20.w, r20.w, l(1) + if_nz r20.w + add r17.xyz, r5.xyzx, -cb3[r22.x + 6].xyzx + and r23.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r22.z + 6].xzyx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r22.w + 6].yxzy + ushr r25.xyz, cb3[r22.z + 6].xzyx, l(16, 16, 16, 0) + ushr r26.xyz, cb3[r22.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r23.xyz, r23.xyzx + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyw, r26.yxyz + mov r27.xz, r23.xxzx + mov r27.yw, r25.xxxz + dp4 r20.w, r17.xyzw, r27.xyzw + mov r25.x, r23.y + mov r25.z, r24.y + mov r25.w, r26.x + dp4 r21.w, r17.xyzw, r25.xyzw + mov r26.xz, r24.xxzx + dp4 r17.x, r17.xyzw, r26.xyzw + max r17.y, |r20.w|, |r21.w| + max r17.x, |r17.x|, r17.y + mad r17.y, cb3[r19.w + 6].x, l(0.500000), l(0.500000) + add r17.x, -r17.y, r17.x + mad r17.y, -cb3[r19.w + 6].x, l(0.500000), l(0.500000) + div_sat r17.x, r17.x, r17.y + add r17.x, -r17.x, l(1.000000) + mul r17.x, r17.x, r17.x + else + mov r17.x, l(1.000000) + endif + lt r17.y, l(0.500000), cb3[r22.y + 6].z + lt r17.z, r17.x, l(0.001000) + or r17.z, r17.y, r17.z + if_nz r17.z + mov r16.w, r18.w + continue + endif + ishl r17.z, r18.z, l(3) + bfi r18.z, l(29), l(3), r18.z, l(2) + lt r20.w, cb3[r17.z + 6].w, l(1.500000) + if_nz r20.w + mad r20.w, cb3[r18.z + 6].y, l(0.500000), l(0.500000) + add r23.x, r20.w, -|cb3[r18.z + 6].x| + add r23.y, -r23.x, cb3[r18.z + 6].y + add r20.w, -|r23.x|, l(1.000000) + add r20.w, -|r23.y|, r20.w + ge r21.w, cb3[r18.z + 6].x, l(0.000000) + max r22.z, r20.w, l(0.000488281250) + movc r23.z, r21.w, r22.z, -r22.z + dp3 r22.z, r23.xyzx, r23.xyzx + rsq r22.z, r22.z + mul r24.xyz, r22.zzzz, r23.xyzx + add r25.xyz, -r5.xyzx, cb3[r22.x + 6].xyzx + dp3 r22.z, r25.xyzx, r25.xyzx + rsq r23.z, r22.z + mul r26.xyz, r23.zzzz, r25.xyzx + dp3_sat r18.x, r13.xyzx, r26.xyzx + ftoi r24.w, cb3[r19.w + 6].w + mul r27.xyz, r24.xyzx, cb3[r18.z + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r25.w, cb3[r17.z + 6].w + and r25.w, r25.w, l(1) + ieq r26.w, r25.w, l(0) + not r26.w, r26.w + lt r27.w, l(0.000000), cb3[r18.z + 6].z + and r26.w, r26.w, r27.w + dp3 r27.w, r28.xyzx, r28.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r29.xyzx, r29.xyzx + sqrt r28.w, r28.w + dp3 r29.w, r13.xyzx, r28.xyzx + div r29.w, r29.w, r27.w + dp3 r30.x, r13.xyzx, r29.xyzx + div r30.x, r30.x, r28.w + add r29.w, r29.w, r30.x + mul_sat r30.x, r29.w, l(0.500000) + dp3 r29.x, r28.xyzx, r29.xyzx + mad r27.w, r27.w, r28.w, r29.x + mad r27.w, r27.w, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w + movc r19.xy, r26.wwww, r30.xyxx, r18.xyxx + lt r27.w, cb3[r22.w + 6].w, l(0.000000) + if_nz r27.w + mul r27.w, cb3[r22.x + 6].w, cb3[r22.x + 6].w + mul r27.w, r22.z, r27.w + mad r27.w, -r27.w, r27.w, l(1.000000) + max r27.w, r27.w, l(0.000000) + add r22.z, r22.z, l(1.000000) + div r22.z, l(1.000000, 1.000000, 1.000000, 1.000000), r22.z + and r28.w, r26.w, l(0x3f800000) + add r29.x, r19.y, -r22.z + mad r22.z, r28.w, r29.x, r22.z + mul r27.w, r27.w, r27.w + mul r22.z, r22.z, r27.w + else + mul r29.xyz, r25.xyzx, cb3[r22.x + 6].wwww + dp3 r27.w, r29.xyzx, r29.xyzx + min r27.w, r27.w, l(1.000000) + add r27.w, -r27.w, l(1.000000) + log r27.w, r27.w + mul r27.w, r27.w, cb3[r22.w + 6].w + exp r27.w, r27.w + mul r22.z, r19.y, r27.w + endif + dp3 r19.y, r26.xyzx, -r24.xyzx + add r19.y, r19.y, -cb3[r18.z + 6].z + mul_sat r19.y, r19.y, cb3[r18.z + 6].w + mul r19.y, r19.y, r19.y + movc r19.y, r25.w, l(1.000000), r19.y + mul r19.y, r19.y, r22.z + not r22.z, r26.w + ige r24.x, r24.w, l(0) + and r22.z, r22.z, r24.x + if_nz r22.z + if_z r25.w + ishl r22.z, r24.w, l(2) + mul r24.xyz, r5.yyyy, cb6[r22.z + 33].xywx + mad r24.xyz, cb6[r22.z + 32].xywx, r5.xxxx, r24.xyzx + mad r24.xyz, cb6[r22.z + 34].xywx, r5.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb6[r22.z + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb6[r24.w + 0].zwzz, cb6[r24.w + 0].xyxx + else + ishl r22.z, r24.w, l(2) + dp3 r29.x, -r25.xyzx, cb6[r22.z + 32].xyzx + dp3 r29.y, -r25.xyzx, cb6[r22.z + 33].xyzx + dp3 r29.z, -r25.xyzx, cb6[r22.z + 34].xyzx + lt r22.z, |r29.x|, |r29.y| + and r22.z, r22.z, l(1) + dp2 r24.z, |r29.xyxx|, icb[r22.z + 0].xyxx + lt r24.z, r24.z, |r29.z| + movc r22.z, r24.z, l(2), r22.z + dp3 r24.z, r29.xyzx, icb[r22.z + 0].xyzx + lt r24.z, r24.z, l(0.000000) + bfi r22.z, l(31), l(1), r22.z, r24.z + ushr r24.z, r22.z, l(1) + dp3 r24.z, r29.xyzx, icb[r24.z + 0].xyzx + div r27.w, l(0.000244140625), cb6[r24.w + 0].w + add r27.w, -r27.w, l(0.500000) + utof r28.w, r22.z + ult r29.w, r22.z, l(2) + and r29.w, r29.w, l(2) + dp2 r29.x, r29.xzxx, icb[r29.w + 0].xzxx + mul r29.x, r29.x, icb[r22.z + 4].z + div r29.x, r29.x, |r24.z| + mad r28.w, r29.x, r27.w, r28.w + add r28.w, r28.w, l(0.500000) + mul_sat r30.x, r28.w, l(0.166666672) + iadd r28.w, l(-1), icb[r22.z + 4].y + dp2 r28.w, r29.yzyy, icb[r28.w + 0].xyxx + mul r22.z, r28.w, icb[r22.z + 4].w + div r22.z, r22.z, |r24.z| + mad_sat r30.y, -r22.z, r27.w, l(0.500000) + mad r24.xy, r30.xyxx, cb6[r24.w + 0].zwzz, cb6[r24.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r22.z, r24.xyxx, t15.yzxw, s1, l(0.000000) + mul r19.y, r19.y, r22.z + endif + lt r22.z, l(0.000000), r19.y + if_nz r22.z + if_z r25.w + ftoi r24.x, cb3[r22.y + 6].x + else + add r24.yzw, r5.xxyz, -cb3[r22.x + 6].xxyz + lt r29.xyz, |r24.zwwz|, |r24.yyzy| + and r25.w, r29.y, r29.x + lt r24.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r24.yyzw + ushr r27.w, cb3[r18.z + 6].w, l(24) + ubfe r29.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r18.z + 6].wwww + movc r24.y, r24.y, r27.w, r29.x + and r27.w, l(255), cb3[r18.z + 6].w + movc r24.z, r24.z, r29.y, r27.w + ubfe r27.w, l(8), l(8), cb3[r22.y + 6].x + and r28.w, l(255), cb3[r22.y + 6].x + movc r24.w, r24.w, r27.w, r28.w + movc r24.z, r29.z, r24.z, r24.w + movc r24.y, r25.w, r24.y, r24.z + ilt r24.z, r24.y, l(80) + movc r24.x, r24.z, r24.y, l(-1) + endif + ishl r24.y, r24.x, l(2) + mad r29.xyz, r26.xyzx, cb4[r24.x + 288].xxxx, r5.xyzx + mul r24.z, l(5.000000), cb4[r24.x + 288].y + mad r29.xyz, r13.xyzx, r24.zzzz, r29.xyzx + mul r30.xyzw, r29.yyyy, cb4[r24.y + 65].xyzw + mad r30.xyzw, cb4[r24.y + 64].xyzw, r29.xxxx, r30.xyzw + mad r29.xyzw, cb4[r24.y + 66].xyzw, r29.zzzz, r30.xyzw + add r29.xyzw, r29.xyzw, cb4[r24.y + 67].xyzw + div r24.yzw, r29.xxyz, r29.wwww + ge r29.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.yzwy + ge r30.xyz, r24.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) + add r31.xy, -cb4[r24.x + 344].xyxx, cb4[r24.x + 344].zwzz + mad r24.yz, r24.yyzy, r31.xxyx, cb4[r24.x + 344].xxyx + mad r31.xy, r24.yzyy, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r31.xy, r31.xyxx + mad r24.yz, r24.yyzy, cb4[400].zzwz, -r31.xxyx + add r32.xyzw, r24.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r33.xyzw, r32.xxzz, r32.xxzz + add r31.zw, -r24.yyyz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r32.xz, r24.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r34.xy, r24.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r35.xy, r31.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r34.xy, -r34.xyxx, r34.xyxx, r32.ywyy + add r34.xy, r34.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r34.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r33.xz, r33.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.yz, r33.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r24.yyzy + mul r36.xy, r24.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.yz, -r32.xxzx, r32.xxzx, r31.zzwz + add r24.yz, r24.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r37.xy, r24.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.yz, r32.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r36.z, r37.x + mov r36.w, r24.y + mov r35.z, r34.x + mov r35.w, r33.x + add r32.xyzw, r35.zwxz, r36.zwxz + mov r37.z, r36.y + mov r37.w, r24.z + mov r34.z, r35.y + mov r34.w, r33.z + add r33.xyz, r34.zywz, r37.zywz + div r35.xyz, r35.xzwx, r32.zwyz + add r35.xyz, r35.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r35.xyz, r35.yxzy, cb4[400].xxxx + div r34.xyz, r34.zywz, r33.xyzx + add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r34.xyz, r34.xyzx, cb4[400].yyyy + mov r35.w, r34.x + mad r36.xyzw, r31.xyxy, cb4[400].xyxy, r35.ywxw + mad r24.yz, r31.xxyx, cb4[400].xxyx, r35.zzwz + mov r34.w, r35.y + mov r35.yw, r34.yyyz + mad r37.xyzw, r31.xyxy, cb4[400].xyxy, r35.xyzy + mad r34.xyzw, r31.xyxy, cb4[400].xyxy, r34.wywz + mad r31.xyzw, r31.xyxy, cb4[400].xyxy, r35.xwzw + mul r35.xyzw, r32.zwyz, r33.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r36.xyxx, t6.xxxx, s4, r24.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r27.w, r36.zwzz, t6.xxxx, s4, r24.w + mul r27.w, r27.w, r35.y + mad r25.w, r35.x, r25.w, r27.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r24.yzyy, t6.xxxx, s4, r24.w + mad r24.y, r35.z, r24.y, r25.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r34.xyxx, t6.xxxx, s4, r24.w + mad r24.y, r35.w, r24.z, r24.y + mul r35.xyzw, r32.xyzw, r33.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r37.xyxx, t6.xxxx, s4, r24.w + mad r24.y, r35.x, r24.z, r24.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r37.zwzz, t6.xxxx, s4, r24.w + mad r24.y, r35.y, r24.z, r24.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r34.zwzz, t6.xxxx, s4, r24.w + mad r24.y, r35.z, r24.z, r24.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r31.xyxx, t6.xxxx, s4, r24.w + mad r24.y, r35.w, r24.z, r24.y + ige r24.z, r24.x, l(0) + or r29.xyz, r29.xyzx, r30.xyzx + or r25.w, r29.y, r29.x + or r25.w, r29.z, r25.w + and r27.w, r24.w, l(0x7fffffff) + ult r27.w, l(0x7f800000), r27.w + or r25.w, r25.w, r27.w + mul r27.w, r32.y, r33.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.w, r31.zwzz, t6.xxxx, s4, r24.w + mad r24.y, r27.w, r24.w, r24.y + add r24.y, r24.y, l(-1.000000) + mad r24.x, cb4[r24.x + 288].w, r24.y, l(1.000000) + movc r24.x, r25.w, l(1.000000), r24.x + movc r24.x, r24.z, r24.x, l(1.000000) + else + mov r24.x, l(1.000000) + endif + if_nz r26.w + dp3 r24.y, r14.xyzx, r27.xyzx + mul_sat r24.z, r23.z, cb3[r18.z + 6].z + mad r24.z, r24.z, l(0.500000), r3.y + min r24.z, r24.z, l(1.000000) + div r24.z, r3.y, r24.z + mad r29.xyz, r14.xyzx, r24.yyyy, -r27.xyzx + dp3 r24.w, r28.xyzx, r29.xyzx + mul r24.y, r24.y, r24.y + mad r24.y, cb3[r18.z + 6].z, cb3[r18.z + 6].z, -r24.y + div_sat r24.y, r24.w, r24.y + mad r27.xyz, r27.xyzx, r24.yyyy, r28.xyzx + dp3 r24.y, r27.xyzx, r27.xyzx + rsq r24.y, r24.y + mul r26.xyz, r24.yyyy, r27.xyzx + else + mov r24.z, l(1.000000) + endif + if_nz r22.z + mul_sat r22.z, r23.z, cb3[r19.w + 6].y + mad r26.xyz, r6.xyzx, r7.wwww, r26.xyzx + dp3 r23.z, r26.xyzx, r26.xyzx + max r23.z, r23.z, l(0.0000610351562) + rsq r23.z, r23.z + mul r26.xyz, r23.zzzz, r26.xyzx + max r20.w, r20.w, l(5.960464478E-08) + movc r23.w, r21.w, r20.w, -r20.w + dp3 r20.w, r23.xywx, r23.xywx + rsq r20.w, r20.w + mul r23.xyz, r20.wwww, r23.xywx + mul r23.xyz, r23.xyzx, cb3[r18.z + 6].zzzz + mad r27.xyz, -r23.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r23.xyz, r23.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + dp3 r20.w, r13.xyzx, r27.xyzx + dp3 r21.w, r27.xyzx, r27.xyzx + sqrt r21.w, r21.w + div r20.w, r20.w, r21.w + dp3 r21.w, r13.xyzx, r23.xyzx + dp3 r23.x, r23.xyzx, r23.xyzx + sqrt r23.x, r23.x + div r21.w, r21.w, r23.x + add r20.w, r20.w, r21.w + mul_sat r20.w, r20.w, l(0.500000) + movc r18.x, r26.w, r20.w, r18.x + dp3_sat r20.w, r13.xyzx, r26.xyzx + dp3_sat r21.w, r8.xyzx, r26.xyzx + lt r23.x, l(0.000000), r22.z + mul r22.z, r22.z, r22.z + mad r23.y, r21.w, l(3.600000), l(0.400000) + div r22.z, r22.z, r23.y + mad r22.z, r11.w, r11.w, r22.z + min r22.z, r22.z, l(1.000000) + movc r22.z, r23.x, r22.z, r3.y + mul r22.z, r22.z, r22.z + mad r23.x, r20.w, r22.z, -r20.w + mad r20.w, r23.x, r20.w, l(1.000000) + add r21.w, -r21.w, l(1.000000) + mul r23.x, r21.w, r21.w + mul r23.x, r23.x, r23.x + mul r23.y, r21.w, r23.x + mad r21.w, -r23.x, r21.w, l(1.000000) + mad r23.xyz, r1.xzwx, r21.wwww, r23.yyyy + mul r20.w, r20.w, r20.w + div r20.w, r22.z, r20.w + mul r20.w, r24.z, r20.w + mad r21.w, -r11.x, r22.z, r11.x + mad r21.w, r21.w, r11.x, r22.z + sqrt r21.w, r21.w + mad r23.w, -r19.x, r22.z, r19.x + mad r22.z, r23.w, r19.x, r22.z + sqrt r22.z, r22.z + mul r22.z, r11.x, r22.z + mad r21.w, r19.x, r21.w, r22.z + add r21.w, r21.w, l(0.000100) + div r21.w, l(0.500000), r21.w + mul r20.w, r20.w, r21.w + mul r23.xyz, r20.wwww, r23.xyzx + min r23.xyz, r23.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r24.yz, r19.xxzx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r20.w, r24.yzyy, t13.yzwx, s1, l(0.000000) + mul r20.w, r10.x, r20.w + mul r20.w, r8.w, r20.w + div r20.w, r20.w, r9.w + mul r24.yzw, r15.xxyz, r20.wwww + div r24.yzw, r24.yyzw, r16.xxyz + add r23.xyz, r23.xyzx, r24.yzwy + mul r23.xyz, r23.xyzx, cb3[r19.w + 6].zzzz + max r23.xyz, r23.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r23.xyz, r23.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r24.yzw, r9.xxyz, r18.xxxx + mad r23.xyz, r23.xyzx, r19.xxxx, r24.yzwy + mul r24.yzw, r19.yyyy, cb3[r17.z + 6].xxyz + mul r24.xyz, r24.xxxx, r24.yzwy + mul r24.xyz, r17.xxxx, r24.xyzx + mul r23.xyz, r23.xyzx, r24.xyzx + else + mov r23.xyz, l(0,0,0,0) + endif + else + if_z r17.y + mad r17.x, cb3[r18.z + 6].y, l(0.500000), l(0.500000) + add r24.x, r17.x, -|cb3[r18.z + 6].x| + add r24.y, -r24.x, cb3[r18.z + 6].y + add r17.x, -|r24.x|, l(1.000000) + add r17.x, -|r24.y|, r17.x + max r17.x, r17.x, l(0.000488281250) + ge r17.y, cb3[r18.z + 6].x, l(0.000000) + movc r24.z, r17.y, r17.x, -r17.x + dp3 r17.x, r24.xyzx, r24.xyzx + rsq r17.x, r17.x + mul r24.xyz, r17.xxxx, r24.xyzx + add r25.xyz, -r5.xyzx, cb3[r22.x + 6].xyzx + dp3 r17.x, r25.xyzx, r25.xyzx + rsq r17.y, r17.x + mul r26.xyz, r17.yyyy, r25.xyzx + ftoi r17.y, cb3[r19.w + 6].w + mul r19.xyw, r24.xyxz, cb3[r18.z + 6].zzzz + mad r27.xyz, -r19.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r19.xyw, r19.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r25.xyxz + ftou r17.z, cb3[r17.z + 6].w + and r17.z, r17.z, l(1) + ieq r18.x, r17.z, l(0) + not r18.x, r18.x + lt r20.w, l(0.000000), cb3[r18.z + 6].z + and r18.x, r18.x, r20.w + dp3 r20.w, r27.xyzx, r27.xyzx + sqrt r20.w, r20.w + dp3 r21.w, r19.xywx, r19.xywx + sqrt r21.w, r21.w + dp3 r19.x, r27.xyzx, r19.xywx + mad r19.x, r20.w, r21.w, r19.x + mad r19.x, r19.x, l(0.500000), l(1.000000) + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x + movc r19.x, r18.x, r19.x, l(1.000000) + lt r19.y, cb3[r22.w + 6].w, l(0.000000) + if_nz r19.y + mul r19.y, cb3[r22.x + 6].w, cb3[r22.x + 6].w + mul r19.y, r17.x, r19.y + mad r19.y, -r19.y, r19.y, l(1.000000) + max r19.y, r19.y, l(0.000000) + add r17.x, r17.x, l(1.000000) + div r17.x, l(1.000000, 1.000000, 1.000000, 1.000000), r17.x + and r19.w, r18.x, l(0x3f800000) + add r20.w, -r17.x, r19.x + mad r17.x, r19.w, r20.w, r17.x + mul r19.y, r19.y, r19.y + mul r17.x, r17.x, r19.y + else + mul r27.xyz, r25.xyzx, cb3[r22.x + 6].wwww + dp3 r19.y, r27.xyzx, r27.xyzx + min r19.y, r19.y, l(1.000000) + add r19.y, -r19.y, l(1.000000) + log r19.y, r19.y + mul r19.y, r19.y, cb3[r22.w + 6].w + exp r19.y, r19.y + mul r17.x, r19.y, r19.x + endif + dp3 r19.x, r26.xyzx, -r24.xyzx + add r19.x, r19.x, -cb3[r18.z + 6].z + mul_sat r19.x, r19.x, cb3[r18.z + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r17.z, l(1.000000), r19.x + mul r17.x, r17.x, r19.x + not r18.x, r18.x + ige r19.x, r17.y, l(0) + and r18.x, r18.x, r19.x + if_nz r18.x + if_z r17.z + ishl r18.x, r17.y, l(2) + mul r19.xyw, r5.yyyy, cb6[r18.x + 33].xyxw + mad r19.xyw, cb6[r18.x + 32].xyxw, r5.xxxx, r19.xyxw + mad r19.xyw, cb6[r18.x + 34].xyxw, r5.zzzz, r19.xyxw + add r19.xyw, r19.xyxw, cb6[r18.x + 35].xyxw + div_sat r19.xy, r19.xyxx, r19.wwww + mad r19.xy, r19.xyxx, cb6[r17.y + 0].zwzz, cb6[r17.y + 0].xyxx + else + ishl r18.x, r17.y, l(2) + dp3 r24.x, -r25.xyzx, cb6[r18.x + 32].xyzx + dp3 r24.y, -r25.xyzx, cb6[r18.x + 33].xyzx + dp3 r24.z, -r25.xyzx, cb6[r18.x + 34].xyzx + lt r18.x, |r24.x|, |r24.y| + and r18.x, r18.x, l(1) + dp2 r19.w, |r24.xyxx|, icb[r18.x + 0].xyxx + lt r19.w, r19.w, |r24.z| + movc r18.x, r19.w, l(2), r18.x + dp3 r19.w, r24.xyzx, icb[r18.x + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r18.x, l(31), l(1), r18.x, r19.w + ushr r19.w, r18.x, l(1) + dp3 r19.w, r24.xyzx, icb[r19.w + 0].xyzx + div r20.w, l(0.000244140625), cb6[r17.y + 0].w + add r20.w, -r20.w, l(0.500000) + utof r21.w, r18.x + ult r22.z, r18.x, l(2) + and r22.z, r22.z, l(2) + dp2 r22.z, r24.xzxx, icb[r22.z + 0].xzxx + mul r22.z, r22.z, icb[r18.x + 4].z + div r22.z, r22.z, |r19.w| + mad r21.w, r22.z, r20.w, r21.w + add r21.w, r21.w, l(0.500000) + mul_sat r25.x, r21.w, l(0.166666672) + iadd r21.w, l(-1), icb[r18.x + 4].y + dp2 r21.w, r24.yzyy, icb[r21.w + 0].xyxx + mul r18.x, r21.w, icb[r18.x + 4].w + div r18.x, r18.x, |r19.w| + mad_sat r25.y, -r18.x, r20.w, l(0.500000) + mad r19.xy, r25.xyxx, cb6[r17.y + 0].zwzz, cb6[r17.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.y, r19.xyxx, t15.yxzw, s1, l(0.000000) + mul r17.x, r17.y, r17.x + endif + lt r17.x, l(0.000000), r17.x + if_nz r17.x + if_z r17.z + ftoi r17.x, cb3[r22.y + 6].x + else + add r19.xyw, r5.xyxz, -cb3[r22.x + 6].xyxz + lt r22.xzw, |r19.yyww|, |r19.xxxy| + and r17.y, r22.z, r22.x + lt r19.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyxw + ushr r17.z, cb3[r18.z + 6].w, l(24) + ubfe r22.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r18.z + 6].wwww + movc r17.z, r19.x, r17.z, r22.x + and r18.x, l(255), cb3[r18.z + 6].w + movc r18.x, r19.y, r22.z, r18.x + ubfe r18.z, l(8), l(8), cb3[r22.y + 6].x + and r19.x, l(255), cb3[r22.y + 6].x + movc r18.z, r19.w, r18.z, r19.x + movc r18.x, r22.w, r18.x, r18.z + movc r17.y, r17.y, r17.z, r18.x + ilt r17.z, r17.y, l(80) + movc r17.x, r17.z, r17.y, l(-1) + endif + ishl r17.y, r17.x, l(2) + mad r19.xyw, r26.xyxz, cb4[r17.x + 288].xxxx, r5.xyxz + mul r17.z, l(5.000000), cb4[r17.x + 288].y + mad r19.xyw, r2.xyxw, r17.zzzz, r19.xyxw + mul r22.xyzw, r19.yyyy, cb4[r17.y + 65].xyzw + mad r22.xyzw, cb4[r17.y + 64].xyzw, r19.xxxx, r22.xyzw + mad r22.xyzw, cb4[r17.y + 66].xyzw, r19.wwww, r22.xyzw + add r22.xyzw, r22.xyzw, cb4[r17.y + 67].xyzw + div r19.xyw, r22.xyxz, r22.wwww + ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xywx + ge r24.xyz, r19.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r17.yz, -cb4[r17.x + 344].xxyx, cb4[r17.x + 344].zzwz + mad r17.yz, r19.xxyx, r17.yyzy, cb4[r17.x + 344].xxyx + mad r18.xz, r17.yyzy, cb4[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) + round_ni r18.xz, r18.xxzx + mad r17.yz, r17.yyzy, cb4[400].zzwz, -r18.xxzx + add r25.xyzw, r17.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r26.xyzw, r25.xxzz, r25.xxzz + add r19.xy, -r17.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r25.xz, r17.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r27.xy, r17.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r28.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r27.xy, -r27.xyxx, r27.xyxx, r25.ywyy + add r27.xy, r27.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r27.xy, r27.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r26.xz, r26.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r17.yz, r26.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r17.yyzy + mul r29.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r17.yz, -r25.xxzx, r25.xxzx, r19.xxyx + add r17.yz, r17.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r30.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r17.yz, r25.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r29.z, r30.x + mov r29.w, r17.y + mov r28.z, r27.x + mov r28.w, r26.x + add r25.xyzw, r28.zwxz, r29.zwxz + mov r30.z, r29.y + mov r30.w, r17.z + mov r27.z, r28.y + mov r27.w, r26.z + add r26.xyz, r27.zywz, r30.zywz + div r28.xyz, r28.xzwx, r25.zwyz + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.yxzy, cb4[400].xxxx + div r27.xyz, r27.zywz, r26.xyzx + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.xyzx, cb4[400].yyyy + mov r28.w, r27.x + mad r29.xyzw, r18.xzxz, cb4[400].xyxy, r28.ywxw + mad r17.yz, r18.xxzx, cb4[400].xxyx, r28.zzwz + mov r27.w, r28.y + mov r28.yw, r27.yyyz + mad r30.xyzw, r18.xzxz, cb4[400].xyxy, r28.xyzy + mad r27.xyzw, r18.xzxz, cb4[400].xyxy, r27.wywz + mad r28.xyzw, r18.xzxz, cb4[400].xyxy, r28.xwzw + mul r31.xyzw, r25.zwyz, r26.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r29.xyxx, t6.xxxx, s4, r19.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r29.zwzz, t6.xxxx, s4, r19.w + mul r18.z, r18.z, r31.y + mad r18.x, r31.x, r18.x, r18.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r17.yzyy, t6.xxxx, s4, r19.w + mad r17.y, r31.z, r17.y, r18.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r27.xyxx, t6.xxxx, s4, r19.w + mad r17.y, r31.w, r17.z, r17.y + mul r29.xyzw, r25.xyzw, r26.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r30.xyxx, t6.xxxx, s4, r19.w + mad r17.y, r29.x, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r30.zwzz, t6.xxxx, s4, r19.w + mad r17.y, r29.y, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r27.zwzz, t6.xxxx, s4, r19.w + mad r17.y, r29.z, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r28.xyxx, t6.xxxx, s4, r19.w + mad r17.y, r29.w, r17.z, r17.y + ige r17.z, r17.x, l(0) + or r22.xyz, r22.xyzx, r24.xyzx + or r18.x, r22.y, r22.x + or r18.x, r22.z, r18.x + and r18.z, r19.w, l(0x7fffffff) + ult r18.z, l(0x7f800000), r18.z + or r18.x, r18.z, r18.x + mul r18.z, r25.y, r26.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r28.zwzz, t6.xxxx, s4, r19.w + mad r17.y, r18.z, r19.x, r17.y + add r17.y, r17.y, l(-1.000000) + mad r17.x, cb4[r17.x + 288].w, r17.y, l(1.000000) + movc r17.x, r18.x, l(1.000000), r17.x + movc r17.x, r17.z, r17.x, l(1.000000) + else + mov r17.x, l(1.000000) + endif + else + mov r17.x, l(1.000000) + endif + mul r15.w, r15.w, r17.x + mov r23.xyz, l(0,0,0,0) + endif + add r21.xyz, r21.xyzx, r23.xyzx + mov r16.w, r18.w + endloop + mov r11.y, r15.w + add r20.xyz, r20.xyzx, r21.xyzx + iadd r11.z, r11.z, l(1) +endloop +mad r6.xyz, r20.xyzx, r11.yyyy, r12.xyzx +ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r3.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + dp3 r2.z, r2.xywx, r8.xyzx + max r2.z, r2.z, l(0.000000) + add r2.z, r0.z, r2.z + mad r3.y, r11.w, l(-16.000000), l(-1.000000) + exp r3.y, r3.y + log r2.z, |r2.z| + mul r2.z, r2.z, r3.y + exp r2.z, r2.z + add r2.z, r0.z, r2.z + add r2.z, r2.z, l(-1.000000) + mov_sat r11.xyz, r2.zzzz + mad r12.xyz, r9.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r9.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r9.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + max r12.xyz, r0.zzzz, r12.xyzx +else + mov r11.xyz, r1.yyyy + mov r12.xyz, r1.yyyy +endif +mad r15.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r16.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx +dp2 r0.z, r16.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx +mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r16.xyz, r15.xzyx, -r16.xyzx +max r0.z, |r16.y|, |r16.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.y, |r16.z|, l(-208.000000) +mul_sat r1.y, r1.y, l(0.031250) +max r0.z, r0.z, r1.y +ne r1.y, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.y, r1.y, r2.z +if_nz r1.y + mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r16.xyz, r15.xzyx, -r16.xyzx + max r1.y, |r16.y|, |r16.x| + add r1.y, r1.y, l(-29.000000) + mul_sat r1.y, r1.y, l(0.500000) + add r2.z, |r16.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.y, r1.y, r2.z + lt r2.z, r1.y, l(1.000000) + if_nz r2.z + mad r16.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t19.yzwx, s2, l(0.000000) + add r2.z, -r1.y, l(1.000000) + mul r3.y, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.y, r3.y, r16.y + min r3.y, r7.w, r3.y + mul r16.w, r3.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.y, r18.w, r2.z, r0.z + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mul r19.xyzw, r2.zzzz, r19.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t20.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.xxxx, r16.xyzx + mov r16.w, r17.x + mul r16.xyzw, r2.zzzz, r16.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r18.xyzx + mul r17.xyzw, r2.zzzz, r17.xyzw + else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r3.y, r0.z + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r15.xzyx, -r18.xyzx + max r2.z, |r18.y|, |r18.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r7.w, |r18.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r2.z, r2.z, r7.w + lt r7.w, r2.z, l(1.000000) + if_nz r7.w + mad r18.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t21.yzwx, s2, l(0.000000) + add r7.w, -r2.z, l(1.000000) + mul r1.y, r1.y, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r18.y + min r7.w, r8.w, r7.w + mul r18.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t22.xyzw, s1, l(0.000000) + mad r3.y, r21.w, r1.y, r3.y + add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t22.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r20.yyyy, r22.xyzx + mov r22.w, r20.y + mad r19.xyzw, r22.xyzw, r1.yyyy, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t22.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r1.yyyy, r16.xyzw + mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r18.xyzx + mad r17.xyzw, r20.xyzw, r1.yyyy, r17.xyzw + endif + lt r1.y, l(0.000000), r2.z + if_nz r1.y + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r18.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r15.xyzx, t23.yzwx, s2, l(0.000000) + add r1.y, -r0.z, l(1.000000) + mul r1.y, r1.y, r2.z + max r2.z, r20.y, r15.y + min r2.z, r18.y, r2.z + mul r15.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t24.xyzw, s1, l(0.000000) + add r20.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t24.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r21.yyyy, r20.xyzx + mov r20.w, r21.y + mad r19.xyzw, r20.xyzw, r1.yyyy, r19.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t24.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r21.xxxx, r15.xyzx + mov r15.w, r21.x + mad r16.xyzw, r15.xyzw, r1.yyyy, r16.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r15.xyzx + mad r17.xyzw, r21.xyzw, r1.yyyy, r17.xyzw + mad r3.y, r18.w, r1.y, r3.y + endif + mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.y + add r0.z, r0.z, r1.y + mul r15.y, r0.z, l(0.500000) +else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r15.yxyy, cb0[213].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.zw, r15.yyyx, cb0[213].wwwy +mad r18.x, r15.w, l(0.375000), r15.z +add r17.xyzw, r17.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[214].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.zw, r15.yyyx, cb0[214].wwwy +mad r18.x, r15.w, l(0.375000), r15.z +add r16.xyzw, r16.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[215].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.xy, r15.yxyy, cb0[215].wyww +mad r18.x, r15.y, l(0.375000), r15.x +add r15.xyzw, r18.wyzx, r19.xyzw +ge r18.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r18.y, r18.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r18.xyzw, r4.zwzz, t18.xyzw, s1, l(0.000000) + lt r19.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r18.xyzw| + or r4.zw, r19.zzzw, r19.xxxy + or r0.z, r4.w, r4.z + if_nz r0.z + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mov r4.z, l(1.000000) + mov r4.w, r0.z + mov r1.y, l(0) + loop + ge r2.z, l(4.600000), r4.w + breakc_nz r2.z + iadd r2.z, r1.y, l(1) + mul r19.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r4.zw, r19.xxxy + mov r1.y, r2.z + continue + endloop + mul r18.xyzw, r4.zzzz, r18.xyzw + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb7[3].x, cb7[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r19.x, r0.z, l(0.00390625000) + mov r19.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r19.xyxx, t17.zwxy, s1, l(0.000000) + mad r4.zw, r4.zzzw, cb7[2].xxxy, cb7[2].zzzw + mul r19.x, r4.z, l(3.54490781) + mul r19.yzw, r4.wwww, r18.yyzw + mul r0.z, r18.x, l(0.406976730) + exp r0.z, r0.z + mul r18.xyzw, r0.zzzz, r19.xyzw + mov r19.xyzw, r18.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.y + breakc_nz r2.z + mul r20.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r20.xyzw, r19.xyzw + dp2 r3.y, r20.yxyy, r19.xyxx + dp2 r4.z, r20.zxzz, r19.xzxx + dp2 r4.w, r20.wxww, r19.xwxx + iadd r7.w, r0.z, l(1) + mov r19.x, r2.z + mov r19.y, r3.y + mov r19.zw, r4.zzzw + mov r0.z, r7.w + continue + endloop + mul r18.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r19.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r18.xyzw, r19.xyzw + dp2 r1.y, r18.yxyy, r19.xyxx + dp2 r2.z, r18.zxzz, r19.xzxx + dp2 r3.y, r18.wxww, r19.xwxx + mul r19.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.z, r18.xyzw, r19.xyzw + dp2 r4.w, r18.yxyy, r19.xyxx + dp2 r7.w, r18.zxzz, r19.xzxx + dp2 r8.w, r18.wxww, r19.xwxx + mul r19.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r18.xyzw, r19.xyzw + dp2 r10.x, r18.yxyy, r19.xyxx + dp2 r12.w, r18.zxzz, r19.xzxx + dp2 r14.w, r18.wxww, r19.xwxx + mul r17.w, r0.z, l(0.886226952) + mul r17.x, r3.y, l(-1.02332675) + mul r17.y, r1.y, l(-1.02332675) + mul r17.z, r2.z, l(1.02332675) + mul r16.x, r8.w, l(-1.02332675) + mul r16.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r16.z, r7.w, l(1.02332675) + mul r15.w, r9.w, l(0.886226952) + mul r15.x, r14.w, l(-1.02332675) + mul r15.y, r10.x, l(-1.02332675) + mul r15.z, r12.w, l(1.02332675) + endif +endif +dp3 r0.z, r17.xyzx, r2.xywx +add r0.z, r17.w, r0.z +max r17.x, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r2.xywx +add r0.z, r16.w, r0.z +max r17.y, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r2.xywx +add r0.z, r15.w, r0.z +max r17.z, r0.z, l(0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.y, r11.w, l(0.001000) +log r1.y, r1.y +mad r1.y, -r1.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.y +mul r2.xy, r4.xyxx, cb1[0].wwww +round_ni r2.xy, r2.xyxx +add r1.y, |r3.w|, -cb1[2].y +round_ni r1.y, r1.y +add r2.z, l(-1.000000), cb1[1].x +max r2.w, r1.y, l(0.000000) +min r2.z, r2.z, r2.w +ge r1.y, r2.z, r1.y +mad r2.x, r2.y, cb1[0].x, r2.x +ftoi r2.xy, r2.xzxx +iadd r2.xy, r2.xyxx, cb0[110].zwzz +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.x, r2.x, l(0), t0.xxxx +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.y, r2.y, l(0), t0.xxxx +and r2.x, r2.y, r2.x +and r1.y, r1.y, r2.x +mul r2.xyz, r17.xyzx, cb0[111].xxxx +dp3 r2.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r13.w, l(1.000000) +mov r2.yzw, l(0,0,0,0) +mov r3.y, l(1.000000) +mov r4.z, r1.y +mov r4.w, l(0) +loop + lt r7.w, l(0.010000), r3.y + ine r8.w, r4.z, l(0) + and r8.w, r7.w, r8.w + if_nz r8.w + firstbit_lo r8.w, r4.z + ishl r9.w, l(1), r8.w + xor r4.z, r4.z, r9.w + ishl r8.w, r8.w, l(3) + dp4 r15.x, cb1[r8.w + 6].xyzw, r5.xyzw + dp4 r15.y, cb1[r8.w + 7].xyzw, r5.xyzw + dp4 r15.z, cb1[r8.w + 8].xyzw, r5.xyzw + ge r16.xyz, cb1[r8.w + 5].xyzx, |r15.xyzx| + and r9.w, r16.y, r16.x + and r9.w, r16.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb1[r8.w + 5].x + mul r16.xyz, |r15.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r16.xy, r16.xyxx, r16.xyxx + add r18.xyz, -|r15.xyzx|, cb1[r8.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb1[r8.w + 9].xyzx + eq r10.x, l(1.000000), cb1[r8.w + 10].x + if_nz r10.x + dp3 r19.x, cb1[r8.w + 6].xyzx, r14.xyzx + dp3 r19.y, cb1[r8.w + 7].xyzx, r14.xyzx + dp3 r19.z, cb1[r8.w + 8].xyzx, r14.xyzx + add r20.xyz, -r15.xyzx, cb1[r8.w + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r15.xyzx, -cb1[r8.w + 5].xyzx + div r21.xyz, r21.xyzx, r19.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + movc r20.xyz, r22.xyzx, r20.xyzx, r21.xyzx + min r10.x, r20.y, r20.x + min r10.x, r20.z, r10.x + mad r15.xyz, r19.xyzx, r10.xxxx, r15.xyzx + else + mov r15.xyz, r14.xyzx + endif + dp3 r10.x, r15.xyzx, r15.xyzx + rsq r10.x, r10.x + mul r15.xyz, r10.xxxx, r15.xyzx + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r20.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r19.xyz, -r19.xyzx, r20.xyzx + itof r19.xyz, r19.xyzx + dp3 r10.x, r15.xyzx, r19.xyzx + div r15.xyz, r15.xyzx, r10.xxxx + lt r10.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r19.xxxy + movc r15.xy, r10.xxxx, r15.zwzz, r15.xyxx + dp4 r10.x, cb1[r8.w + 4].xyzw, r13.xyzw + max r10.x, r10.x, l(0.000000) + max r10.x, r10.x, l(0.000100) + min r11.w, r18.z, r18.y + min r11.w, r11.w, r18.x + add r12.w, r16.y, r16.x + mad r12.w, r16.z, r16.z, r12.w + mad r9.w, r9.w, r9.w, -r12.w + mul r9.w, r9.w, cb1[r8.w + 9].x + mul r9.w, r9.w, cb1[r8.w + 9].x + add r12.w, l(1.000000), -cb1[r8.w + 10].y + mul r9.w, r9.w, r12.w + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r11.w, cb1[r8.w + 10].y, r9.w + mul r11.w, r9.w, cb1[r8.w + 10].w + mad r15.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r15.xy, r15.xyxx, cb1[1].wwww, cb1[2].wwww + mov r15.z, cb1[r8.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + mul r15.xyz, r15.xyzx, cb1[r8.w + 9].wwww + div r12.w, r2.x, r10.x + min r12.w, |r12.w|, l(1.000000) + mad r12.w, r12.w, l(2.000000), r2.x + add r10.x, r10.x, l(2.000000) + div r10.x, r12.w, r10.x + add r10.x, r10.x, l(-1.000000) + mad r10.x, r10.x, cb0[112].w, l(1.000000) + mul r15.xyz, r10.xxxx, r15.xyzx + mul r15.xyz, r11.wwww, r15.xyzx + mad r2.yzw, r15.xxyz, r3.yyyy, r2.yyzw + mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) + mul r3.y, r3.y, r8.w + endif + mov r4.w, l(-1) + continue + else + mov r4.w, r7.w + break + endif + mov r4.w, r7.w +endloop +if_nz r4.w + dp3 r1.y, r14.xyzx, r14.xyzx + rsq r1.y, r1.y + mul r5.xzw, r1.yyyy, r14.xxyz + lt r14.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r5.xzwx + lt r15.xyz, r5.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r14.xyz, -r14.xyzx, r15.xyzx + itof r14.xyz, r14.xyzx + dp3 r1.y, r5.xzwx, r14.xyzx + div r5.xzw, r5.xxzw, r1.yyyy + lt r1.y, r5.w, l(0.000000) + add r4.zw, -|r5.zzzx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r4.zw, r4.zzzw, r14.xxxy + movc r4.zw, r1.yyyy, r4.zzzw, r5.xxxz + mov r13.w, l(1.000000) + dp4 r1.y, cb1[3].xyzw, r13.xyzw + max r1.y, r1.y, l(0.000000) + max r1.y, r1.y, l(0.000100) + mad r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r13.xy, r4.zwzz, cb1[1].wwww, cb1[2].wwww + mov r13.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r5.xzw, r13.xyzx, t5.xwyz, s3, r0.z + div r0.z, r2.x, r1.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.x + add r1.y, r1.y, l(2.000000) + div r0.z, r0.z, r1.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r5.xzw, r0.zzzz, r5.xxzw + mad r2.yzw, r5.xxzw, r3.yyyy, r2.yyzw +endif +mul r2.xyz, r2.yzwy, cb0[112].zzzz +mul r2.xyz, r2.xyzx, cb0[111].yyyy +if_nz r3.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r5.xzw, v1.xyxx, t2.xwyz, s1, cb0[108].x + add r1.y, -r0.z, l(1.000000) + mul r13.xyz, r1.yyyy, r2.xyzx + mad r2.xyz, r5.xzwx, r0.zzzz, r13.xyzx +endif +mul r5.xzw, r9.xxyz, r17.xxyz +mul r5.xzw, r5.xxzw, cb0[111].xxxx +add r0.z, -r3.x, l(1.000000) +div r0.z, r0.z, r3.x +mul r1.xyz, r0.zzzz, r1.xzwx +mad r1.xyz, r1.xyzx, r10.yzwy, r10.yzwy +mul r1.xyz, r1.xyzx, r2.xyzx +mul r1.xyz, r11.xyzx, r1.xyzx +mad r1.xyz, r5.xzwx, r12.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r6.xyzx +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r5.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r8.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r8.xyzx, -r7.xyzx + add r2.w, r5.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w + mul r4.z, r0.x, r3.z + mad r4.w, r4.z, r2.w, cb0[44].y + mad r2.w, -r4.z, r2.w, r2.w + mul r4.z, r2.w, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.x, r4.w, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.z, l(5.960464478E-08), |r4.z| + exp r5.w, -r4.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r5.z, r5.w, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r5.z, l(5.960464478E-08), |r2.w| + exp r5.w, -r2.w + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r5.z, r5.w, r2.w + mul r2.w, r2.w, r4.w + mad r2.w, r5.x, r4.z, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r6.w, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r6.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r3.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t16.xyzw, s1, l(0.000000) + add r0.y, |r3.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r0.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad o0.xyz, r1.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +endif +// === End Fog Modification === +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0_original_backup.asm new file mode 100644 index 000000000..94ad4d150 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0_original_backup.asm @@ -0,0 +1,1942 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 16:35:51 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[5], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB7[4], 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_comparison +dcl_sampler s5, mode_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture2d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture3d (float,float,float,float) t23 +dcl_resource_texture3d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture2d (float,float,float,float) t27 +dcl_resource_texture2d (float,float,float,float) t28 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 38 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t26.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t27.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r2.xyw, r1.wwww, r3.xyxz +utof r4.xy, r0.xyxx +mul r4.zw, v0.xxxy, cb0[82].zzzw +mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r5.zw, r5.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.yyyy, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw +mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r3.w, r5.y, cb0[1].z +mad r3.w, cb0[0].z, r5.x, r3.w +mad r3.w, cb0[2].z, r5.z, r3.w +add r3.w, r3.w, cb0[3].z +eq r6.x, l(0.000000), cb0[86].w +add r6.yzw, -r5.xxyz, cb0[44].xxyz +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r6.xyz, r6.xxxx, r6.yzwy, r7.xyzx +dp3 r6.w, r6.xyzx, r6.xyzx +max r7.w, r6.w, l(9.999999939E-09) +rsq r7.w, r7.w +mul r8.xyz, r6.xyzx, r7.wwww +mul r6.w, r6.w, r7.w +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r9.xy, v1.xyxx, t25.xyzw, s1, cb0[108].x +else + mov r9.xy, l(1.000000,1.000000,0,0) +endif +lt r9.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy +if_nz r9.z + add r9.z, |r2.y|, |r2.x| + add r9.z, |r2.w|, r9.z + div r9.z, l(1.000000, 1.000000, 1.000000, 1.000000), r9.z + mul r10.xyz, |r2.xywx|, r9.zzzz + mul r11.xyz, r5.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r9.z, r11.xyzx, t10.yzxw, s2, l(0.000000) + mul r11.xyzw, r10.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) + add r10.xyw, r11.zwzz, r11.xxxy + mad r10.xyz, r10.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r10.xywx + mad r10.w, r9.z, l(2.000000), l(-1.000000) + mul r10.xyz, r10.wwww, r10.xyzx + mov r10.w, |r2.y| + add r10.w, r10.w, l(-0.700000) + mul_sat r10.w, r10.w, l(4.000000) + mad r11.x, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r11.x + add r11.x, -cb0[229].z, cb0[229].y + mad r10.w, r10.w, r11.x, cb0[229].z + mul r10.xyz, r10.wwww, r10.xyzx +else + mov r10.xyz, l(0,0,0,0) + mov r9.z, l(0) +endif +mad r10.w, -r3.y, r1.w, l(-0.200000) +if_nz r9.w + mul r11.xyz, r2.xywx, cb0[233].zzzz + mul r12.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r11.xyz, r11.xyzx, cb0[225].xxxx, r12.xyzx + max r9.w, -r2.y, l(0.000000) + min r9.w, r9.w, l(0.900000) + add r9.w, -r9.w, l(1.000000) + mul_sat r11.w, r10.w, l(-10.000000) + mad r12.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.x + max r11.w, r11.w, l(0.100000) + min r11.w, r11.w, l(1.000000) + mul r9.w, r9.w, r11.w + mad r11.xyz, r11.xyzx, r9.wwww, r5.xyzx + add r10.xyz, r10.xyzx, r11.xyzx + mul r11.xyz, r10.yyyy, cb5[1].xyzx + mad r11.xyz, cb5[0].xyzx, r10.xxxx, r11.xyzx + mad r10.xyz, cb5[2].xyzx, r10.zzzz, r11.xyzx + add r10.xyz, r10.xyzx, cb5[3].xyzx + mad r11.x, r10.x, l(0.500000), cb5[4].x + mad r9.w, r10.y, l(0.500000), l(0.500000) + add r11.z, -r9.w, cb5[4].y + add r10.xy, r11.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r9.w, r10.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r10.xyxx, t9.xxxx, s5, r9.w +else + mov r9.w, l(1.000000) +endif +mov_sat r10.x, r2.y +add r10.y, l(1.000000), -cb0[230].w +mad r10.x, r10.x, r10.y, cb0[230].w +add r10.yz, r5.xxzx, -cb0[44].xxzx +max r10.y, |r10.z|, |r10.y| +mul r10.z, r9.w, r10.x +mul r11.x, l(0.0500000119), cb0[222].w +mad r11.y, -cb0[222].w, l(0.700000), r10.y +div r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.x +mul_sat r11.x, r11.x, r11.y +mad r11.y, r11.x, l(-2.000000), l(3.000000) +mul r11.x, r11.x, r11.x +mul r11.x, r11.x, r11.y +mad r9.w, -r10.x, r9.w, l(1.000000) +mad r9.w, r11.x, r9.w, r10.z +ge r10.z, r1.z, l(0.045000) +and r10.z, r10.z, l(0x3f800000) +mul r10.z, r9.w, r10.z +deriv_rty_coarse r11.xyz, r5.xyzx +deriv_rtx_coarse r12.xyz, r5.zxyz +mul r13.xyz, r11.xyzx, r12.xyzx +mad r11.xyz, r11.zxyz, r12.yzxy, -r13.xyzx +dp3 r11.w, r11.xyzx, r11.xyzx +max r11.w, r11.w, l(1.175494351E-38) +rsq r11.w, r11.w +mul r12.xyz, r11.wwww, r11.xzyx +mov_sat r11.y, r12.x +add r11.z, r11.y, l(-0.988000) +mul_sat r11.z, r11.z, l(1000.012878) +mad r12.w, r11.z, l(-2.000000), l(3.000000) +mul r11.z, r11.z, r11.z +mul r11.z, r11.z, r12.w +add r12.w, |r3.w|, l(-15.000000) +mul_sat r12.w, r12.w, l(0.015000) +add r12.w, -r12.w, l(1.000000) +lt r13.x, l(0.000488281250), cb0[223].y +mad r13.y, cb0[223].z, l(0.300000), l(0.687000) +add r11.y, r11.y, -r13.y +mul_sat r11.y, r11.y, l(-1000.012878) +mad r13.y, r11.y, l(-2.000000), l(3.000000) +mul r11.y, r11.y, r11.y +mul r11.y, r11.y, r13.y +mad r11.x, r11.x, r11.w, l(0.500000) +mul_sat r11.x, r11.x, l(2.500000) +mad r11.w, r11.x, l(-2.000000), l(3.000000) +mul r11.x, r11.x, r11.x +mul r11.x, r11.x, r11.w +mul r11.x, r11.x, r11.y +lt r11.x, l(0.000488281250), r11.x +and r11.x, r11.x, r13.x +if_nz r11.x + mul r11.xy, |r12.yzyy|, |r12.yzyy| + add r11.w, r11.y, r11.x + div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w + mul r11.xy, r11.wwww, r11.xyxx + mul r13.xyz, r12.xzyx, l(0.000000, 1.000000, 0.000000, 0.000000) + mad r13.xyz, r12.yxzy, l(1.000000, 0.000000, 0.000000, 0.000000), -r13.xyzx + dp2 r11.w, r13.xyxx, r13.xyxx + rsq r11.w, r11.w + mul r13.xyz, r11.wwww, r13.xyzx + mul r14.xyz, r12.xzyx, r13.xyzx + mad r14.xyz, r13.zxyz, r12.zyxz, -r14.xyzx + dp3 r11.w, r14.xyzx, r14.xyzx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + add r15.xyz, r5.xyzx, r5.xyzx + round_ni r15.xyz, r15.xyzx + add r15.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + add r13.zw, r15.yyyy, r15.xxxz + dp2 r11.w, r13.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + lt r13.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.zzzy + lt r15.xy, r12.zyzz, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r13.zw, r13.zzzw, -r15.xxxy + itof r13.zw, r13.zzzw + mul r15.xy, r5.xzxx, r13.zwzz + mul r13.z, r9.z, r11.w + add r13.w, -r11.w, l(1.000000) + mad r13.w, r13.w, l(0.700000), l(0.300000) + mul r16.xy, r13.zzzz, l(3.000000, 6.000000, 0.000000, 0.000000) + mad r13.z, -cb0[223].x, r13.w, r16.x + frc r17.x, r13.z + mad r13.z, cb0[223].x, l(-0.300000), r16.y + frc r17.y, r13.z + mul r11.w, r11.w, l(5.000000) + round_ni r11.w, r11.w + add r16.x, r11.w, l(1.000000) + mul r16.y, r5.y, r16.x + mov r5.w, l(0.100000) + mul r13.zw, r5.yyyw, r16.xxxy + frc r13.zw, r13.zzzw + add r16.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + add r16.xy, r13.zwzz, -r16.xyxx + add r16.xy, r16.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) + mul_sat r16.xy, r16.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) + mad r16.zw, r16.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) + mul r16.xy, r16.xyxx, r16.xyxx + mul r16.xy, r16.xyxx, r16.zwzz + add r16.zw, -r13.zzzw, r17.xxxy + max r16.xy, r16.zwzz, r16.xyxx + add r17.zw, -r17.xxxy, r13.zzzw + add r17.zw, r17.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) + mul r17.zw, r17.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) + max r17.zw, r17.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r18.xy, r17.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r17.zw, r17.zzzw, r17.zzzw + mul r17.zw, r17.zzzw, r18.xxxy + add r16.zw, r16.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + max r16.zw, r16.zzzw, r17.zzzw + ge r13.zw, r13.zzzw, r17.xxxy + and r13.zw, r13.zzzw, l(0, 0, 0x3f800000, 0x3f800000) + add r16.zw, -r16.xxxy, r16.zzzw + mad r13.zw, r13.zzzw, r16.zzzw, r16.xxxy + mad r11.w, r13.z, r13.z, l(-0.400000) + mul_sat r11.w, r11.w, l(1.66666663) + mad r13.z, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r13.z + mad r13.z, r13.w, l(2.000000), l(-1.000000) + mul r16.x, r11.w, l(0.010000) + mul r16.y, r13.z, r16.x + mad r17.x, r9.z, l(0.100000), r16.y + mul r16.x, r11.w, r16.x + mad r16.x, r16.x, r13.z, r9.z + mul r17.y, r9.z, r16.x + mov r15.z, r5.y + mad r16.xy, r15.yzyy, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t11.xyzw, s2, cb0[108].x + mov r15.w, -r15.x + mad r15.xy, r15.wzww, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r15.xyzw, r15.xyxx, t11.xyzw, s2, cb0[108].x + mul r15.xyzw, r11.yyyy, r15.xyzw + mad r15.xyzw, r16.xyzw, r11.xxxx, r15.xyzw + mad r11.xy, r15.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r9.z, r11.w, l(2.000000), l(-1.000000) + mad_sat r9.z, r9.z, l(0.800000), r13.w + mad r13.w, -r15.w, l(0.500000), l(1.000000) + mad r9.z, r9.z, r13.w, l(-0.700000) + mul_sat r9.z, r9.z, l(3.33333325) + mad r13.w, r9.z, l(-2.000000), l(3.000000) + mul r9.z, r9.z, r9.z + mul r9.z, r9.z, r13.w + mul r13.z, r13.z, r15.w + mad_sat r11.w, r13.z, l(0.500000), r11.w + mad r11.w, r11.w, l(0.500000), l(0.100000) + max r9.z, r9.z, r11.w + add r11.w, -r9.z, l(1.000000) + max r11.w, r11.w, l(0.000000) + mul r13.z, r11.w, r11.w + mul r13.z, r13.z, r13.z + mul r11.w, r11.w, r13.z + ge r11.w, r15.z, r11.w + and r11.w, r11.w, l(0x3f800000) + mad r9.z, r9.z, l(0.700000), l(0.200000018) + mad r9.z, r11.w, r9.z, l(0.100000) + mul r9.z, r15.z, r9.z + mul r9.z, r9.z, cb0[223].y + mul r9.z, r9.z, l(0.330000) + mul r11.w, r10.z, cb0[222].x + mul r11.w, r12.w, r11.w + mul r9.z, r9.z, r11.w + dp2 r11.w, r11.xyxx, r11.xyxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r11.w, r11.w, l(0.000488281250) + mul_sat r13.z, r9.z, l(10.000000) + mad r13.w, r13.z, l(-2.000000), l(3.000000) + mul r13.z, r13.z, r13.z + mul r13.z, r13.z, r13.w + mul r13.z, r13.z, cb0[223].y + mul r15.xy, r11.xyxx, r13.zzzz + add r11.x, l(-1.500000), cb0[223].y + mul_sat r11.x, r11.x, l(0.666666687) + mad r11.y, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r11.y + mul r11.y, r11.x, l(-0.200000) + mad r11.x, -r11.x, l(-0.200000), r11.w + mad r15.z, r9.z, r11.x, r11.y + dp3 r11.x, r15.xyzx, r15.xyzx + max r11.x, r11.x, l(1.175494351E-38) + rsq r11.x, r11.x + mul r11.xyw, r11.xxxx, r15.xyxz + mov r15.x, r13.y + mov r15.y, r14.x + mov r15.z, r12.y + dp3 r15.x, r15.xyzx, r11.xywx + mov r14.w, r12.x + dp2 r15.y, r14.ywyy, r11.ywyy + mov r12.x, r13.x + mov r12.y, r14.z + dp3 r15.z, r12.xyzx, r11.xywx + mad r11.xyw, -r3.xyxz, r1.wwww, r15.xyxz + mad r13.xyz, r9.zzzz, r11.xywx, r2.xywx + mul r9.z, r9.z, cb0[223].y + mul r9.z, r9.z, l(0.330000) +else + mov r13.xyz, r2.xywx + mov r9.z, l(0) +endif +lt r11.xy, l(0.000488281250, 0.000488281250, 0.000000, 0.000000), cb0[227].ywyy +or r11.x, r11.y, r11.x +lt r11.y, l(0.000488281250), r11.z +and r11.x, r11.y, r11.x +if_nz r11.x + mul r11.xyw, r2.ywyx, l(1.000000, 0.000000, 0.000000, 0.000000) + mad r11.xyw, r2.xyxw, l(0.000000, 0.000000, 0.000000, 1.000000), -r11.xyxw + dp2 r12.x, r11.xwxx, r11.xwxx + rsq r12.x, r12.x + mul r11.xyw, r11.xyxw, r12.xxxx + mul r12.xyz, r2.ywxy, r11.xywx + mad r12.xyz, r11.wxyw, r2.wxyw, -r12.xyzx + dp3 r11.y, r12.xyzx, r12.xyzx + rsq r11.y, r11.y + mul r14.xyz, r11.yyyy, r12.xzyx + mul r12.xy, -r5.xzxx, cb0[228].xyxx + frc r15.xy, r12.xyxx + round_ni r12.xy, r12.xyxx + dp2 r11.y, r12.xyxx, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.y, null, r11.y + mul r11.y, r11.y, l(43758.546875) + frc r11.y, r11.y + add r12.x, r11.y, cb0[227].x + frc r12.x, r12.x + mul r12.y, cb0[228].z, cb0[228].z + mul r12.x, r12.y, r12.x + round_ni r12.x, r12.x + div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z + mad r15.zw, -r5.xxxz, cb0[228].xxxy, cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r15.zwzz, t12.zwxy, s2, cb0[108].x + mad r15.zw, -r5.xxxz, cb0[228].xxxy, -cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r15.zwzz, t12.xyzw, s2, cb0[108].x + mul r16.xyzw, r16.xyzw, cb0[227].wwww + mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww + ge r11.y, l(0.500000), r11.y + and r11.y, r11.y, l(0x3f800000) + add r15.zw, -r15.xxxy, r15.yyyx + mad r15.xy, r11.yyyy, r15.zwzz, r15.xyxx + div r11.y, r12.x, cb0[228].z + ge r12.z, r11.y, -r11.y + frc r11.y, |r11.y| + movc r11.y, r12.z, r11.y, -r11.y + mul r11.y, r11.y, cb0[228].z + mul r17.x, r11.y, r12.y + add r15.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz + mul r11.y, r12.y, r12.x + round_ni r11.y, r11.y + add r11.y, -r11.y, r15.w + mul r17.y, r11.y, r12.y + mad r12.xy, r15.xyxx, r12.yyyy, r17.xyxx + frc r12.xy, r12.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r12.xy, r12.xyxx, t12.xyzw, s1, cb0[108].x + mul r12.xy, r12.xyxx, cb0[227].yyyy + mad r12.xy, r12.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), -cb0[227].yyyy + add r15.xy, r16.zwzz, r16.xyxx + add r12.xy, r12.xyxx, r15.xyxx + dp2 r11.y, r12.xyxx, r12.xyxx + min r11.y, r11.y, l(1.000000) + add r11.y, -r11.y, l(1.000000) + sqrt r11.y, r11.y + max r12.z, r11.y, l(0.000488281250) + dp3 r11.y, r12.xyzx, r12.xyzx + rsq r11.y, r11.y + mul r12.xyz, r11.yyyy, r12.xyzx + mov r14.w, r2.x + dp2 r16.x, r14.xwxx, r12.yzyy + mov r17.x, r11.w + mov r17.y, r14.z + mov r17.z, r2.y + dp3 r16.y, r17.xyzx, r12.xyzx + mov r14.x, r11.x + mov r14.z, r2.w + dp3 r16.z, r14.xyzx, r12.xyzx + mul r10.z, r10.z, cb0[222].x + mul r10.z, r11.z, r10.z + max r11.x, l(0.000488281250), cb0[228].w + mov_sat r15.z, r15.z + add r11.y, -r11.x, r15.z + add r11.x, r2.z, -r11.x + div r11.y, l(1.000000, 1.000000, 1.000000, 1.000000), r11.y + mul_sat r11.x, r11.y, r11.x + mad r11.y, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r11.y + mul r10.z, r10.z, r11.x + mul r10.z, r12.w, r10.z + mad r3.xyz, -r3.xyzx, r1.wwww, r16.xyzx + mad r13.xyz, r10.zzzz, r3.xyzx, r2.xywx +endif +min r1.w, r9.y, r9.x +mul r3.x, r10.x, cb0[230].z +mad r3.y, -cb0[230].z, r10.x, l(1.000000) +mad r3.x, r9.w, r3.y, r3.x +mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r3.z, r10.y, -cb0[222].w +div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y +mul_sat r3.y, r3.y, r3.z +mad r3.z, r3.y, l(-2.000000), l(3.000000) +mul r3.y, r3.y, r3.y +mul r3.y, r3.y, r3.z +add r3.z, -r3.x, cb0[230].y +mad r3.x, r3.y, r3.z, r3.x +add r3.x, -r3.x, l(1.000000) +mul r3.y, r3.x, r9.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r3.z, -r2.z, l(1.000000) +mad_sat r9.w, r3.z, cb0[222].z, cb0[222].y +mad_sat r9.w, r9.z, cb0[224].z, r9.w +add r10.x, -r9.w, l(1.000000) +mad r9.w, r1.x, r10.x, r9.w +mul_sat r10.x, r10.w, l(3.33333325) +mad r10.y, r10.x, l(-2.000000), l(3.000000) +mul r10.x, r10.x, r10.x +mad r10.x, -r10.y, r10.x, l(1.000000) +mul r10.y, r9.w, cb0[222].x +add r10.z, -r1.x, l(1.000000) +mul r10.y, r10.z, r10.y +mul r10.y, r10.x, r10.y +mad r10.y, r10.y, l(-0.750000), l(1.000000) +mad r9.w, r9.w, l(-0.299999952), l(0.900000) +sqrt r10.z, r3.z +add r9.w, r9.w, r10.z +add_sat r9.w, r9.w, l(-0.600000) +max r9.w, r3.z, r9.w +min r9.w, r9.w, l(0.990000) +add_sat r10.z, l(2.000000), -cb0[222].x +mul r10.z, r10.z, cb0[222].x +mul r10.x, r10.x, r10.z +mad r3.x, -r9.x, r3.x, l(1.000000) +mul r3.x, r3.x, r10.x +add r9.x, -r3.z, r9.w +mad r3.x, r3.x, r9.x, r3.z +add r3.x, -r3.x, l(1.000000) +mul_sat r3.z, r9.z, l(20.000000) +mad r9.x, r3.z, l(-2.000000), l(3.000000) +mul r3.z, r3.z, r3.z +mul r3.z, r3.z, r9.x +mad r3.z, r3.z, l(-0.900000), l(1.000000) +mul r9.x, r3.z, r3.x +add r9.y, r9.y, l(-1.000000) +mad r11.x, r1.z, r9.y, l(1.000000) +add r11.y, -r1.z, l(1.000000) +movc r9.yz, r8.wwww, r11.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r9.x, r9.y +mad r3.x, r3.x, r3.z, -r1.z +mad r1.z, r1.w, r3.x, r1.z +add r2.z, -r1.z, r2.z +mad r11.w, r3.y, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r9.xyw, r0.xyzz, t28.xywz +min r1.z, r10.y, r9.z +add r2.z, -r1.z, r10.y +mad r1.z, r1.w, r2.z, r1.z +add r1.w, -r1.z, l(1.000000) +mad r1.z, r3.y, r1.w, r1.z +mul r3.xyz, r1.zzzz, r9.xywx +mul r10.xyz, r1.xxxx, r3.xyzx +mad r9.xyz, r9.xywx, r1.zzzz, -r10.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz +dp3 r2.z, r13.xyzx, r8.xyzx +max r10.x, r2.z, l(0.000000) +mul r3.y, r11.w, r11.w +mul r12.x, r10.x, r10.x +mul r12.z, r10.x, r12.x +mul r2.z, r3.y, r3.y +mul r3.z, r3.y, r2.z +mov r10.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r14.x, l(3.327070, 1.000000, 0.000000, 0.000000), r10.xyxx +dp2 r14.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r10.xzxx +mov r3.x, l(1.000000) +dp2 r8.w, r14.xyxx, r3.xyxx +mov r12.yw, l(0,9.044010,0,1.000000) +dp3 r14.x, l(3.596850, -1.367720, 1.000000, 0.000000), r12.xzwx +dp3 r14.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r12.xyzx +mov r15.x, l(5.565890) +mov r15.yz, r12.xxzx +dp3 r14.z, l(1.000000, 19.788601, -20.212299, 0.000000), r15.xyzx +dp3 r9.w, r14.xyzx, r3.xyzx +div r8.w, r8.w, r9.w +dp2 r14.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r10.xwxx +mov r12.x, l(1.296780) +mov r12.y, r10.x +dp2 r14.y, l(1.000000, -0.755907, 0.000000, 0.000000), r12.xyxx +dp2 r9.w, r14.xyxx, r3.xyxx +dp3 r14.x, l(2.923380, 59.418800, 1.000000, 0.000000), r12.yzwy +mov r12.xw, l(20.322500,0,0,121.563004) +dp3 r14.y, l(1.000000, -27.030199, 222.591995, 0.000000), r12.xyzx +dp3 r14.z, l(626.130005, 316.627014, 1.000000, 0.000000), r12.yzwy +dp3 r3.x, r14.xyzx, r3.xyzx +div r3.x, r9.w, r3.x +mad r10.yzw, r1.xxzw, r8.wwww, r3.xxxx +add r3.x, r3.x, r8.w +ld_indexable(texture2d)(float,float,float,float) r12.x, r0.xyzz, t7.xyzw +lt r0.z, l(0.001000), r12.x +if_nz r0.z + dp3 r0.z, -r8.xyzx, r13.xyzx + add r0.z, r0.z, r0.z + mad r14.xyz, r13.xyzx, -r0.zzzz, -r8.xyzx + dp3 r0.z, -cb3[0].xyzx, r14.xyzx + mad r15.xyz, cb3[0].xyzx, r0.zzzz, r14.xyzx + lt r0.z, r0.z, cb3[4].z + dp3 r3.z, r15.xyzx, r15.xyzx + max r3.z, r3.z, l(0.0000610351562) + rsq r3.z, r3.z + mul r15.xyz, r3.zzzz, r15.xyzx + mul r15.xyz, r15.xyzx, cb3[4].yyyy + mad r15.xyz, -cb3[0].xyzx, cb3[4].zzzz, r15.xyzx + dp3 r3.z, r15.xyzx, r15.xyzx + rsq r3.z, r3.z + mul r15.xyz, r3.zzzz, r15.xyzx + movc r14.xyz, r0.zzzz, r15.xyzx, r14.xyzx + mad r15.xyz, r6.xyzx, r7.wwww, r14.xyzx + dp3 r0.z, r15.xyzx, r15.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r15.xyz, r0.zzzz, r15.xyzx + dp3_sat r11.y, r14.xyzx, r13.xyzx + dp3_sat r0.z, r13.xyzx, r15.xyzx + min r11.z, r10.x, l(1.000000) + mad r3.z, r0.z, r2.z, -r0.z + mad r0.z, r3.z, r0.z, l(1.000000) + dp3_sat r3.z, r8.xyzx, r15.xyzx + add r3.z, -r3.z, l(1.000000) + mul r8.w, r3.z, r3.z + mul r8.w, r8.w, r8.w + mul r9.w, r3.z, r8.w + add r12.z, -r11.w, l(1.000000) + mad r12.w, -r12.z, l(0.383026), l(-0.0761947036) + mad r12.w, r12.z, r12.w, l(1.049970) + mad r12.z, r12.z, r12.w, l(0.409255) + min r12.z, r12.z, l(0.999000) + add r12.w, -r12.z, l(1.000000) + add r15.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx + mad r3.z, -r8.w, r3.z, l(1.000000) + mad r16.xyz, r1.xzwx, r3.zzzz, r9.wwww + mul r0.z, r0.z, r0.z + div r0.z, r2.z, r0.z + mad r17.xy, -r11.zyzz, r2.zzzz, r11.zyzz + mad r17.xy, r17.xyxx, r11.zyzz, r2.zzzz + sqrt r17.xy, r17.xyxx + mul r17.xy, r11.yzyy, r17.xyxx + add r2.z, r17.y, r17.x + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.z, r0.z, r2.z + mul r16.xyz, r0.zzzz, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r17.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r17.xyxx, t13.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r17.zwzz, t13.yzxw, s1, l(0.000000) + mul r0.z, r0.z, r2.z + mul r0.z, r12.z, r0.z + div r0.z, r0.z, r12.w + mul r17.xyz, r15.xyzx, r15.xyzx + mul r17.xyz, r0.zzzz, r17.xyzx + mad r15.xyz, -r15.xyzx, r12.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r15.xyz, r17.xyzx, r15.xyzx + add r15.xyz, r15.xyzx, r16.xyzx + mul r15.xyz, r15.xyzx, cb3[4].xxxx + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r15.xyz, r15.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + dp3_sat r0.z, r14.xyzx, r2.xywx + mul r14.xyz, r0.zzzz, r9.xyzx + mad r14.xyz, r15.xyzx, r11.yyyy, r14.xyzx + mul r14.xyz, r14.xyzx, cb3[1].xyzx + mov r12.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r12.yzw, r12.xyxx, t8.wxyz, s1, cb0[108].x + add r0.z, -r12.x, l(1.000000) + mad r12.xyz, r14.xyzx, r12.yzwy, -r14.xyzx + mad r12.xyz, r0.zzzz, r12.xyzx, r14.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t14.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r12.xyz, r0.zzzz, r12.xyzx +else + mov r12.xyz, l(0,0,0,0) +endif +mul r11.yz, r4.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r11.yz, r11.yyzy +mad r0.z, r11.z, cb2[1].y, r11.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r2.z, -cb0[85].y, cb2[2].w, |r3.w| +round_ni r2.z, r2.z +add r3.z, l(-1.000000), cb2[1].w +max r8.w, r2.z, l(0.000000) +min r3.z, r3.z, r8.w +mul r8.w, r3.z, l(8.000000) +ftoi r8.w, r8.w +ge r2.z, r3.z, r2.z +iadd r3.z, r8.w, cb0[110].y +dp3 r8.w, -r8.xyzx, r13.xyzx +add r8.w, r8.w, r8.w +mad r14.xyz, r13.xyzx, -r8.wwww, -r8.xyzx +min r11.x, r10.x, l(1.000000) +add r8.w, -r11.w, l(1.000000) +mad r9.w, -r8.w, l(0.383026), l(-0.0761947036) +mad r9.w, r8.w, r9.w, l(1.049970) +mad r8.w, r8.w, r9.w, l(0.409255) +min r8.w, r8.w, l(0.999000) +add r9.w, -r8.w, l(1.000000) +add r15.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx +mad r11.yz, r11.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r10.x, r11.yzyy, t13.xyzw, s1, l(0.000000) +mad r16.xyz, -r15.xyzx, r9.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r15.xyz, r15.xyzx, r15.xyzx +mov r17.w, l(1.000000) +mov r18.y, l(1.000000) +mov r19.z, r11.w +mov r20.xyz, l(0,0,0,0) +mov r11.yz, l(0,1.000000,0,0) +loop + ilt r12.w, l(7), r11.z + breakc_nz r12.w + iadd r12.w, r0.z, r11.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx + iadd r14.w, r3.z, r11.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.w, r14.w, l(0), t0.xxxx + and r12.w, r12.w, r14.w + and r12.w, r2.z, r12.w + ishl r14.w, r11.z, l(5) + mov r21.xyz, l(0,0,0,0) + mov r15.w, r11.y + mov r16.w, r12.w + loop + breakc_z r16.w + firstbit_lo r18.z, r16.w + ishl r18.w, l(1), r18.z + xor r18.w, r16.w, r18.w + iadd r18.z, r14.w, r18.z + bfi r22.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r18.zzzz, l(1, 3, 5, 6) + bfi r19.w, l(29), l(3), r18.z, l(7) + ftou r20.w, cb3[r22.z + 6].w + ieq r20.w, r20.w, l(1) + if_nz r20.w + add r17.xyz, r5.xyzx, -cb3[r22.x + 6].xyzx + and r23.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r22.z + 6].xzyx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r22.w + 6].yxzy + ushr r25.xyz, cb3[r22.z + 6].xzyx, l(16, 16, 16, 0) + ushr r26.xyz, cb3[r22.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r23.xyz, r23.xyzx + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyw, r26.yxyz + mov r27.xz, r23.xxzx + mov r27.yw, r25.xxxz + dp4 r20.w, r17.xyzw, r27.xyzw + mov r25.x, r23.y + mov r25.z, r24.y + mov r25.w, r26.x + dp4 r21.w, r17.xyzw, r25.xyzw + mov r26.xz, r24.xxzx + dp4 r17.x, r17.xyzw, r26.xyzw + max r17.y, |r20.w|, |r21.w| + max r17.x, |r17.x|, r17.y + mad r17.y, cb3[r19.w + 6].x, l(0.500000), l(0.500000) + add r17.x, -r17.y, r17.x + mad r17.y, -cb3[r19.w + 6].x, l(0.500000), l(0.500000) + div_sat r17.x, r17.x, r17.y + add r17.x, -r17.x, l(1.000000) + mul r17.x, r17.x, r17.x + else + mov r17.x, l(1.000000) + endif + lt r17.y, l(0.500000), cb3[r22.y + 6].z + lt r17.z, r17.x, l(0.001000) + or r17.z, r17.y, r17.z + if_nz r17.z + mov r16.w, r18.w + continue + endif + ishl r17.z, r18.z, l(3) + bfi r18.z, l(29), l(3), r18.z, l(2) + lt r20.w, cb3[r17.z + 6].w, l(1.500000) + if_nz r20.w + mad r20.w, cb3[r18.z + 6].y, l(0.500000), l(0.500000) + add r23.x, r20.w, -|cb3[r18.z + 6].x| + add r23.y, -r23.x, cb3[r18.z + 6].y + add r20.w, -|r23.x|, l(1.000000) + add r20.w, -|r23.y|, r20.w + ge r21.w, cb3[r18.z + 6].x, l(0.000000) + max r22.z, r20.w, l(0.000488281250) + movc r23.z, r21.w, r22.z, -r22.z + dp3 r22.z, r23.xyzx, r23.xyzx + rsq r22.z, r22.z + mul r24.xyz, r22.zzzz, r23.xyzx + add r25.xyz, -r5.xyzx, cb3[r22.x + 6].xyzx + dp3 r22.z, r25.xyzx, r25.xyzx + rsq r23.z, r22.z + mul r26.xyz, r23.zzzz, r25.xyzx + dp3_sat r18.x, r13.xyzx, r26.xyzx + ftoi r24.w, cb3[r19.w + 6].w + mul r27.xyz, r24.xyzx, cb3[r18.z + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r25.w, cb3[r17.z + 6].w + and r25.w, r25.w, l(1) + ieq r26.w, r25.w, l(0) + not r26.w, r26.w + lt r27.w, l(0.000000), cb3[r18.z + 6].z + and r26.w, r26.w, r27.w + dp3 r27.w, r28.xyzx, r28.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r29.xyzx, r29.xyzx + sqrt r28.w, r28.w + dp3 r29.w, r13.xyzx, r28.xyzx + div r29.w, r29.w, r27.w + dp3 r30.x, r13.xyzx, r29.xyzx + div r30.x, r30.x, r28.w + add r29.w, r29.w, r30.x + mul_sat r30.x, r29.w, l(0.500000) + dp3 r29.x, r28.xyzx, r29.xyzx + mad r27.w, r27.w, r28.w, r29.x + mad r27.w, r27.w, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w + movc r19.xy, r26.wwww, r30.xyxx, r18.xyxx + lt r27.w, cb3[r22.w + 6].w, l(0.000000) + if_nz r27.w + mul r27.w, cb3[r22.x + 6].w, cb3[r22.x + 6].w + mul r27.w, r22.z, r27.w + mad r27.w, -r27.w, r27.w, l(1.000000) + max r27.w, r27.w, l(0.000000) + add r22.z, r22.z, l(1.000000) + div r22.z, l(1.000000, 1.000000, 1.000000, 1.000000), r22.z + and r28.w, r26.w, l(0x3f800000) + add r29.x, r19.y, -r22.z + mad r22.z, r28.w, r29.x, r22.z + mul r27.w, r27.w, r27.w + mul r22.z, r22.z, r27.w + else + mul r29.xyz, r25.xyzx, cb3[r22.x + 6].wwww + dp3 r27.w, r29.xyzx, r29.xyzx + min r27.w, r27.w, l(1.000000) + add r27.w, -r27.w, l(1.000000) + log r27.w, r27.w + mul r27.w, r27.w, cb3[r22.w + 6].w + exp r27.w, r27.w + mul r22.z, r19.y, r27.w + endif + dp3 r19.y, r26.xyzx, -r24.xyzx + add r19.y, r19.y, -cb3[r18.z + 6].z + mul_sat r19.y, r19.y, cb3[r18.z + 6].w + mul r19.y, r19.y, r19.y + movc r19.y, r25.w, l(1.000000), r19.y + mul r19.y, r19.y, r22.z + not r22.z, r26.w + ige r24.x, r24.w, l(0) + and r22.z, r22.z, r24.x + if_nz r22.z + if_z r25.w + ishl r22.z, r24.w, l(2) + mul r24.xyz, r5.yyyy, cb6[r22.z + 33].xywx + mad r24.xyz, cb6[r22.z + 32].xywx, r5.xxxx, r24.xyzx + mad r24.xyz, cb6[r22.z + 34].xywx, r5.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb6[r22.z + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb6[r24.w + 0].zwzz, cb6[r24.w + 0].xyxx + else + ishl r22.z, r24.w, l(2) + dp3 r29.x, -r25.xyzx, cb6[r22.z + 32].xyzx + dp3 r29.y, -r25.xyzx, cb6[r22.z + 33].xyzx + dp3 r29.z, -r25.xyzx, cb6[r22.z + 34].xyzx + lt r22.z, |r29.x|, |r29.y| + and r22.z, r22.z, l(1) + dp2 r24.z, |r29.xyxx|, icb[r22.z + 0].xyxx + lt r24.z, r24.z, |r29.z| + movc r22.z, r24.z, l(2), r22.z + dp3 r24.z, r29.xyzx, icb[r22.z + 0].xyzx + lt r24.z, r24.z, l(0.000000) + bfi r22.z, l(31), l(1), r22.z, r24.z + ushr r24.z, r22.z, l(1) + dp3 r24.z, r29.xyzx, icb[r24.z + 0].xyzx + div r27.w, l(0.000244140625), cb6[r24.w + 0].w + add r27.w, -r27.w, l(0.500000) + utof r28.w, r22.z + ult r29.w, r22.z, l(2) + and r29.w, r29.w, l(2) + dp2 r29.x, r29.xzxx, icb[r29.w + 0].xzxx + mul r29.x, r29.x, icb[r22.z + 4].z + div r29.x, r29.x, |r24.z| + mad r28.w, r29.x, r27.w, r28.w + add r28.w, r28.w, l(0.500000) + mul_sat r30.x, r28.w, l(0.166666672) + iadd r28.w, l(-1), icb[r22.z + 4].y + dp2 r28.w, r29.yzyy, icb[r28.w + 0].xyxx + mul r22.z, r28.w, icb[r22.z + 4].w + div r22.z, r22.z, |r24.z| + mad_sat r30.y, -r22.z, r27.w, l(0.500000) + mad r24.xy, r30.xyxx, cb6[r24.w + 0].zwzz, cb6[r24.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r22.z, r24.xyxx, t15.yzxw, s1, l(0.000000) + mul r19.y, r19.y, r22.z + endif + lt r22.z, l(0.000000), r19.y + if_nz r22.z + if_z r25.w + ftoi r24.x, cb3[r22.y + 6].x + else + add r24.yzw, r5.xxyz, -cb3[r22.x + 6].xxyz + lt r29.xyz, |r24.zwwz|, |r24.yyzy| + and r25.w, r29.y, r29.x + lt r24.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r24.yyzw + ushr r27.w, cb3[r18.z + 6].w, l(24) + ubfe r29.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r18.z + 6].wwww + movc r24.y, r24.y, r27.w, r29.x + and r27.w, l(255), cb3[r18.z + 6].w + movc r24.z, r24.z, r29.y, r27.w + ubfe r27.w, l(8), l(8), cb3[r22.y + 6].x + and r28.w, l(255), cb3[r22.y + 6].x + movc r24.w, r24.w, r27.w, r28.w + movc r24.z, r29.z, r24.z, r24.w + movc r24.y, r25.w, r24.y, r24.z + ilt r24.z, r24.y, l(80) + movc r24.x, r24.z, r24.y, l(-1) + endif + ishl r24.y, r24.x, l(2) + mad r29.xyz, r26.xyzx, cb4[r24.x + 288].xxxx, r5.xyzx + mul r24.z, l(5.000000), cb4[r24.x + 288].y + mad r29.xyz, r13.xyzx, r24.zzzz, r29.xyzx + mul r30.xyzw, r29.yyyy, cb4[r24.y + 65].xyzw + mad r30.xyzw, cb4[r24.y + 64].xyzw, r29.xxxx, r30.xyzw + mad r29.xyzw, cb4[r24.y + 66].xyzw, r29.zzzz, r30.xyzw + add r29.xyzw, r29.xyzw, cb4[r24.y + 67].xyzw + div r24.yzw, r29.xxyz, r29.wwww + ge r29.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.yzwy + ge r30.xyz, r24.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) + add r31.xy, -cb4[r24.x + 344].xyxx, cb4[r24.x + 344].zwzz + mad r24.yz, r24.yyzy, r31.xxyx, cb4[r24.x + 344].xxyx + mad r31.xy, r24.yzyy, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r31.xy, r31.xyxx + mad r24.yz, r24.yyzy, cb4[400].zzwz, -r31.xxyx + add r32.xyzw, r24.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r33.xyzw, r32.xxzz, r32.xxzz + add r31.zw, -r24.yyyz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r32.xz, r24.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r34.xy, r24.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r35.xy, r31.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r34.xy, -r34.xyxx, r34.xyxx, r32.ywyy + add r34.xy, r34.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r34.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r33.xz, r33.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.yz, r33.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r24.yyzy + mul r36.xy, r24.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.yz, -r32.xxzx, r32.xxzx, r31.zzwz + add r24.yz, r24.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r37.xy, r24.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.yz, r32.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r36.z, r37.x + mov r36.w, r24.y + mov r35.z, r34.x + mov r35.w, r33.x + add r32.xyzw, r35.zwxz, r36.zwxz + mov r37.z, r36.y + mov r37.w, r24.z + mov r34.z, r35.y + mov r34.w, r33.z + add r33.xyz, r34.zywz, r37.zywz + div r35.xyz, r35.xzwx, r32.zwyz + add r35.xyz, r35.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r35.xyz, r35.yxzy, cb4[400].xxxx + div r34.xyz, r34.zywz, r33.xyzx + add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r34.xyz, r34.xyzx, cb4[400].yyyy + mov r35.w, r34.x + mad r36.xyzw, r31.xyxy, cb4[400].xyxy, r35.ywxw + mad r24.yz, r31.xxyx, cb4[400].xxyx, r35.zzwz + mov r34.w, r35.y + mov r35.yw, r34.yyyz + mad r37.xyzw, r31.xyxy, cb4[400].xyxy, r35.xyzy + mad r34.xyzw, r31.xyxy, cb4[400].xyxy, r34.wywz + mad r31.xyzw, r31.xyxy, cb4[400].xyxy, r35.xwzw + mul r35.xyzw, r32.zwyz, r33.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r36.xyxx, t6.xxxx, s4, r24.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r27.w, r36.zwzz, t6.xxxx, s4, r24.w + mul r27.w, r27.w, r35.y + mad r25.w, r35.x, r25.w, r27.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r24.yzyy, t6.xxxx, s4, r24.w + mad r24.y, r35.z, r24.y, r25.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r34.xyxx, t6.xxxx, s4, r24.w + mad r24.y, r35.w, r24.z, r24.y + mul r35.xyzw, r32.xyzw, r33.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r37.xyxx, t6.xxxx, s4, r24.w + mad r24.y, r35.x, r24.z, r24.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r37.zwzz, t6.xxxx, s4, r24.w + mad r24.y, r35.y, r24.z, r24.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r34.zwzz, t6.xxxx, s4, r24.w + mad r24.y, r35.z, r24.z, r24.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r31.xyxx, t6.xxxx, s4, r24.w + mad r24.y, r35.w, r24.z, r24.y + ige r24.z, r24.x, l(0) + or r29.xyz, r29.xyzx, r30.xyzx + or r25.w, r29.y, r29.x + or r25.w, r29.z, r25.w + and r27.w, r24.w, l(0x7fffffff) + ult r27.w, l(0x7f800000), r27.w + or r25.w, r25.w, r27.w + mul r27.w, r32.y, r33.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.w, r31.zwzz, t6.xxxx, s4, r24.w + mad r24.y, r27.w, r24.w, r24.y + add r24.y, r24.y, l(-1.000000) + mad r24.x, cb4[r24.x + 288].w, r24.y, l(1.000000) + movc r24.x, r25.w, l(1.000000), r24.x + movc r24.x, r24.z, r24.x, l(1.000000) + else + mov r24.x, l(1.000000) + endif + if_nz r26.w + dp3 r24.y, r14.xyzx, r27.xyzx + mul_sat r24.z, r23.z, cb3[r18.z + 6].z + mad r24.z, r24.z, l(0.500000), r3.y + min r24.z, r24.z, l(1.000000) + div r24.z, r3.y, r24.z + mad r29.xyz, r14.xyzx, r24.yyyy, -r27.xyzx + dp3 r24.w, r28.xyzx, r29.xyzx + mul r24.y, r24.y, r24.y + mad r24.y, cb3[r18.z + 6].z, cb3[r18.z + 6].z, -r24.y + div_sat r24.y, r24.w, r24.y + mad r27.xyz, r27.xyzx, r24.yyyy, r28.xyzx + dp3 r24.y, r27.xyzx, r27.xyzx + rsq r24.y, r24.y + mul r26.xyz, r24.yyyy, r27.xyzx + else + mov r24.z, l(1.000000) + endif + if_nz r22.z + mul_sat r22.z, r23.z, cb3[r19.w + 6].y + mad r26.xyz, r6.xyzx, r7.wwww, r26.xyzx + dp3 r23.z, r26.xyzx, r26.xyzx + max r23.z, r23.z, l(0.0000610351562) + rsq r23.z, r23.z + mul r26.xyz, r23.zzzz, r26.xyzx + max r20.w, r20.w, l(5.960464478E-08) + movc r23.w, r21.w, r20.w, -r20.w + dp3 r20.w, r23.xywx, r23.xywx + rsq r20.w, r20.w + mul r23.xyz, r20.wwww, r23.xywx + mul r23.xyz, r23.xyzx, cb3[r18.z + 6].zzzz + mad r27.xyz, -r23.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r23.xyz, r23.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + dp3 r20.w, r13.xyzx, r27.xyzx + dp3 r21.w, r27.xyzx, r27.xyzx + sqrt r21.w, r21.w + div r20.w, r20.w, r21.w + dp3 r21.w, r13.xyzx, r23.xyzx + dp3 r23.x, r23.xyzx, r23.xyzx + sqrt r23.x, r23.x + div r21.w, r21.w, r23.x + add r20.w, r20.w, r21.w + mul_sat r20.w, r20.w, l(0.500000) + movc r18.x, r26.w, r20.w, r18.x + dp3_sat r20.w, r13.xyzx, r26.xyzx + dp3_sat r21.w, r8.xyzx, r26.xyzx + lt r23.x, l(0.000000), r22.z + mul r22.z, r22.z, r22.z + mad r23.y, r21.w, l(3.600000), l(0.400000) + div r22.z, r22.z, r23.y + mad r22.z, r11.w, r11.w, r22.z + min r22.z, r22.z, l(1.000000) + movc r22.z, r23.x, r22.z, r3.y + mul r22.z, r22.z, r22.z + mad r23.x, r20.w, r22.z, -r20.w + mad r20.w, r23.x, r20.w, l(1.000000) + add r21.w, -r21.w, l(1.000000) + mul r23.x, r21.w, r21.w + mul r23.x, r23.x, r23.x + mul r23.y, r21.w, r23.x + mad r21.w, -r23.x, r21.w, l(1.000000) + mad r23.xyz, r1.xzwx, r21.wwww, r23.yyyy + mul r20.w, r20.w, r20.w + div r20.w, r22.z, r20.w + mul r20.w, r24.z, r20.w + mad r21.w, -r11.x, r22.z, r11.x + mad r21.w, r21.w, r11.x, r22.z + sqrt r21.w, r21.w + mad r23.w, -r19.x, r22.z, r19.x + mad r22.z, r23.w, r19.x, r22.z + sqrt r22.z, r22.z + mul r22.z, r11.x, r22.z + mad r21.w, r19.x, r21.w, r22.z + add r21.w, r21.w, l(0.000100) + div r21.w, l(0.500000), r21.w + mul r20.w, r20.w, r21.w + mul r23.xyz, r20.wwww, r23.xyzx + min r23.xyz, r23.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r24.yz, r19.xxzx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r20.w, r24.yzyy, t13.yzwx, s1, l(0.000000) + mul r20.w, r10.x, r20.w + mul r20.w, r8.w, r20.w + div r20.w, r20.w, r9.w + mul r24.yzw, r15.xxyz, r20.wwww + div r24.yzw, r24.yyzw, r16.xxyz + add r23.xyz, r23.xyzx, r24.yzwy + mul r23.xyz, r23.xyzx, cb3[r19.w + 6].zzzz + max r23.xyz, r23.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r23.xyz, r23.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r24.yzw, r9.xxyz, r18.xxxx + mad r23.xyz, r23.xyzx, r19.xxxx, r24.yzwy + mul r24.yzw, r19.yyyy, cb3[r17.z + 6].xxyz + mul r24.xyz, r24.xxxx, r24.yzwy + mul r24.xyz, r17.xxxx, r24.xyzx + mul r23.xyz, r23.xyzx, r24.xyzx + else + mov r23.xyz, l(0,0,0,0) + endif + else + if_z r17.y + mad r17.x, cb3[r18.z + 6].y, l(0.500000), l(0.500000) + add r24.x, r17.x, -|cb3[r18.z + 6].x| + add r24.y, -r24.x, cb3[r18.z + 6].y + add r17.x, -|r24.x|, l(1.000000) + add r17.x, -|r24.y|, r17.x + max r17.x, r17.x, l(0.000488281250) + ge r17.y, cb3[r18.z + 6].x, l(0.000000) + movc r24.z, r17.y, r17.x, -r17.x + dp3 r17.x, r24.xyzx, r24.xyzx + rsq r17.x, r17.x + mul r24.xyz, r17.xxxx, r24.xyzx + add r25.xyz, -r5.xyzx, cb3[r22.x + 6].xyzx + dp3 r17.x, r25.xyzx, r25.xyzx + rsq r17.y, r17.x + mul r26.xyz, r17.yyyy, r25.xyzx + ftoi r17.y, cb3[r19.w + 6].w + mul r19.xyw, r24.xyxz, cb3[r18.z + 6].zzzz + mad r27.xyz, -r19.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r19.xyw, r19.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r25.xyxz + ftou r17.z, cb3[r17.z + 6].w + and r17.z, r17.z, l(1) + ieq r18.x, r17.z, l(0) + not r18.x, r18.x + lt r20.w, l(0.000000), cb3[r18.z + 6].z + and r18.x, r18.x, r20.w + dp3 r20.w, r27.xyzx, r27.xyzx + sqrt r20.w, r20.w + dp3 r21.w, r19.xywx, r19.xywx + sqrt r21.w, r21.w + dp3 r19.x, r27.xyzx, r19.xywx + mad r19.x, r20.w, r21.w, r19.x + mad r19.x, r19.x, l(0.500000), l(1.000000) + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x + movc r19.x, r18.x, r19.x, l(1.000000) + lt r19.y, cb3[r22.w + 6].w, l(0.000000) + if_nz r19.y + mul r19.y, cb3[r22.x + 6].w, cb3[r22.x + 6].w + mul r19.y, r17.x, r19.y + mad r19.y, -r19.y, r19.y, l(1.000000) + max r19.y, r19.y, l(0.000000) + add r17.x, r17.x, l(1.000000) + div r17.x, l(1.000000, 1.000000, 1.000000, 1.000000), r17.x + and r19.w, r18.x, l(0x3f800000) + add r20.w, -r17.x, r19.x + mad r17.x, r19.w, r20.w, r17.x + mul r19.y, r19.y, r19.y + mul r17.x, r17.x, r19.y + else + mul r27.xyz, r25.xyzx, cb3[r22.x + 6].wwww + dp3 r19.y, r27.xyzx, r27.xyzx + min r19.y, r19.y, l(1.000000) + add r19.y, -r19.y, l(1.000000) + log r19.y, r19.y + mul r19.y, r19.y, cb3[r22.w + 6].w + exp r19.y, r19.y + mul r17.x, r19.y, r19.x + endif + dp3 r19.x, r26.xyzx, -r24.xyzx + add r19.x, r19.x, -cb3[r18.z + 6].z + mul_sat r19.x, r19.x, cb3[r18.z + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r17.z, l(1.000000), r19.x + mul r17.x, r17.x, r19.x + not r18.x, r18.x + ige r19.x, r17.y, l(0) + and r18.x, r18.x, r19.x + if_nz r18.x + if_z r17.z + ishl r18.x, r17.y, l(2) + mul r19.xyw, r5.yyyy, cb6[r18.x + 33].xyxw + mad r19.xyw, cb6[r18.x + 32].xyxw, r5.xxxx, r19.xyxw + mad r19.xyw, cb6[r18.x + 34].xyxw, r5.zzzz, r19.xyxw + add r19.xyw, r19.xyxw, cb6[r18.x + 35].xyxw + div_sat r19.xy, r19.xyxx, r19.wwww + mad r19.xy, r19.xyxx, cb6[r17.y + 0].zwzz, cb6[r17.y + 0].xyxx + else + ishl r18.x, r17.y, l(2) + dp3 r24.x, -r25.xyzx, cb6[r18.x + 32].xyzx + dp3 r24.y, -r25.xyzx, cb6[r18.x + 33].xyzx + dp3 r24.z, -r25.xyzx, cb6[r18.x + 34].xyzx + lt r18.x, |r24.x|, |r24.y| + and r18.x, r18.x, l(1) + dp2 r19.w, |r24.xyxx|, icb[r18.x + 0].xyxx + lt r19.w, r19.w, |r24.z| + movc r18.x, r19.w, l(2), r18.x + dp3 r19.w, r24.xyzx, icb[r18.x + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r18.x, l(31), l(1), r18.x, r19.w + ushr r19.w, r18.x, l(1) + dp3 r19.w, r24.xyzx, icb[r19.w + 0].xyzx + div r20.w, l(0.000244140625), cb6[r17.y + 0].w + add r20.w, -r20.w, l(0.500000) + utof r21.w, r18.x + ult r22.z, r18.x, l(2) + and r22.z, r22.z, l(2) + dp2 r22.z, r24.xzxx, icb[r22.z + 0].xzxx + mul r22.z, r22.z, icb[r18.x + 4].z + div r22.z, r22.z, |r19.w| + mad r21.w, r22.z, r20.w, r21.w + add r21.w, r21.w, l(0.500000) + mul_sat r25.x, r21.w, l(0.166666672) + iadd r21.w, l(-1), icb[r18.x + 4].y + dp2 r21.w, r24.yzyy, icb[r21.w + 0].xyxx + mul r18.x, r21.w, icb[r18.x + 4].w + div r18.x, r18.x, |r19.w| + mad_sat r25.y, -r18.x, r20.w, l(0.500000) + mad r19.xy, r25.xyxx, cb6[r17.y + 0].zwzz, cb6[r17.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.y, r19.xyxx, t15.yxzw, s1, l(0.000000) + mul r17.x, r17.y, r17.x + endif + lt r17.x, l(0.000000), r17.x + if_nz r17.x + if_z r17.z + ftoi r17.x, cb3[r22.y + 6].x + else + add r19.xyw, r5.xyxz, -cb3[r22.x + 6].xyxz + lt r22.xzw, |r19.yyww|, |r19.xxxy| + and r17.y, r22.z, r22.x + lt r19.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyxw + ushr r17.z, cb3[r18.z + 6].w, l(24) + ubfe r22.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r18.z + 6].wwww + movc r17.z, r19.x, r17.z, r22.x + and r18.x, l(255), cb3[r18.z + 6].w + movc r18.x, r19.y, r22.z, r18.x + ubfe r18.z, l(8), l(8), cb3[r22.y + 6].x + and r19.x, l(255), cb3[r22.y + 6].x + movc r18.z, r19.w, r18.z, r19.x + movc r18.x, r22.w, r18.x, r18.z + movc r17.y, r17.y, r17.z, r18.x + ilt r17.z, r17.y, l(80) + movc r17.x, r17.z, r17.y, l(-1) + endif + ishl r17.y, r17.x, l(2) + mad r19.xyw, r26.xyxz, cb4[r17.x + 288].xxxx, r5.xyxz + mul r17.z, l(5.000000), cb4[r17.x + 288].y + mad r19.xyw, r2.xyxw, r17.zzzz, r19.xyxw + mul r22.xyzw, r19.yyyy, cb4[r17.y + 65].xyzw + mad r22.xyzw, cb4[r17.y + 64].xyzw, r19.xxxx, r22.xyzw + mad r22.xyzw, cb4[r17.y + 66].xyzw, r19.wwww, r22.xyzw + add r22.xyzw, r22.xyzw, cb4[r17.y + 67].xyzw + div r19.xyw, r22.xyxz, r22.wwww + ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xywx + ge r24.xyz, r19.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r17.yz, -cb4[r17.x + 344].xxyx, cb4[r17.x + 344].zzwz + mad r17.yz, r19.xxyx, r17.yyzy, cb4[r17.x + 344].xxyx + mad r18.xz, r17.yyzy, cb4[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) + round_ni r18.xz, r18.xxzx + mad r17.yz, r17.yyzy, cb4[400].zzwz, -r18.xxzx + add r25.xyzw, r17.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r26.xyzw, r25.xxzz, r25.xxzz + add r19.xy, -r17.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r25.xz, r17.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r27.xy, r17.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r28.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r27.xy, -r27.xyxx, r27.xyxx, r25.ywyy + add r27.xy, r27.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r27.xy, r27.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r26.xz, r26.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r17.yz, r26.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r17.yyzy + mul r29.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r17.yz, -r25.xxzx, r25.xxzx, r19.xxyx + add r17.yz, r17.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r30.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r17.yz, r25.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r29.z, r30.x + mov r29.w, r17.y + mov r28.z, r27.x + mov r28.w, r26.x + add r25.xyzw, r28.zwxz, r29.zwxz + mov r30.z, r29.y + mov r30.w, r17.z + mov r27.z, r28.y + mov r27.w, r26.z + add r26.xyz, r27.zywz, r30.zywz + div r28.xyz, r28.xzwx, r25.zwyz + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.yxzy, cb4[400].xxxx + div r27.xyz, r27.zywz, r26.xyzx + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.xyzx, cb4[400].yyyy + mov r28.w, r27.x + mad r29.xyzw, r18.xzxz, cb4[400].xyxy, r28.ywxw + mad r17.yz, r18.xxzx, cb4[400].xxyx, r28.zzwz + mov r27.w, r28.y + mov r28.yw, r27.yyyz + mad r30.xyzw, r18.xzxz, cb4[400].xyxy, r28.xyzy + mad r27.xyzw, r18.xzxz, cb4[400].xyxy, r27.wywz + mad r28.xyzw, r18.xzxz, cb4[400].xyxy, r28.xwzw + mul r31.xyzw, r25.zwyz, r26.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r29.xyxx, t6.xxxx, s4, r19.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r29.zwzz, t6.xxxx, s4, r19.w + mul r18.z, r18.z, r31.y + mad r18.x, r31.x, r18.x, r18.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r17.yzyy, t6.xxxx, s4, r19.w + mad r17.y, r31.z, r17.y, r18.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r27.xyxx, t6.xxxx, s4, r19.w + mad r17.y, r31.w, r17.z, r17.y + mul r29.xyzw, r25.xyzw, r26.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r30.xyxx, t6.xxxx, s4, r19.w + mad r17.y, r29.x, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r30.zwzz, t6.xxxx, s4, r19.w + mad r17.y, r29.y, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r27.zwzz, t6.xxxx, s4, r19.w + mad r17.y, r29.z, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r28.xyxx, t6.xxxx, s4, r19.w + mad r17.y, r29.w, r17.z, r17.y + ige r17.z, r17.x, l(0) + or r22.xyz, r22.xyzx, r24.xyzx + or r18.x, r22.y, r22.x + or r18.x, r22.z, r18.x + and r18.z, r19.w, l(0x7fffffff) + ult r18.z, l(0x7f800000), r18.z + or r18.x, r18.z, r18.x + mul r18.z, r25.y, r26.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r28.zwzz, t6.xxxx, s4, r19.w + mad r17.y, r18.z, r19.x, r17.y + add r17.y, r17.y, l(-1.000000) + mad r17.x, cb4[r17.x + 288].w, r17.y, l(1.000000) + movc r17.x, r18.x, l(1.000000), r17.x + movc r17.x, r17.z, r17.x, l(1.000000) + else + mov r17.x, l(1.000000) + endif + else + mov r17.x, l(1.000000) + endif + mul r15.w, r15.w, r17.x + mov r23.xyz, l(0,0,0,0) + endif + add r21.xyz, r21.xyzx, r23.xyzx + mov r16.w, r18.w + endloop + mov r11.y, r15.w + add r20.xyz, r20.xyzx, r21.xyzx + iadd r11.z, r11.z, l(1) +endloop +mad r6.xyz, r20.xyzx, r11.yyyy, r12.xyzx +ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r3.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + dp3 r2.z, r2.xywx, r8.xyzx + max r2.z, r2.z, l(0.000000) + add r2.z, r0.z, r2.z + mad r3.y, r11.w, l(-16.000000), l(-1.000000) + exp r3.y, r3.y + log r2.z, |r2.z| + mul r2.z, r2.z, r3.y + exp r2.z, r2.z + add r2.z, r0.z, r2.z + add r2.z, r2.z, l(-1.000000) + mov_sat r11.xyz, r2.zzzz + mad r12.xyz, r9.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r9.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r9.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + max r12.xyz, r0.zzzz, r12.xyzx +else + mov r11.xyz, r1.yyyy + mov r12.xyz, r1.yyyy +endif +mad r15.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r16.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx +dp2 r0.z, r16.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx +mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r16.xyz, r15.xzyx, -r16.xyzx +max r0.z, |r16.y|, |r16.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.y, |r16.z|, l(-208.000000) +mul_sat r1.y, r1.y, l(0.031250) +max r0.z, r0.z, r1.y +ne r1.y, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.y, r1.y, r2.z +if_nz r1.y + mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r16.xyz, r15.xzyx, -r16.xyzx + max r1.y, |r16.y|, |r16.x| + add r1.y, r1.y, l(-29.000000) + mul_sat r1.y, r1.y, l(0.500000) + add r2.z, |r16.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.y, r1.y, r2.z + lt r2.z, r1.y, l(1.000000) + if_nz r2.z + mad r16.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t19.yzwx, s2, l(0.000000) + add r2.z, -r1.y, l(1.000000) + mul r3.y, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.y, r3.y, r16.y + min r3.y, r7.w, r3.y + mul r16.w, r3.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.y, r18.w, r2.z, r0.z + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mul r19.xyzw, r2.zzzz, r19.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t20.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.xxxx, r16.xyzx + mov r16.w, r17.x + mul r16.xyzw, r2.zzzz, r16.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r18.xyzx + mul r17.xyzw, r2.zzzz, r17.xyzw + else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r3.y, r0.z + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r15.xzyx, -r18.xyzx + max r2.z, |r18.y|, |r18.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r7.w, |r18.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r2.z, r2.z, r7.w + lt r7.w, r2.z, l(1.000000) + if_nz r7.w + mad r18.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t21.yzwx, s2, l(0.000000) + add r7.w, -r2.z, l(1.000000) + mul r1.y, r1.y, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r18.y + min r7.w, r8.w, r7.w + mul r18.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t22.xyzw, s1, l(0.000000) + mad r3.y, r21.w, r1.y, r3.y + add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t22.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r20.yyyy, r22.xyzx + mov r22.w, r20.y + mad r19.xyzw, r22.xyzw, r1.yyyy, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t22.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r1.yyyy, r16.xyzw + mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r18.xyzx + mad r17.xyzw, r20.xyzw, r1.yyyy, r17.xyzw + endif + lt r1.y, l(0.000000), r2.z + if_nz r1.y + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r18.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r15.xyzx, t23.yzwx, s2, l(0.000000) + add r1.y, -r0.z, l(1.000000) + mul r1.y, r1.y, r2.z + max r2.z, r20.y, r15.y + min r2.z, r18.y, r2.z + mul r15.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t24.xyzw, s1, l(0.000000) + add r20.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t24.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r21.yyyy, r20.xyzx + mov r20.w, r21.y + mad r19.xyzw, r20.xyzw, r1.yyyy, r19.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t24.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r21.xxxx, r15.xyzx + mov r15.w, r21.x + mad r16.xyzw, r15.xyzw, r1.yyyy, r16.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r15.xyzx + mad r17.xyzw, r21.xyzw, r1.yyyy, r17.xyzw + mad r3.y, r18.w, r1.y, r3.y + endif + mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.y + add r0.z, r0.z, r1.y + mul r15.y, r0.z, l(0.500000) +else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r15.yxyy, cb0[213].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.zw, r15.yyyx, cb0[213].wwwy +mad r18.x, r15.w, l(0.375000), r15.z +add r17.xyzw, r17.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[214].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.zw, r15.yyyx, cb0[214].wwwy +mad r18.x, r15.w, l(0.375000), r15.z +add r16.xyzw, r16.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[215].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.xy, r15.yxyy, cb0[215].wyww +mad r18.x, r15.y, l(0.375000), r15.x +add r15.xyzw, r18.wyzx, r19.xyzw +ge r18.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r18.y, r18.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r18.xyzw, r4.zwzz, t18.xyzw, s1, l(0.000000) + lt r19.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r18.xyzw| + or r4.zw, r19.zzzw, r19.xxxy + or r0.z, r4.w, r4.z + if_nz r0.z + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mov r4.z, l(1.000000) + mov r4.w, r0.z + mov r1.y, l(0) + loop + ge r2.z, l(4.600000), r4.w + breakc_nz r2.z + iadd r2.z, r1.y, l(1) + mul r19.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r4.zw, r19.xxxy + mov r1.y, r2.z + continue + endloop + mul r18.xyzw, r4.zzzz, r18.xyzw + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb7[3].x, cb7[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r19.x, r0.z, l(0.00390625000) + mov r19.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r19.xyxx, t17.zwxy, s1, l(0.000000) + mad r4.zw, r4.zzzw, cb7[2].xxxy, cb7[2].zzzw + mul r19.x, r4.z, l(3.54490781) + mul r19.yzw, r4.wwww, r18.yyzw + mul r0.z, r18.x, l(0.406976730) + exp r0.z, r0.z + mul r18.xyzw, r0.zzzz, r19.xyzw + mov r19.xyzw, r18.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.y + breakc_nz r2.z + mul r20.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r20.xyzw, r19.xyzw + dp2 r3.y, r20.yxyy, r19.xyxx + dp2 r4.z, r20.zxzz, r19.xzxx + dp2 r4.w, r20.wxww, r19.xwxx + iadd r7.w, r0.z, l(1) + mov r19.x, r2.z + mov r19.y, r3.y + mov r19.zw, r4.zzzw + mov r0.z, r7.w + continue + endloop + mul r18.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r19.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r18.xyzw, r19.xyzw + dp2 r1.y, r18.yxyy, r19.xyxx + dp2 r2.z, r18.zxzz, r19.xzxx + dp2 r3.y, r18.wxww, r19.xwxx + mul r19.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.z, r18.xyzw, r19.xyzw + dp2 r4.w, r18.yxyy, r19.xyxx + dp2 r7.w, r18.zxzz, r19.xzxx + dp2 r8.w, r18.wxww, r19.xwxx + mul r19.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r18.xyzw, r19.xyzw + dp2 r10.x, r18.yxyy, r19.xyxx + dp2 r12.w, r18.zxzz, r19.xzxx + dp2 r14.w, r18.wxww, r19.xwxx + mul r17.w, r0.z, l(0.886226952) + mul r17.x, r3.y, l(-1.02332675) + mul r17.y, r1.y, l(-1.02332675) + mul r17.z, r2.z, l(1.02332675) + mul r16.x, r8.w, l(-1.02332675) + mul r16.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r16.z, r7.w, l(1.02332675) + mul r15.w, r9.w, l(0.886226952) + mul r15.x, r14.w, l(-1.02332675) + mul r15.y, r10.x, l(-1.02332675) + mul r15.z, r12.w, l(1.02332675) + endif +endif +dp3 r0.z, r17.xyzx, r2.xywx +add r0.z, r17.w, r0.z +max r17.x, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r2.xywx +add r0.z, r16.w, r0.z +max r17.y, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r2.xywx +add r0.z, r15.w, r0.z +max r17.z, r0.z, l(0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.y, r11.w, l(0.001000) +log r1.y, r1.y +mad r1.y, -r1.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.y +mul r2.xy, r4.xyxx, cb1[0].wwww +round_ni r2.xy, r2.xyxx +add r1.y, |r3.w|, -cb1[2].y +round_ni r1.y, r1.y +add r2.z, l(-1.000000), cb1[1].x +max r2.w, r1.y, l(0.000000) +min r2.z, r2.z, r2.w +ge r1.y, r2.z, r1.y +mad r2.x, r2.y, cb1[0].x, r2.x +ftoi r2.xy, r2.xzxx +iadd r2.xy, r2.xyxx, cb0[110].zwzz +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.x, r2.x, l(0), t0.xxxx +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.y, r2.y, l(0), t0.xxxx +and r2.x, r2.y, r2.x +and r1.y, r1.y, r2.x +mul r2.xyz, r17.xyzx, cb0[111].xxxx +dp3 r2.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r13.w, l(1.000000) +mov r2.yzw, l(0,0,0,0) +mov r3.y, l(1.000000) +mov r4.z, r1.y +mov r4.w, l(0) +loop + lt r7.w, l(0.010000), r3.y + ine r8.w, r4.z, l(0) + and r8.w, r7.w, r8.w + if_nz r8.w + firstbit_lo r8.w, r4.z + ishl r9.w, l(1), r8.w + xor r4.z, r4.z, r9.w + ishl r8.w, r8.w, l(3) + dp4 r15.x, cb1[r8.w + 6].xyzw, r5.xyzw + dp4 r15.y, cb1[r8.w + 7].xyzw, r5.xyzw + dp4 r15.z, cb1[r8.w + 8].xyzw, r5.xyzw + ge r16.xyz, cb1[r8.w + 5].xyzx, |r15.xyzx| + and r9.w, r16.y, r16.x + and r9.w, r16.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb1[r8.w + 5].x + mul r16.xyz, |r15.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r16.xy, r16.xyxx, r16.xyxx + add r18.xyz, -|r15.xyzx|, cb1[r8.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb1[r8.w + 9].xyzx + eq r10.x, l(1.000000), cb1[r8.w + 10].x + if_nz r10.x + dp3 r19.x, cb1[r8.w + 6].xyzx, r14.xyzx + dp3 r19.y, cb1[r8.w + 7].xyzx, r14.xyzx + dp3 r19.z, cb1[r8.w + 8].xyzx, r14.xyzx + add r20.xyz, -r15.xyzx, cb1[r8.w + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r15.xyzx, -cb1[r8.w + 5].xyzx + div r21.xyz, r21.xyzx, r19.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + movc r20.xyz, r22.xyzx, r20.xyzx, r21.xyzx + min r10.x, r20.y, r20.x + min r10.x, r20.z, r10.x + mad r15.xyz, r19.xyzx, r10.xxxx, r15.xyzx + else + mov r15.xyz, r14.xyzx + endif + dp3 r10.x, r15.xyzx, r15.xyzx + rsq r10.x, r10.x + mul r15.xyz, r10.xxxx, r15.xyzx + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r20.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r19.xyz, -r19.xyzx, r20.xyzx + itof r19.xyz, r19.xyzx + dp3 r10.x, r15.xyzx, r19.xyzx + div r15.xyz, r15.xyzx, r10.xxxx + lt r10.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r19.xxxy + movc r15.xy, r10.xxxx, r15.zwzz, r15.xyxx + dp4 r10.x, cb1[r8.w + 4].xyzw, r13.xyzw + max r10.x, r10.x, l(0.000000) + max r10.x, r10.x, l(0.000100) + min r11.w, r18.z, r18.y + min r11.w, r11.w, r18.x + add r12.w, r16.y, r16.x + mad r12.w, r16.z, r16.z, r12.w + mad r9.w, r9.w, r9.w, -r12.w + mul r9.w, r9.w, cb1[r8.w + 9].x + mul r9.w, r9.w, cb1[r8.w + 9].x + add r12.w, l(1.000000), -cb1[r8.w + 10].y + mul r9.w, r9.w, r12.w + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r11.w, cb1[r8.w + 10].y, r9.w + mul r11.w, r9.w, cb1[r8.w + 10].w + mad r15.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r15.xy, r15.xyxx, cb1[1].wwww, cb1[2].wwww + mov r15.z, cb1[r8.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + mul r15.xyz, r15.xyzx, cb1[r8.w + 9].wwww + div r12.w, r2.x, r10.x + min r12.w, |r12.w|, l(1.000000) + mad r12.w, r12.w, l(2.000000), r2.x + add r10.x, r10.x, l(2.000000) + div r10.x, r12.w, r10.x + add r10.x, r10.x, l(-1.000000) + mad r10.x, r10.x, cb0[112].w, l(1.000000) + mul r15.xyz, r10.xxxx, r15.xyzx + mul r15.xyz, r11.wwww, r15.xyzx + mad r2.yzw, r15.xxyz, r3.yyyy, r2.yyzw + mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) + mul r3.y, r3.y, r8.w + endif + mov r4.w, l(-1) + continue + else + mov r4.w, r7.w + break + endif + mov r4.w, r7.w +endloop +if_nz r4.w + dp3 r1.y, r14.xyzx, r14.xyzx + rsq r1.y, r1.y + mul r5.xzw, r1.yyyy, r14.xxyz + lt r14.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r5.xzwx + lt r15.xyz, r5.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r14.xyz, -r14.xyzx, r15.xyzx + itof r14.xyz, r14.xyzx + dp3 r1.y, r5.xzwx, r14.xyzx + div r5.xzw, r5.xxzw, r1.yyyy + lt r1.y, r5.w, l(0.000000) + add r4.zw, -|r5.zzzx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r4.zw, r4.zzzw, r14.xxxy + movc r4.zw, r1.yyyy, r4.zzzw, r5.xxxz + mov r13.w, l(1.000000) + dp4 r1.y, cb1[3].xyzw, r13.xyzw + max r1.y, r1.y, l(0.000000) + max r1.y, r1.y, l(0.000100) + mad r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r13.xy, r4.zwzz, cb1[1].wwww, cb1[2].wwww + mov r13.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r5.xzw, r13.xyzx, t5.xwyz, s3, r0.z + div r0.z, r2.x, r1.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.x + add r1.y, r1.y, l(2.000000) + div r0.z, r0.z, r1.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r5.xzw, r0.zzzz, r5.xxzw + mad r2.yzw, r5.xxzw, r3.yyyy, r2.yyzw +endif +mul r2.xyz, r2.yzwy, cb0[112].zzzz +mul r2.xyz, r2.xyzx, cb0[111].yyyy +if_nz r3.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r5.xzw, v1.xyxx, t2.xwyz, s1, cb0[108].x + add r1.y, -r0.z, l(1.000000) + mul r13.xyz, r1.yyyy, r2.xyzx + mad r2.xyz, r5.xzwx, r0.zzzz, r13.xyzx +endif +mul r5.xzw, r9.xxyz, r17.xxyz +mul r5.xzw, r5.xxzw, cb0[111].xxxx +add r0.z, -r3.x, l(1.000000) +div r0.z, r0.z, r3.x +mul r1.xyz, r0.zzzz, r1.xzwx +mad r1.xyz, r1.xyzx, r10.yzwy, r10.yzwy +mul r1.xyz, r1.xyzx, r2.xyzx +mul r1.xyz, r11.xyzx, r1.xyzx +mad r1.xyz, r5.xzwx, r12.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r6.xyzx +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r5.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r8.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r8.xyzx, -r7.xyzx + add r2.w, r5.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w + mul r4.z, r0.x, r3.z + mad r4.w, r4.z, r2.w, cb0[44].y + mad r2.w, -r4.z, r2.w, r2.w + mul r4.z, r2.w, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.x, r4.w, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.z, l(5.960464478E-08), |r4.z| + exp r5.w, -r4.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r5.z, r5.w, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r5.z, l(5.960464478E-08), |r2.w| + exp r5.w, -r2.w + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r5.z, r5.w, r2.w + mul r2.w, r2.w, r4.w + mad r2.w, r5.x, r4.z, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r6.w, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r6.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r3.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t16.xyzw, s1, l(0.000000) + add r0.y, |r3.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x1E8A471E.cso b/src/games/endfield/deferred-lighting/0x1E8A471E.cso index e44e7c989a18d506fa4a2db2a04e8be8dd82be3d..25e3bfb46694077893472f89e706f54646fe021c 100644 GIT binary patch delta 87 zcmdnvvGHa*D4zU(n<{r&nwmWnPuAbAIXPoz2mtygA>9A~ delta 535 zcmZ4Uo@vi#CMlN)Cuf0&kw4eHy885*8~gK=YfIA@85kJ$?3^gIi0jV|28IA2&t7li zF}-cvvu4h;gW}2mx2bX)8ynk0@nrq&nkoVe3|vhN0u0PREpAK#4D3Lf$$^1k{;E}W zFg$t7MwNP)LKdI`kU~}<&E&wqaA9+#U8K0V{fxVlZGl2SqaX%?raB7+ z26m9eY(RM{APq8?5vY!V;e?Y314Ira29+}dONwv5Xu$`RECOoa1WLjj@{J#208k?r zvK;5+hnwX&VJbN%7uJY7TA=9%$%6EQ91M~JISOVmC{!ShVz6gWVBi4DO};2AJh?!Q zW%3*mo_b`b&zdP|k8T3YB#<|OfCI&KKmni+8XQ3qKy1XozzLEEv0**}`4HxQkT}qM Rt|A3sAOitVZgTo|R{(l`T#x_& diff --git a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm index 8b104c4ff..6da5862a3 100644 --- a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm @@ -1520,60 +1520,23 @@ if_z cb13[12].y ret endif -// === Custom Hue-Preserving Fog Blend === -// FOG_INTENSITY = 0.7, HUE_PRESERVATION = 0.6 +// === Simplified Fog Modification (Anti-Banding) === // r1.xyz = scene color (0-255), r2.xyw = transmittance, r0.xyz = fog inscatter (0-255) // Normalize colors to 0-1 range mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 -// Reduce fog intensity: transmittance = lerp(transmittance, 1, 0.3) +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density add r7.xyz, -r2.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r7.xyz, r7.xyzx, l(0.300000, 0.300000, 0.300000, 0.000000), r2.xywx // adjusted transmittance +mad r7.xyz, r7.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r2.xywx -// fogColor *= FOG_INTENSITY (0.7) -mul r6.xyz, r6.xyzx, l(0.700000, 0.700000, 0.700000, 0.000000) +// Reduce fog inscatter intensity +mul r6.xyz, r6.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) -// Standard fog blend: foggedScene = sceneColor * transmittance + fogColor +// Standard fog blend with reduced intensity mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx -// Calculate fog amount: fogAmount = 1 - avg(transmittance) -dp3 r3.w, r7.xyzx, l(0.333333, 0.333333, 0.333333, 0.000000) -add r3.w, -r3.w, l(1.000000) - -// Scene luminance (BT.709) -dp3 r4.w, r5.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) - -// Fogged luminance -dp3 r5.w, r8.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) - -// lumaWeight = saturate(sceneLuma * 100) for smooth falloff -mul_sat r6.w, r4.w, l(100.000000) - -// Safe luma for division -max r4.w, r4.w, l(0.0001) - -// sceneRatios = sceneColor / safeLuma -div r9.xyz, r5.xyzx, r4.wwww - -// Clamp ratios to prevent artifacts -max r9.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r9.xyz, r9.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000) - -// huePreserved = sceneRatios * foggedLuma -mul r9.xyz, r9.xyzx, r5.wwww - -// preserveAmount = HUE_PRESERVATION * saturate(1 - fogAmount*0.5) * lumaWeight -mul r4.w, r3.w, l(0.500000) -add_sat r4.w, -r4.w, l(1.000000) -mul r4.w, r4.w, l(0.600000) // HUE_PRESERVATION -mul r4.w, r4.w, r6.w - -// foggedScene = lerp(foggedScene, huePreserved, preserveAmount) -add r9.xyz, r9.xyzx, -r8.xyzx -mad r8.xyz, r4.wwww, r9.xyzx, r8.xyzx - // Output: scale back to 0-255 range mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) dp3 o0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) diff --git a/src/games/endfield/deferred-lighting/0x37837806.cso b/src/games/endfield/deferred-lighting/0x37837806.cso index bc6299824345153ae288078906f00e56d55a09c5..a4ba6bd372d7f7a6939cb945ff4fb6dd32114959 100644 GIT binary patch delta 86 zcmdmTjd95(Mk$vFC+F31yNcv~Y*ugxvM`YO{a^unE f>DPcF|;;x>$k2AYCAu$$^34!sbZ3NO5!f8Fwe!0)>F)LQH1^vO(%NfHac> zraB7+26m9?Alt2gG{`(gpgIPI6HX=!5IK+-RL%@6DZc%p1s_nd2&jP*C<$}OH-3l# zK#g3;a-5SdvWQPENaf&!spg!#QCr-~0?iDNEXWLyqd{^Yhruid1rx+!4E78PllMi- zO^y-dsE0|z+&yciq&>P;m>Q5Dfq(^BWvN5?A@S62W4 diff --git a/src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm index 7a5838d00..6861c253a 100644 --- a/src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm @@ -888,60 +888,23 @@ if_z cb13[12].y ret endif -// === Custom Hue-Preserving Fog Blend === -// FOG_INTENSITY = 0.7, HUE_PRESERVATION = 0.6 +// === Simplified Fog Modification (Anti-Banding) === // r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter (0-255) // Normalize colors to 0-1 range mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 -// Reduce fog intensity: transmittance = lerp(transmittance, 1, 0.3) +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density add r7.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r7.xyz, r7.xyzx, l(0.300000, 0.300000, 0.300000, 0.000000), r4.xyzx // adjusted transmittance +mad r7.xyz, r7.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx -// fogColor *= FOG_INTENSITY (0.7) -mul r6.xyz, r6.xyzx, l(0.700000, 0.700000, 0.700000, 0.000000) +// Reduce fog inscatter intensity +mul r6.xyz, r6.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) -// Standard fog blend: foggedScene = sceneColor * transmittance + fogColor +// Standard fog blend with reduced intensity mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx -// Calculate fog amount: fogAmount = 1 - avg(transmittance) -dp3 r3.w, r7.xyzx, l(0.333333, 0.333333, 0.333333, 0.000000) -add r3.w, -r3.w, l(1.000000) - -// Scene luminance (BT.709) -dp3 r5.w, r5.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) - -// Fogged luminance -dp3 r6.w, r8.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) - -// lumaWeight = saturate(sceneLuma * 100) for smooth falloff -mul_sat r7.w, r5.w, l(100.000000) - -// Safe luma for division -max r5.w, r5.w, l(0.0001) - -// sceneRatios = sceneColor / safeLuma -div r9.xyz, r5.xyzx, r5.wwww - -// Clamp ratios to prevent artifacts -max r9.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r9.xyz, r9.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000) - -// huePreserved = sceneRatios * foggedLuma -mul r9.xyz, r9.xyzx, r6.wwww - -// preserveAmount = HUE_PRESERVATION * saturate(1 - fogAmount*0.5) * lumaWeight -mul r5.w, r3.w, l(0.500000) -add_sat r5.w, -r5.w, l(1.000000) -mul r5.w, r5.w, l(0.600000) // HUE_PRESERVATION -mul r5.w, r5.w, r7.w - -// foggedScene = lerp(foggedScene, huePreserved, preserveAmount) -add r9.xyz, r9.xyzx, -r8.xyzx -mad r8.xyz, r5.wwww, r9.xyzx, r8.xyzx - // Output: scale back to 0-255 range mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) diff --git a/src/games/endfield/deferred-lighting/0x518D3855.cso b/src/games/endfield/deferred-lighting/0x518D3855.cso new file mode 100644 index 0000000000000000000000000000000000000000..626d32c359c18db20145093358465f5af3ce0d17 GIT binary patch literal 51720 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®Ne~yjw+UL+(8;pQFUNkX=%h7o^xneunid=2uTQ*N37l*6r%tL3 zy{LCOVyy#iI@N*;XLY@(PhRUzO{Vk3xLMERl0&Q=gUr+Tc`kt;`O=9f%{S9KFWkcK zF8N?s&t6|*4jdm$dG@(D#J4WYMf&K>e!=?izJqBpKlakZ>M7A6i}fbfvCmH5tu#N) z#cBO7@QG*)XN?TnvNnw2ZzO#7dKn*(_1G;uc8i=_6CKa@HjBQyrDZ>c{*oEr-_kcs z-?_(obGCc8yhrD2=Frvrqj^*JPR=vt7;8PbG||UC0GGTc565s7*BRWMtKeo|sTRlj zKwKp&-gzqfo!VbWF}6O;QH|GkD~n$$4ewSOS2AKR56)Kc>+vMZd5#W-!=D^757}RN zFgL>wdbiSW$*6TS^AL;pO_g&LzRKTNW6&G0e8k)4{Z=`Sl$kXf#jjyOry* zo4KYV?4U-AE@}(?9>0ILa$mTt>z4m6=|nt_r7`gF53w=qc)>C3M#(blf?)WJcPovj z`FYrIkNMq7%a%=*hjGyRQSl<4nipX+`X+d+LHLDn9T6M)9<#lwlTkm&`wa8DmHUMU z`1##R>xYfTc|tWN@F@Vz(LE%*XeJv?SP_ar*iyX&$|$buKG_WCR5i!E)Zfx+SXO5;VnE%&Hx z2XcQuSngjKxZxr3!(U5}_H}}o@E)aoeCZdb?^b#Y+bf-R=J=n#b6EJ)cPkVA^$$o6 zxn?}^ZIHz~PHm@7|NNo0ip{G`v!p!*w354Oxnq2USL?sf!{5~Tb0sI*P8T63o>9fU z@hSQHigb&d6dw3XrB!!zQ!wn)`W3vfvF&uKzN8=DHLRd-$Sb~RJ0P>i9nuS)+_$kN zPWjE^Nw2_*_hX9=ZKuIG?^ecrVAJbZ`XS>5$v`I^RW9onIBloXzz)mJJir^u1rK|} zZ{>ch$2<6LWsRA>?*$*cawrB3AM&F5*E(qZoAJ?52j#7*m$o>UI+h#z(^7ba>M+b?6TJ;o!};Ng4Y zc?`elh+IY9OR9IkXyI=j6ZPTiF=R1zTrIg~JY;|e56fZQa(TDX za?uZ(F+AR_%>1Ak!{gmbV9Mplsn@H|JC!kS^o}Kd&hKfhNoM$>_-6Qi+m^V314#XTJ%NF zYvqgY$=Pe+i|@zyDjs#Oi?4`FzsH=uTX{@l)Ec+!qwW@+^AKMEgPu0Su*WcRbRp$7 zIx$C(r)_h*TS<%qPh(n(AAz3hAy3ATM|&#qL>KZ0x?%pHFY<`C9=TdK5DqHAK=HkQO37Tg;#u60UzJn&_^d)aA}RZrY`l>ygV+w7p?}w zfBWKfvv_Tl*1W}U`Mk!i_PwmgV*PuKI^>C4Xk70lKX?%w zPw@&JwGIX!TI^Fk1wZN+dUA~p&|XrU;m-Ij9J+Un_Cq?OlktfeM<0`}{LP}h_#61f!S{>8F|N8{Gd6jQ+~GY( z^X7gMI_xa*ex|gS<^R}kfdf75n^i9M)rY6(;@Jj$=Rg?`xM|>%XaXjZ1G=FH^cm(c z>vVF`yy|)3;aBeCz?UsI5<6lSnKKUH~GG>0nfidcYd=`H*iTQZp(TUDV7=83?DegzO{%w5> zd!B((BZ5Zv7(DBdeSy!I^sDn=z2qF@E2*!`SclZsT<>${JOAd?WFD+JE%bP%N**a+ zBcI{j)7~Gn!`$s*&1wARxks*ZIA2vOD&K-nEe{-QzP-?TZUN}=_O_)`*K#F zz4&`@#*@FIP7q(_4|&#hIyDVvf0~wFe;>VFTINrzV{00KHhAn$bk#J!rO(+i9}K6J zyjA9icOZ8b`v2GTlxWNc8vf=kEo(&b2_w~?vO8i<9y^cF8J{iIF}(v? zauA)-Z$og_AC1?X0cO9Om;Dbfd`!Ep7QIfC*mw+n#__rUp2y(%l`nt!Ot$%oc)eOU z&)K*7I}7+=_}-^m?KC(z3`fVd(`j%R4!^e3X>iyNo-DQE_3Cu4V%wUgXYUPaAiT>h_pUB)^F4*JkCN1Nt5&wA}V2y4i( zc&CN=F1pIEr@cRDYkd)4@OoHtMtU8PN#28VyI`i9)u*rL#@ig^$FgYKPNzZbZaaoz z{W(z2<@cIfdKUq_nR;$Gt>i^L$A8YpOrx=g6S#TaJte!$2U_Ym?N~ieb_cI%Ec*A1 zsS(upt&?sjY0>#aiVb7IPc3nCtq0F^=rUI8j|%6xGN<|9 zhEdbr-`iI7$KNxx9-1x5vi*y?))94(dpz@NJ6-6wTCMjzX0-F=NBzmTZ3pK)o&Bjf z_p|{1)LIWMwchdP+Vh`2ek!?j*fob556t&B!8s|<*h>AxHelJ-vD#1U+fJwIcl__M>i4G^BM;9PS@6yJkW=`1O?b!#mSr=p zu?1?7=bH1;wP>&hpYdC&LDWZonzqx`E384XBkIl6_SqViYtPxT|Fo^Nvh|wlm2hvi z&&0Q`H@_u5ZKu;f_qJom-}TV;zukZb@g(2S+j)1Q#KbV`$@Q>SlKZBkR)RZLD;*!! z9@!s9AFJ_N>Gzl`rH&)-!`MEUbkTKlLY9wkGFypqJ zE_7V2cG<7ds&Ry-pwGj7|#*>&sX=MS{hF2{rGlVzVuAO8T8teM&cEYGQ^?ZsAn ze9+cwuU+sS`q8$++j-M=x_AY)LQCzktz6qy`YQulUrFsE7urszSD+7i;KQts{k$gF z*c!n&ILr&y#x1qTrp;@n#uhdwJzgF!b*?LO=(0$c*F=l`%J(|Q%umB}pMNk{Hm0;f zt$RQJhX4Qf9(#GS$ZtEObM$qJ9zKwcp#wfTr@b?F>KziDo8~|1gD;gUsW*e`}(vDG%ad9^myno{ry`ajoOJE5dPH-9mFU9bXXq`_<7ru2o0pz1x@5 z@mv27bTp4^)iL5&?vuU7>-)3#KV$ftzj!`;WLl*Na6j$CEMZWm)30a8w`a zk>kXg248XmpS)5(Y0ji&Uet$YZ0<8Zhq%4Z9=WIZE`C3{CVtSEUk}^6 z%P|3F{G5CCfphPTAMgK`$jBPGYFz$*9`^IMtKdsaE~)OhkFU^&TyyRt```WULmjXe z3yk#%KKv~U{0Pjpt_X)Q=+3_Hn`d4-l5aUC^*f1@>)7qN;y5v8{>2xOclQ^$*kS)U zuX5f=Uc8HR{H&`haW$aKdNmtkCC16^$vF27c7d$QRPv@by^8E_edh z+M&2F9M#AEA#T_WUE3Y>kMV$iOnY3`tF{Zg?bjXu#ASV=wI2npbIpA1M{LB8A+zWT z3|p`jKLX2s#HO%WegtMe4)tP zUoYn2m|n={@0`rjYeldzy`baoBaG-3c}M(m-f5oKngq-_Mozx(5BD$2&ynYb5yK4I zkv#Jxh6NTp(S^8BSMWcuEDzXMjQ0b9@qQrwZ#$iIppQOr|A}7k$G`A5kIWw! z_TZ1izwT9m;o}U$9@F9D0^3&p$NxC;JX1dwy`?2f?X!zI%e_URp?(ARjhS_kU)b(VEpv>XrX^QFQ6T+Fl!9avh^%l}-2|4@JU568CV z@E_t0`OBWU{sCtH*st~zIq;%XY9SqW>w$9rEBemFNN-nc`LJ<4+YBvMiGp zT>lo6{z{@>)V1nO{e3&XnSdvC$#~Qo{0bhjS?7(H`DMJF0Uq>2ewsJ+d8VE*hTQB6 zJ-dndjXZp2yRk|8li)|2VdNEKwi|!CuUrfL?K}OAveTN22jmKGs#nsX?c(p6oraE& z#KazVv&h^Xv;qg8^2{dwPDl7|#8z~pmKWToXyi@mS#KZc456su_ zWKD1^$T48}pEkqDNyfI+5)Z8j!8?3WY~tuPSif`dFlw*J3=eE;naG0<0Y(Ko(PN%`anu5-e8zokyA3pezVw1;c=h*|yv9u4e z4brLlA0GpAeO7n%*)pc*aCPprognq-zppqYKE}PIS_dDVAt0YT*erbPyO(qi68eicTDRUm`hQyGZ%r`QZ6o>+ zyP=NOe+<_1`}aGWljex&z=x+~#9EN~+irA6r@$+|&|c{PzI=A0^M&<*JZU?f2G6V7 zj-iGngvAq-j2)kM$#G>;unt*T5l+Trdo~UX(rF$Kr43@h{KA7#Gg zDCQ4+$1mqy)(2n12fb-MpClvJhz*SsPiXkPuy`)44PelMqgd5@RMQ!z8nEE~61c9* z>)?N>Eol0=Iq7dTdy;~+fJuASYtT)@1QHLpShN2_^dOAS+4JS zS&QJQbtdLk`1Ny>@Gto=Twj1YCf3vI%Mix;qP)D(vMsai#H2r5pSIhsj7)3RwrHbf zq2CMTIlAi84%w;0HN*B&e-bR}4|u)2J@h@C;DD^l zf%-G_l~AMp4CyUf@EN_Py!-ldfNpOB%4q$;50|vh;IKc?{YBaB8UxO-#weE;G!N^2 zuWOIq8H82H8iVt@O^y%i;~KE4{ySdgw<_eHzgy6n&sFmweKH;OG~#+wsR>$t$cHgH zjn*7jY-3)7>iD_FFlRka{9ItnKlUNd7N9Bqi5idY_|`4Y9`FtNdW?3d*oAL${!oXp zgB*-HURvwOnB`l?4CA-G_!u3)h4)Z4Fy(v25q*4T!Tq`CecS0m&-Bu#K5v9Ccx$E2 z&l?R>U8%g(j~q7a)d{8=68nRYU36|cAq)=t(0H`jhxUQtwvX!}j2VCr4D%eq_ugYO zAN1S2ndg1P<+EiU$vj@@V(lw=G_8-s4nF4w^w6NozTosd$Kk`@YR!274-R05+J$%q zWcud?Ll@@(d5A5dKVsOD;sZ|GHO*uH>*5)8qoof%IjAFY7QXm{mi&Rvamlc@6JT(t zHb(po;yrRt)A$p*)$cRcr9b!f-YflD>i>Q9SyvpB><6BOVPp0mem0-a_x(D*pDesG zK6>I)4q~xZe3|9k_2sX{@6rrgDL5ioPGcblU-kU@|HWXvO=G^&d)2g8v;Q9q^fDi0 zNUv?(E64LY#$cE;QP6 zRr;Q%>THquMZsC4@Ef@DP4H4T6Km0}+TT1STn_$j4M*E)GycKX#z&XYGWNdz z@$lVz7^4;K;k80bE^weP2l6?<*_Z<}4LJCY!*qt3pJgoyX9zQmI8=RR;#6YBJ%o;k zrTH*_*VFHL-lS{!H)pTN1 zeEy;M05>1gc+YcDaMwa?GQ9WgA3dv~hzY!jEv;xn7j>J=-}0kP@~QI=6xt=N0l?c% zrzZH|ul3LT?I+|j=Qc#=d&#EHiP%F!1K<4u&wdmr<{xy5O~^|;wiWBh zwE_?Rq7VIuO^R>T6~F!W|NU3a&>lN~d;Lv2df>k?UIN8DG)~x=d`yh+0XAlwVGM_G z#}NAytm-<((|$$fm|vA2;nzjMvtJoMt1-rPykftKK4^2!XP($H^y^Nc8T!?{WM8aV z=;Sfyu;kQQ0}Q{el-9V8u|UAWKKja)&=sAOYxNxiu7H^r*XS^;C+3g;60Gvqe&+y< zWoa(Wtxx|*@-`>^^J8r0J_B9O{nA9|rul+COP`wP-1pTSkYn94%=XF$kj8feN$(i5 zez%rfMm}^L&~d$9t{>FU#nR^)0kF2yNk>o7x9n|=$NfErViNcK^gY&gTqzRa?!Ik1 z4aC9y1xJ4`JLKoJ{Y%2|clpeV&7w2U1~_(0J^Lr>ONV#{%eZWc`OvEG`S_0+FZlG| zEIT%eW%hyRp1{>F#}kcePp#ReG5m|7;rYYP!t}jOe8~PfTHU9LzVUtPLdQiMvF^~z zdW&z(y-R|fn)J`63m#1qJl^opx2qfXaUn#OH+kSf5$Bt`P&q&#Em))Go#yWBP?hthdya z0*_YoK}sz~CP(H8?QmU4c%dWpr|1&&I@LX#?ZUTt9$eJ5V~w5YK|6?L-HRID+tT~i zKC-^hkMXn)$i%nyLCRvu}svL*FKN_(SxP*zYreab%vzANtmK_9;A& zV_vc^@~!ZqslHPT>-`4!<({2qDb~efJW~*EtcwxXRHwLaw$Jmu zHnH9p??vEh7t|v6cW!+9*>_&!b1mqgr_R9(9+?;K0(u`04F5atxYmAYWoRGIhy09| z=g=I|wc>fK?SOFj85C`^O1zMv7(|ZJZ#$i4?iGXQb(U?OJU0WMxWR{mXRsWOt=BWx z3Z7BpHy!a?X`U+{(Z|mkfa?go=!-t|B4650r-5F?5!nSdTJTPs_!npVfy(PFz5yRC z8RKX>{-@#_xBb!3j7{L-e_G3da!saW+cO^enm>6j{JJJEZhQD0qdy`+ubLa+@g1z& zu{>iBopLFBg|1##|C#!|zx#d3nk3|$@)`l2Y^l679=tT%0Lytw4CKed@VOdlY{M0#EV?*nMe#xKVhLN5G!@`TlRiu|MRxrL%5Ec*at`-j?>d>JuMbWz*DS3Ihpi48~O!KCkdJ{m?#OiofK3J!X4=t1*=5K+Dh~wjTJ{um7)GzwzfW})l41OK7x7S(^bUf-dKpVsRQU;i~7d$%rmAj&&%_SY4o?~b>v9FXG~-MR=teRn8y5)UY=)6V_qWbJYyR3*kpXh zH1xflUV}fK%Ez_lmUI5=&wTTn-|^1xeAjorv8{WBn_8o73 z*Y>x5+qZXblJ6cAK6b+UgkEmQrpdIJZ+*m=d9nM3Z$0~$zWrU@r#|)dum9?|eC=;{ z-J6-euj~Hufo|c?9qYPvU3cBiW^^-eH$R7dMgGnucs1AJTlkb%F$SmDRA2?3^cBD5 z_f~~*`$H4Ry5H36tq00AIKMAL4MzrkF`V&|9OrA||F=YBeBw@A3@6@Cah>uGYs~AL zVEZjcHJXl*{Y?kTJaUbLOplT0F|y8+j^ADQ0P{7xn0?E!0*Bwj4^OY*8P{J@;Lx_$ z@NTcMqrE0y+iP;Ey~YP|o$|@i_L{ZZULP7=fKtv?kDPdv~JuQUmW*`mG2Dy7iq2)6tk; z8_k2m{MKk5o@xh>75w`mi^=W2@ZL~au`Zwe@B~nIMlaw=6LYfWwq5a|0c-nv5{4cp z6K7%Qy1)ADmu)<#atWPb^r}U-H9Enn`|Oc|^QFlP*~{r)co8GfF5{C$#+pNmlRJ|o zcmhW@bg%AiSzJ!MFC5VX-=rbdrum7k`#}HRZs)yEzN)hf^FS7PyY$^fN8x_RxWoc| zmgn#s)2&Et#p%FC(%kj_qC51~;}ydB^WuM{>vkS^_!ZrC;bPmie1VhZGFM>Q23Uck?ap7la* z!2iPg3!Jgyv`h}bA2@jZ&~^X)>RV6U_wxHTzwcLn;-ef1-QeTAg%^2? z9^t3tPda82JFs!T?q5a|i50!Kxn&f1^Utz=PK75 ze8Z@xcfG36J@N9ATaG<2=HLlV#y@-mtmOe;=05xCf(PuHWD?gix0ZhC_JSk+QJ;aK zSLBTBhW`_{m1}S=rq0f_?PEok?E@7j@}3-B)p{exSi{9%-B9|SOFB~BPVB&==CO|? zY?HV#Z{LP4izz32;*4*BIaiauv)@}7wp;h@Lxq>^w9mlDE@W?~9CSd>h^zdu2rPT# z7>3T^m{<5+yjr?3EaYU2zCgS-!~;LDR)Tb$TOY4) za3w$16a2>Tw`uO~grhsLqy4;IMRvEz9s?b4$vu2lW6nC~9-HW$yotJ0_4{>Q8}@4; zh`(u+n}HYfca-&|n1;O}U+eub5dc?w>sXf&4{)qY(eHPE;lyM=SVyfru#)t_TzV7t~En)K&0ipBCq+Qfc=9sQuUuG2kByy61i zHhMVT(YL;vmA@0YXrIYHN3NxeCDp`UoclpOm>NnY&P`_VYJfxo`%KDf0|&NUY$hx3T}Jn_y_U)hV53(hx54uqM)F;=8X|z^8 zu>&8UN58-PBV*itfZdMX{i=C&SpdIk&4)kxs$JN#n&$T^)cxmF7s z@vD8-54uppw`DY&SLhAC^XdjZ4jWtCet@Ixqrb6@(6VpZMy_omW993Njm+T_+sHNR z6`hGOI@9-q-d=zn$Y-y%9`LYVnQLWoy`og(KE!_S2ThKe;po^8dK)#v;nxp(8#VmU z<}f+Sy^ZXRy%HVIJvPyM*(-IwP}k;u^*enOctPLnm22`LepOyY%?2+2*Rd|^-s81Y z*4yu15iHIExuz>kfxr0*_4|DCKXbUq=?77j<~%$_{jeUa)6^$=>i6zwuJAAQ+xRp2 zkZ0|F2tl<@bJY)eo9-X6-Z|5dOH>o*(!Ba@IKAXW{Z8MOJlvfKQfj35gulUUYstlt z9O^e`o_Y1Vu{(I-7u!yruB2b=1J(^V*kjs)-|eaG(B2{3o2l*QWjU*&#cpc5VaSG` zanKJKc%DO-d9@w7tGR}$JDj1PueL*Dd)FlgyO|=6TBns?Kj=d3MztM$;vW6}@}u6g zxcwl)7f^4YrKUKKxMscMC&u_SbL;l&8d1x)Rnvh{FR_v9w#MUM`>r2!p?0GhKa;P| zV{41s4{*Nu8V@Zx+g7e^D`R5U+Dg5|Hq+VGd9|L{_k-SEfIi5g*0=g>=)8cRqy9@a zu-4DaQ+w}j)>^Kodaf9qv8Q{|Yz?B;`PKD`HiN_pzny#&Hp4+d!LFY9}eT#GGw=ioRV;Hpy z`Nr*sn7?7|vR|X$hqvMxdD-F?-Z#IVp`~^?9$b4pGsXwNBx|O20c+RPOIf?-`O&sI z@96tMZ!e%$K!eVga9bu-4DiE^xM_Ypx58 z_U@T+ww!dgd;NGX%{n*a8oDIXc=mz)C!00q^`z<8?}>@vk>iH3R#-<#8?fZRDZT$V z&eR7sQhq;3!D!T~((r+FjB`D{IqC=3_&0jTm#zia2cB&p_qm40m6T&1pZ&p! zAYEr3yNL@A{84yZK84@8R=e$b;;nR{P92rz1_kF(-|Zme_mIPZCa z1rOFPbI9%oeO~^``!@a36tO=9595(H{m^y4`sufx@=H^}1Dr8FdiO)u{oUXGk^BA9 zRK*uftZ(c>56huv4<#PJ$UFM{G-HR2u| z$INq%nPJ4tFvkp-V-_&kN#7588?`^x*h~%*JJvA0p2O|uk4@|#x6$X(<(iLCHyqok zsGUpPwnXeXJ!^~ey0we7ggx}|e?Gg& zzwo6#_eg!>-iA5z!v2fN@7=-!rWUmq8tD<|x8Rd&Z9lyeKX~|Flw2Ynz{o{N(RYcJ;YF&;9YA^pCSPy0!JX>n;z|mt!(q*2fC@ z62WBpnSf{`Ch+M8z17dd%Xhgn5&ObkIsV+d;7Om@7r?7)zS&2}iRr66|70B-AOG8q zw$85#$GJ)0!qyXppU6?ihJB4W_rP4&r)z4bo(a)|n%ob18#QVjaOzV(=xt<&;7hi{ z_s0KJSbOD_dwhZ7^A7A?JzDah*LXd@pMpQoojJ8VxlL~T%Cld4YQJ^!w%@vUAh%b< z1AoEGxvk3=y>7^H_{qo1&-_2rwhQ~R5Zv!6U8+)eDtHAi~5bYQBg5M*Ot8)~ z2rz2oz^-_Z%jVw?AkEe<>h)L_bq~7sJ5ATc>*bo`3>H4rvlG5I!Ly}Bb^gx7cWFGP z)BR%i+)dD7H*&zgApEdVapZa<&tm96Z0YOsmBg7R_cM9^<2llP`kHquuRhO6SrT{f zymX8F$nS@N-w%3IQ*5;_#981JIgC$3$6HEn^h2q4;FK81rb&0mF`8E^To>r!r51ZH zvC+DTnt(nh1!vB+l(FYn&ksNRaIK}}eGAj&o?6<{8<*HvSI?mr{E)k%@l5T@Yk_MW z6J6EWwzagLL+7viZ@qu#J@8t-?$_4X~lz{DTm-KnwbvimX2IP`|O=DP>xdd>OFy!t^G z`_yaG(o?UYlOeZWPrdGxo!E;_%)L@$>L#-Kq3d4$lb_xCPpkjs0r#BETRia9g7%mO z&@$H#`g~UYXkU^Y>m_uzEcMW--S)V~)GzBv{NRN@$T{f98F0uCdbNOYo*l!`wWWjJ zbFWH#=+r`g!Dej#vfF-Vt9{u=#-s0t{e9Hp2{mMVz6SWnw5@*_+ehfNEgOS}dg#<< zd;|_Y0>?g@=LhK4#Dh4`^U;c6_!$`V;&&_f%&n@2ZbLN|Uz$I@WNkkC?6arnKl&bOengDni!8O}`S_jAlC@DIqDDdE94t0IwRv~uB5TclF0eQ^hW`ws zH(lw6>OXixZ(MYjJyHMgyU$RMRvyCuew*KnJqL+x^V;f%a@G_q+DD&!D|=SOTWWl^ z*u8$scse6oCN3M2cTAI4)lYrfUDgz@X#GGp=$%(-_|LjnhWoiN#RoaS$UobKO#5GR z0mEOc8T{w|jadWiOM3eG_g)|FQ{GJM zr?U3$tEOvv+uqJuM?Y6=VdT?0R^EGZA^kFjVFx_7!SN z>m_fz{*LdD7w2Cn(8Ky8e?9dX>u=rY%UUV=JCB^x)<^LTe}hksP{)!kYL(=2_P&iA z#(vW~mqk}|jr$Sk>5r*btG+Sah1~NTC+pkhD0FT8Y+=;fHn*YoTw9l|7coK~>OTE` zdjoobW4)XQt!#mxcW-b#f*!rrFPYZy^iULi)#}(@F$_pKa#Ot(q{_j*AIFt?Xo&vT|ek8+O*b_b6%fbm+t4m z&gj_`@d4JZg*I26|I}3KJN|S3|LgqpY{oim>*SVvpcGa&ZBXiCx7;<^T;#3>pb^C>;dfG%+V|Vru9L4A9MXs&iEQe<9>)bXuYhD zfXnbh56kF>>3xuVMbtgrdsXl+2px|vtw(Y0Mu$n_k$Iv+HgYdiNq zf< zTHfZfA#u*-7qdUw7hYTaQ0{}c|B<@UxDPU3>jUnCxc^Bsa$zPe*wPPrYwm#<_k-S> zdmzU6Z!E*I=E1JYSL}trY`=YCKT=ohTX^9=_w0{`8Q;FlwX)|v$avfbnYJIqbaWr2 z^-^maq!y0JgDF~XnZ z4f@}+?>gZ*#PnGN_dzWWX!}8L)rX9`&iW&NJ@sKdwE9~&`m$Dv{^swTb{^qx=L&v0 zHl^EhAB6p5dVF(TbnKlMbe|FDuDsWQw_$o_6ZcV^9p>S{8yxy2@oRDXED{-a>I}#; zRmq+EJkie}-76mPEE2omPp=lV+}C-oAEx_@pSQ_}bsgca;GrHmwHo))Z*Aj^ZWqaig>UN=J^O1ezrf*e=X;{)}7bzw=Y=_<7bhU zV_vyt>a$3EOO9xrcm2?Hes=F(u&8U`NoIVmfZjYaM8|&6TWN#)-lJLr;`?ET&Zo`% zUJD)#UOtc9Ipt@Z0>|&Wz}t&o?^EluNc6KWi;dGg7~8NPUIjMYgMr~wdefDDx(CDC zIOemVDSR9BI}>5(nXX>Ye#wy!4B$DxD_-IYt=dK{fJZ;*O^wgJ>HREnKcD$|q@P7T zE~V_18}v|aYes&v4|UNhLwnu#3C-uI}$>?3@+ zD|pWB*@KNIKgF|1a=st*R`-wcIlW@EXAf@Wzz15%i#=hyb_BYdv5&J!qmy-u-fMdv z?{*Kf-tfGcJ#0(bQ3u;xLx$|Gb;kZAZ}9aW#UAXquBSe&{)Sn{;;-2~*g1`^=!m~t zI_gH!?b(B|e@rhQM7?C4_!%Vqc%L$zafp-UuBI;NjZSKH?;FFYx2Ch5%#jc1?zp0t za|D^}4fON&2I6R(Hh;#ltrxjDhFLH4w+_s$rA^GW`Hf8LkH5!z1G?{B13T;uGj$$$ zz38)fH1r<5h&q2kdk%F$t=2-e-_wNo28$v^TxrK z@R2WWSm*6u$A%pB9K-X;$GO=LnpOLMrOw;8to3o7H_Sf8m%G9vFXi8;)r?CVc1{_O zI&a#35W=X=o0i=5y;kxJ-sU5D@w*!0D4Kv}UcBf!Z{B~{I!_&Oo>({P{CVe#&R6)8 zvp059=MCGtPJFMmbBTMc8{lnp!ts63;~I0e;cN(AKfJJKk?^^iJfQX2UenQ(J9VEh-ge3t zLVeD*q&e32erF(b#9#Dkb#EZPEo@$`U~V^MIv>R2kL_6`xn|q@VZM*hk9B4|e3Ui3 z`pEZ+t&dDM_Jdf}d&M!#K7zmf!Q5KPWbP%}>*hX-^!<;-N0Y7fY^gk-dFF+V{h&7; zsN=o74gJ8tYqN|+dx-oekL|~P2-r*VERr)3ISBu<=BD>S%&pGAruRX>#&m^#x<9tO z&1XYobO zx~XT8`|XeBqu9+ni$rdT`HQ~~GVed^{z%P+7dgRNM>maU?t}1WyFWUY@G(B`2ffAm zo326j$9?d$H%@=Ii~f%5y7-|FzPXwG(fpm$*2n(FCTyc_6o2pRxer3#n4Z1!deU8J zo<*{E!`m>P=V-mf=a}ttM&o$SGJK6b_cT7{egzmk&n-oN_=@B+C*2}H`CcnA;P)o| zptss~Hh=PK9^<@G{pj_9&A;;Ov;VC1v15&|;lI$(8J50^Gl*kj82yUq#52yAy~gvt z8w(G9M*@HLCGf~E`j-C~W;uMn&9cEKA51S6Gx-^Q6>of}*iD~9H+6D7$Na8>__Du2 z=bSG(4V%;wbYdNxQ_pwV-4ipzX6bh7Z)Bk}3^@-akGfy$HxuwwJ80Na{!Wbfewf~~ z_}&FRkBbjyn?p zIh>WQ-*DTxAC<`!nQN{e3kWAVfmb&b&TJP zbDwa|Cmr<2^|_aGHn`$*WFuiu)*XPL#>E5)>y#HJ??eQ zg>NK-HQoN+XItlP@LON52_L-eq`P_ppR{yaNk`mTK9KL5A10CbHY0M@7K0EqPOLH z-{D>ZKPb1C4AWfQpIB2{l0m$&5m~l1V{(c8U@dWw4?p7`Z+x{b*rH(2sSe(+VfC|XZn#3!Y11<-k}5fwz7ef50+^kyinQr%zia5%l10AuH?cvXA%}VGA6Fd?Ni|4 z8}ffeW79Hc9BRduV8qnEFn`Aqp6Ek95(BPfW8^Di=5A5n5A%O_OHP7k{>avE_3Q7; z#xVUIfy?;WI=6IUa~XPVmGv{8mfpByzky@B;5|<#q2x2=@_9%r-@g+i-sH-)^rwH1 z?0D%q;($MpbJlp-`!~w=nSBg?>tkZIqA;;uFN&7Cg!un(m5pfNn{@zqY>cRy(kfFrAmeH^D#WWJlb~M*YjVet@jwzDwu6(%vZ6@JYP* z+YgL2AK(2nJ-zZ^X)Afj{wnis$vQtPBe|DuDeEVA4<+7G*4uuVL5+(qY;5~X#vR+v zCGD4`ZX0xbm42` zdp!bM7(m~N|I1-FbvUPcDPZosC!wG9^cuiF&c&-KPgAj%u4v%DVL`%ZT=hT~`Sl>{ z6FmJrcfE6lD|(w2ywtm%A5!N{{r!hM{A`0@qAdKZGjrx={W*(UfBc19{6n7dJM|)~ z>;7!lz3++~#sASlzQ0_sZSC*iaIcp-#(u>d^&FhkmA_%MY@U3tlA5}v7qww3C!P_- z`JQ?vSlHLXTRy(OC)U`QG{MjNJagFPvkq~U?FW7>^<$5qF8H48=L$UH$2}A|fF1q7 zZ|d*b^h;CXP--;$4>FL|4}14nozWw9)X;Mo7i6|$=NLHHLXV#K`c93B(U{(6|CkpZ zxyYIY|K3UY`$Wkv{K!}>o{@vo4|*Hj?{7DMGoDYYIc-BviKA!nu9QqRH z%kj4!;C)PU$e;dgpQn6oiC#Qn9{>;k()WYjy8kHn<$Q5nd;=f(CTvF@bpjgc8)tdo z_P_V6q>0#^NSpoH3oztjvtV)G9iMY)E^t0P5v1$bvy=-}1~ka;hrN3dx?nqS@K)4& z|5qQnBNrbV4|wb?$=5!!zK$C`&mL^^HOZk)vd1E)J>!4}td(P1xeo(oJA@OtWu58G z3)_VkdgGIpAI~4+e3E*@51g^D$iIG=>#MkbdcJeO$Zv5Lbxxc2N1uFh(=UmudABhs z`=RroUEi!T>L&KLzGRPV&nv#KMV9Sn>^QalOq}JGA7?Re;d>)qt?FYT7*)R0yk@&665#O=h=7Y_@CSOr!pAChE1D;y=4P90x zhraOaIAg|V64=q|(%@_!os?&3QIB+PUlcCB;$HJ!ng5V@h97n(n$d(_%8M$~es%9y z**8;J)6f1|nCqcq1I)ZMjQtFl=iFl(wbuCbj-7F!Cl@Zx~_SMJ?4+C;2FQzJbeb(!i*#I z_)G$r@tu?Cv7lG03pP^&$wk90*M4x^*n50W_}V5WmTh|^yMFfKIpf^d*oW-a2J4Ft z>__OxX~!FW=&2UZ)1bEuaQt^|O`ml9J&};r`qw%cmhyj=+;%DqEbsB$N zOgTIgeeQug%8_=cX;ZFVT4En$i9`xX#-+7I(u^;rN z_TWz+JzYjSo2)7H`+QCGL)ZQC#-qbK@AxN|ESowDEqLf>yxZTu8~Xjhr#>%ukq6*e zKYk;Ee!ukj7YF7Z5iN5|i3h)}h9B}?_NI@W{^g4w7vGYX;FD|MImeKXENoM4s4;Uq zlv9B__WNIZ&yQ7`L>iyd<9F+e?&$lU|M!pAwa%P#XB;2&ef4`!i)U&08+_qS_0?P( zi?Of&(Xp=@{@p)*+m?OJxjub(;PK?w4_)`YfBSsKtLwHVzqd7x1@!;+{@;A&gMa5Q zJb*Ti#n{IW{m>UYxb^0b38&BL9$y-UH@bg5_ke$Yht zpBR)Ee9-g6r1*-l=jh=(_7ynAM|(f-9n%NzjKdfP?-NZ8!-wE3y>FuTuDhaF3+JAW zb>qDoxbp`(a?d?`SvSWf$M(2%BDXk4kz4e(yM?U^#(kA>q|a^S9eR*w&{;3}=@9u4 z>rUs0_P)9wgxKvoU0!7@{KLlg{roQoL=M5DAM`f!cQkfR9hFVi8+&ulj(rr}&PqOW z)@@rg6keP?OovVQo*bcXVc5xBYp>}%m$8p$!}DRPr&(k1Pe15wly~N3osn5}mR(%S zKXK2yqA|A8lOyodb*zQNi~A?@@G~FNF;AXYS9s|G%-za*Y`PW1tY`RDOl-2a$2wGn&Z zL+sHFdiw*rsH5OKA8+b}>EK0;!9M+c-@(4J-t=kv<QlOv{e?xTbGvlmm(fVrO7cho2LGw*BMQvo}pbJZ2W(2MWTqPyY{-7__){V4{vkUmrC-y1U9(lzapD%E(UeIef=ZN*L#^4c8`pmJ@ zIy=O7Z(5l69s-}W$>)rc9qnPgpG^M9IH~WI&;$=2;KQF@?Evw@#v*Iyl4;S6`iTs3 z%QUG|+$)=w9D@fq;Mx|(hK+48PkLz>_b;qx#VTw;cWV5idbQ94I5OH^eu(=%{Azry zmEbYvXM4gg;uA3#$}`ZfNdL4jatZs}IqcwhZn5X7;r05z(03Qg_XnJJH7E7`0rcX# z;xu%Jms;4Hd_z~xcZFx{F=1~j7g}&!6W~Zq00(*4ioWOoj5&Hg*LH9E@K>%o;|f;w zB5ub-Pd?CoPA_O%fA|>&I<$OSy^v$Qh;{XiWXE+rbMSYn;pLpcX7cn4Q!nQ(bjo?X zcir3da-8tbs%WNr+0N6&rvsml#^)EDUC?3g8798_#Jz{_Kf)J0LlDo1k?TI+eM8?B z$zpCf`yxx<=i3*y6Zb**5WhIy+%H|!T+}1gA?#z$>nr(oUn!Eci~+u9o|<5PEq1po z;xl0KS;WdQYVm%e>psxGrrUY%ldtN~#W?0E@^0z7$(|`6baFf_Z_LLy^w!yY@X1&f z`~r6bBL{59mnIB6%Y`?7$452aGmn@mSxnj;{-EMdN;m-wp8Ff%;-jdd5z4kuCh+H=YyOv}Wf23#{*OojWand14=WONaQZko~hCy6$tIo4z#F zoqKGr9?)D9J!hzX(3@IIcjkwtG{h7++P6Z^of^;M*$=T#2)p#^f(AM4@$-20g8*u# zp?`1YjL!q~%voRVdC=Q<=tI4rXO4ABU3@g}*~qttG{>`(CE>x3x$~aWdWKfHQe(q! z?V|pwhYoyl4?JRI9$PtwkI)Ic-JByn=mB5w$it`dePnXZra|tAlw+{{?(%`%NRiF5I2*ZRvpX`Ks3*FvpNO z1YhE&wY>ljYLIQkHu4o7i|WNc?y=x8Ui-`yT`q4TYdw9Z`g4%nFr3|BU$6lm&YRoMR^8{{Pu}dN?($Q}YJ3>6YwbFz*qxRf#}2vV+=gm4dNCgR zLNwKf#ur+gAFyeArPNT?n9dLt7k%I-|J7LYSsXOF7YYC3Bi4v*$QbfHi^>O?_@=eh zIwAx6=E3X-;$i-)iEnz@eejy*I6r(ge?v2hTg_wP#=RB#Q(utFJr%Uhhv&-`>w!(s zJ6A$}@^r3v&%lSmi{~Q8G=6uUPxM^1`Ut!5k#vkR6lV(Q6uLvx4|>zOZeCSq(Zqcb zc-ZlL_}FMWz)xAxzftSKF#8z%HR<>AhQH;2Zx}X!b3*uMHRdxL{7XFSXXzS#0A@ct zr?r(a2z!B<2cNl^2Qq=RJnj-LbMQcpaDoSPwli`(Y0ZOmkDb7<`w0+=+Xx#OPo=qN0qUm{myuXPa61=o|nVV z&jIG)uQm7=R%h`An(C2zwdK5~p?le+yX}hf#RmT70eW+;pqI?UhFuU3a4vjka*NN~ zTrYk9?6rJS?;kY|dt3j=e{nv~wG{ct`s2(7-$~Ly3+|fU_rq=d3GUVna9dxgHplY? zWGriaKBgWSihmt1%*hL4taQxkn9r zV4wQr`YAoft-P80oZ9M0KWw!8C-V0ox_Nq z1y9*spD8YDUVf^3i_c@=!jJFp8fUi7-?GR&dZ^8;A8-qss@>mU@Kg+#27H-cR*c27Ukht4?ev3blJ-@s42581cIZ}&{*(A~Zi zuZTHvJg4U@^;~3pWSZ}?c;IK_YZ&*k$k%;GzBO9Om(}W#eZ)kFcNbolMV3)<>~j8rzKQc0cD#u`ABV8`}%6^is(wcCnt9^nb)t zhh)=CE}$beDA(#e`f~?M-GJ_l{^rnQ>KTjSOzmdfKu<6Fx_9@3CPvL?f`^6YI?~#R z?ZlP*Ii~*oGU0sk?lni_GfWzNKj=*j`)SOz=V9~no`wF*(OYM((Oq^$4q5)^G&fH- z^8#-@d7VrimM6XAc~JOkD0*QN`pt_Ivh5G>kUb9%*;|cF_*)0tGu98=te0_H9AMr* z?H_E@xnm~I_RE_EgWh@9(i?}`FJ22@lsuR}DLKTc)Q0I96_{GAJ>)-Mj`|Ec=1E?Q zf7DTOnY9H!_xCg~d<9O?rTk_G|1)P8wc?uQLZ^f|e>b#u7^b;;E?82{;ra4J0kyrh zhZ>KuIWj@lA(b*`lzFOB5G>$>KMEzd~7-TqLKeOhB;f`7#8kns#38aTBp zXjQx5H4lHQ!T0%^&&j}7t9p3Oavl)SdT7s{`cgJQ3om+}H=j*g`au(;=J*+py5PBf z0D1bIRj$-twjqAH_w2TF&m$&pX=3u6p8bvIu>BFy;Sbfj5_jE=!e{BRx%h`IhqDZH z;v46&k4RQOXkz-zFfJ6E_qx8TWqBMaYTg z6Px&h+$HWjhg%XJ`0h14cqL`)zNzMJKL}D=@#%5Ndq}t;FMZMv6{!xiw&MF;d^g^{ z=!Xif1M(K1@%a;HCT!{lP5#DfPVv%ZH2I|R<35F)hPTGie@6aBC$$zYVEw?fbAoZX zw?%HtqaXIlML+BfziE%AFLAcedsS7EPm5)*?7*^e$Z^Rsr{DwYR$K?8OsH)@{>)->Ic24wYc}@Jr8zJ zE8)xBuExx<=CRj!#2P$&Z#>W8H?_!B zJj*(p<45I3VD#{!MgfDC-_*=Ydeh%L)7zyke)AtOK42bqYQ2EB zv@>1HmSMT{@Jro7hUe(}L2vuWXz}>XJN1mZW4n=Uzq6jM%QpPS-xZDe^Ziqr&**#Q z;DhHJ;BR+=r`lI}lY8J<20FCYi#lQ39Zl{lo7dFk&@7)9`A;$UzgK>!i zH1?J3hz6N)mOt0Vl^lbT(^YCqD!+#!M*VUWhi%;h9ZGFyJ0H3o*jeTyP zAd|ef8JYIc&DcU*ZkDg(akG5M&zsSAeIFm~=lfV^`{Z65)BSw^x~yGyNr&Hs5aA=92?L&s*mA;H;Vu#^D zu8VfAU(MTg%buCN0Dka=M`J_1f3gj}7bRED3ZJ#hxdl4U9UIM!?2GSG+m@nF$=^x( z0$$87s%L%B+sEZu)b#UU*|D-AJ))M4aPeC|#P3kz_l&xX)(A2Cb4+hs*1#BM z-Ytwd*8zMDjCkN%Y@=^@#@P}dyj%M#wM3si>Al26I>&d4fZz4L3DXfP*B#ZN>LbYs zUesUe)0n2^HU3)w;F=fou65{dUhW@MZjSwcjpQqQ$mN#q=%jo;u#&uPD}B{ldL4n5 z*z3$YlaJ&Wa;f3{pttFL*d`ZR6Jhf)jr&1wqsE#+SNN0|m){x?5A@0SM}40(ImW!U zjOSe+LW#VD7cr%uS6}YQylnAOpG){|D{0%@0avh@?*_0==lSS`+PN!v-iP8$JX+hX z1J(z#@FO~*H-E2vo}B{6ItOoE_>1c0mxy)Pv#%c}&uom=r)7!7<>IU9`UGZwyT^~# z(Q_xI19_!(5StmN-}ye>+*&R@;`{(E>y_Uc2zO6jnz!YWV`I6}b75X=RNoeqUv+PU zSJaF-azuZ_98X@c{?M8A!tXo04uQktnj~mEcb^33&t!~=Jw76KH`*V-ldoc*V~nqe z3$~D__yXU7gKTOW-~FQToRIa!e#boZW=rqzacy%?y)lfO0tcU)=LOvxFgK5vfBR-$ z(Cvyx_&Rx^C-l;D89Bt!avT?3M-C_6?X5m7zH?%`PziFbe6-j1k-uWboa@R zhB4RDTkbd>__n~h!FFmY)(JX!4xIMy2mwpF_&Y+jdo6usomzVB$?fA4HQ zto$9JYvS!3;dcP!FLK*hx922q1zWx-I`Zxb{eLUWwci0fnJ~d)4H&l{gg9!f0c5ck zA=hVaa)))JHeEx?W7e8KQ#__IzQ+b|$w_qbd5*jX2mZ!k4mrkYWs|qivzF}x>t)`C zA=fbL3XXEA(rXxYk@u#f=Nh{uE9%sWX82q)V;`{ll0Ufk1UPc&TOROHor!0L?e93` zr{7Su!d zjA%H^_(hIX9gWAcK+}q6d^cG%@ToSmIGiED=d9J*WF7Jh28+-Ioz&ud%z0p8;BseE z{to`|;tY1L*zU^b)E?Fry;{Tx9-0e$=FJ26ns8fqD+4$@^VwX`GbXmsD3%dh#{HnT zIcI-hCnlw~C!gSF9`eEMwR%s;7@c^RL+*jDOm8)wV;s!#sxCEc6EZ`2lr@7QTrb60aA2YBH({mnUiOk@4A z-?DCG|Hnj&AB}51$dF!}^YpUcTYs5Ou!vs^lTLNr06&|#?sJy!DgR#4C2ALTQeWu% zq3D7>yfnqVTs(tl@swFnBarRdga6H+csVa3K06c5bRBY?4~(&$b*#NDY(a)~rAE=f zQ=8`MG@omnoXgM`o^e(W!cXX(J%V@zJb8Jap$1x~@6z}+c^?{UQhNw^{h$K==&R~W zQ(ZrF-8cW<+h6CGrl1YKAZJzb;IW=PapM{sa-fA-H`9Q#mNay_!kK6~(bL+{2 zT(zEtIVPVFJ~Flvw;wbyl7YQ6)(d>dIrBC@X?+9l2fcN{zxG<+OAViDFZwt0#a|8oy=yLVBECz8Eb}GLiEa8X^wCtr z$T4hj=EbmuJBHX#d=pmfpU2brcV2Sm`BnObU&*D`ugss;9P?@~*ss_PZJYBg&v|~u zCTLEoUsP|unwRX`lh?rTgXGj&108dUqkU9$A$G_Rtl9@YbH%^Y-=bR=fr1y;=+N*8 zI_ro38d&A8@5Ah&u`I2nee2W5C2wQW9egD9WB;O^`N2u_Pw9PWcRJQ(m1CXo0eZJE z+iTd3^m|SEmAwF-&hvI}cv$YSj(q+PtRM8IhQ>u}>8<_VczpK+y%e`2vv@|%fqp@+6O+B`CGzfz-}MH8i6wcJn!XgRdDkK69J;LittKK*-hJim%RQEGoa6?6am5JYpvLpjCXAw{qO_gm%2o8gDsyjCo09?Af8m&P12xoYk&_^P0mC zw$r@if6(iBX$&v66yG+mYU@0njxRFtt$kqM;;Y95!-s!T_S)8`8PCv9_U+kg?K{>e zwqeIf^^58i%eaOg^DR9%G{dmn^qQ-A#Xi)`2cPsEe;ag9jXk+D3BDiKJNx8@ifj_0WbBW7XEuOV7uuisZ41=HbZ}&;hSwEr0T2nuBwlJK0IV=6B>DJHpwCK;X z8GHr~GIUY13|NrygwWQPc7+@36P^^pRc$OgC zLseE&r}n$YMsM)Z6S>%kPQP{J4X62A1HhOw%=qmbFz8+9S{S_Y|4Z3ppLr_&%VYa^ zE@b<729D1pyW)AS7yr`U^FY`6)g2@j=%g4#jxz2Cz0KSsmRz@N^W@n(_{0r9$mW?g zeH&ZsbRFh7{KB9&J*%ab@QnMAUVaV@TrKosY`w^re$d-UFXD*o#El-j#d%et5_-fASt&p6j0-@dU>Fmgdo=_-1GG Hl!pHY!>qb; literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0.asm new file mode 100644 index 000000000..b7bda3373 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0.asm @@ -0,0 +1,1860 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 13:55:07 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy w +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyz 5 NONE float xyz +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 xyz 8 NONE float xyz +// TEXCOORD 8 x 9 NONE uint x +// SV_IsFrontFace 0 x 10 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[216], immediateIndexed +dcl_constantbuffer CB1[4093], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[9], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB13[13], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_comparison +dcl_sampler s3, mode_default +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_resource_structured t0, 4 +dcl_resource_structured t1, 16 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_resource_texture3d (float,float,float,float) t4 +dcl_resource_texture3d (float,float,float,float) t5 +dcl_resource_texture3d (float,float,float,float) t6 +dcl_resource_texture3d (float,float,float,float) t7 +dcl_resource_texture3d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texturecube (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_input_ps_siv linear noperspective v0.xyw, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps linear v8.xyz +dcl_input_ps constant v9.x +dcl_input_ps_sgv constant v10.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 32 +add r0.xyz, -v2.xyzx, cb0[44].xyzx +mov r1.x, cb0[0].z +mov r1.y, cb0[1].z +mov r1.z, cb0[2].z +add r2.xyz, -r0.xyzx, r1.xyzx +mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +max r1.w, r0.w, l(9.999999939E-09) +rsq r1.w, r1.w +mul r2.xyz, r0.xyzx, r1.wwww +ishl r2.w, v9.x, l(4) +and r3.x, l(16), cb1[r2.w + 4].w +if_nz r3.x + iadd r3.x, l(2), cb1[r2.w + 5].x + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx +else + mov r3.xy, cb1[r2.w + 3].zxzz +endif +sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t12.xyzw, s3, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t13.xyzw, s4, cb0[108].x +add r3.z, -r5.w, l(1.000000) +mul r4.xyzw, r4.xyzw, cb5[5].xyzw +mul r6.xyz, r4.xyzx, cb5[4].zzzz +dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww +mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t14.xywz, s5, cb0[108].x +mul r7.x, r7.x, r7.z +mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r3.w, r7.xyxx, r7.xyxx +min r3.w, r3.w, l(1.000000) +add r3.w, -r3.w, l(1.000000) +sqrt r3.w, r3.w +max r3.w, r3.w, l(1.000000017E-16) +mul r7.xy, r7.xyxx, cb5[0].wwww +add r8.xz, -r3.yyxy, v2.xxzx +mov r8.y, l(0.0000610351562) +dp3 r3.x, r8.xyzx, r8.xyzx +rsq r3.x, r3.x +mul r8.xyz, r3.xxxx, r8.xyzx +mul r9.xyz, v3.zxyz, v4.yzxy +mad r9.xyz, v3.yzxy, v4.zxyz, -r9.xyzx +mul r9.xyz, r9.xyzx, v4.wwww +mul r7.yzw, r7.yyyy, r9.xxyz +mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy +mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz +mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) +movc r6.w, v10.x, l(1.000000), r6.w +dp3 r7.x, r3.xywx, r3.xywx +max r7.x, r7.x, l(1.175494351E-38) +rsq r7.x, r7.x +mul r3.xyw, r3.xyxw, r7.xxxx +mul r7.xyz, r6.wwww, r3.xywx +dp3 r8.w, v3.xyzx, v3.xyzx +rsq r8.w, r8.w +mul r9.xyz, r8.wwww, v3.xyzx +mul r9.xyz, r6.wwww, r9.xyzx +ftou r10.xy, v0.xyxx +add r8.w, l(1.000000), -cb0[111].x +mad r8.w, cb0[198].w, r8.w, cb0[111].x +mul r8.w, r8.w, cb0[109].x +lt r9.w, cb0[187].y, l(0.500000) +if_nz r9.w + mad r11.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r11.xyz, -r11.xyzx, v2.xzyx + max r9.w, |r11.y|, |r11.x| + add r9.w, r9.w, l(-464.000000) + mul_sat r9.w, r9.w, l(0.031250) + add r11.x, |r11.z|, l(-208.000000) + mul_sat r11.x, r11.x, l(0.031250) + max r9.w, r9.w, r11.x + ne r11.x, l(0.000000), cb0[210].w + lt r11.y, r9.w, l(1.000000) + and r11.x, r11.y, r11.x + if_nz r11.x + mad r11.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r11.xyz, -r11.xyzx, v2.xzyx + max r11.x, |r11.y|, |r11.x| + add r11.x, r11.x, l(-29.000000) + add r11.y, |r11.z|, l(-13.000000) + mul_sat r11.xy, r11.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + max r11.x, r11.y, r11.x + lt r11.y, r11.x, l(1.000000) + if_nz r11.y + mad r11.yzw, v2.xxyz, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, 0.500000, 0.500000, 0.500000) + mul r12.xyz, r11.yzwy, cb0[211].xyzx + round_ni r12.xyz, r12.xyzx + mad r12.xyz, r11.yzwy, cb0[211].xyzx, -r12.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r13.xyw, r12.xyzx, t4.yzwx, s1, l(0.000000) + add r11.y, -r11.x, l(1.000000) + mul r11.z, l(0.500000), cb0[211].y + mad r11.w, -cb0[211].y, l(0.500000), l(1.000000) + max r11.z, r11.z, r12.y + min r11.z, r11.w, r11.z + mul r12.w, r11.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r12.xwzx, t5.xyzw, s0, l(0.000000) + mad r11.z, r14.w, r11.y, r9.w + add r15.xyz, r12.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s0, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r13.yyyy, r15.xyzx + mov r15.w, r13.y + mul r15.xyzw, r11.yyyy, r15.xyzw + add r12.xyz, r12.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t5.xyzw, s0, l(0.000000) + mad r12.xyz, r12.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r12.xyz, r13.xxxx, r12.xyzx + mov r12.w, r13.x + mul r12.xyzw, r11.yyyy, r12.xyzw + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r13.xyz, r13.wwww, r14.xyzx + mul r13.xyzw, r11.yyyy, r13.xyzw + else + mov r15.xyzw, l(0,0,0,0) + mov r12.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r11.z, r9.w + endif + mad r14.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r14.xyz, -r14.xyzx, v2.xzyx + max r11.y, |r14.y|, |r14.x| + add r11.y, r11.y, l(-116.000000) + add r11.w, |r14.z|, l(-52.000000) + mul_sat r11.yw, r11.yyyw, l(0.000000, 0.125000, 0.000000, 0.125000) + max r11.y, r11.w, r11.y + lt r11.w, r11.y, l(1.000000) + if_nz r11.w + mad r14.xyz, v2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r14.xyzx, cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r16.xyw, r14.xyzx, t6.yzwx, s1, l(0.000000) + add r11.w, -r11.y, l(1.000000) + mul r11.x, r11.w, r11.x + mul r11.w, l(0.500000), cb0[211].y + mad r17.x, -cb0[211].y, l(0.500000), l(1.000000) + max r11.w, r11.w, r14.y + min r11.w, r17.x, r11.w + mul r14.w, r11.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t7.xyzw, s0, l(0.000000) + mad r11.z, r17.w, r11.x, r11.z + add r18.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t7.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r16.yyyy, r18.xyzx + mov r18.w, r16.y + mad r15.xyzw, r18.xyzw, r11.xxxx, r15.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t7.xyzw, s0, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r16.xxxx, r14.xyzx + mov r14.w, r16.x + mad r12.xyzw, r14.xyzw, r11.xxxx, r12.xyzw + mad r14.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r16.wwww, r14.xyzx + mad r13.xyzw, r16.xyzw, r11.xxxx, r13.xyzw + endif + lt r11.x, l(0.000000), r11.y + if_nz r11.x + mad r14.xyz, v2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r14.xyzx, cb0[211].xyzx + mul r17.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r16.xyzx + mad r16.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r14.xyz, r17.xyzx, r14.xyzx + min r14.xyz, r16.xyzx, r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r14.xyzx, t8.yzwx, s1, l(0.000000) + add r11.x, -r9.w, l(1.000000) + mul r11.x, r11.x, r11.y + max r11.y, r17.y, r14.y + min r11.y, r16.y, r11.y + mul r14.w, r11.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t9.xyzw, s0, l(0.000000) + add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t9.xyzw, s0, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.yyyy, r17.xyzx + mov r17.w, r18.y + mad r15.xyzw, r17.xyzw, r11.xxxx, r15.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t9.xyzw, s0, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r18.xxxx, r14.xyzx + mov r14.w, r18.x + mad r12.xyzw, r14.xyzw, r11.xxxx, r12.xyzw + mad r14.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r14.xyzx + mad r13.xyzw, r18.xyzw, r11.xxxx, r13.xyzw + mad r11.z, r16.w, r11.x, r11.z + endif + mad_sat r11.x, r11.z, l(2.000000), l(-1.000000) + add r14.x, -r9.w, r11.x + add r9.w, r9.w, r11.x + mul r14.y, r9.w, l(0.500000) + else + mov r15.xyzw, l(0,0,0,0) + mov r12.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xy, l(0,1.000000,0,0) + endif + mul r11.xyzw, r14.yyyx, cb0[213].xyzw + mad r11.y, r11.w, l(0.500000), r11.y + mul r14.zw, r14.yyyx, cb0[213].wwwy + mad r11.w, r14.w, l(0.375000), r14.z + add r11.xyzw, r11.xyzw, r13.xyzw + mul r13.xyzw, r14.yyyx, cb0[214].xyzw + mad r13.y, r13.w, l(0.500000), r13.y + mul r14.zw, r14.yyyx, cb0[214].wwwy + mad r13.w, r14.w, l(0.375000), r14.z + add r12.xyzw, r12.xyzw, r13.xyzw + mul r13.xyzw, r14.yyyx, cb0[215].xyzw + mad r13.y, r13.w, l(0.500000), r13.y + mul r14.xy, r14.yxyy, cb0[215].wyww + mad r13.w, r14.y, l(0.375000), r14.x + add r13.xyzw, r13.xyzw, r15.xyzw + mov r7.w, l(1.000000) + dp4 r14.x, r11.xyzw, r7.xyzw + dp4 r14.y, r12.xyzw, r7.xyzw + dp4 r14.z, r13.xyzw, r7.xyzw + max r14.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r15.xyz, r8.wwww, r14.xyzx + mul r16.xyz, r12.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) + mad r16.xyz, r11.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r16.xyzx + mad r16.xyz, r13.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r16.xyzx + dp3 r7.w, r16.xyzx, r16.xyzx + max r7.w, r7.w, l(1.175494351E-38) + rsq r7.w, r7.w + mul r16.xyz, r7.wwww, r16.xyzx + mov r16.y, |r16.y| + mov r16.w, l(1.000000) + dp4 r11.x, r11.xyzw, r16.xyzw + dp4 r11.y, r12.xyzw, r16.xyzw + dp4 r11.z, r13.xyzw, r16.xyzw + max r11.xyz, r11.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + ge r7.w, r15.y, r15.z + and r7.w, r7.w, l(0x3f800000) + mov r12.xy, r15.zyzz + mov r12.zw, l(0,0,-1.000000,0.666666687) + mad r13.xy, r14.yzyy, r8.wwww, -r12.xyxx + mov r13.zw, l(0,0,1.000000,-1.000000) + mad r12.xyzw, r7.wwww, r13.xyzw, r12.xyzw + ge r7.w, r15.x, r12.x + and r7.w, r7.w, l(0x3f800000) + mov r13.xyz, r12.xywx + mov r13.w, r15.x + mov r12.xyw, r13.wywx + add r12.xyzw, -r13.xyzw, r12.xyzw + mad r12.xyzw, r7.wwww, r12.xyzw, r13.xyzw + min r7.w, r12.y, r12.w + add r7.w, -r7.w, r12.x + add r9.w, -r12.y, r12.w + mad r11.w, r7.w, l(6.000000), l(0.000100) + div r9.w, r9.w, r11.w + add r9.w, r9.w, r12.z + frc r9.w, |r9.w| + add r11.w, r12.x, l(0.000100) + div r7.w, r7.w, r11.w + add r13.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) + add r9.w, |r13.x|, l(-0.450000) + mul_sat r9.w, r9.w, l(-10.000001) + mad r11.w, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r11.w + mad r9.w, r9.w, l(-0.350000), l(0.700000) + mov_sat r12.x, r12.x + mul r9.w, r9.w, r12.x + min r7.w, r7.w, r9.w + add r9.w, -r7.w, l(2.000000) + div r9.w, l(2.000000), r9.w + frc r12.xyz, r13.yzwy + mad r12.xyz, r12.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) + add_sat r12.xyz, |r12.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) + add r12.xyz, r12.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) + mad r12.xyz, r7.wwww, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r12.xyz, r9.wwww, r12.xyzx + max r7.w, r11.y, r11.x + max r7.w, r11.z, r7.w + mul r8.w, r8.w, r7.w + mov r7.w, l(1.000000) +else + mov r16.xyz, l(0,0,0,0) + mov r15.xyz, l(1.000000,1.000000,1.000000,0) + mov r12.xyz, cb0[188].xyzx + mov r7.w, l(0) +endif +add r9.w, -v2.y, cb1[r2.w + 12].z +add r9.w, r9.w, l(0.200000) +mul_sat r9.w, r9.w, l(2.85714269) +mad r11.x, r9.w, l(-2.000000), l(3.000000) +mul r9.w, r9.w, r9.w +mul r9.w, r9.w, r11.x +mul r9.w, r9.w, cb1[r2.w + 12].y +max r9.w, r9.w, cb1[r2.w + 12].w +add r11.x, r9.w, cb1[r2.w + 12].x +lt r11.x, l(0.010000), r11.x +if_nz r11.x + add r11.x, -r5.x, l(1.000000) + mul r11.yzw, r4.xxyz, r11.xxxx + dp3 r11.y, r11.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r11.y, r11.y, l(-0.350000) + mul_sat r11.y, r11.y, l(-4.000000) + mad r11.z, r11.y, l(-2.000000), l(3.000000) + mul r11.y, r11.y, r11.y + mul r11.w, r11.y, r11.z + mul r13.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) + movc r13.xyzw, cb1[r2.w + 4].wwww, r13.xyzw, v8.xzxy + mul r14.xyzw, r13.xyzw, cb0[196].zzzz + movc r17.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy + mov r17.x, v7.x + add r18.xyz, |r17.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) + mul r19.xyz, r18.xyzx, r18.xyzx + mul r18.xyz, r18.xyzx, r19.xyzx + max r18.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp3 r12.w, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r18.xyz, r18.xyzx, r12.wwww + sample_b_indexable(texture2d)(float,float,float,float) r20.xyzw, r14.zyzz, t10.xyzw, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r14.zwzz, t10.xyzw, s3, cb0[108].x + mul r21.xyzw, r18.zzzz, r21.xyzw + mad r20.xyzw, r20.xyzw, r18.yyyy, r21.xyzw + sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r14.ywyy, t10.xyzw, s3, cb0[108].x + mad r18.xyzw, r21.xyzw, r18.xxxx, r20.xyzw + add r17.yw, -r18.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) + mul r20.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) + mad_sat r12.w, cb1[r2.w + 12].x, r11.x, r20.x + add r12.w, -r17.y, r12.w + mul_sat r12.w, r12.w, l(3.33333325) + mad r13.x, r12.w, l(-2.000000), l(3.000000) + mul r12.w, r12.w, r12.w + mul r12.w, r12.w, r13.x + mul_sat r11.x, r9.w, r11.x + add r11.x, -r17.w, r11.x + mul_sat r11.x, r11.x, l(1.53846145) + mad r13.x, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r13.x + max r11.x, r11.x, r12.w + add r12.w, r5.x, l(-0.500000) + mul_sat r12.w, r12.w, l(4.000000) + mad r13.x, r12.w, l(-2.000000), l(3.000000) + mul r12.w, r12.w, r12.w + mul r12.w, r12.w, r13.x + add r5.w, -r5.w, l(0.199999988) + mul_sat r5.w, r5.w, l(-5.00000048) + mad r13.x, r5.w, l(-2.000000), l(3.000000) + mul r5.w, r5.w, r5.w + mul r5.w, r5.w, r13.x + mad r13.x, r5.w, r11.w, r12.w + min r13.x, r13.x, l(1.000000) + max r9.w, r9.w, cb1[r2.w + 12].x + mad r17.yw, r18.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mul r18.xyw, r14.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) + mul r21.xyz, r14.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) + mul r22.xyz, r19.xyzx, r19.xyzx + mul r22.xyz, r22.xyzx, r22.xyzx + mul r19.xyz, r19.xyzx, r22.xyzx + dp3 r15.w, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r19.xyz, r19.xyzx, r15.wwww + round_ni r22.xyzw, r18.yxyw + mul r23.xyzw, r22.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r23.xyzw, r23.xyzw + add r24.xyzw, r23.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r15.w, r23.xyxx, r24.xyxx + add r20.xw, r15.wwww, r23.xxxy + mul r15.w, r20.w, r20.x + add r16.w, r20.w, r20.x + frc r15.w, r15.w + frc r25.w, r16.w + add r26.xyzw, r22.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r26.xyzw, r26.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r26.xyzw, r26.xyzw + add r27.xyzw, r26.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r16.w, r26.xyxx, r27.xyxx + add r20.xw, r16.wwww, r26.xxxy + mul r16.w, r20.w, r20.x + add r18.y, r20.w, r20.x + frc r23.x, r16.w + frc r23.y, r18.y + mad r16.w, r15.w, l(0.399999976), l(0.600000) + mul r18.y, r16.w, l(0.250000) + mad r22.xyzw, r14.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r22.xyzw + mad r20.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r20.xw, r20.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r22.xxxy + add r20.xw, r20.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r22.x, r20.x, l(1.250000) + lt r19.w, r20.w, l(0.000000) + movc r19.w, r19.w, l(1.250000), l(0.750000) + mul r22.y, r19.w, r20.w + mad r15.w, cb0[102].x, l(3.000000), r15.w + frc r15.w, r15.w + add r20.xw, r15.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r20.xw, r20.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r24.xy, r20.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r20.xw, r20.xxxw, r20.xxxw + mul r20.xw, r20.xxxw, r24.xxxy + mul r15.w, r20.w, r20.x + dp2 r19.w, r22.xyxx, r22.xyxx + sqrt r19.w, r19.w + mad r16.w, -r16.w, l(0.250000), r19.w + div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.y + mul_sat r16.w, r16.w, r19.w + mad r19.w, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.w + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r25.z, r15.w, r16.w + div r20.xw, r22.xxxy, r18.yyyy + max r20.xw, r20.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r15.w, r25.z, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r20.xw, r15.wwww, r20.xxxw + mad r15.w, r23.x, l(0.250000), l(0.250000) + mul r25.xy, r15.wwww, r20.xwxx + dp2 r15.w, r23.zwzz, r24.zwzz + add r20.xw, r15.wwww, r23.zzzw + mul r15.w, r20.w, r20.x + add r16.w, r20.w, r20.x + frc r15.w, r15.w + frc r23.w, r16.w + dp2 r16.w, r26.zwzz, r27.zwzz + add r20.xw, r16.wwww, r26.zzzw + mul r16.w, r20.w, r20.x + add r18.y, r20.w, r20.x + frc r22.x, r16.w + frc r22.y, r18.y + mad r16.w, r15.w, l(0.399999976), l(0.600000) + mul r18.y, r16.w, l(0.250000) + mad r20.xw, r22.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r20.xw, r20.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r22.zzzw + add r20.xw, r20.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r24.x, r20.x, l(1.250000) + lt r19.w, r20.w, l(0.000000) + movc r19.w, r19.w, l(1.250000), l(0.750000) + mul r24.y, r19.w, r20.w + mad r15.w, cb0[102].x, l(3.000000), r15.w + frc r15.w, r15.w + add r20.xw, r15.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r20.xw, r20.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r22.yz, r20.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) + mul r20.xw, r20.xxxw, r20.xxxw + mul r20.xw, r20.xxxw, r22.yyyz + mul r15.w, r20.w, r20.x + dp2 r19.w, r24.xyxx, r24.xyxx + sqrt r19.w, r19.w + mad r16.w, -r16.w, l(0.250000), r19.w + div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.y + mul_sat r16.w, r16.w, r19.w + mad r19.w, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.w + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r23.z, r15.w, r16.w + div r20.xw, r24.xxxy, r18.yyyy + max r20.xw, r20.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r15.w, r23.z, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r20.xw, r15.wwww, r20.xxxw + mad r15.w, r22.x, l(0.250000), l(0.250000) + mul r23.xy, r15.wwww, r20.xwxx + round_ni r18.xy, r18.xwxx + mul r20.xw, r18.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r20.xw, r20.xxxw + add r22.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r15.w, r20.xwxx, r22.xyxx + add r20.xw, r15.wwww, r20.xxxw + mul r15.w, r20.w, r20.x + add r16.w, r20.w, r20.x + frc r15.w, r15.w + frc r22.w, r16.w + add r20.xw, r18.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r20.xw, r20.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r20.xw, r20.xxxw + add r24.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r16.w, r20.xwxx, r24.xyxx + add r20.xw, r16.wwww, r20.xxxw + mul r16.w, r20.w, r20.x + add r18.w, r20.w, r20.x + frc r24.x, r16.w + frc r24.y, r18.w + mad r16.w, r15.w, l(0.399999976), l(0.600000) + mul r18.w, r16.w, l(0.250000) + mad r18.xy, r14.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r18.xyxx + mad r20.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r18.xy, r20.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r18.xyxx + add r18.xy, r18.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r26.x, r18.x, l(1.250000) + lt r18.x, r18.y, l(0.000000) + movc r18.x, r18.x, l(1.250000), l(0.750000) + mul r26.y, r18.x, r18.y + mad r15.w, cb0[102].x, l(3.000000), r15.w + frc r15.w, r15.w + add r18.xy, r15.wwww, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r18.xy, r18.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r20.xw, r18.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r18.xy, r18.xyxx, r18.xyxx + mul r18.xy, r18.xyxx, r20.xwxx + mul r15.w, r18.y, r18.x + dp2 r18.x, r26.xyxx, r26.xyxx + sqrt r18.x, r18.x + mad r16.w, -r16.w, l(0.250000), r18.x + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w + mul_sat r16.w, r16.w, r18.x + mad r18.x, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r18.x + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r22.z, r15.w, r16.w + div r18.xy, r26.xyxx, r18.wwww + max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r15.w, r22.z, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r18.xy, r15.wwww, r18.xyxx + mad r15.w, r24.x, l(0.250000), l(0.250000) + mul r22.xy, r15.wwww, r18.xyxx + mul r23.xyzw, r19.zzzz, r23.xyzw + mad r23.xyzw, r25.xyzw, r19.yyyy, r23.xyzw + mad r22.xyzw, r22.xyzw, r19.xxxx, r23.xyzw + round_ni r23.xyzw, r21.yxyz + mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r24.xyzw, r24.xyzw + add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r15.w, r24.xyxx, r25.xyxx + add r18.xy, r15.wwww, r24.xyxx + mul r15.w, r18.y, r18.x + add r16.w, r18.y, r18.x + frc r15.w, r15.w + frc r26.w, r16.w + add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r27.xyzw, r27.xyzw + add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r16.w, r27.xyxx, r28.xyxx + add r18.xy, r16.wwww, r27.xyxx + mul r16.w, r18.y, r18.x + add r18.x, r18.y, r18.x + frc r24.x, r16.w + frc r24.y, r18.x + mad r16.w, r15.w, l(0.399999976), l(0.600000) + mul r18.x, r16.w, l(0.250000) + mad r23.xyzw, r14.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r23.xyzw + mad r18.yw, r24.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r18.yw, r18.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r23.xxxy + add r18.yw, r18.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r23.x, r18.y, l(1.250000) + lt r14.x, r18.w, l(0.000000) + movc r14.x, r14.x, l(1.250000), l(0.750000) + mul r23.y, r14.x, r18.w + mad r14.x, cb0[102].x, l(4.345600), r15.w + frc r14.x, r14.x + add r18.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r18.yw, r18.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r20.xw, r18.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r18.yw, r18.yyyw, r18.yyyw + mul r18.yw, r18.yyyw, r20.xxxw + mul r14.x, r18.w, r18.y + dp2 r15.w, r23.xyxx, r23.xyxx + sqrt r15.w, r15.w + mad r15.w, -r16.w, l(0.250000), r15.w + div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.x + mul_sat r15.w, r15.w, r16.w + mad r16.w, r15.w, l(-2.000000), l(3.000000) + mul r15.w, r15.w, r15.w + mul r15.w, r15.w, r16.w + ge r15.w, r15.w, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r26.z, r14.x, r15.w + div r18.xy, r23.xyxx, r18.xxxx + max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r14.x, r26.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r18.xy, r14.xxxx, r18.xyxx + mad r14.x, r24.x, l(0.250000), l(0.250000) + mul r26.xy, r14.xxxx, r18.xyxx + dp2 r14.x, r24.zwzz, r25.zwzz + add r18.xy, r14.xxxx, r24.zwzz + mul r14.x, r18.y, r18.x + add r15.w, r18.y, r18.x + frc r14.x, r14.x + frc r24.w, r15.w + dp2 r15.w, r27.zwzz, r28.zwzz + add r18.xy, r15.wwww, r27.zwzz + mul r15.w, r18.y, r18.x + add r16.w, r18.y, r18.x + frc r18.x, r15.w + frc r18.y, r16.w + mad r15.w, r14.x, l(0.399999976), l(0.600000) + mul r16.w, r15.w, l(0.250000) + mad r18.yw, r18.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r18.yw, r18.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r23.zzzw + add r18.yw, r18.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r23.x, r18.y, l(1.250000) + lt r18.y, r18.w, l(0.000000) + movc r18.y, r18.y, l(1.250000), l(0.750000) + mul r23.y, r18.y, r18.w + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r18.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r18.yw, r18.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r20.xw, r18.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r18.yw, r18.yyyw, r18.yyyw + mul r18.yw, r18.yyyw, r20.xxxw + mul r14.x, r18.w, r18.y + dp2 r18.y, r23.xyxx, r23.xyxx + sqrt r18.y, r18.y + mad r15.w, -r15.w, l(0.250000), r18.y + div r18.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w + mul_sat r15.w, r15.w, r18.y + mad r18.y, r15.w, l(-2.000000), l(3.000000) + mul r15.w, r15.w, r15.w + mul r15.w, r15.w, r18.y + ge r15.w, r15.w, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r24.z, r14.x, r15.w + div r18.yw, r23.xxxy, r16.wwww + max r18.yw, r18.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) + min r18.yw, r18.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) + ge r14.x, r24.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r18.yw, r14.xxxx, r18.yyyw + mad r14.x, r18.x, l(0.250000), l(0.250000) + mul r24.xy, r14.xxxx, r18.ywyy + round_ni r18.xy, r21.xzxx + mul r20.xw, r18.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r20.xw, r20.xxxw + add r21.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r14.x, r20.xwxx, r21.xyxx + add r20.xw, r14.xxxx, r20.xxxw + mul r14.x, r20.w, r20.x + add r15.w, r20.w, r20.x + frc r14.x, r14.x + frc r21.w, r15.w + add r20.xw, r18.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r20.xw, r20.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r20.xw, r20.xxxw + add r23.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r15.w, r20.xwxx, r23.xyxx + add r20.xw, r15.wwww, r20.xxxw + mul r15.w, r20.w, r20.x + add r16.w, r20.w, r20.x + frc r23.x, r15.w + frc r23.y, r16.w + mad r15.w, r14.x, l(0.399999976), l(0.600000) + mul r16.w, r15.w, l(0.250000) + mad r18.xy, r14.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r18.xyxx + mad r20.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r18.xy, r20.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r18.xyxx + add r18.xy, r18.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r25.x, r18.x, l(1.250000) + lt r18.x, r18.y, l(0.000000) + movc r18.x, r18.x, l(1.250000), l(0.750000) + mul r25.y, r18.x, r18.y + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r18.xy, r14.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r18.xy, r18.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r20.xw, r18.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r18.xy, r18.xyxx, r18.xyxx + mul r18.xy, r18.xyxx, r20.xwxx + mul r14.x, r18.y, r18.x + dp2 r18.x, r25.xyxx, r25.xyxx + sqrt r18.x, r18.x + mad r15.w, -r15.w, l(0.250000), r18.x + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w + mul_sat r15.w, r15.w, r18.x + mad r18.x, r15.w, l(-2.000000), l(3.000000) + mul r15.w, r15.w, r15.w + mul r15.w, r15.w, r18.x + ge r15.w, r15.w, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r21.z, r14.x, r15.w + div r18.xy, r25.xyxx, r16.wwww + max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r14.x, r21.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r18.xy, r14.xxxx, r18.xyxx + mad r14.x, r23.x, l(0.250000), l(0.250000) + mul r21.xy, r14.xxxx, r18.xyxx + mul r23.xyzw, r19.zzzz, r24.xyzw + mad r23.xyzw, r26.xyzw, r19.yyyy, r23.xyzw + mad r19.xyzw, r21.xyzw, r19.xxxx, r23.xyzw + max r18.xy, r19.zwzz, r22.zwzz + mad r19.zw, -r13.xxxx, r9.wwww, l(0.000000, 0.000000, 1.000000, 1.010000) + add r14.x, r18.y, l(-0.100000) + ge r14.x, r14.x, r19.z + and r14.x, r14.x, l(0x3f800000) + mul r14.x, r14.x, r18.x + ge r2.w, cb1[r2.w + 12].x, l(0.010000) + and r2.w, r2.w, l(0x3f800000) + mul r2.w, r2.w, r14.x + lt r14.x, l(0.001000), r2.w + add r18.xy, r19.xyxx, r22.xyxx + mul r15.w, cb0[102].x, cb0[196].z + mul r19.y, r15.w, l(0.750000) + dp2 r15.w, r17.xzxx, r17.xzxx + max r15.w, r15.w, l(1.175494351E-38) + rsq r15.w, r15.w + mul r17.xz, r15.wwww, r17.xxzx + add r17.xz, |r17.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) + mul r20.xw, r17.xxxz, r17.xxxz + mul r17.xz, r17.xxzx, r20.xxwx + max r17.xz, r17.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp2 r15.w, r17.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + div r17.xz, r17.xxzx, r15.wwww + sample_b_indexable(texture2d)(float,float,float,float) r21.xyz, r14.zwzz, t11.xyzw, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r14.yzw, r14.ywyy, t11.wxyz, s3, cb0[108].x + mul r14.yzw, r17.xxxx, r14.yyzw + mad r14.yzw, r21.xxyz, r17.zzzz, r14.yyzw + movc r17.yw, r14.xxxx, r18.xxxy, r17.yyyw + mad r14.xy, r14.yzyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mov r19.x, l(0) + mad r21.xyzw, r13.zwyw, cb0[196].zzzz, r19.xyxy + sample_b_indexable(texture2d)(float,float,float,float) r13.y, r21.xyxx, t11.xwyz, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r13.z, r21.zwzz, t11.xywz, s3, cb0[108].x + mul r13.z, r17.x, r13.z + mad r13.y, r13.y, r17.z, r13.z + mad r13.yz, r14.xxyx, r13.yyyy, r17.yywy + ge r13.w, r18.z, r19.w + and r13.w, r13.w, l(0x3f800000) + max r2.w, r2.w, r13.w + add r13.w, -r14.w, l(1.000000) + mad r9.w, r13.x, r9.w, -r13.w + mul_sat r9.w, r9.w, l(9.999998) + mad r13.x, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r13.x + max r2.w, r2.w, r9.w + mad r13.xw, -r7.zzzy, l(1.000000, 0.000000, 0.000000, 0.000000), r20.yyyz + dp2 r9.w, r13.xwxx, r13.xwxx + lt r14.x, l(0.0000610351562), r9.w + rsq r9.w, r9.w + mul r13.xw, r9.wwww, r13.xxxw + mov r13.xw, -r13.xxxw + movc r17.z, r14.x, r13.x, l(-1.000000) + and r17.y, r13.w, r14.x + min r9.w, r3.z, l(0.050000) + add r13.x, -r3.z, r9.w + mad r13.x, r2.w, r13.x, r3.z + mad r11.y, -r11.z, r11.y, l(1.000000) + mul r11.y, r11.y, r11.x + mad r5.w, -r5.w, r11.w, l(1.000000) + mul r5.w, r5.w, r11.y + mad r5.w, r5.w, l(-0.500000), l(1.000000) + mov r17.x, l(0) + mad r3.xyw, -r3.xyxw, r6.wwww, r17.zxzy + mad r3.xyw, r13.yyyy, r3.xyxw, r7.xyxz + mul r14.xyz, r7.zxyz, r17.xyzx + mad r14.xyz, r7.yzxy, r17.yzxy, -r14.xyzx + add r14.xyz, -r3.xywx, r14.xyzx + mad r3.xyw, r13.zzzz, r14.xyxz, r3.xyxw + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz + mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mul r3.xyw, r3.xyxw, r6.wwww + mul r6.w, r11.w, r11.x + mad r6.w, -r6.w, l(0.200000), r13.x + min r11.x, r13.x, l(0.200000) + max r3.z, r6.w, r11.x + mul r6.xyz, r5.wwww, r6.xyzx + dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r6.w, r6.w, l(-0.700000) + mul_sat r6.w, r6.w, l(-2.50000024) + mad r11.x, r6.w, l(-2.000000), l(3.000000) + mul r6.w, r6.w, r6.w + mul r6.w, r6.w, r11.x + mad r6.w, r6.w, l(0.500000), l(1.000000) + mul r11.x, r12.w, r2.w + mad r11.yzw, r4.xxyz, r6.wwww, -r4.xxyz + mad r11.xyz, r11.xxxx, r11.yzwy, r4.xyzx + mul r4.xyz, r5.wwww, r11.xyzx +else + mov r3.xyw, r7.xyxz + mov r9.w, l(0.010000) + mov r2.w, l(0) +endif +mul r5.w, r5.y, l(0.040000) +mad r6.w, -r5.x, l(0.960000), l(0.960000) +mul r11.xyz, r4.xyzx, r6.wwww +mad r13.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx +mad r13.xyz, r5.xxxx, r13.xyzx, r5.wwww +mul r6.xyz, r6.wwww, r6.xyzx +mul r5.y, r3.z, r3.z +max r5.y, r5.y, l(0.00781250000) +max r5.w, v5.z, l(9.999999939E-09) +div r14.xy, v5.xyxx, r5.wwww +max r5.w, v6.z, l(9.999999939E-09) +div r14.zw, v6.xxxy, r5.wwww +add r14.xy, -r14.zwzz, r14.xyxx +mul r17.xy, r14.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r17.xy, |r17.xyxx| +sqrt r17.xy, r17.xyxx +mov r14.z, -r14.y +lt r14.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xxxz +lt r14.xz, r14.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r14.xy, -r14.ywyy, r14.xzxx +itof r14.xy, r14.xyxx +mul r14.xy, r14.xyxx, r17.xyxx +mad o1.xy, r14.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +lt r5.w, l(0.500000), r2.w +movc o1.w, r5.w, l(0.700000), l(0.400000) +add r14.xyz, cb0[197].xyzx, cb3[0].xyzx +mad r14.xyz, cb0[187].wwww, r14.xyzx, -cb3[0].xyzx +mov r14.w, l(0.0000610351562) +dp3 r5.w, r14.xzwx, r14.xzwx +rsq r5.w, r5.w +mul r17.xyz, r5.wwww, r14.xwzx +add r18.xyz, cb0[191].xyzx, -cb3[3].xyzx +mad r18.xyz, cb0[198].yyyy, r18.xyzx, cb3[3].xyzx +add r5.w, l(1.000000), -cb3[3].w +mad r5.w, cb0[198].w, r5.w, cb3[3].w +mul r19.xyz, r5.wwww, r18.xyzx +mov r10.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r20.xy, r10.xyzz, t3.xyzw +add r10.z, r20.x, l(-1.000000) +mad r10.z, cb4[34].x, r10.z, l(1.000000) +add r11.w, -r10.z, l(1.000000) +mad r10.z, cb0[187].z, r11.w, r10.z +dp3 r11.w, r7.xyzx, r14.xyzx +mul r20.xzw, r6.xxyz, cb0[186].zzzz +mul r21.xyz, r20.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) +dp3 r12.w, r11.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +dp2 r13.w, cb0[6].xzxx, cb0[6].xzxx +rsq r13.w, r13.w +mul r22.xy, r13.wwww, cb0[6].xzxx +dp2 r13.w, r17.xzxx, r22.xyxx +mov_sat r13.w, -r13.w +add r22.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx +mad r14.w, r11.w, l(0.500000), l(-1.000000) +mad r14.w, -r11.w, r14.w, -r11.w +add r15.w, l(0.750000), -|cb0[6].y| +add_sat r15.w, r15.w, r15.w +mad r16.w, r15.w, l(-2.000000), l(3.000000) +mul r15.w, r15.w, r15.w +mul r15.w, r15.w, r16.w +mul r15.w, r13.w, r15.w +mul r15.w, r22.x, r15.w +add r14.w, r14.w, l(0.500000) +mad r11.w, r15.w, r14.w, r11.w +mad r11.w, cb0[197].w, cb0[198].x, r11.w +max r11.w, r11.w, l(-1.000000) +min r11.w, r11.w, l(1.000000) +add r11.w, r11.w, l(-0.250000) +mul r11.w, r11.w, l(1.33333337) +max r11.w, r11.w, l(0.000000) +mad r14.w, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r14.w +dp3 r14.w, r7.xyzx, cb0[6].xyzx +add r14.w, r14.w, l(-0.250000) +mul_sat r14.w, r14.w, l(1.33333337) +mad r15.w, r14.w, l(-2.000000), l(3.000000) +mul r14.w, r14.w, r14.w +mul r14.w, r14.w, r15.w +mul r15.w, r5.z, r20.y +min r16.w, r5.z, r20.y +min r17.w, r11.w, r16.w +mul r18.w, r14.w, r15.w +dp3 r19.w, r7.xyzx, cb0[192].xyzx +add_sat r19.w, r19.w, cb0[193].x +mad r19.w, r19.w, cb0[193].y, cb0[193].z +mul r21.w, r17.w, cb0[187].y +add r23.xyz, -r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r23.xyz, r21.wwww, r23.xyzx, r12.xyzx +mul r23.xyz, r19.wwww, r23.xyzx +mad r19.w, r8.w, l(0.350000024), l(0.650000) +min r19.w, r19.w, l(1.500000) +max r24.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) +min r24.xyz, r24.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) +add r8.w, -r19.w, r24.x +mad r8.w, cb0[187].x, r8.w, r19.w +mul r25.xyz, r8.wwww, r23.xyzx +mul r25.xyz, r25.xyzx, cb0[186].wwww +dp3 r8.w, r19.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r19.xyz, r18.xyzx, r5.wwww, -r8.wwww +mad r19.xyz, r17.wwww, r19.xyzx, r8.wwww +mul r23.xyz, r23.xyzx, r24.yyyy +mad r22.yzw, r18.xxyz, cb0[198].yyyy, r22.yyyy +mad r19.xyz, r23.xyzx, r22.yzwy, r19.xyzx +mad r19.xyz, r19.xyzx, cb0[186].yyyy, -r25.xyzx +mad r19.xyz, r10.zzzz, r19.xyzx, r25.xyzx +dp3 r8.w, r21.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r21.xyz, r20.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww +mad r21.xyz, r21.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww +mad_sat r8.w, r14.w, r15.w, r11.w +mad r22.yzw, r6.xxyz, cb0[186].zzzz, -r21.xxyz +mad r21.xyz, r8.wwww, r22.yzwy, r21.xyzx +mad r22.yzw, r4.xxyz, r6.wwww, -r21.xxyz +mad r21.xyz, r17.wwww, r22.yzwy, r21.xyzx +mad r22.yzw, r4.xxyz, r6.wwww, -r12.wwww +mad r22.yzw, r22.yyzw, l(0.000000, 1.200000, 1.200000, 1.200000), r12.wwww +mad r22.yzw, -r6.xxyz, cb0[186].zzzz, r22.yyzw +mad r20.xzw, r18.wwww, r22.yyzw, r20.xxzw +dp3 r8.w, r21.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +max r11.w, r8.w, l(0.001000) +div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul r8.w, r8.w, r11.w +max r8.w, r8.w, l(0.000000) +min r8.w, r8.w, l(1.500000) +mad r21.xyz, r21.xyzx, r8.wwww, -r20.xzwx +mad r20.xzw, r10.zzzz, r21.xxyz, r20.xxzw +mad r8.w, -r14.w, r15.w, r17.w +mad r8.w, r10.z, r8.w, r18.w +add r11.w, l(1.000000), -cb0[186].z +mad r11.w, r8.w, r11.w, cb0[186].z +add r14.w, r14.y, l(-0.500000) +mad r21.y, r10.z, r14.w, l(0.500000) +dp3_sat r23.x, r3.xywx, r2.xyzx +mov r21.xz, cb0[6].xxzx +dp3 r14.w, r21.xyzx, r21.xyzx +max r14.w, r14.w, l(1.175494351E-38) +rsq r14.w, r14.w +mul r21.xyz, r14.wwww, r21.xyzx +add r21.xyz, r21.xyzx, r21.xyzx +mad r14.xyz, r14.xyzx, r10.zzzz, r21.xyzx +add r14.w, r10.z, l(2.000000) +mad r14.xyz, r2.xyzx, r14.wwww, r14.xyzx +dp3 r14.w, r14.xyzx, r14.xyzx +rsq r14.w, r14.w +mul r14.xyz, r14.wwww, r14.xyzx +dp3 r14.x, r3.xywx, r14.xyzx +mul r14.y, r5.y, r5.y +mad r14.z, r14.x, r14.y, -r14.x +mad r14.x, r14.z, r14.x, l(1.000000) +mul r14.x, r14.x, r14.x +add r14.z, l(1.000000), -cb5[1].z +mad r14.z, r4.w, cb5[1].z, r14.z +mul r21.xyz, r19.xyzx, r20.xzwx +ne r14.w, r14.x, r14.y +div r14.x, r14.y, r14.x +movc r14.x, r14.w, r14.x, l(1.000000) +mad r14.y, r23.x, l(2.000000), r5.y +add r14.y, r14.y, l(0.000100) +div r14.y, l(0.500000), r14.y +mad r14.x, r14.x, r14.y, l(-0.0000610351562) +max r14.x, r14.x, l(0.000000) +min r14.x, r14.x, l(20.000000) +mul r14.xyw, r13.xyxz, r14.xxxx +mad r8.w, r8.w, l(0.500000), l(0.500000) +mul r8.w, r11.w, r8.w +mul r19.xyz, r8.wwww, r19.xyzx +mul r14.xyw, r14.xyxw, r19.xyxz +mul r14.xyw, r14.xyxw, cb0[199].wwww +mad r14.xyw, r21.xyxz, r14.zzzz, r14.xyxw +dp3 r8.w, r14.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r15.w, r8.w, l(-0.500000) +max r15.w, r15.w, l(0.000000) +min r15.w, r15.w, l(0.500000) +mov r19.y, l(0) +mov r19.xz, cb0[195].yyxy +mul r21.xyz, r19.xyzx, cb0[6].zxyz +mad r19.xyz, cb0[6].yzxy, r19.yzxy, -r21.xyzx +dp3 r17.w, r19.xyzx, r19.xyzx +rsq r17.w, r17.w +mul r19.xyz, r17.wwww, r19.xyzx +dp3 r17.w, r2.xyzx, r7.xyzx +add r21.xy, -|r17.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) +dp3 r17.x, r17.xyzx, r7.xyzx +add r17.y, -r10.z, l(1.000000) +add r9.w, -r3.z, r9.w +mad r2.w, r2.w, r9.w, r3.z +mul r25.y, r2.w, r2.w +mul r26.x, r23.x, r23.x +mul r26.z, r23.x, r26.x +mul r9.w, r25.y, r25.y +mul r25.z, r25.y, r9.w +mov r23.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r24.x, l(3.327070, 1.000000, 0.000000, 0.000000), r23.xyxx +dp2 r24.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r23.xzxx +mov r25.x, l(1.000000) +dp2 r9.w, r24.xyxx, r25.xyxx +mov r26.yw, l(0,9.044010,0,1.000000) +dp3 r27.x, l(3.596850, -1.367720, 1.000000, 0.000000), r26.xzwx +dp3 r27.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r26.xyzx +mov r28.x, l(5.565890) +mov r28.yz, r26.xxzx +dp3 r27.z, l(1.000000, 19.788601, -20.212299, 0.000000), r28.xyzx +dp3 r17.z, r27.xyzx, r25.xyzx +div r9.w, r9.w, r17.z +dp2 r24.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r23.xwxx +mov r26.x, l(1.296780) +mov r26.y, r23.x +dp2 r24.y, l(1.000000, -0.755907, 0.000000, 0.000000), r26.xyxx +dp2 r17.z, r24.xyxx, r25.xyxx +dp3 r27.x, l(2.923380, 59.418800, 1.000000, 0.000000), r26.yzwy +mov r26.xw, l(20.322500,0,0,121.563004) +dp3 r27.y, l(1.000000, -27.030199, 222.591995, 0.000000), r26.xyzx +dp3 r27.z, l(626.130005, 316.627014, 1.000000, 0.000000), r26.yzwy +dp3 r18.w, r27.xyzx, r25.xyzx +div r17.z, r17.z, r18.w +mad r22.yzw, r13.xxyz, r9.wwww, r17.zzzz +add r9.w, r9.w, r17.z +mad r15.w, r15.w, r15.w, l(1.000000) +add r14.xyw, -r8.wwww, r14.xyxw +mad r14.xyw, r15.wwww, r14.xyxw, r8.wwww +mad r21.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) +add r8.w, -r21.z, r21.w +add r15.w, -r21.z, r21.x +div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w +mul_sat r8.w, r8.w, r15.w +mad r15.w, r8.w, l(-2.000000), l(3.000000) +mul r8.w, r8.w, r8.w +mul r8.w, r8.w, r15.w +mul r23.yzw, r8.wwww, cb0[194].xxyz +mul r23.yzw, r23.yyzw, cb0[194].wwww +dp3 r8.w, r8.xyzx, r19.xyzx +add_sat r8.w, r8.w, l(1.000000) +min r5.z, r5.z, r8.w +min r5.z, r20.y, r5.z +mul r23.yzw, r5.zzzz, r23.yyzw +mad r24.xyw, r4.xyxz, r6.wwww, l(-0.250000, -0.250000, 0.000000, -0.250000) +mad r24.xyw, cb0[195].zzzz, r24.xyxw, l(0.250000, 0.250000, 0.000000, 0.250000) +dp3_sat r5.z, r19.xyzx, r7.xyzx +mul r19.xyz, r5.zzzz, r24.xywx +max r5.z, r15.y, r15.x +max r5.z, r15.z, r5.z +mul r5.z, r5.z, l(0.500000) +max r5.z, r5.z, l(1.000000) +div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z +mul r15.xyz, r5.zzzz, r15.xyzx +mad r18.xyz, r18.xyzx, r5.wwww, -r15.xyzx +mad r15.xyz, r10.zzzz, r18.xyzx, r15.xyzx +dp3 r5.z, r16.xyzx, r7.xyzx +mul r5.w, r7.w, r5.z +mad r8.w, r17.x, l(0.500000), l(-1.000000) +mad r8.w, -r17.x, r8.w, l(0.500000) +mad r5.z, -r5.z, r7.w, r8.w +mad_sat r5.z, r10.z, r5.z, r5.w +mul r15.xyz, r5.zzzz, r15.xyzx +mad r5.z, r13.w, r10.z, r17.y +mul r5.z, r22.x, r5.z +mul r15.xyz, r5.zzzz, r15.xyzx +mul_sat r5.z, r21.y, l(5.00000048) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mul r15.xyz, r5.zzzz, r15.xyzx +mul r15.xyz, r16.wwww, r15.xyzx +add r5.z, r12.w, l(-0.100000) +mul_sat r5.z, r5.z, l(-16.666666) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mad r5.z, r5.z, r10.z, r17.y +mul r15.xyz, r5.zzzz, r15.xyzx +max r16.xyz, r11.xyzx, l(0.150000, 0.150000, 0.150000, 0.000000) +mul r15.xyz, r15.xyzx, r16.xyzx +mad r15.xyz, r23.yzwy, r19.xyzx, r15.xyzx +add r14.xyw, r14.xyxw, r15.xyxz +utof r5.zw, r10.xxxy +mul r15.xy, r5.zwzz, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r15.xy, r15.xyxx +mad r7.w, r15.y, cb2[1].y, r15.x +mul r7.w, r7.w, l(8.000000) +ftoi r7.w, r7.w +mad r8.w, -cb0[85].y, cb2[2].w, v0.w +round_ni r8.w, r8.w +add r10.z, l(-1.000000), cb2[1].w +max r12.w, r8.w, l(0.000000) +min r10.z, r10.z, r12.w +mul r12.w, r10.z, l(8.000000) +ftoi r12.w, r12.w +dp3 r13.w, -r2.xyzx, r3.xywx +add r13.w, r13.w, r13.w +mad r15.xyz, r3.xywx, -r13.wwww, -r2.xyzx +max r2.w, r2.w, l(0.001000) +log r2.w, r2.w +mad r2.w, r2.w, l(1.200000), l(5.000000) +sample_l_indexable(texturecube)(float,float,float,float) r15.xyz, r15.xyzx, t15.xyzw, s0, r2.w +add r2.w, -r9.w, l(1.000000) +div r2.w, r2.w, r9.w +mul r16.xyz, r2.wwww, r13.xyzx +mad r16.xyz, r16.xyzx, r22.yzwy, r22.yzwy +mul r15.xyz, r15.xyzx, r16.xyzx +mul r2.w, r24.z, cb0[186].w +mul r2.w, r11.w, r2.w +mul r15.xyz, r2.wwww, r15.xyzx +mad r12.xyz, r15.xyzx, r12.xyzx, r14.xywx +ge r2.w, r10.z, r8.w +iadd r8.w, r12.w, cb0[110].y +mad r9.w, r17.y, l(-0.250000), l(0.750000) +mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) +add r6.w, -r5.y, l(0.010000) +ge r5.x, r5.x, l(0.500000) +and r5.x, r5.x, l(0x3f800000) +mov r15.w, l(1.000000) +mov r14.xyw, r12.xyxz +mov r10.z, l(0) +loop + ilt r11.w, l(7), r10.z + breakc_nz r11.w + iadd r11.w, r7.w, r10.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx + iadd r12.w, r8.w, r10.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx + and r11.w, r11.w, r12.w + and r11.w, r2.w, r11.w + ishl r12.w, r10.z, l(5) + mov r16.xyz, r14.xywx + mov r13.w, r11.w + loop + breakc_z r13.w + firstbit_lo r16.w, r13.w + ishl r17.x, l(1), r16.w + xor r17.x, r13.w, r17.x + iadd r16.w, r12.w, r16.w + bfi r18.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) + ftou r17.y, cb3[r18.y + 6].w + ieq r17.y, r17.y, l(1) + if_nz r17.y + add r15.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx + and r19.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r18.y + 6].xzyx + and r21.yzw, l(0, 0x0000ffff, 0x0000ffff, 0x0000ffff), cb3[r18.z + 6].yyxz + ushr r22.xyz, cb3[r18.y + 6].xzyx, l(16, 16, 16, 0) + ushr r23.yzw, cb3[r18.z + 6].yyxz, l(0, 16, 16, 16) + f16tof32 r19.xyz, r19.xyzx + f16tof32 r21.yzw, r21.yyzw + f16tof32 r22.xyz, r22.xyzx + f16tof32 r24.xyw, r23.zyzw + mov r25.xz, r19.xxzx + mov r25.yw, r22.xxxz + dp4 r17.y, r15.xyzw, r25.xyzw + mov r22.x, r19.y + mov r22.z, r21.z + mov r22.w, r24.x + dp4 r17.z, r15.xyzw, r22.xyzw + mov r24.xz, r21.yywy + dp4 r15.x, r15.xyzw, r24.xyzw + max r15.y, |r17.z|, |r17.y| + max r15.x, |r15.x|, r15.y + mad r15.y, cb3[r18.w + 6].x, l(0.500000), l(0.500000) + add r15.x, -r15.y, r15.x + mad r15.y, -cb3[r18.w + 6].x, l(0.500000), l(0.500000) + div_sat r15.x, r15.x, r15.y + add r15.x, -r15.x, l(1.000000) + mul r15.x, r15.x, r15.x + else + mov r15.x, l(1.000000) + endif + lt r15.y, r15.x, l(0.001000) + if_nz r15.y + mov r13.w, r17.x + continue + endif + ishl r15.y, r16.w, l(3) + lt r15.z, cb3[r15.y + 6].w, l(1.500000) + if_nz r15.z + bfi r15.z, l(29), l(3), r16.w, l(3) + ieq r17.y, l(16), cb3[r15.z + 6].w + add r17.z, cb0[198].z, cb3[r15.z + 6].z + lt r17.z, r17.z, l(0.500000) + or r17.y, r17.z, r17.y + if_z r17.y + bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) + ftou r16.w, cb3[r15.y + 6].w + and r16.w, r16.w, l(1) + ieq r18.y, r16.w, l(0) + not r18.y, r18.y + lt r19.x, l(0.000000), cb3[r17.y + 6].z + and r18.y, r18.y, r19.x + ieq r19.x, l(4), cb3[r15.z + 6].w + movc r19.y, r16.w, l(0), l(1.000000) + mad r19.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) + add r22.z, r19.z, -|cb3[r17.y + 6].x| + add r22.x, -r22.z, cb3[r17.y + 6].y + add r19.z, -|r22.z|, l(1.000000) + add r19.z, -|r22.x|, r19.z + max r19.z, r19.z, l(0.000488281250) + ge r19.w, cb3[r17.y + 6].x, l(0.000000) + movc r22.y, r19.w, r19.z, -r19.z + dp3 r19.z, r22.xyzx, r22.xyzx + rsq r19.z, r19.z + mul r21.yzw, r19.zzzz, r22.xxyz + add r19.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y + max r19.z, r19.z, l(0.100000) + and r19.w, r19.x, l(0x3f800000) + add r19.z, r19.z, -cb3[r18.z + 6].w + mad r18.z, r19.w, r19.z, cb3[r18.z + 6].w + add r22.xyz, -v2.xyzx, cb3[r18.x + 6].xyzx + dp3 r19.z, r22.yzxy, -r21.yzwy + lt r19.w, l(0.500000), cb3[r17.z + 6].z + and r19.w, r19.w, r19.x + and r19.w, r19.w, l(0x3f800000) + mul r19.w, r19.y, r19.w + mad r23.yzw, -r21.wwyz, r19.zzzz, -r22.xxyz + mad r22.xyz, r19.wwww, r23.yzwy, r22.xyzx + dp3 r19.z, r22.xyzx, r22.xyzx + rsq r19.w, r19.z + mul r23.yzw, r19.wwww, r22.xxyz + if_nz r18.y + mul r24.xyz, r21.wyzw, cb3[r17.y + 6].zzzz + mad r25.xyz, -r24.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx + mad r24.xyz, r24.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx + dp3 r19.w, r25.xyzx, r25.xyzx + sqrt r19.w, r19.w + dp3 r20.y, r24.xyzx, r24.xyzx + sqrt r20.y, r20.y + mul r26.xyz, r21.yzwy, r23.yzwy + mad r26.xyz, r21.wyzw, r23.zwyz, -r26.xyzx + mul r27.xyz, r21.yzwy, r26.xyzx + mad r26.xyz, r26.zxyz, r21.zwyz, -r27.xyzx + dp3 r22.w, r26.xyzx, r26.xyzx + rsq r22.w, r22.w + mul r23.yzw, r22.wwww, r26.xxyz + dp3 r22.w, r25.xyzx, r24.xyzx + mad r22.w, r19.w, r20.y, r22.w + mad r22.w, r22.w, l(0.500000), l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + dp3 r24.w, r23.yzwy, r25.xyzx + div r19.w, r24.w, r19.w + dp3 r24.x, r23.yzwy, r24.xyzx + div r20.y, r24.x, r20.y + add r19.w, r19.w, r20.y + mul_sat r19.w, r19.w, l(0.500000) + mul r19.w, r19.w, r22.w + else + mov r19.w, l(1.000000) + endif + lt r20.y, r18.z, l(0.000000) + if_nz r20.y + mul r20.y, cb3[r18.x + 6].w, cb3[r18.x + 6].w + mul r20.y, r19.z, r20.y + mad r20.y, -r20.y, r20.y, l(1.000000) + max r20.y, r20.y, l(0.000000) + add r19.z, r19.z, l(1.000000) + div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z + and r22.w, r18.y, l(0x3f800000) + add r24.x, -r19.z, r19.w + mad r19.z, r22.w, r24.x, r19.z + mul r20.y, r20.y, r20.y + mul r19.z, r19.z, r20.y + else + mul r24.xyz, r22.xyzx, cb3[r18.x + 6].wwww + dp3 r20.y, r24.xyzx, r24.xyzx + min r20.y, r20.y, l(1.000000) + add r20.y, -r20.y, l(1.000000) + log r20.y, r20.y + mul r18.z, r18.z, r20.y + exp r18.z, r18.z + mul r19.z, r18.z, r19.w + endif + dp3 r18.z, r23.zwyz, -r21.yzwy + add r18.z, r18.z, -cb3[r17.y + 6].z + mul_sat r18.z, r18.z, cb3[r17.y + 6].w + mad r18.z, r18.z, r18.z, l(-1.000000) + mad r18.z, r19.y, r18.z, l(1.000000) + mul r18.z, r18.z, r19.z + ftoi r19.y, cb3[r18.w + 6].w + not r18.y, r18.y + ige r19.z, r19.y, l(0) + and r18.y, r18.y, r19.z + if_nz r18.y + if_z r16.w + ishl r18.y, r19.y, l(2) + mul r21.yzw, v2.yyyy, cb6[r18.y + 33].xxyw + mad r21.yzw, cb6[r18.y + 32].xxyw, v2.xxxx, r21.yyzw + mad r21.yzw, cb6[r18.y + 34].xxyw, v2.zzzz, r21.yyzw + add r21.yzw, r21.yyzw, cb6[r18.y + 35].xxyw + div_sat r19.zw, r21.yyyz, r21.wwww + mad r19.zw, r19.zzzw, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy + else + ishl r18.y, r19.y, l(2) + dp3 r24.x, -r22.xyzx, cb6[r18.y + 32].xyzx + dp3 r24.y, -r22.xyzx, cb6[r18.y + 33].xyzx + dp3 r24.z, -r22.xyzx, cb6[r18.y + 34].xyzx + lt r18.y, |r24.x|, |r24.y| + and r18.y, r18.y, l(1) + dp2 r20.y, |r24.xyxx|, icb[r18.y + 0].xyxx + lt r20.y, r20.y, |r24.z| + movc r18.y, r20.y, l(2), r18.y + dp3 r20.y, r24.xyzx, icb[r18.y + 0].xyzx + lt r20.y, r20.y, l(0.000000) + bfi r18.y, l(31), l(1), r18.y, r20.y + ushr r20.y, r18.y, l(1) + dp3 r20.y, r24.xyzx, icb[r20.y + 0].xyzx + div r21.y, l(0.000244140625), cb6[r19.y + 0].w + add r21.y, -r21.y, l(0.500000) + utof r21.z, r18.y + ult r21.w, r18.y, l(2) + and r21.w, r21.w, l(2) + dp2 r21.w, r24.xzxx, icb[r21.w + 0].xzxx + mul r21.w, r21.w, icb[r18.y + 4].z + div r21.w, r21.w, |r20.y| + mad r21.z, r21.w, r21.y, r21.z + add r21.z, r21.z, l(0.500000) + mul_sat r22.x, r21.z, l(0.166666672) + iadd r21.z, l(-1), icb[r18.y + 4].y + dp2 r21.z, r24.yzyy, icb[r21.z + 0].xyxx + mul r18.y, r21.z, icb[r18.y + 4].w + div r18.y, r18.y, |r20.y| + mad_sat r22.y, -r18.y, r21.y, l(0.500000) + mad r19.zw, r22.xxxy, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r19.zwzz, t16.yxzw, s0, l(0.000000) + mul r18.z, r18.y, r18.z + endif + mul r15.x, r15.x, r18.z + lt r18.y, l(0.000100), r15.x + if_nz r18.y + if_nz r19.x + add r18.y, l(1.000000), -cb3[r17.z + 6].w + dp3 r18.z, r9.xyzx, r23.yzwy + add_sat r18.z, r18.z, l(0.500000) + mad r19.y, r18.z, l(-2.000000), l(3.000000) + mul r18.z, r18.z, r18.z + mul r18.z, r18.z, r19.y + mad r18.y, r18.z, cb3[r17.z + 6].w, r18.y + mul r18.y, r18.y, cb3[r17.z + 6].x + mul r18.y, r15.x, r18.y + add r19.yzw, -r16.xxyz, cb3[r15.y + 6].xxyz + mad r19.yzw, r18.yyyy, r19.yyzw, r16.xxyz + endif + if_z r19.x + dp3 r18.y, r7.xyzx, r23.yzwy + mov_sat r18.z, r18.y + if_nz cb3[r15.z + 6].w + if_z r16.w + ftoi r16.w, cb3[r15.z + 6].x + else + add r21.yzw, v2.xxyz, -cb3[r18.x + 6].xxyz + lt r22.xyz, |r21.zwwz|, |r21.yyzy| + and r20.y, r22.y, r22.x + lt r21.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r21.yyzw + ushr r22.x, cb3[r17.y + 6].w, l(24) + ubfe r22.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb3[r17.y + 6].wwww + movc r21.y, r21.y, r22.x, r22.y + and r17.y, l(255), cb3[r17.y + 6].w + movc r17.y, r21.z, r22.w, r17.y + ubfe r21.z, l(8), l(8), cb3[r15.z + 6].x + and r22.x, l(255), cb3[r15.z + 6].x + movc r21.z, r21.w, r21.z, r22.x + movc r17.y, r22.z, r17.y, r21.z + movc r17.y, r20.y, r21.y, r17.y + ilt r20.y, r17.y, l(80) + movc r16.w, r20.y, r17.y, l(-1) + endif + ige r17.y, r16.w, l(0) + if_nz r17.y + add r21.yzw, v2.xxyz, -cb3[r18.x + 6].xxyz + ishl r17.y, r16.w, l(2) + dp3 r18.x, r21.yzwy, r21.yzwy + max r18.x, r18.x, l(1.175494351E-38) + rsq r18.x, r18.x + mul r21.yzw, r18.xxxx, r21.yyzw + mad r21.yzw, -r21.yyzw, cb4[r16.w + 288].xxxx, v2.xxyz + mul r18.x, l(5.000000), cb4[r16.w + 288].y + mad r21.yzw, r9.xxyz, r18.xxxx, r21.yyzw + mul r22.xyzw, r21.zzzz, cb4[r17.y + 65].xyzw + mad r22.xyzw, cb4[r17.y + 64].xyzw, r21.yyyy, r22.xyzw + mad r22.xyzw, cb4[r17.y + 66].xyzw, r21.wwww, r22.xyzw + add r22.xyzw, r22.xyzw, cb4[r17.y + 67].xyzw + div r21.yzw, r22.xxyz, r22.wwww + ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.yzwy + ge r24.xyz, r21.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) + add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz + mad r21.yz, r21.yyzy, r25.xxyx, cb4[r16.w + 344].xxyx + mad r25.xy, r21.yzyy, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r21.yz, r21.yyzy, cb4[400].zzwz, -r25.xxyx + add r26.xyzw, r21.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r21.yyyz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r21.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r21.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r21.yz, r27.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r21.yyzy + mul r30.xy, r21.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r21.yz, -r26.xxzx, r26.xxzx, r25.zzwz + add r21.yz, r21.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r31.xy, r21.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r21.yz, r26.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r30.z, r31.x + mov r30.w, r21.y + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r21.z + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r29.w, r28.x + mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw + mad r21.yz, r25.xxyx, cb4[400].xxyx, r29.zzwz + mov r28.w, r29.y + mov r29.yw, r28.yyyz + mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy + mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz + mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw + mul r29.xyzw, r26.zwyz, r27.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r30.xyxx, t2.xxxx, s2, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.zwzz, t2.xxxx, s2, r21.w + mul r18.x, r18.x, r29.y + mad r17.y, r29.x, r17.y, r18.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r21.yzyy, t2.xxxx, s2, r21.w + mad r17.y, r29.z, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.xyxx, t2.xxxx, s2, r21.w + mad r17.y, r29.w, r18.x, r17.y + mul r29.xyzw, r26.xyzw, r27.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.xyxx, t2.xxxx, s2, r21.w + mad r17.y, r29.x, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.zwzz, t2.xxxx, s2, r21.w + mad r17.y, r29.y, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.zwzz, t2.xxxx, s2, r21.w + mad r17.y, r29.z, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r25.xyxx, t2.xxxx, s2, r21.w + mad r17.y, r29.w, r18.x, r17.y + or r22.xyz, r22.xyzx, r24.xyzx + or r18.x, r22.y, r22.x + or r18.x, r22.z, r18.x + and r20.y, r21.w, l(0x7fffffff) + ult r20.y, l(0x7f800000), r20.y + or r18.x, r18.x, r20.y + mul r20.y, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.y, r25.zwzz, t2.xxxx, s2, r21.w + mad r17.y, r20.y, r21.y, r17.y + add r17.y, r17.y, l(-1.000000) + mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) + movc r16.w, r18.x, l(1.000000), r16.w + else + dp3 r17.y, r8.xyzx, r23.yzwy + add_sat r16.w, r17.y, l(1.000000) + endif + else + mov r16.w, l(1.000000) + endif + if_z cb3[r15.z + 6].w + mul r21.yzw, r15.xxxx, cb3[r15.y + 6].xxyz + add r17.y, l(1.000000), -cb3[r17.z + 6].y + max r18.x, r21.z, r21.y + max r18.x, r21.w, r18.x + mul r18.x, r9.w, r18.x + max r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + mad r17.y, r18.x, cb3[r17.z + 6].y, r17.y + mul r21.yzw, r17.yyyy, cb3[r15.y + 6].xxyz + mul r17.y, l(0.250000), cb3[r17.z + 6].x + add_sat r18.x, r18.y, l(0.500000) + mad r20.y, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) + mad r17.y, r18.x, r20.y, r17.y + mul r21.yzw, r17.yyyy, r21.yyzw + mov r22.xyz, r20.xzwx + mov r24.xyz, r20.xzwx + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r20.y, l(3), cb3[r15.z + 6].w + if_nz r20.y + mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) + add r20.y, -r25.x, r25.y + add r22.w, r21.x, -r25.x + div r20.y, l(1.000000, 1.000000, 1.000000, 1.000000), r20.y + mul_sat r20.y, r20.y, r22.w + mad r22.w, r20.y, l(-2.000000), l(3.000000) + mul r20.y, r20.y, r20.y + mul r20.y, r20.y, r22.w + mul r20.y, r16.w, r20.y + mul r15.x, r15.x, r20.y + mul r25.xyz, r23.wyzw, cb0[6].xyzx + mad r25.xyz, cb0[6].zxyz, r23.yzwy, -r25.xyzx + mul r26.xyz, r25.xyzx, cb0[6].zxyz + mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx + dp3 r20.y, r25.xyzx, r25.xyzx + rsq r20.y, r20.y + mul r25.xyz, r20.yyyy, r25.xyzx + dp3_sat r18.z, r7.xyzx, -r25.xyzx + mad r22.xyz, cb3[r17.z + 6].yyyy, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mov r24.xyz, l(0,0,0,0) + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r20.y, l(1), cb3[r15.z + 6].w + if_nz r20.y + add r18.y, r18.y, cb3[r17.z + 6].x + max_sat r18.y, r18.y, l(-1.000000) + mul r18.z, r16.w, r18.y + mul r24.xyz, r6.xyzx, cb3[r17.z + 6].yyyy + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r16.w, l(2), cb3[r15.z + 6].w + if_nz r16.w + add r18.y, l(0.050000), cb3[r17.z + 6].x + add r18.y, r3.z, -r18.y + mul_sat r18.y, r18.y, l(-10.000000) + mad r22.w, r18.y, l(-2.000000), l(3.000000) + mul r18.y, r18.y, r18.y + mul r18.y, r18.y, r22.w + add r22.w, l(1.000000), -cb3[r17.z + 6].z + mad r22.w, r5.x, cb3[r17.z + 6].z, r22.w + mul r17.y, r18.y, r22.w + else + mov r17.y, l(1.000000) + endif + and r18.x, r16.w, cb3[r17.z + 6].y + mov r24.xyz, l(0,0,0,0) + endif + and r22.xyz, r11.xyzx, r20.yyyy + endif + mov r21.yzw, cb3[r15.y + 6].xxyz + endif + ine r15.y, l(3), cb3[r15.z + 6].w + if_nz r15.y + mad r15.y, r18.x, r6.w, r5.y + mad r23.yzw, r0.xxyz, r1.wwww, r23.yyzw + dp3 r15.z, r23.yzwy, r23.yzwy + rsq r15.z, r15.z + mul r23.yzw, r15.zzzz, r23.yyzw + dp3 r15.z, r3.xywx, r23.yzwy + mul r16.w, r15.y, r15.y + mad r17.z, r15.z, r16.w, -r15.z + mad r15.z, r17.z, r15.z, l(1.000000) + mul r15.z, r15.z, r15.z + ne r17.z, r15.z, r16.w + div r15.z, r16.w, r15.z + movc r15.z, r17.z, r15.z, l(1.000000) + mad r15.y, r23.x, l(2.000000), r15.y + add r15.y, r15.y, l(0.000100) + div r15.y, l(0.500000), r15.y + mad r15.y, r15.z, r15.y, l(-0.0000610351562) + max r15.y, r15.y, l(0.000000) + min r15.y, r15.y, l(20.000000) + mul r23.yzw, r13.xxyz, r15.yyyy + mul r23.yzw, r17.yyyy, r23.yyzw + mul r18.xyw, r23.yzyw, cb3[r18.w + 6].zzzz + else + mov r18.xyw, l(0,0,0,0) + endif + mul r15.xyz, r15.xxxx, r21.yzwy + add r21.yzw, r22.xxyz, -r24.xxyz + mad r21.yzw, r18.zzzz, r21.yyzw, r24.xxyz + mul r21.yzw, r15.xxyz, r21.yyzw + mul r15.xyz, r18.xywx, r15.xyzx + mul r15.xyz, r18.zzzz, r15.xyzx + mad r15.xyz, r21.yzwy, r14.zzzz, r15.xyzx + add r16.xyz, r15.xyzx, r16.xyzx + endif + else + mov r19.x, l(0) + endif + movc r16.xyz, r19.xxxx, r19.yzwy, r16.xyzx + endif + endif + mov r13.w, r17.x + endloop + mov r14.xyw, r16.xyxz + iadd r10.z, r10.z, l(1) +endloop +lt r0.x, l(0.500000), cb5[3].x +if_nz r0.x + dp3 r0.x, r14.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r3.xyz, -r0.xxxx, r14.xywx + mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx + add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) + mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r3.xyz, r0.xyzx, cb5[3].yyyy + mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx + mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx + add r2.w, l(1.000000), -cb5[4].x + mov_sat r17.w, r17.w + add r3.x, -r17.w, l(1.000000) + add r3.y, -r2.w, l(1.000000) + add r2.w, -r2.w, r3.x + div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y + mul_sat r2.w, r2.w, r3.x + mad r3.x, r2.w, l(-2.000000), l(3.000000) + mul r2.w, r2.w, r2.w + mul r2.w, r2.w, r3.x + mul r3.xyz, r2.wwww, cb5[8].xyzx + mad r14.xyw, r3.xyxz, cb5[4].yyyy, r0.xyxz +endif +div r0.xyz, r14.xywx, cb0[109].xxxx +eq r2.w, l(1.000000), cb5[2].x +movc o0.w, r2.w, r4.w, l(1.000000) +lt r2.w, cb0[198].w, l(0.500000) +if_nz r2.w + mul r0.w, r0.w, r1.w + mad r1.w, v2.y, cb0[156].w, cb0[157].w + max r1.w, r1.w, l(0.010000) + mad r2.w, r0.w, cb0[154].w, -cb0[153].w + max r2.w, r2.w, l(0.000000) + mul r3.x, r1.w, l(-1.442695) + exp r3.x, r3.x + add r3.x, -r3.x, l(1.000000) + div r1.w, r3.x, r1.w + mad r3.x, v2.y, cb0[156].w, cb0[158].w + mul r3.x, r3.x, l(1.442695) + exp r3.x, r3.x + mul r1.w, r1.w, r3.x + mul r1.w, r1.w, -r2.w + mul r3.xyz, r1.wwww, cb0[155].xyzx + mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) + exp r3.xyz, r3.xyzx + dp3 r1.w, -r2.xyzx, cb0[154].xyzx + mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) + dp2 r3.w, r1.wwww, cb0[155].wwww + add r2.w, r2.w, -r3.w + lt r3.w, l(0.000000), cb0[163].z + if_nz r3.w + and r10.w, l(7), cb0[108].w + imad r4.xyz, r10.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.w, r4.y, r4.z, r4.x + imad r4.x, r4.z, r3.w, r4.y + imad r4.y, r3.w, r4.x, r4.z + imad r5.x, r4.x, r4.y, r3.w + dp3 r1.x, -r2.xyzx, -r1.xyzx + add r1.y, v2.y, -cb0[44].y + lt r1.z, l(5.960464478E-08), r1.x + div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x + and r1.x, r1.x, r1.z + mul r1.x, r1.x, cb0[163].w + div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r2.x, r1.z, r1.x + mad r2.y, r2.x, r1.y, cb0[44].y + mad r1.y, -r2.x, r1.y, r1.y + mul r2.x, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r2.z, r2.y, -cb0[159].x + mul r2.z, r2.z, cb0[159].z + max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r2.z, -r2.z + mul r2.z, r2.z, cb0[159].y + lt r3.w, l(5.960464478E-08), |r2.x| + exp r4.z, -r2.x + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r2.x + mad r2.x, -r2.x, l(0.240226507), l(0.693147182) + movc r2.x, r3.w, r4.z, r2.x + add r2.y, r2.y, -cb0[162].z + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[162].y + lt r3.w, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r3.w, r4.z, r1.y + mul r1.y, r1.y, r2.y + mad r1.y, r2.z, r2.x, r1.y + mad r1.x, -r1.x, r1.z, l(1.000000) + mul r1.x, r0.w, r1.x + mul r1.x, r1.x, r1.y + exp r1.x, -r1.x + min r1.x, r1.x, l(1.000000) + max r1.x, r1.x, cb0[161].w + mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r1.x, r1.y, r1.x + add r1.x, r1.z, r1.x + min r1.x, r1.x, l(1.000000) + imad r5.y, r4.y, r5.x, r4.x + ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) + utof r1.yz, r1.yyzy + mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz + mul r2.xy, r1.yzyy, cb0[165].xyxx + mad r1.y, v0.w, cb0[164].x, cb0[164].y + log r1.y, r1.y + mul r1.y, r1.y, cb0[164].z + div r2.z, r1.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t17.xyzw, s0, l(0.000000) + add r1.y, v0.w, -cb0[166].z + mul_sat r1.y, r1.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.xyz, r1.yyyy, cb0[161].xyzx + mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx + mul r1.x, r1.x, r4.w + else + add r1.y, v2.y, -cb0[44].y + mul r1.z, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r1.z| + exp r4.y, -r1.z + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r1.z + mad r1.z, -r1.z, l(0.240226507), l(0.693147182) + movc r1.z, r4.x, r4.y, r1.z + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r1.z, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r1.x, r0.w, l(1.000000) + add r0.w, -r1.x, l(1.000000) + mul r2.xyz, r0.wwww, cb0[161].xyzx + endif + mul r4.xyz, r1.xxxx, r3.xyzx + mad r0.w, r1.w, r1.w, l(1.000000) + mul r0.w, r0.w, l(0.0596831031) + mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz + mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) + mul r3.w, r2.w, l(12.566371) + sqrt r2.w, r2.w + mul r2.w, r2.w, r3.w + max r2.w, r2.w, l(0.001000) + div r0.w, r0.w, r2.w + mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw + mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) + add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r1.yzw, r1.yyzw, r3.xxyz + mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r0.xyz = scene color (normalized), r4.xyz = transmittance, r1.xyz = fog inscatter (0-255 range mixed) + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity (r1 already in 0-255 mixed range, scale down) + mul r16.xyz, r1.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad o0.xyz, r0.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx +endif +// === End Fog Modification === +else + mov o0.xyz, r0.xyzx +endif +mov o1.z, l(1.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0_original_backup.asm new file mode 100644 index 000000000..670f70781 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0_original_backup.asm @@ -0,0 +1,1840 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 13:55:07 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy w +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyz 5 NONE float xyz +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 xyz 8 NONE float xyz +// TEXCOORD 8 x 9 NONE uint x +// SV_IsFrontFace 0 x 10 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[216], immediateIndexed +dcl_constantbuffer CB1[4093], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[9], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_comparison +dcl_sampler s3, mode_default +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_resource_structured t0, 4 +dcl_resource_structured t1, 16 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_resource_texture3d (float,float,float,float) t4 +dcl_resource_texture3d (float,float,float,float) t5 +dcl_resource_texture3d (float,float,float,float) t6 +dcl_resource_texture3d (float,float,float,float) t7 +dcl_resource_texture3d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texturecube (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_input_ps_siv linear noperspective v0.xyw, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps linear v8.xyz +dcl_input_ps constant v9.x +dcl_input_ps_sgv constant v10.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 32 +add r0.xyz, -v2.xyzx, cb0[44].xyzx +mov r1.x, cb0[0].z +mov r1.y, cb0[1].z +mov r1.z, cb0[2].z +add r2.xyz, -r0.xyzx, r1.xyzx +mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +max r1.w, r0.w, l(9.999999939E-09) +rsq r1.w, r1.w +mul r2.xyz, r0.xyzx, r1.wwww +ishl r2.w, v9.x, l(4) +and r3.x, l(16), cb1[r2.w + 4].w +if_nz r3.x + iadd r3.x, l(2), cb1[r2.w + 5].x + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx +else + mov r3.xy, cb1[r2.w + 3].zxzz +endif +sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t12.xyzw, s3, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t13.xyzw, s4, cb0[108].x +add r3.z, -r5.w, l(1.000000) +mul r4.xyzw, r4.xyzw, cb5[5].xyzw +mul r6.xyz, r4.xyzx, cb5[4].zzzz +dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww +mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t14.xywz, s5, cb0[108].x +mul r7.x, r7.x, r7.z +mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r3.w, r7.xyxx, r7.xyxx +min r3.w, r3.w, l(1.000000) +add r3.w, -r3.w, l(1.000000) +sqrt r3.w, r3.w +max r3.w, r3.w, l(1.000000017E-16) +mul r7.xy, r7.xyxx, cb5[0].wwww +add r8.xz, -r3.yyxy, v2.xxzx +mov r8.y, l(0.0000610351562) +dp3 r3.x, r8.xyzx, r8.xyzx +rsq r3.x, r3.x +mul r8.xyz, r3.xxxx, r8.xyzx +mul r9.xyz, v3.zxyz, v4.yzxy +mad r9.xyz, v3.yzxy, v4.zxyz, -r9.xyzx +mul r9.xyz, r9.xyzx, v4.wwww +mul r7.yzw, r7.yyyy, r9.xxyz +mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy +mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz +mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) +movc r6.w, v10.x, l(1.000000), r6.w +dp3 r7.x, r3.xywx, r3.xywx +max r7.x, r7.x, l(1.175494351E-38) +rsq r7.x, r7.x +mul r3.xyw, r3.xyxw, r7.xxxx +mul r7.xyz, r6.wwww, r3.xywx +dp3 r8.w, v3.xyzx, v3.xyzx +rsq r8.w, r8.w +mul r9.xyz, r8.wwww, v3.xyzx +mul r9.xyz, r6.wwww, r9.xyzx +ftou r10.xy, v0.xyxx +add r8.w, l(1.000000), -cb0[111].x +mad r8.w, cb0[198].w, r8.w, cb0[111].x +mul r8.w, r8.w, cb0[109].x +lt r9.w, cb0[187].y, l(0.500000) +if_nz r9.w + mad r11.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r11.xyz, -r11.xyzx, v2.xzyx + max r9.w, |r11.y|, |r11.x| + add r9.w, r9.w, l(-464.000000) + mul_sat r9.w, r9.w, l(0.031250) + add r11.x, |r11.z|, l(-208.000000) + mul_sat r11.x, r11.x, l(0.031250) + max r9.w, r9.w, r11.x + ne r11.x, l(0.000000), cb0[210].w + lt r11.y, r9.w, l(1.000000) + and r11.x, r11.y, r11.x + if_nz r11.x + mad r11.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r11.xyz, -r11.xyzx, v2.xzyx + max r11.x, |r11.y|, |r11.x| + add r11.x, r11.x, l(-29.000000) + add r11.y, |r11.z|, l(-13.000000) + mul_sat r11.xy, r11.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + max r11.x, r11.y, r11.x + lt r11.y, r11.x, l(1.000000) + if_nz r11.y + mad r11.yzw, v2.xxyz, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, 0.500000, 0.500000, 0.500000) + mul r12.xyz, r11.yzwy, cb0[211].xyzx + round_ni r12.xyz, r12.xyzx + mad r12.xyz, r11.yzwy, cb0[211].xyzx, -r12.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r13.xyw, r12.xyzx, t4.yzwx, s1, l(0.000000) + add r11.y, -r11.x, l(1.000000) + mul r11.z, l(0.500000), cb0[211].y + mad r11.w, -cb0[211].y, l(0.500000), l(1.000000) + max r11.z, r11.z, r12.y + min r11.z, r11.w, r11.z + mul r12.w, r11.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r12.xwzx, t5.xyzw, s0, l(0.000000) + mad r11.z, r14.w, r11.y, r9.w + add r15.xyz, r12.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s0, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r13.yyyy, r15.xyzx + mov r15.w, r13.y + mul r15.xyzw, r11.yyyy, r15.xyzw + add r12.xyz, r12.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t5.xyzw, s0, l(0.000000) + mad r12.xyz, r12.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r12.xyz, r13.xxxx, r12.xyzx + mov r12.w, r13.x + mul r12.xyzw, r11.yyyy, r12.xyzw + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r13.xyz, r13.wwww, r14.xyzx + mul r13.xyzw, r11.yyyy, r13.xyzw + else + mov r15.xyzw, l(0,0,0,0) + mov r12.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r11.z, r9.w + endif + mad r14.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r14.xyz, -r14.xyzx, v2.xzyx + max r11.y, |r14.y|, |r14.x| + add r11.y, r11.y, l(-116.000000) + add r11.w, |r14.z|, l(-52.000000) + mul_sat r11.yw, r11.yyyw, l(0.000000, 0.125000, 0.000000, 0.125000) + max r11.y, r11.w, r11.y + lt r11.w, r11.y, l(1.000000) + if_nz r11.w + mad r14.xyz, v2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r14.xyzx, cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r16.xyw, r14.xyzx, t6.yzwx, s1, l(0.000000) + add r11.w, -r11.y, l(1.000000) + mul r11.x, r11.w, r11.x + mul r11.w, l(0.500000), cb0[211].y + mad r17.x, -cb0[211].y, l(0.500000), l(1.000000) + max r11.w, r11.w, r14.y + min r11.w, r17.x, r11.w + mul r14.w, r11.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t7.xyzw, s0, l(0.000000) + mad r11.z, r17.w, r11.x, r11.z + add r18.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t7.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r16.yyyy, r18.xyzx + mov r18.w, r16.y + mad r15.xyzw, r18.xyzw, r11.xxxx, r15.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t7.xyzw, s0, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r16.xxxx, r14.xyzx + mov r14.w, r16.x + mad r12.xyzw, r14.xyzw, r11.xxxx, r12.xyzw + mad r14.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r16.wwww, r14.xyzx + mad r13.xyzw, r16.xyzw, r11.xxxx, r13.xyzw + endif + lt r11.x, l(0.000000), r11.y + if_nz r11.x + mad r14.xyz, v2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r14.xyzx, cb0[211].xyzx + mul r17.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r16.xyzx + mad r16.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r14.xyz, r17.xyzx, r14.xyzx + min r14.xyz, r16.xyzx, r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r14.xyzx, t8.yzwx, s1, l(0.000000) + add r11.x, -r9.w, l(1.000000) + mul r11.x, r11.x, r11.y + max r11.y, r17.y, r14.y + min r11.y, r16.y, r11.y + mul r14.w, r11.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t9.xyzw, s0, l(0.000000) + add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t9.xyzw, s0, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.yyyy, r17.xyzx + mov r17.w, r18.y + mad r15.xyzw, r17.xyzw, r11.xxxx, r15.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t9.xyzw, s0, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r18.xxxx, r14.xyzx + mov r14.w, r18.x + mad r12.xyzw, r14.xyzw, r11.xxxx, r12.xyzw + mad r14.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r14.xyzx + mad r13.xyzw, r18.xyzw, r11.xxxx, r13.xyzw + mad r11.z, r16.w, r11.x, r11.z + endif + mad_sat r11.x, r11.z, l(2.000000), l(-1.000000) + add r14.x, -r9.w, r11.x + add r9.w, r9.w, r11.x + mul r14.y, r9.w, l(0.500000) + else + mov r15.xyzw, l(0,0,0,0) + mov r12.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xy, l(0,1.000000,0,0) + endif + mul r11.xyzw, r14.yyyx, cb0[213].xyzw + mad r11.y, r11.w, l(0.500000), r11.y + mul r14.zw, r14.yyyx, cb0[213].wwwy + mad r11.w, r14.w, l(0.375000), r14.z + add r11.xyzw, r11.xyzw, r13.xyzw + mul r13.xyzw, r14.yyyx, cb0[214].xyzw + mad r13.y, r13.w, l(0.500000), r13.y + mul r14.zw, r14.yyyx, cb0[214].wwwy + mad r13.w, r14.w, l(0.375000), r14.z + add r12.xyzw, r12.xyzw, r13.xyzw + mul r13.xyzw, r14.yyyx, cb0[215].xyzw + mad r13.y, r13.w, l(0.500000), r13.y + mul r14.xy, r14.yxyy, cb0[215].wyww + mad r13.w, r14.y, l(0.375000), r14.x + add r13.xyzw, r13.xyzw, r15.xyzw + mov r7.w, l(1.000000) + dp4 r14.x, r11.xyzw, r7.xyzw + dp4 r14.y, r12.xyzw, r7.xyzw + dp4 r14.z, r13.xyzw, r7.xyzw + max r14.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r15.xyz, r8.wwww, r14.xyzx + mul r16.xyz, r12.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) + mad r16.xyz, r11.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r16.xyzx + mad r16.xyz, r13.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r16.xyzx + dp3 r7.w, r16.xyzx, r16.xyzx + max r7.w, r7.w, l(1.175494351E-38) + rsq r7.w, r7.w + mul r16.xyz, r7.wwww, r16.xyzx + mov r16.y, |r16.y| + mov r16.w, l(1.000000) + dp4 r11.x, r11.xyzw, r16.xyzw + dp4 r11.y, r12.xyzw, r16.xyzw + dp4 r11.z, r13.xyzw, r16.xyzw + max r11.xyz, r11.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + ge r7.w, r15.y, r15.z + and r7.w, r7.w, l(0x3f800000) + mov r12.xy, r15.zyzz + mov r12.zw, l(0,0,-1.000000,0.666666687) + mad r13.xy, r14.yzyy, r8.wwww, -r12.xyxx + mov r13.zw, l(0,0,1.000000,-1.000000) + mad r12.xyzw, r7.wwww, r13.xyzw, r12.xyzw + ge r7.w, r15.x, r12.x + and r7.w, r7.w, l(0x3f800000) + mov r13.xyz, r12.xywx + mov r13.w, r15.x + mov r12.xyw, r13.wywx + add r12.xyzw, -r13.xyzw, r12.xyzw + mad r12.xyzw, r7.wwww, r12.xyzw, r13.xyzw + min r7.w, r12.y, r12.w + add r7.w, -r7.w, r12.x + add r9.w, -r12.y, r12.w + mad r11.w, r7.w, l(6.000000), l(0.000100) + div r9.w, r9.w, r11.w + add r9.w, r9.w, r12.z + frc r9.w, |r9.w| + add r11.w, r12.x, l(0.000100) + div r7.w, r7.w, r11.w + add r13.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) + add r9.w, |r13.x|, l(-0.450000) + mul_sat r9.w, r9.w, l(-10.000001) + mad r11.w, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r11.w + mad r9.w, r9.w, l(-0.350000), l(0.700000) + mov_sat r12.x, r12.x + mul r9.w, r9.w, r12.x + min r7.w, r7.w, r9.w + add r9.w, -r7.w, l(2.000000) + div r9.w, l(2.000000), r9.w + frc r12.xyz, r13.yzwy + mad r12.xyz, r12.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) + add_sat r12.xyz, |r12.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) + add r12.xyz, r12.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) + mad r12.xyz, r7.wwww, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r12.xyz, r9.wwww, r12.xyzx + max r7.w, r11.y, r11.x + max r7.w, r11.z, r7.w + mul r8.w, r8.w, r7.w + mov r7.w, l(1.000000) +else + mov r16.xyz, l(0,0,0,0) + mov r15.xyz, l(1.000000,1.000000,1.000000,0) + mov r12.xyz, cb0[188].xyzx + mov r7.w, l(0) +endif +add r9.w, -v2.y, cb1[r2.w + 12].z +add r9.w, r9.w, l(0.200000) +mul_sat r9.w, r9.w, l(2.85714269) +mad r11.x, r9.w, l(-2.000000), l(3.000000) +mul r9.w, r9.w, r9.w +mul r9.w, r9.w, r11.x +mul r9.w, r9.w, cb1[r2.w + 12].y +max r9.w, r9.w, cb1[r2.w + 12].w +add r11.x, r9.w, cb1[r2.w + 12].x +lt r11.x, l(0.010000), r11.x +if_nz r11.x + add r11.x, -r5.x, l(1.000000) + mul r11.yzw, r4.xxyz, r11.xxxx + dp3 r11.y, r11.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r11.y, r11.y, l(-0.350000) + mul_sat r11.y, r11.y, l(-4.000000) + mad r11.z, r11.y, l(-2.000000), l(3.000000) + mul r11.y, r11.y, r11.y + mul r11.w, r11.y, r11.z + mul r13.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) + movc r13.xyzw, cb1[r2.w + 4].wwww, r13.xyzw, v8.xzxy + mul r14.xyzw, r13.xyzw, cb0[196].zzzz + movc r17.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy + mov r17.x, v7.x + add r18.xyz, |r17.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) + mul r19.xyz, r18.xyzx, r18.xyzx + mul r18.xyz, r18.xyzx, r19.xyzx + max r18.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp3 r12.w, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r18.xyz, r18.xyzx, r12.wwww + sample_b_indexable(texture2d)(float,float,float,float) r20.xyzw, r14.zyzz, t10.xyzw, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r14.zwzz, t10.xyzw, s3, cb0[108].x + mul r21.xyzw, r18.zzzz, r21.xyzw + mad r20.xyzw, r20.xyzw, r18.yyyy, r21.xyzw + sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r14.ywyy, t10.xyzw, s3, cb0[108].x + mad r18.xyzw, r21.xyzw, r18.xxxx, r20.xyzw + add r17.yw, -r18.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) + mul r20.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) + mad_sat r12.w, cb1[r2.w + 12].x, r11.x, r20.x + add r12.w, -r17.y, r12.w + mul_sat r12.w, r12.w, l(3.33333325) + mad r13.x, r12.w, l(-2.000000), l(3.000000) + mul r12.w, r12.w, r12.w + mul r12.w, r12.w, r13.x + mul_sat r11.x, r9.w, r11.x + add r11.x, -r17.w, r11.x + mul_sat r11.x, r11.x, l(1.53846145) + mad r13.x, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r13.x + max r11.x, r11.x, r12.w + add r12.w, r5.x, l(-0.500000) + mul_sat r12.w, r12.w, l(4.000000) + mad r13.x, r12.w, l(-2.000000), l(3.000000) + mul r12.w, r12.w, r12.w + mul r12.w, r12.w, r13.x + add r5.w, -r5.w, l(0.199999988) + mul_sat r5.w, r5.w, l(-5.00000048) + mad r13.x, r5.w, l(-2.000000), l(3.000000) + mul r5.w, r5.w, r5.w + mul r5.w, r5.w, r13.x + mad r13.x, r5.w, r11.w, r12.w + min r13.x, r13.x, l(1.000000) + max r9.w, r9.w, cb1[r2.w + 12].x + mad r17.yw, r18.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mul r18.xyw, r14.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) + mul r21.xyz, r14.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) + mul r22.xyz, r19.xyzx, r19.xyzx + mul r22.xyz, r22.xyzx, r22.xyzx + mul r19.xyz, r19.xyzx, r22.xyzx + dp3 r15.w, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r19.xyz, r19.xyzx, r15.wwww + round_ni r22.xyzw, r18.yxyw + mul r23.xyzw, r22.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r23.xyzw, r23.xyzw + add r24.xyzw, r23.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r15.w, r23.xyxx, r24.xyxx + add r20.xw, r15.wwww, r23.xxxy + mul r15.w, r20.w, r20.x + add r16.w, r20.w, r20.x + frc r15.w, r15.w + frc r25.w, r16.w + add r26.xyzw, r22.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r26.xyzw, r26.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r26.xyzw, r26.xyzw + add r27.xyzw, r26.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r16.w, r26.xyxx, r27.xyxx + add r20.xw, r16.wwww, r26.xxxy + mul r16.w, r20.w, r20.x + add r18.y, r20.w, r20.x + frc r23.x, r16.w + frc r23.y, r18.y + mad r16.w, r15.w, l(0.399999976), l(0.600000) + mul r18.y, r16.w, l(0.250000) + mad r22.xyzw, r14.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r22.xyzw + mad r20.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r20.xw, r20.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r22.xxxy + add r20.xw, r20.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r22.x, r20.x, l(1.250000) + lt r19.w, r20.w, l(0.000000) + movc r19.w, r19.w, l(1.250000), l(0.750000) + mul r22.y, r19.w, r20.w + mad r15.w, cb0[102].x, l(3.000000), r15.w + frc r15.w, r15.w + add r20.xw, r15.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r20.xw, r20.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r24.xy, r20.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r20.xw, r20.xxxw, r20.xxxw + mul r20.xw, r20.xxxw, r24.xxxy + mul r15.w, r20.w, r20.x + dp2 r19.w, r22.xyxx, r22.xyxx + sqrt r19.w, r19.w + mad r16.w, -r16.w, l(0.250000), r19.w + div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.y + mul_sat r16.w, r16.w, r19.w + mad r19.w, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.w + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r25.z, r15.w, r16.w + div r20.xw, r22.xxxy, r18.yyyy + max r20.xw, r20.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r15.w, r25.z, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r20.xw, r15.wwww, r20.xxxw + mad r15.w, r23.x, l(0.250000), l(0.250000) + mul r25.xy, r15.wwww, r20.xwxx + dp2 r15.w, r23.zwzz, r24.zwzz + add r20.xw, r15.wwww, r23.zzzw + mul r15.w, r20.w, r20.x + add r16.w, r20.w, r20.x + frc r15.w, r15.w + frc r23.w, r16.w + dp2 r16.w, r26.zwzz, r27.zwzz + add r20.xw, r16.wwww, r26.zzzw + mul r16.w, r20.w, r20.x + add r18.y, r20.w, r20.x + frc r22.x, r16.w + frc r22.y, r18.y + mad r16.w, r15.w, l(0.399999976), l(0.600000) + mul r18.y, r16.w, l(0.250000) + mad r20.xw, r22.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r20.xw, r20.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r22.zzzw + add r20.xw, r20.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r24.x, r20.x, l(1.250000) + lt r19.w, r20.w, l(0.000000) + movc r19.w, r19.w, l(1.250000), l(0.750000) + mul r24.y, r19.w, r20.w + mad r15.w, cb0[102].x, l(3.000000), r15.w + frc r15.w, r15.w + add r20.xw, r15.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r20.xw, r20.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r22.yz, r20.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) + mul r20.xw, r20.xxxw, r20.xxxw + mul r20.xw, r20.xxxw, r22.yyyz + mul r15.w, r20.w, r20.x + dp2 r19.w, r24.xyxx, r24.xyxx + sqrt r19.w, r19.w + mad r16.w, -r16.w, l(0.250000), r19.w + div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.y + mul_sat r16.w, r16.w, r19.w + mad r19.w, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.w + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r23.z, r15.w, r16.w + div r20.xw, r24.xxxy, r18.yyyy + max r20.xw, r20.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r15.w, r23.z, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r20.xw, r15.wwww, r20.xxxw + mad r15.w, r22.x, l(0.250000), l(0.250000) + mul r23.xy, r15.wwww, r20.xwxx + round_ni r18.xy, r18.xwxx + mul r20.xw, r18.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r20.xw, r20.xxxw + add r22.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r15.w, r20.xwxx, r22.xyxx + add r20.xw, r15.wwww, r20.xxxw + mul r15.w, r20.w, r20.x + add r16.w, r20.w, r20.x + frc r15.w, r15.w + frc r22.w, r16.w + add r20.xw, r18.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r20.xw, r20.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r20.xw, r20.xxxw + add r24.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r16.w, r20.xwxx, r24.xyxx + add r20.xw, r16.wwww, r20.xxxw + mul r16.w, r20.w, r20.x + add r18.w, r20.w, r20.x + frc r24.x, r16.w + frc r24.y, r18.w + mad r16.w, r15.w, l(0.399999976), l(0.600000) + mul r18.w, r16.w, l(0.250000) + mad r18.xy, r14.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r18.xyxx + mad r20.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r18.xy, r20.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r18.xyxx + add r18.xy, r18.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r26.x, r18.x, l(1.250000) + lt r18.x, r18.y, l(0.000000) + movc r18.x, r18.x, l(1.250000), l(0.750000) + mul r26.y, r18.x, r18.y + mad r15.w, cb0[102].x, l(3.000000), r15.w + frc r15.w, r15.w + add r18.xy, r15.wwww, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r18.xy, r18.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r20.xw, r18.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r18.xy, r18.xyxx, r18.xyxx + mul r18.xy, r18.xyxx, r20.xwxx + mul r15.w, r18.y, r18.x + dp2 r18.x, r26.xyxx, r26.xyxx + sqrt r18.x, r18.x + mad r16.w, -r16.w, l(0.250000), r18.x + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w + mul_sat r16.w, r16.w, r18.x + mad r18.x, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r18.x + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r22.z, r15.w, r16.w + div r18.xy, r26.xyxx, r18.wwww + max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r15.w, r22.z, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r18.xy, r15.wwww, r18.xyxx + mad r15.w, r24.x, l(0.250000), l(0.250000) + mul r22.xy, r15.wwww, r18.xyxx + mul r23.xyzw, r19.zzzz, r23.xyzw + mad r23.xyzw, r25.xyzw, r19.yyyy, r23.xyzw + mad r22.xyzw, r22.xyzw, r19.xxxx, r23.xyzw + round_ni r23.xyzw, r21.yxyz + mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r24.xyzw, r24.xyzw + add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r15.w, r24.xyxx, r25.xyxx + add r18.xy, r15.wwww, r24.xyxx + mul r15.w, r18.y, r18.x + add r16.w, r18.y, r18.x + frc r15.w, r15.w + frc r26.w, r16.w + add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r27.xyzw, r27.xyzw + add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r16.w, r27.xyxx, r28.xyxx + add r18.xy, r16.wwww, r27.xyxx + mul r16.w, r18.y, r18.x + add r18.x, r18.y, r18.x + frc r24.x, r16.w + frc r24.y, r18.x + mad r16.w, r15.w, l(0.399999976), l(0.600000) + mul r18.x, r16.w, l(0.250000) + mad r23.xyzw, r14.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r23.xyzw + mad r18.yw, r24.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r18.yw, r18.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r23.xxxy + add r18.yw, r18.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r23.x, r18.y, l(1.250000) + lt r14.x, r18.w, l(0.000000) + movc r14.x, r14.x, l(1.250000), l(0.750000) + mul r23.y, r14.x, r18.w + mad r14.x, cb0[102].x, l(4.345600), r15.w + frc r14.x, r14.x + add r18.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r18.yw, r18.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r20.xw, r18.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r18.yw, r18.yyyw, r18.yyyw + mul r18.yw, r18.yyyw, r20.xxxw + mul r14.x, r18.w, r18.y + dp2 r15.w, r23.xyxx, r23.xyxx + sqrt r15.w, r15.w + mad r15.w, -r16.w, l(0.250000), r15.w + div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.x + mul_sat r15.w, r15.w, r16.w + mad r16.w, r15.w, l(-2.000000), l(3.000000) + mul r15.w, r15.w, r15.w + mul r15.w, r15.w, r16.w + ge r15.w, r15.w, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r26.z, r14.x, r15.w + div r18.xy, r23.xyxx, r18.xxxx + max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r14.x, r26.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r18.xy, r14.xxxx, r18.xyxx + mad r14.x, r24.x, l(0.250000), l(0.250000) + mul r26.xy, r14.xxxx, r18.xyxx + dp2 r14.x, r24.zwzz, r25.zwzz + add r18.xy, r14.xxxx, r24.zwzz + mul r14.x, r18.y, r18.x + add r15.w, r18.y, r18.x + frc r14.x, r14.x + frc r24.w, r15.w + dp2 r15.w, r27.zwzz, r28.zwzz + add r18.xy, r15.wwww, r27.zwzz + mul r15.w, r18.y, r18.x + add r16.w, r18.y, r18.x + frc r18.x, r15.w + frc r18.y, r16.w + mad r15.w, r14.x, l(0.399999976), l(0.600000) + mul r16.w, r15.w, l(0.250000) + mad r18.yw, r18.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r18.yw, r18.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r23.zzzw + add r18.yw, r18.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r23.x, r18.y, l(1.250000) + lt r18.y, r18.w, l(0.000000) + movc r18.y, r18.y, l(1.250000), l(0.750000) + mul r23.y, r18.y, r18.w + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r18.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r18.yw, r18.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r20.xw, r18.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r18.yw, r18.yyyw, r18.yyyw + mul r18.yw, r18.yyyw, r20.xxxw + mul r14.x, r18.w, r18.y + dp2 r18.y, r23.xyxx, r23.xyxx + sqrt r18.y, r18.y + mad r15.w, -r15.w, l(0.250000), r18.y + div r18.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w + mul_sat r15.w, r15.w, r18.y + mad r18.y, r15.w, l(-2.000000), l(3.000000) + mul r15.w, r15.w, r15.w + mul r15.w, r15.w, r18.y + ge r15.w, r15.w, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r24.z, r14.x, r15.w + div r18.yw, r23.xxxy, r16.wwww + max r18.yw, r18.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) + min r18.yw, r18.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) + ge r14.x, r24.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r18.yw, r14.xxxx, r18.yyyw + mad r14.x, r18.x, l(0.250000), l(0.250000) + mul r24.xy, r14.xxxx, r18.ywyy + round_ni r18.xy, r21.xzxx + mul r20.xw, r18.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r20.xw, r20.xxxw + add r21.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r14.x, r20.xwxx, r21.xyxx + add r20.xw, r14.xxxx, r20.xxxw + mul r14.x, r20.w, r20.x + add r15.w, r20.w, r20.x + frc r14.x, r14.x + frc r21.w, r15.w + add r20.xw, r18.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r20.xw, r20.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r20.xw, r20.xxxw + add r23.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r15.w, r20.xwxx, r23.xyxx + add r20.xw, r15.wwww, r20.xxxw + mul r15.w, r20.w, r20.x + add r16.w, r20.w, r20.x + frc r23.x, r15.w + frc r23.y, r16.w + mad r15.w, r14.x, l(0.399999976), l(0.600000) + mul r16.w, r15.w, l(0.250000) + mad r18.xy, r14.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r18.xyxx + mad r20.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r18.xy, r20.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r18.xyxx + add r18.xy, r18.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r25.x, r18.x, l(1.250000) + lt r18.x, r18.y, l(0.000000) + movc r18.x, r18.x, l(1.250000), l(0.750000) + mul r25.y, r18.x, r18.y + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r18.xy, r14.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r18.xy, r18.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r20.xw, r18.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r18.xy, r18.xyxx, r18.xyxx + mul r18.xy, r18.xyxx, r20.xwxx + mul r14.x, r18.y, r18.x + dp2 r18.x, r25.xyxx, r25.xyxx + sqrt r18.x, r18.x + mad r15.w, -r15.w, l(0.250000), r18.x + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w + mul_sat r15.w, r15.w, r18.x + mad r18.x, r15.w, l(-2.000000), l(3.000000) + mul r15.w, r15.w, r15.w + mul r15.w, r15.w, r18.x + ge r15.w, r15.w, l(0.001000) + and r15.w, r15.w, l(0x3f800000) + mul r21.z, r14.x, r15.w + div r18.xy, r25.xyxx, r16.wwww + max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r14.x, r21.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r18.xy, r14.xxxx, r18.xyxx + mad r14.x, r23.x, l(0.250000), l(0.250000) + mul r21.xy, r14.xxxx, r18.xyxx + mul r23.xyzw, r19.zzzz, r24.xyzw + mad r23.xyzw, r26.xyzw, r19.yyyy, r23.xyzw + mad r19.xyzw, r21.xyzw, r19.xxxx, r23.xyzw + max r18.xy, r19.zwzz, r22.zwzz + mad r19.zw, -r13.xxxx, r9.wwww, l(0.000000, 0.000000, 1.000000, 1.010000) + add r14.x, r18.y, l(-0.100000) + ge r14.x, r14.x, r19.z + and r14.x, r14.x, l(0x3f800000) + mul r14.x, r14.x, r18.x + ge r2.w, cb1[r2.w + 12].x, l(0.010000) + and r2.w, r2.w, l(0x3f800000) + mul r2.w, r2.w, r14.x + lt r14.x, l(0.001000), r2.w + add r18.xy, r19.xyxx, r22.xyxx + mul r15.w, cb0[102].x, cb0[196].z + mul r19.y, r15.w, l(0.750000) + dp2 r15.w, r17.xzxx, r17.xzxx + max r15.w, r15.w, l(1.175494351E-38) + rsq r15.w, r15.w + mul r17.xz, r15.wwww, r17.xxzx + add r17.xz, |r17.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) + mul r20.xw, r17.xxxz, r17.xxxz + mul r17.xz, r17.xxzx, r20.xxwx + max r17.xz, r17.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp2 r15.w, r17.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + div r17.xz, r17.xxzx, r15.wwww + sample_b_indexable(texture2d)(float,float,float,float) r21.xyz, r14.zwzz, t11.xyzw, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r14.yzw, r14.ywyy, t11.wxyz, s3, cb0[108].x + mul r14.yzw, r17.xxxx, r14.yyzw + mad r14.yzw, r21.xxyz, r17.zzzz, r14.yyzw + movc r17.yw, r14.xxxx, r18.xxxy, r17.yyyw + mad r14.xy, r14.yzyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mov r19.x, l(0) + mad r21.xyzw, r13.zwyw, cb0[196].zzzz, r19.xyxy + sample_b_indexable(texture2d)(float,float,float,float) r13.y, r21.xyxx, t11.xwyz, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r13.z, r21.zwzz, t11.xywz, s3, cb0[108].x + mul r13.z, r17.x, r13.z + mad r13.y, r13.y, r17.z, r13.z + mad r13.yz, r14.xxyx, r13.yyyy, r17.yywy + ge r13.w, r18.z, r19.w + and r13.w, r13.w, l(0x3f800000) + max r2.w, r2.w, r13.w + add r13.w, -r14.w, l(1.000000) + mad r9.w, r13.x, r9.w, -r13.w + mul_sat r9.w, r9.w, l(9.999998) + mad r13.x, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r13.x + max r2.w, r2.w, r9.w + mad r13.xw, -r7.zzzy, l(1.000000, 0.000000, 0.000000, 0.000000), r20.yyyz + dp2 r9.w, r13.xwxx, r13.xwxx + lt r14.x, l(0.0000610351562), r9.w + rsq r9.w, r9.w + mul r13.xw, r9.wwww, r13.xxxw + mov r13.xw, -r13.xxxw + movc r17.z, r14.x, r13.x, l(-1.000000) + and r17.y, r13.w, r14.x + min r9.w, r3.z, l(0.050000) + add r13.x, -r3.z, r9.w + mad r13.x, r2.w, r13.x, r3.z + mad r11.y, -r11.z, r11.y, l(1.000000) + mul r11.y, r11.y, r11.x + mad r5.w, -r5.w, r11.w, l(1.000000) + mul r5.w, r5.w, r11.y + mad r5.w, r5.w, l(-0.500000), l(1.000000) + mov r17.x, l(0) + mad r3.xyw, -r3.xyxw, r6.wwww, r17.zxzy + mad r3.xyw, r13.yyyy, r3.xyxw, r7.xyxz + mul r14.xyz, r7.zxyz, r17.xyzx + mad r14.xyz, r7.yzxy, r17.yzxy, -r14.xyzx + add r14.xyz, -r3.xywx, r14.xyzx + mad r3.xyw, r13.zzzz, r14.xyxz, r3.xyxw + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz + mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mul r3.xyw, r3.xyxw, r6.wwww + mul r6.w, r11.w, r11.x + mad r6.w, -r6.w, l(0.200000), r13.x + min r11.x, r13.x, l(0.200000) + max r3.z, r6.w, r11.x + mul r6.xyz, r5.wwww, r6.xyzx + dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r6.w, r6.w, l(-0.700000) + mul_sat r6.w, r6.w, l(-2.50000024) + mad r11.x, r6.w, l(-2.000000), l(3.000000) + mul r6.w, r6.w, r6.w + mul r6.w, r6.w, r11.x + mad r6.w, r6.w, l(0.500000), l(1.000000) + mul r11.x, r12.w, r2.w + mad r11.yzw, r4.xxyz, r6.wwww, -r4.xxyz + mad r11.xyz, r11.xxxx, r11.yzwy, r4.xyzx + mul r4.xyz, r5.wwww, r11.xyzx +else + mov r3.xyw, r7.xyxz + mov r9.w, l(0.010000) + mov r2.w, l(0) +endif +mul r5.w, r5.y, l(0.040000) +mad r6.w, -r5.x, l(0.960000), l(0.960000) +mul r11.xyz, r4.xyzx, r6.wwww +mad r13.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx +mad r13.xyz, r5.xxxx, r13.xyzx, r5.wwww +mul r6.xyz, r6.wwww, r6.xyzx +mul r5.y, r3.z, r3.z +max r5.y, r5.y, l(0.00781250000) +max r5.w, v5.z, l(9.999999939E-09) +div r14.xy, v5.xyxx, r5.wwww +max r5.w, v6.z, l(9.999999939E-09) +div r14.zw, v6.xxxy, r5.wwww +add r14.xy, -r14.zwzz, r14.xyxx +mul r17.xy, r14.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r17.xy, |r17.xyxx| +sqrt r17.xy, r17.xyxx +mov r14.z, -r14.y +lt r14.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xxxz +lt r14.xz, r14.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r14.xy, -r14.ywyy, r14.xzxx +itof r14.xy, r14.xyxx +mul r14.xy, r14.xyxx, r17.xyxx +mad o1.xy, r14.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +lt r5.w, l(0.500000), r2.w +movc o1.w, r5.w, l(0.700000), l(0.400000) +add r14.xyz, cb0[197].xyzx, cb3[0].xyzx +mad r14.xyz, cb0[187].wwww, r14.xyzx, -cb3[0].xyzx +mov r14.w, l(0.0000610351562) +dp3 r5.w, r14.xzwx, r14.xzwx +rsq r5.w, r5.w +mul r17.xyz, r5.wwww, r14.xwzx +add r18.xyz, cb0[191].xyzx, -cb3[3].xyzx +mad r18.xyz, cb0[198].yyyy, r18.xyzx, cb3[3].xyzx +add r5.w, l(1.000000), -cb3[3].w +mad r5.w, cb0[198].w, r5.w, cb3[3].w +mul r19.xyz, r5.wwww, r18.xyzx +mov r10.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r20.xy, r10.xyzz, t3.xyzw +add r10.z, r20.x, l(-1.000000) +mad r10.z, cb4[34].x, r10.z, l(1.000000) +add r11.w, -r10.z, l(1.000000) +mad r10.z, cb0[187].z, r11.w, r10.z +dp3 r11.w, r7.xyzx, r14.xyzx +mul r20.xzw, r6.xxyz, cb0[186].zzzz +mul r21.xyz, r20.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) +dp3 r12.w, r11.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +dp2 r13.w, cb0[6].xzxx, cb0[6].xzxx +rsq r13.w, r13.w +mul r22.xy, r13.wwww, cb0[6].xzxx +dp2 r13.w, r17.xzxx, r22.xyxx +mov_sat r13.w, -r13.w +add r22.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx +mad r14.w, r11.w, l(0.500000), l(-1.000000) +mad r14.w, -r11.w, r14.w, -r11.w +add r15.w, l(0.750000), -|cb0[6].y| +add_sat r15.w, r15.w, r15.w +mad r16.w, r15.w, l(-2.000000), l(3.000000) +mul r15.w, r15.w, r15.w +mul r15.w, r15.w, r16.w +mul r15.w, r13.w, r15.w +mul r15.w, r22.x, r15.w +add r14.w, r14.w, l(0.500000) +mad r11.w, r15.w, r14.w, r11.w +mad r11.w, cb0[197].w, cb0[198].x, r11.w +max r11.w, r11.w, l(-1.000000) +min r11.w, r11.w, l(1.000000) +add r11.w, r11.w, l(-0.250000) +mul r11.w, r11.w, l(1.33333337) +max r11.w, r11.w, l(0.000000) +mad r14.w, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r14.w +dp3 r14.w, r7.xyzx, cb0[6].xyzx +add r14.w, r14.w, l(-0.250000) +mul_sat r14.w, r14.w, l(1.33333337) +mad r15.w, r14.w, l(-2.000000), l(3.000000) +mul r14.w, r14.w, r14.w +mul r14.w, r14.w, r15.w +mul r15.w, r5.z, r20.y +min r16.w, r5.z, r20.y +min r17.w, r11.w, r16.w +mul r18.w, r14.w, r15.w +dp3 r19.w, r7.xyzx, cb0[192].xyzx +add_sat r19.w, r19.w, cb0[193].x +mad r19.w, r19.w, cb0[193].y, cb0[193].z +mul r21.w, r17.w, cb0[187].y +add r23.xyz, -r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r23.xyz, r21.wwww, r23.xyzx, r12.xyzx +mul r23.xyz, r19.wwww, r23.xyzx +mad r19.w, r8.w, l(0.350000024), l(0.650000) +min r19.w, r19.w, l(1.500000) +max r24.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) +min r24.xyz, r24.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) +add r8.w, -r19.w, r24.x +mad r8.w, cb0[187].x, r8.w, r19.w +mul r25.xyz, r8.wwww, r23.xyzx +mul r25.xyz, r25.xyzx, cb0[186].wwww +dp3 r8.w, r19.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r19.xyz, r18.xyzx, r5.wwww, -r8.wwww +mad r19.xyz, r17.wwww, r19.xyzx, r8.wwww +mul r23.xyz, r23.xyzx, r24.yyyy +mad r22.yzw, r18.xxyz, cb0[198].yyyy, r22.yyyy +mad r19.xyz, r23.xyzx, r22.yzwy, r19.xyzx +mad r19.xyz, r19.xyzx, cb0[186].yyyy, -r25.xyzx +mad r19.xyz, r10.zzzz, r19.xyzx, r25.xyzx +dp3 r8.w, r21.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r21.xyz, r20.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww +mad r21.xyz, r21.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww +mad_sat r8.w, r14.w, r15.w, r11.w +mad r22.yzw, r6.xxyz, cb0[186].zzzz, -r21.xxyz +mad r21.xyz, r8.wwww, r22.yzwy, r21.xyzx +mad r22.yzw, r4.xxyz, r6.wwww, -r21.xxyz +mad r21.xyz, r17.wwww, r22.yzwy, r21.xyzx +mad r22.yzw, r4.xxyz, r6.wwww, -r12.wwww +mad r22.yzw, r22.yyzw, l(0.000000, 1.200000, 1.200000, 1.200000), r12.wwww +mad r22.yzw, -r6.xxyz, cb0[186].zzzz, r22.yyzw +mad r20.xzw, r18.wwww, r22.yyzw, r20.xxzw +dp3 r8.w, r21.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +max r11.w, r8.w, l(0.001000) +div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul r8.w, r8.w, r11.w +max r8.w, r8.w, l(0.000000) +min r8.w, r8.w, l(1.500000) +mad r21.xyz, r21.xyzx, r8.wwww, -r20.xzwx +mad r20.xzw, r10.zzzz, r21.xxyz, r20.xxzw +mad r8.w, -r14.w, r15.w, r17.w +mad r8.w, r10.z, r8.w, r18.w +add r11.w, l(1.000000), -cb0[186].z +mad r11.w, r8.w, r11.w, cb0[186].z +add r14.w, r14.y, l(-0.500000) +mad r21.y, r10.z, r14.w, l(0.500000) +dp3_sat r23.x, r3.xywx, r2.xyzx +mov r21.xz, cb0[6].xxzx +dp3 r14.w, r21.xyzx, r21.xyzx +max r14.w, r14.w, l(1.175494351E-38) +rsq r14.w, r14.w +mul r21.xyz, r14.wwww, r21.xyzx +add r21.xyz, r21.xyzx, r21.xyzx +mad r14.xyz, r14.xyzx, r10.zzzz, r21.xyzx +add r14.w, r10.z, l(2.000000) +mad r14.xyz, r2.xyzx, r14.wwww, r14.xyzx +dp3 r14.w, r14.xyzx, r14.xyzx +rsq r14.w, r14.w +mul r14.xyz, r14.wwww, r14.xyzx +dp3 r14.x, r3.xywx, r14.xyzx +mul r14.y, r5.y, r5.y +mad r14.z, r14.x, r14.y, -r14.x +mad r14.x, r14.z, r14.x, l(1.000000) +mul r14.x, r14.x, r14.x +add r14.z, l(1.000000), -cb5[1].z +mad r14.z, r4.w, cb5[1].z, r14.z +mul r21.xyz, r19.xyzx, r20.xzwx +ne r14.w, r14.x, r14.y +div r14.x, r14.y, r14.x +movc r14.x, r14.w, r14.x, l(1.000000) +mad r14.y, r23.x, l(2.000000), r5.y +add r14.y, r14.y, l(0.000100) +div r14.y, l(0.500000), r14.y +mad r14.x, r14.x, r14.y, l(-0.0000610351562) +max r14.x, r14.x, l(0.000000) +min r14.x, r14.x, l(20.000000) +mul r14.xyw, r13.xyxz, r14.xxxx +mad r8.w, r8.w, l(0.500000), l(0.500000) +mul r8.w, r11.w, r8.w +mul r19.xyz, r8.wwww, r19.xyzx +mul r14.xyw, r14.xyxw, r19.xyxz +mul r14.xyw, r14.xyxw, cb0[199].wwww +mad r14.xyw, r21.xyxz, r14.zzzz, r14.xyxw +dp3 r8.w, r14.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r15.w, r8.w, l(-0.500000) +max r15.w, r15.w, l(0.000000) +min r15.w, r15.w, l(0.500000) +mov r19.y, l(0) +mov r19.xz, cb0[195].yyxy +mul r21.xyz, r19.xyzx, cb0[6].zxyz +mad r19.xyz, cb0[6].yzxy, r19.yzxy, -r21.xyzx +dp3 r17.w, r19.xyzx, r19.xyzx +rsq r17.w, r17.w +mul r19.xyz, r17.wwww, r19.xyzx +dp3 r17.w, r2.xyzx, r7.xyzx +add r21.xy, -|r17.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) +dp3 r17.x, r17.xyzx, r7.xyzx +add r17.y, -r10.z, l(1.000000) +add r9.w, -r3.z, r9.w +mad r2.w, r2.w, r9.w, r3.z +mul r25.y, r2.w, r2.w +mul r26.x, r23.x, r23.x +mul r26.z, r23.x, r26.x +mul r9.w, r25.y, r25.y +mul r25.z, r25.y, r9.w +mov r23.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r24.x, l(3.327070, 1.000000, 0.000000, 0.000000), r23.xyxx +dp2 r24.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r23.xzxx +mov r25.x, l(1.000000) +dp2 r9.w, r24.xyxx, r25.xyxx +mov r26.yw, l(0,9.044010,0,1.000000) +dp3 r27.x, l(3.596850, -1.367720, 1.000000, 0.000000), r26.xzwx +dp3 r27.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r26.xyzx +mov r28.x, l(5.565890) +mov r28.yz, r26.xxzx +dp3 r27.z, l(1.000000, 19.788601, -20.212299, 0.000000), r28.xyzx +dp3 r17.z, r27.xyzx, r25.xyzx +div r9.w, r9.w, r17.z +dp2 r24.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r23.xwxx +mov r26.x, l(1.296780) +mov r26.y, r23.x +dp2 r24.y, l(1.000000, -0.755907, 0.000000, 0.000000), r26.xyxx +dp2 r17.z, r24.xyxx, r25.xyxx +dp3 r27.x, l(2.923380, 59.418800, 1.000000, 0.000000), r26.yzwy +mov r26.xw, l(20.322500,0,0,121.563004) +dp3 r27.y, l(1.000000, -27.030199, 222.591995, 0.000000), r26.xyzx +dp3 r27.z, l(626.130005, 316.627014, 1.000000, 0.000000), r26.yzwy +dp3 r18.w, r27.xyzx, r25.xyzx +div r17.z, r17.z, r18.w +mad r22.yzw, r13.xxyz, r9.wwww, r17.zzzz +add r9.w, r9.w, r17.z +mad r15.w, r15.w, r15.w, l(1.000000) +add r14.xyw, -r8.wwww, r14.xyxw +mad r14.xyw, r15.wwww, r14.xyxw, r8.wwww +mad r21.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) +add r8.w, -r21.z, r21.w +add r15.w, -r21.z, r21.x +div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w +mul_sat r8.w, r8.w, r15.w +mad r15.w, r8.w, l(-2.000000), l(3.000000) +mul r8.w, r8.w, r8.w +mul r8.w, r8.w, r15.w +mul r23.yzw, r8.wwww, cb0[194].xxyz +mul r23.yzw, r23.yyzw, cb0[194].wwww +dp3 r8.w, r8.xyzx, r19.xyzx +add_sat r8.w, r8.w, l(1.000000) +min r5.z, r5.z, r8.w +min r5.z, r20.y, r5.z +mul r23.yzw, r5.zzzz, r23.yyzw +mad r24.xyw, r4.xyxz, r6.wwww, l(-0.250000, -0.250000, 0.000000, -0.250000) +mad r24.xyw, cb0[195].zzzz, r24.xyxw, l(0.250000, 0.250000, 0.000000, 0.250000) +dp3_sat r5.z, r19.xyzx, r7.xyzx +mul r19.xyz, r5.zzzz, r24.xywx +max r5.z, r15.y, r15.x +max r5.z, r15.z, r5.z +mul r5.z, r5.z, l(0.500000) +max r5.z, r5.z, l(1.000000) +div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z +mul r15.xyz, r5.zzzz, r15.xyzx +mad r18.xyz, r18.xyzx, r5.wwww, -r15.xyzx +mad r15.xyz, r10.zzzz, r18.xyzx, r15.xyzx +dp3 r5.z, r16.xyzx, r7.xyzx +mul r5.w, r7.w, r5.z +mad r8.w, r17.x, l(0.500000), l(-1.000000) +mad r8.w, -r17.x, r8.w, l(0.500000) +mad r5.z, -r5.z, r7.w, r8.w +mad_sat r5.z, r10.z, r5.z, r5.w +mul r15.xyz, r5.zzzz, r15.xyzx +mad r5.z, r13.w, r10.z, r17.y +mul r5.z, r22.x, r5.z +mul r15.xyz, r5.zzzz, r15.xyzx +mul_sat r5.z, r21.y, l(5.00000048) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mul r15.xyz, r5.zzzz, r15.xyzx +mul r15.xyz, r16.wwww, r15.xyzx +add r5.z, r12.w, l(-0.100000) +mul_sat r5.z, r5.z, l(-16.666666) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mad r5.z, r5.z, r10.z, r17.y +mul r15.xyz, r5.zzzz, r15.xyzx +max r16.xyz, r11.xyzx, l(0.150000, 0.150000, 0.150000, 0.000000) +mul r15.xyz, r15.xyzx, r16.xyzx +mad r15.xyz, r23.yzwy, r19.xyzx, r15.xyzx +add r14.xyw, r14.xyxw, r15.xyxz +utof r5.zw, r10.xxxy +mul r15.xy, r5.zwzz, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r15.xy, r15.xyxx +mad r7.w, r15.y, cb2[1].y, r15.x +mul r7.w, r7.w, l(8.000000) +ftoi r7.w, r7.w +mad r8.w, -cb0[85].y, cb2[2].w, v0.w +round_ni r8.w, r8.w +add r10.z, l(-1.000000), cb2[1].w +max r12.w, r8.w, l(0.000000) +min r10.z, r10.z, r12.w +mul r12.w, r10.z, l(8.000000) +ftoi r12.w, r12.w +dp3 r13.w, -r2.xyzx, r3.xywx +add r13.w, r13.w, r13.w +mad r15.xyz, r3.xywx, -r13.wwww, -r2.xyzx +max r2.w, r2.w, l(0.001000) +log r2.w, r2.w +mad r2.w, r2.w, l(1.200000), l(5.000000) +sample_l_indexable(texturecube)(float,float,float,float) r15.xyz, r15.xyzx, t15.xyzw, s0, r2.w +add r2.w, -r9.w, l(1.000000) +div r2.w, r2.w, r9.w +mul r16.xyz, r2.wwww, r13.xyzx +mad r16.xyz, r16.xyzx, r22.yzwy, r22.yzwy +mul r15.xyz, r15.xyzx, r16.xyzx +mul r2.w, r24.z, cb0[186].w +mul r2.w, r11.w, r2.w +mul r15.xyz, r2.wwww, r15.xyzx +mad r12.xyz, r15.xyzx, r12.xyzx, r14.xywx +ge r2.w, r10.z, r8.w +iadd r8.w, r12.w, cb0[110].y +mad r9.w, r17.y, l(-0.250000), l(0.750000) +mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) +add r6.w, -r5.y, l(0.010000) +ge r5.x, r5.x, l(0.500000) +and r5.x, r5.x, l(0x3f800000) +mov r15.w, l(1.000000) +mov r14.xyw, r12.xyxz +mov r10.z, l(0) +loop + ilt r11.w, l(7), r10.z + breakc_nz r11.w + iadd r11.w, r7.w, r10.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx + iadd r12.w, r8.w, r10.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx + and r11.w, r11.w, r12.w + and r11.w, r2.w, r11.w + ishl r12.w, r10.z, l(5) + mov r16.xyz, r14.xywx + mov r13.w, r11.w + loop + breakc_z r13.w + firstbit_lo r16.w, r13.w + ishl r17.x, l(1), r16.w + xor r17.x, r13.w, r17.x + iadd r16.w, r12.w, r16.w + bfi r18.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) + ftou r17.y, cb3[r18.y + 6].w + ieq r17.y, r17.y, l(1) + if_nz r17.y + add r15.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx + and r19.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r18.y + 6].xzyx + and r21.yzw, l(0, 0x0000ffff, 0x0000ffff, 0x0000ffff), cb3[r18.z + 6].yyxz + ushr r22.xyz, cb3[r18.y + 6].xzyx, l(16, 16, 16, 0) + ushr r23.yzw, cb3[r18.z + 6].yyxz, l(0, 16, 16, 16) + f16tof32 r19.xyz, r19.xyzx + f16tof32 r21.yzw, r21.yyzw + f16tof32 r22.xyz, r22.xyzx + f16tof32 r24.xyw, r23.zyzw + mov r25.xz, r19.xxzx + mov r25.yw, r22.xxxz + dp4 r17.y, r15.xyzw, r25.xyzw + mov r22.x, r19.y + mov r22.z, r21.z + mov r22.w, r24.x + dp4 r17.z, r15.xyzw, r22.xyzw + mov r24.xz, r21.yywy + dp4 r15.x, r15.xyzw, r24.xyzw + max r15.y, |r17.z|, |r17.y| + max r15.x, |r15.x|, r15.y + mad r15.y, cb3[r18.w + 6].x, l(0.500000), l(0.500000) + add r15.x, -r15.y, r15.x + mad r15.y, -cb3[r18.w + 6].x, l(0.500000), l(0.500000) + div_sat r15.x, r15.x, r15.y + add r15.x, -r15.x, l(1.000000) + mul r15.x, r15.x, r15.x + else + mov r15.x, l(1.000000) + endif + lt r15.y, r15.x, l(0.001000) + if_nz r15.y + mov r13.w, r17.x + continue + endif + ishl r15.y, r16.w, l(3) + lt r15.z, cb3[r15.y + 6].w, l(1.500000) + if_nz r15.z + bfi r15.z, l(29), l(3), r16.w, l(3) + ieq r17.y, l(16), cb3[r15.z + 6].w + add r17.z, cb0[198].z, cb3[r15.z + 6].z + lt r17.z, r17.z, l(0.500000) + or r17.y, r17.z, r17.y + if_z r17.y + bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) + ftou r16.w, cb3[r15.y + 6].w + and r16.w, r16.w, l(1) + ieq r18.y, r16.w, l(0) + not r18.y, r18.y + lt r19.x, l(0.000000), cb3[r17.y + 6].z + and r18.y, r18.y, r19.x + ieq r19.x, l(4), cb3[r15.z + 6].w + movc r19.y, r16.w, l(0), l(1.000000) + mad r19.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) + add r22.z, r19.z, -|cb3[r17.y + 6].x| + add r22.x, -r22.z, cb3[r17.y + 6].y + add r19.z, -|r22.z|, l(1.000000) + add r19.z, -|r22.x|, r19.z + max r19.z, r19.z, l(0.000488281250) + ge r19.w, cb3[r17.y + 6].x, l(0.000000) + movc r22.y, r19.w, r19.z, -r19.z + dp3 r19.z, r22.xyzx, r22.xyzx + rsq r19.z, r19.z + mul r21.yzw, r19.zzzz, r22.xxyz + add r19.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y + max r19.z, r19.z, l(0.100000) + and r19.w, r19.x, l(0x3f800000) + add r19.z, r19.z, -cb3[r18.z + 6].w + mad r18.z, r19.w, r19.z, cb3[r18.z + 6].w + add r22.xyz, -v2.xyzx, cb3[r18.x + 6].xyzx + dp3 r19.z, r22.yzxy, -r21.yzwy + lt r19.w, l(0.500000), cb3[r17.z + 6].z + and r19.w, r19.w, r19.x + and r19.w, r19.w, l(0x3f800000) + mul r19.w, r19.y, r19.w + mad r23.yzw, -r21.wwyz, r19.zzzz, -r22.xxyz + mad r22.xyz, r19.wwww, r23.yzwy, r22.xyzx + dp3 r19.z, r22.xyzx, r22.xyzx + rsq r19.w, r19.z + mul r23.yzw, r19.wwww, r22.xxyz + if_nz r18.y + mul r24.xyz, r21.wyzw, cb3[r17.y + 6].zzzz + mad r25.xyz, -r24.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx + mad r24.xyz, r24.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx + dp3 r19.w, r25.xyzx, r25.xyzx + sqrt r19.w, r19.w + dp3 r20.y, r24.xyzx, r24.xyzx + sqrt r20.y, r20.y + mul r26.xyz, r21.yzwy, r23.yzwy + mad r26.xyz, r21.wyzw, r23.zwyz, -r26.xyzx + mul r27.xyz, r21.yzwy, r26.xyzx + mad r26.xyz, r26.zxyz, r21.zwyz, -r27.xyzx + dp3 r22.w, r26.xyzx, r26.xyzx + rsq r22.w, r22.w + mul r23.yzw, r22.wwww, r26.xxyz + dp3 r22.w, r25.xyzx, r24.xyzx + mad r22.w, r19.w, r20.y, r22.w + mad r22.w, r22.w, l(0.500000), l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + dp3 r24.w, r23.yzwy, r25.xyzx + div r19.w, r24.w, r19.w + dp3 r24.x, r23.yzwy, r24.xyzx + div r20.y, r24.x, r20.y + add r19.w, r19.w, r20.y + mul_sat r19.w, r19.w, l(0.500000) + mul r19.w, r19.w, r22.w + else + mov r19.w, l(1.000000) + endif + lt r20.y, r18.z, l(0.000000) + if_nz r20.y + mul r20.y, cb3[r18.x + 6].w, cb3[r18.x + 6].w + mul r20.y, r19.z, r20.y + mad r20.y, -r20.y, r20.y, l(1.000000) + max r20.y, r20.y, l(0.000000) + add r19.z, r19.z, l(1.000000) + div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z + and r22.w, r18.y, l(0x3f800000) + add r24.x, -r19.z, r19.w + mad r19.z, r22.w, r24.x, r19.z + mul r20.y, r20.y, r20.y + mul r19.z, r19.z, r20.y + else + mul r24.xyz, r22.xyzx, cb3[r18.x + 6].wwww + dp3 r20.y, r24.xyzx, r24.xyzx + min r20.y, r20.y, l(1.000000) + add r20.y, -r20.y, l(1.000000) + log r20.y, r20.y + mul r18.z, r18.z, r20.y + exp r18.z, r18.z + mul r19.z, r18.z, r19.w + endif + dp3 r18.z, r23.zwyz, -r21.yzwy + add r18.z, r18.z, -cb3[r17.y + 6].z + mul_sat r18.z, r18.z, cb3[r17.y + 6].w + mad r18.z, r18.z, r18.z, l(-1.000000) + mad r18.z, r19.y, r18.z, l(1.000000) + mul r18.z, r18.z, r19.z + ftoi r19.y, cb3[r18.w + 6].w + not r18.y, r18.y + ige r19.z, r19.y, l(0) + and r18.y, r18.y, r19.z + if_nz r18.y + if_z r16.w + ishl r18.y, r19.y, l(2) + mul r21.yzw, v2.yyyy, cb6[r18.y + 33].xxyw + mad r21.yzw, cb6[r18.y + 32].xxyw, v2.xxxx, r21.yyzw + mad r21.yzw, cb6[r18.y + 34].xxyw, v2.zzzz, r21.yyzw + add r21.yzw, r21.yyzw, cb6[r18.y + 35].xxyw + div_sat r19.zw, r21.yyyz, r21.wwww + mad r19.zw, r19.zzzw, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy + else + ishl r18.y, r19.y, l(2) + dp3 r24.x, -r22.xyzx, cb6[r18.y + 32].xyzx + dp3 r24.y, -r22.xyzx, cb6[r18.y + 33].xyzx + dp3 r24.z, -r22.xyzx, cb6[r18.y + 34].xyzx + lt r18.y, |r24.x|, |r24.y| + and r18.y, r18.y, l(1) + dp2 r20.y, |r24.xyxx|, icb[r18.y + 0].xyxx + lt r20.y, r20.y, |r24.z| + movc r18.y, r20.y, l(2), r18.y + dp3 r20.y, r24.xyzx, icb[r18.y + 0].xyzx + lt r20.y, r20.y, l(0.000000) + bfi r18.y, l(31), l(1), r18.y, r20.y + ushr r20.y, r18.y, l(1) + dp3 r20.y, r24.xyzx, icb[r20.y + 0].xyzx + div r21.y, l(0.000244140625), cb6[r19.y + 0].w + add r21.y, -r21.y, l(0.500000) + utof r21.z, r18.y + ult r21.w, r18.y, l(2) + and r21.w, r21.w, l(2) + dp2 r21.w, r24.xzxx, icb[r21.w + 0].xzxx + mul r21.w, r21.w, icb[r18.y + 4].z + div r21.w, r21.w, |r20.y| + mad r21.z, r21.w, r21.y, r21.z + add r21.z, r21.z, l(0.500000) + mul_sat r22.x, r21.z, l(0.166666672) + iadd r21.z, l(-1), icb[r18.y + 4].y + dp2 r21.z, r24.yzyy, icb[r21.z + 0].xyxx + mul r18.y, r21.z, icb[r18.y + 4].w + div r18.y, r18.y, |r20.y| + mad_sat r22.y, -r18.y, r21.y, l(0.500000) + mad r19.zw, r22.xxxy, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r19.zwzz, t16.yxzw, s0, l(0.000000) + mul r18.z, r18.y, r18.z + endif + mul r15.x, r15.x, r18.z + lt r18.y, l(0.000100), r15.x + if_nz r18.y + if_nz r19.x + add r18.y, l(1.000000), -cb3[r17.z + 6].w + dp3 r18.z, r9.xyzx, r23.yzwy + add_sat r18.z, r18.z, l(0.500000) + mad r19.y, r18.z, l(-2.000000), l(3.000000) + mul r18.z, r18.z, r18.z + mul r18.z, r18.z, r19.y + mad r18.y, r18.z, cb3[r17.z + 6].w, r18.y + mul r18.y, r18.y, cb3[r17.z + 6].x + mul r18.y, r15.x, r18.y + add r19.yzw, -r16.xxyz, cb3[r15.y + 6].xxyz + mad r19.yzw, r18.yyyy, r19.yyzw, r16.xxyz + endif + if_z r19.x + dp3 r18.y, r7.xyzx, r23.yzwy + mov_sat r18.z, r18.y + if_nz cb3[r15.z + 6].w + if_z r16.w + ftoi r16.w, cb3[r15.z + 6].x + else + add r21.yzw, v2.xxyz, -cb3[r18.x + 6].xxyz + lt r22.xyz, |r21.zwwz|, |r21.yyzy| + and r20.y, r22.y, r22.x + lt r21.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r21.yyzw + ushr r22.x, cb3[r17.y + 6].w, l(24) + ubfe r22.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb3[r17.y + 6].wwww + movc r21.y, r21.y, r22.x, r22.y + and r17.y, l(255), cb3[r17.y + 6].w + movc r17.y, r21.z, r22.w, r17.y + ubfe r21.z, l(8), l(8), cb3[r15.z + 6].x + and r22.x, l(255), cb3[r15.z + 6].x + movc r21.z, r21.w, r21.z, r22.x + movc r17.y, r22.z, r17.y, r21.z + movc r17.y, r20.y, r21.y, r17.y + ilt r20.y, r17.y, l(80) + movc r16.w, r20.y, r17.y, l(-1) + endif + ige r17.y, r16.w, l(0) + if_nz r17.y + add r21.yzw, v2.xxyz, -cb3[r18.x + 6].xxyz + ishl r17.y, r16.w, l(2) + dp3 r18.x, r21.yzwy, r21.yzwy + max r18.x, r18.x, l(1.175494351E-38) + rsq r18.x, r18.x + mul r21.yzw, r18.xxxx, r21.yyzw + mad r21.yzw, -r21.yyzw, cb4[r16.w + 288].xxxx, v2.xxyz + mul r18.x, l(5.000000), cb4[r16.w + 288].y + mad r21.yzw, r9.xxyz, r18.xxxx, r21.yyzw + mul r22.xyzw, r21.zzzz, cb4[r17.y + 65].xyzw + mad r22.xyzw, cb4[r17.y + 64].xyzw, r21.yyyy, r22.xyzw + mad r22.xyzw, cb4[r17.y + 66].xyzw, r21.wwww, r22.xyzw + add r22.xyzw, r22.xyzw, cb4[r17.y + 67].xyzw + div r21.yzw, r22.xxyz, r22.wwww + ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.yzwy + ge r24.xyz, r21.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) + add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz + mad r21.yz, r21.yyzy, r25.xxyx, cb4[r16.w + 344].xxyx + mad r25.xy, r21.yzyy, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r21.yz, r21.yyzy, cb4[400].zzwz, -r25.xxyx + add r26.xyzw, r21.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r21.yyyz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r21.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r21.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r21.yz, r27.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r21.yyzy + mul r30.xy, r21.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r21.yz, -r26.xxzx, r26.xxzx, r25.zzwz + add r21.yz, r21.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r31.xy, r21.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r21.yz, r26.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r30.z, r31.x + mov r30.w, r21.y + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r21.z + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r29.w, r28.x + mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw + mad r21.yz, r25.xxyx, cb4[400].xxyx, r29.zzwz + mov r28.w, r29.y + mov r29.yw, r28.yyyz + mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy + mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz + mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw + mul r29.xyzw, r26.zwyz, r27.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r30.xyxx, t2.xxxx, s2, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.zwzz, t2.xxxx, s2, r21.w + mul r18.x, r18.x, r29.y + mad r17.y, r29.x, r17.y, r18.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r21.yzyy, t2.xxxx, s2, r21.w + mad r17.y, r29.z, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.xyxx, t2.xxxx, s2, r21.w + mad r17.y, r29.w, r18.x, r17.y + mul r29.xyzw, r26.xyzw, r27.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.xyxx, t2.xxxx, s2, r21.w + mad r17.y, r29.x, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.zwzz, t2.xxxx, s2, r21.w + mad r17.y, r29.y, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.zwzz, t2.xxxx, s2, r21.w + mad r17.y, r29.z, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r25.xyxx, t2.xxxx, s2, r21.w + mad r17.y, r29.w, r18.x, r17.y + or r22.xyz, r22.xyzx, r24.xyzx + or r18.x, r22.y, r22.x + or r18.x, r22.z, r18.x + and r20.y, r21.w, l(0x7fffffff) + ult r20.y, l(0x7f800000), r20.y + or r18.x, r18.x, r20.y + mul r20.y, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.y, r25.zwzz, t2.xxxx, s2, r21.w + mad r17.y, r20.y, r21.y, r17.y + add r17.y, r17.y, l(-1.000000) + mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) + movc r16.w, r18.x, l(1.000000), r16.w + else + dp3 r17.y, r8.xyzx, r23.yzwy + add_sat r16.w, r17.y, l(1.000000) + endif + else + mov r16.w, l(1.000000) + endif + if_z cb3[r15.z + 6].w + mul r21.yzw, r15.xxxx, cb3[r15.y + 6].xxyz + add r17.y, l(1.000000), -cb3[r17.z + 6].y + max r18.x, r21.z, r21.y + max r18.x, r21.w, r18.x + mul r18.x, r9.w, r18.x + max r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + mad r17.y, r18.x, cb3[r17.z + 6].y, r17.y + mul r21.yzw, r17.yyyy, cb3[r15.y + 6].xxyz + mul r17.y, l(0.250000), cb3[r17.z + 6].x + add_sat r18.x, r18.y, l(0.500000) + mad r20.y, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) + mad r17.y, r18.x, r20.y, r17.y + mul r21.yzw, r17.yyyy, r21.yyzw + mov r22.xyz, r20.xzwx + mov r24.xyz, r20.xzwx + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r20.y, l(3), cb3[r15.z + 6].w + if_nz r20.y + mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) + add r20.y, -r25.x, r25.y + add r22.w, r21.x, -r25.x + div r20.y, l(1.000000, 1.000000, 1.000000, 1.000000), r20.y + mul_sat r20.y, r20.y, r22.w + mad r22.w, r20.y, l(-2.000000), l(3.000000) + mul r20.y, r20.y, r20.y + mul r20.y, r20.y, r22.w + mul r20.y, r16.w, r20.y + mul r15.x, r15.x, r20.y + mul r25.xyz, r23.wyzw, cb0[6].xyzx + mad r25.xyz, cb0[6].zxyz, r23.yzwy, -r25.xyzx + mul r26.xyz, r25.xyzx, cb0[6].zxyz + mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx + dp3 r20.y, r25.xyzx, r25.xyzx + rsq r20.y, r20.y + mul r25.xyz, r20.yyyy, r25.xyzx + dp3_sat r18.z, r7.xyzx, -r25.xyzx + mad r22.xyz, cb3[r17.z + 6].yyyy, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mov r24.xyz, l(0,0,0,0) + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r20.y, l(1), cb3[r15.z + 6].w + if_nz r20.y + add r18.y, r18.y, cb3[r17.z + 6].x + max_sat r18.y, r18.y, l(-1.000000) + mul r18.z, r16.w, r18.y + mul r24.xyz, r6.xyzx, cb3[r17.z + 6].yyyy + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r16.w, l(2), cb3[r15.z + 6].w + if_nz r16.w + add r18.y, l(0.050000), cb3[r17.z + 6].x + add r18.y, r3.z, -r18.y + mul_sat r18.y, r18.y, l(-10.000000) + mad r22.w, r18.y, l(-2.000000), l(3.000000) + mul r18.y, r18.y, r18.y + mul r18.y, r18.y, r22.w + add r22.w, l(1.000000), -cb3[r17.z + 6].z + mad r22.w, r5.x, cb3[r17.z + 6].z, r22.w + mul r17.y, r18.y, r22.w + else + mov r17.y, l(1.000000) + endif + and r18.x, r16.w, cb3[r17.z + 6].y + mov r24.xyz, l(0,0,0,0) + endif + and r22.xyz, r11.xyzx, r20.yyyy + endif + mov r21.yzw, cb3[r15.y + 6].xxyz + endif + ine r15.y, l(3), cb3[r15.z + 6].w + if_nz r15.y + mad r15.y, r18.x, r6.w, r5.y + mad r23.yzw, r0.xxyz, r1.wwww, r23.yyzw + dp3 r15.z, r23.yzwy, r23.yzwy + rsq r15.z, r15.z + mul r23.yzw, r15.zzzz, r23.yyzw + dp3 r15.z, r3.xywx, r23.yzwy + mul r16.w, r15.y, r15.y + mad r17.z, r15.z, r16.w, -r15.z + mad r15.z, r17.z, r15.z, l(1.000000) + mul r15.z, r15.z, r15.z + ne r17.z, r15.z, r16.w + div r15.z, r16.w, r15.z + movc r15.z, r17.z, r15.z, l(1.000000) + mad r15.y, r23.x, l(2.000000), r15.y + add r15.y, r15.y, l(0.000100) + div r15.y, l(0.500000), r15.y + mad r15.y, r15.z, r15.y, l(-0.0000610351562) + max r15.y, r15.y, l(0.000000) + min r15.y, r15.y, l(20.000000) + mul r23.yzw, r13.xxyz, r15.yyyy + mul r23.yzw, r17.yyyy, r23.yyzw + mul r18.xyw, r23.yzyw, cb3[r18.w + 6].zzzz + else + mov r18.xyw, l(0,0,0,0) + endif + mul r15.xyz, r15.xxxx, r21.yzwy + add r21.yzw, r22.xxyz, -r24.xxyz + mad r21.yzw, r18.zzzz, r21.yyzw, r24.xxyz + mul r21.yzw, r15.xxyz, r21.yyzw + mul r15.xyz, r18.xywx, r15.xyzx + mul r15.xyz, r18.zzzz, r15.xyzx + mad r15.xyz, r21.yzwy, r14.zzzz, r15.xyzx + add r16.xyz, r15.xyzx, r16.xyzx + endif + else + mov r19.x, l(0) + endif + movc r16.xyz, r19.xxxx, r19.yzwy, r16.xyzx + endif + endif + mov r13.w, r17.x + endloop + mov r14.xyw, r16.xyxz + iadd r10.z, r10.z, l(1) +endloop +lt r0.x, l(0.500000), cb5[3].x +if_nz r0.x + dp3 r0.x, r14.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r3.xyz, -r0.xxxx, r14.xywx + mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx + add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) + mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r3.xyz, r0.xyzx, cb5[3].yyyy + mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx + mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx + add r2.w, l(1.000000), -cb5[4].x + mov_sat r17.w, r17.w + add r3.x, -r17.w, l(1.000000) + add r3.y, -r2.w, l(1.000000) + add r2.w, -r2.w, r3.x + div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y + mul_sat r2.w, r2.w, r3.x + mad r3.x, r2.w, l(-2.000000), l(3.000000) + mul r2.w, r2.w, r2.w + mul r2.w, r2.w, r3.x + mul r3.xyz, r2.wwww, cb5[8].xyzx + mad r14.xyw, r3.xyxz, cb5[4].yyyy, r0.xyxz +endif +div r0.xyz, r14.xywx, cb0[109].xxxx +eq r2.w, l(1.000000), cb5[2].x +movc o0.w, r2.w, r4.w, l(1.000000) +lt r2.w, cb0[198].w, l(0.500000) +if_nz r2.w + mul r0.w, r0.w, r1.w + mad r1.w, v2.y, cb0[156].w, cb0[157].w + max r1.w, r1.w, l(0.010000) + mad r2.w, r0.w, cb0[154].w, -cb0[153].w + max r2.w, r2.w, l(0.000000) + mul r3.x, r1.w, l(-1.442695) + exp r3.x, r3.x + add r3.x, -r3.x, l(1.000000) + div r1.w, r3.x, r1.w + mad r3.x, v2.y, cb0[156].w, cb0[158].w + mul r3.x, r3.x, l(1.442695) + exp r3.x, r3.x + mul r1.w, r1.w, r3.x + mul r1.w, r1.w, -r2.w + mul r3.xyz, r1.wwww, cb0[155].xyzx + mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) + exp r3.xyz, r3.xyzx + dp3 r1.w, -r2.xyzx, cb0[154].xyzx + mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) + dp2 r3.w, r1.wwww, cb0[155].wwww + add r2.w, r2.w, -r3.w + lt r3.w, l(0.000000), cb0[163].z + if_nz r3.w + and r10.w, l(7), cb0[108].w + imad r4.xyz, r10.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.w, r4.y, r4.z, r4.x + imad r4.x, r4.z, r3.w, r4.y + imad r4.y, r3.w, r4.x, r4.z + imad r5.x, r4.x, r4.y, r3.w + dp3 r1.x, -r2.xyzx, -r1.xyzx + add r1.y, v2.y, -cb0[44].y + lt r1.z, l(5.960464478E-08), r1.x + div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x + and r1.x, r1.x, r1.z + mul r1.x, r1.x, cb0[163].w + div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r2.x, r1.z, r1.x + mad r2.y, r2.x, r1.y, cb0[44].y + mad r1.y, -r2.x, r1.y, r1.y + mul r2.x, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r2.z, r2.y, -cb0[159].x + mul r2.z, r2.z, cb0[159].z + max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r2.z, -r2.z + mul r2.z, r2.z, cb0[159].y + lt r3.w, l(5.960464478E-08), |r2.x| + exp r4.z, -r2.x + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r2.x + mad r2.x, -r2.x, l(0.240226507), l(0.693147182) + movc r2.x, r3.w, r4.z, r2.x + add r2.y, r2.y, -cb0[162].z + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[162].y + lt r3.w, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r3.w, r4.z, r1.y + mul r1.y, r1.y, r2.y + mad r1.y, r2.z, r2.x, r1.y + mad r1.x, -r1.x, r1.z, l(1.000000) + mul r1.x, r0.w, r1.x + mul r1.x, r1.x, r1.y + exp r1.x, -r1.x + min r1.x, r1.x, l(1.000000) + max r1.x, r1.x, cb0[161].w + mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r1.x, r1.y, r1.x + add r1.x, r1.z, r1.x + min r1.x, r1.x, l(1.000000) + imad r5.y, r4.y, r5.x, r4.x + ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) + utof r1.yz, r1.yyzy + mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz + mul r2.xy, r1.yzyy, cb0[165].xyxx + mad r1.y, v0.w, cb0[164].x, cb0[164].y + log r1.y, r1.y + mul r1.y, r1.y, cb0[164].z + div r2.z, r1.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t17.xyzw, s0, l(0.000000) + add r1.y, v0.w, -cb0[166].z + mul_sat r1.y, r1.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.xyz, r1.yyyy, cb0[161].xyzx + mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx + mul r1.x, r1.x, r4.w + else + add r1.y, v2.y, -cb0[44].y + mul r1.z, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r1.z| + exp r4.y, -r1.z + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r1.z + mad r1.z, -r1.z, l(0.240226507), l(0.693147182) + movc r1.z, r4.x, r4.y, r1.z + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r1.z, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r1.x, r0.w, l(1.000000) + add r0.w, -r1.x, l(1.000000) + mul r2.xyz, r0.wwww, cb0[161].xyzx + endif + mul r4.xyz, r1.xxxx, r3.xyzx + mad r0.w, r1.w, r1.w, l(1.000000) + mul r0.w, r0.w, l(0.0596831031) + mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz + mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) + mul r3.w, r2.w, l(12.566371) + sqrt r2.w, r2.w + mul r2.w, r2.w, r3.w + max r2.w, r2.w, l(0.001000) + div r0.w, r0.w, r2.w + mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw + mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) + add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r1.yzw, r1.yyzw, r3.xxyz + mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx + mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx +else + mov o0.xyz, r0.xyzx +endif +mov o1.z, l(1.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x620A40FD.cso b/src/games/endfield/deferred-lighting/0x620A40FD.cso new file mode 100644 index 0000000000000000000000000000000000000000..d26444eb8ffa22b0792972d5d54443b410f47146 GIT binary patch literal 27940 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 n{<+2b*yn3ter=Z^4?TDw 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm new file mode 100644 index 000000000..b6581c255 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm @@ -0,0 +1,945 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 20:20:39 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[4], immediateIndexed +dcl_constantbuffer CB13[13], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_default +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture2d (float,float,float,float) t19 +dcl_resource_texture2d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture3d (float,float,float,float) t23 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 26 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t20.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t21.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t22.xyzw +mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) +ftou r1.xz, r1.xxzx +ubfe r4.x, l(7), l(3), r1.x +utof r4.x, r4.x +round_ne r1.y, r1.y +ftou r1.y, r1.y +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.y, l(1.000000) +lt r4.y, r5.y, l(0.000000) +ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) +movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) +mul r4.zw, r4.zzzw, r6.xxxy +movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r5.xyz, r2.xxxx, r5.xyzx +and r2.x, r1.y, l(7) +utof r2.x, r2.x +mad r2.x, r2.x, l(0.107142866), l(0.500000) +utof r4.yz, r0.xxyx +mul r6.xy, v0.xyxx, cb0[82].zwzz +mad r6.zw, r6.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r7.xy, r4.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r7.xy, r7.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r2.y, r7.xyxx, t1.yxzw, s0, l(0.000000) +mul r7.xyzw, -r6.wwww, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r6.zzzz, r7.xyzw +mad r7.xyzw, cb0[26].xyzw, r2.yyyy, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r2.y, r7.y, cb0[1].z +mad r2.y, cb0[0].z, r7.x, r2.y +mad r2.y, cb0[2].z, r7.z, r2.y +add r2.y, r2.y, cb0[3].z +eq r4.w, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r10.xyz, r4.wwww, r8.xyzx, r9.xyzx +dp3 r4.w, r10.xyzx, r10.xyzx +max r6.z, r4.w, l(9.999999939E-09) +rsq r6.z, r6.z +mul r11.xyz, r6.zzzz, r10.xyzx +mul r4.w, r4.w, r6.z +lt r6.w, l(0.000488281250), cb0[234].x +if_nz r6.w + sample_b_indexable(texture2d)(float,float,float,float) r6.w, v1.xyxx, t19.yzwx, s1, cb0[108].x +else + mov r6.w, l(1.000000) +endif +add r6.w, -r6.w, l(1.000000) +mad_sat r8.w, r2.z, l(0.300000), l(0.250000) +mul r8.w, r8.w, cb0[222].x +mul r8.w, r6.w, r8.w +mad r8.w, r8.w, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r8.wwww +min r8.w, r2.z, l(0.300000) +mul r6.w, r6.w, cb0[222].x +mul r6.w, r6.w, l(0.500000) +add r8.w, -r2.z, r8.w +mad r12.z, r6.w, r8.w, r2.z +mul r2.zw, r2.xxxw, l(0.000000, 0.000000, 0.080000, 3.000000) +dp3 r6.w, r5.xyzx, r11.xyzx +max r8.w, r6.w, l(0.000000) +mad r13.xyzw, r12.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r9.w, r13.x, r13.x +mul r10.w, r8.w, l(-9.280000) +exp r10.w, r10.w +min r9.w, r9.w, r10.w +mad r9.w, r9.w, r13.x, r13.y +mad r13.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t6.zwxy +lt r0.z, l(0.001000), r13.z +if_nz r0.z + bfi r0.z, l(3), l(2), r1.x, l(0) + mul r1.x, r1.w, l(3.000000) + ftou r1.x, r1.x + bfi r0.z, l(2), l(0), r1.x, r0.z + utof r0.z, r0.z + mul r1.x, r0.z, l(0.0322580636) + ubfe r1.y, l(7), l(3), r1.y + utof r1.y, r1.y + mul r1.y, r1.y, l(0.00787401572) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t9.yzwx, s1, l(0.000000) + dp3 r9.w, -r11.xyzx, r5.xyzx + add r9.w, r9.w, r9.w + mad r14.xyz, r5.xyzx, -r9.wwww, -r11.xyzx + dp3 r9.w, -cb2[0].xyzx, r14.xyzx + mad r15.xyz, cb2[0].xyzx, r9.wwww, r14.xyzx + lt r9.w, r9.w, cb2[4].z + dp3 r10.w, r15.xyzx, r15.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb2[4].yyyy + mad r15.xyz, -cb2[0].xyzx, cb2[4].zzzz, r15.xyzx + dp3 r10.w, r15.xyzx, r15.xyzx + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + movc r14.xyz, r9.wwww, r15.xyzx, r14.xyzx + mad r10.xyz, r10.xyzx, r6.zzzz, r14.xyzx + dp3 r6.z, r10.xyzx, r10.xyzx + max r6.z, r6.z, l(0.0000610351562) + rsq r6.z, r6.z + mul r10.xyz, r6.zzzz, r10.xyzx + dp3 r6.z, r5.xyzx, r14.xyzx + mov_sat r12.x, r6.z + dp3_sat r9.w, r5.xyzx, r10.xyzx + dp3 r10.w, r11.xyzx, r14.xyzx + min r12.y, r8.w, l(1.000000) + mul r11.w, r12.z, r12.z + mul r11.w, r11.w, r11.w + mad r12.w, r9.w, r11.w, -r9.w + mad r9.w, r12.w, r9.w, l(1.000000) + dp3_sat r10.x, r11.xyzx, r10.xyzx + add r10.x, -r10.x, l(1.000000) + mul r10.y, r10.x, r10.x + mul r10.y, r10.y, r10.y + mul r10.z, r10.x, r10.y + add r12.w, -r12.z, l(1.000000) + mad r14.x, -r12.w, l(0.383026), l(-0.0761947036) + mad r14.x, r12.w, r14.x, l(1.049970) + mad r12.w, r12.w, r14.x, l(0.409255) + min r12.w, r12.w, l(0.999000) + add r14.x, -r12.w, l(1.000000) + mad r2.x, -r2.x, l(0.080000), l(1.000000) + mad r2.x, r2.x, l(0.0476190485), r2.z + mov_sat r14.y, -r10.w + mul r14.y, r14.y, r14.y + mad r14.y, r14.y, l(-0.640000), l(1.000000) + mul r14.y, r14.y, r14.y + mad r10.x, -r10.y, r10.x, l(1.000000) + mad r10.x, r2.z, r10.x, r10.z + mul r9.w, r9.w, r9.w + div r9.w, r11.w, r9.w + mad r10.yz, -r12.yyxy, r11.wwww, r12.yyxy + mad r10.yz, r10.yyzy, r12.yyxy, r11.wwww + sqrt r10.yz, r10.yyzy + mul r10.yz, r10.yyzy, r12.xxyx + add r10.y, r10.z, r10.y + add r10.y, r10.y, l(0.000100) + div r10.y, l(0.500000), r10.y + mul r9.w, r9.w, r10.y + mul r9.w, r9.w, r10.x + min r9.w, r9.w, l(2048.000000) + mad r15.xyzw, r12.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r10.x, r15.xyxx, t8.xyzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r10.y, r15.zwzz, t8.yxzw, s1, l(0.000000) + mul r10.x, r10.y, r10.x + mul r10.x, r12.w, r10.x + div r10.x, r10.x, r14.x + mul r10.y, r2.x, r2.x + mul r10.x, r10.x, r10.y + mad r2.x, -r2.x, r14.x, l(1.000000) + div r2.x, r10.x, r2.x + add r2.x, r2.x, r9.w + add_sat r6.w, r6.w, l(0.200000) + mov_sat r9.w, r10.w + add r9.w, r9.w, l(0.500000) + min r9.w, r9.w, l(1.000000) + mul r10.x, r6.w, r9.w + add_sat r10.y, r10.w, l(1.000000) + mad r6.w, -r6.w, r9.w, l(1.000000) + mad r6.w, r10.y, r6.w, r10.x + mul r2.x, r2.x, r6.w + mul r2.x, r1.y, r2.x + mul r10.xyz, r1.yyyy, r3.xyzx + ubfe r6.w, l(7), l(3), r1.z + utof r6.w, r6.w + mul r6.w, r6.w, l(0.00787401572) + mul r2.x, r2.x, cb2[4].x + max r2.x, r2.x, l(0.000000) + min r2.x, r2.x, l(1000.000000) + mul r2.x, r12.x, r2.x + mad r10.xyz, r10.xyzx, r6.wwww, r2.xxxx + max r2.x, r3.y, r3.x + max r2.x, r3.z, r2.x + max r2.x, r2.x, l(0.010000) + div r14.xzw, r3.xxyz, r2.xxxx + mul r2.x, r4.x, l(0.00393700786) + mul r14.xzw, r2.xxxx, r14.xxzw + add_sat r2.x, -r6.z, l(0.500000) + ne r6.w, r14.y, l(0.360000) + div r9.w, l(0.360000), r14.y + movc r6.w, r6.w, r9.w, l(1.000000) + mul r2.x, r2.x, r6.w + mad_sat r0.z, r0.z, l(0.0322580636), r6.z + add r0.z, -r12.x, r0.z + mul r12.xyw, r0.zzzz, r3.xyxz + mad r12.xyw, r14.xzxw, r2.xxxx, r12.xyxw + mad r10.xyz, r12.xywx, r1.yyyy, r10.xyzx + mul r10.xyz, r10.xyzx, cb2[1].xyzx + mov r13.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r12.xyw, r13.zwzz, t7.xywz, s1, cb0[108].x + add r0.z, -r13.z, l(1.000000) + mad r12.xyw, r10.xyxz, r12.xyxw, -r10.xyxz + mad r10.xyz, r0.zzzz, r12.xywx, r10.xyzx + max r0.z, r1.y, r1.w + add r0.z, -r1.w, r0.z + mad r0.z, r1.x, r0.z, r1.w + mul r1.xyw, r0.zzzz, r10.xyxz +else + mov r1.xyw, l(0,0,0,0) +endif +ne r6.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r6.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r2.x, r0.z, r8.w + mad r6.z, r12.z, l(-16.000000), l(-1.000000) + exp r6.z, r6.z + log r2.x, |r2.x| + mul r2.x, r2.x, r6.z + exp r2.x, r2.x + add r2.x, r0.z, r2.x + add r2.x, r2.x, l(-1.000000) + mov_sat r10.xyz, r2.xxxx + mad r12.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) + mul r12.xyw, r0.zzzz, r12.xyxw + mad r12.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r12.xyxw + add r12.xyw, r12.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) + mul r12.xyw, r0.zzzz, r12.xyxw + mad r12.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r12.xyxw + add r12.xyw, r12.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) + mul r12.xyw, r0.zzzz, r12.xyxw + max r12.xyw, r0.zzzz, r12.xyxw +else + mov r10.xyz, r3.wwww + mov r12.xyw, r3.wwww +endif +mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r14.xyz, r7.xzyx, -r14.xyzx +max r0.z, |r14.y|, |r14.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r2.x, |r14.z|, l(-208.000000) +mul_sat r2.x, r2.x, l(0.031250) +max r0.z, r0.z, r2.x +ne r2.x, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r2.x, r2.x, r3.w +if_nz r2.x + mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r14.xyz, r7.xzyx, -r14.xyzx + max r2.x, |r14.y|, |r14.x| + add r2.x, r2.x, l(-29.000000) + mul_sat r2.x, r2.x, l(0.500000) + add r3.w, |r14.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r2.x, r2.x, r3.w + lt r3.w, r2.x, l(1.000000) + if_nz r3.w + mad r14.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r15.xyw, r14.xyzx, t13.yzwx, s2, l(0.000000) + add r3.w, -r2.x, l(1.000000) + mul r6.z, l(0.500000), cb0[211].y + mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) + max r6.z, r6.z, r14.y + min r6.z, r9.w, r6.z + mul r14.w, r6.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t14.xyzw, s1, l(0.000000) + mad r6.z, r16.w, r3.w, r0.z + add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t14.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r15.yyyy, r17.xyzx + mov r17.w, r15.y + mul r17.xyzw, r3.wwww, r17.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t14.xyzw, s1, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r15.xxxx, r14.xyzx + mov r14.w, r15.x + mul r14.xyzw, r3.wwww, r14.xyzw + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r15.wwww, r16.xyzx + mul r15.xyzw, r3.wwww, r15.xyzw + else + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r6.z, r0.z + endif + mad r16.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r16.xyz, r7.xzyx, -r16.xyzx + max r3.w, |r16.y|, |r16.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r9.w, |r16.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r3.w, r3.w, r9.w + lt r9.w, r3.w, l(1.000000) + if_nz r9.w + mad r16.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r16.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r16.xyzx, t15.yzwx, s2, l(0.000000) + add r9.w, -r3.w, l(1.000000) + mul r2.x, r2.x, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r16.y + min r9.w, r10.w, r9.w + mul r16.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t16.xyzw, s1, l(0.000000) + mad r6.z, r19.w, r2.x, r6.z + add r20.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t16.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mad r17.xyzw, r20.xyzw, r2.xxxx, r17.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t16.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r18.xxxx, r16.xyzx + mov r16.w, r18.x + mad r14.xyzw, r16.xyzw, r2.xxxx, r14.xyzw + mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r16.xyzx + mad r15.xyzw, r18.xyzw, r2.xxxx, r15.xyzw + endif + lt r2.x, l(0.000000), r3.w + if_nz r2.x + mad r16.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r16.xyzx, cb0[211].xyzx + mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r16.xyz, r19.xyzx, r16.xyzx + min r16.xyz, r18.xyzx, r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) + add r2.x, -r0.z, l(1.000000) + mul r2.x, r2.x, r3.w + max r3.w, r19.y, r16.y + min r3.w, r18.y, r3.w + mul r16.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r20.yyyy, r19.xyzx + mov r19.w, r20.y + mad r17.xyzw, r19.xyzw, r2.xxxx, r17.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r20.xxxx, r16.xyzx + mov r16.w, r20.x + mad r14.xyzw, r16.xyzw, r2.xxxx, r14.xyzw + mad r16.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r16.xyzx + mad r15.xyzw, r20.xyzw, r2.xxxx, r15.xyzw + mad r6.z, r18.w, r2.x, r6.z + endif + mad_sat r2.x, r6.z, l(2.000000), l(-1.000000) + add r16.x, -r0.z, r2.x + add r0.z, r0.z, r2.x + mul r16.y, r0.z, l(0.500000) +else + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r16.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r16.yyyx, cb0[213].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[213].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r15.xyzw, r15.xyzw, r18.xyzw +mul r18.xyzw, r16.yyyx, cb0[214].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[214].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r14.xyzw, r14.xyzw, r18.xyzw +mul r18.xyzw, r16.yyyx, cb0[215].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[215].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r16.xyzw, r17.xyzw, r18.xyzw +ge r13.zw, r6.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r13.w, r13.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r6.xyxx, t12.xyzw, s1, l(0.000000) + lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| + or r6.xy, r18.zwzz, r18.xyxx + or r0.z, r6.y, r6.x + if_nz r0.z + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mov r6.x, l(1.000000) + mov r6.y, r0.z + mov r2.x, l(0) + loop + ge r3.w, l(4.600000), r6.y + breakc_nz r3.w + iadd r3.w, r2.x, l(1) + mul r13.zw, r6.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) + mov r6.xy, r13.zwzz + mov r2.x, r3.w + continue + endloop + mul r17.xyzw, r6.xxxx, r17.xyzw + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb3[3].x, cb3[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r6.x, r0.z, l(0.00390625000) + mov r6.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyxx, t11.xyzw, s1, l(0.000000) + mad r6.xy, r6.xyxx, cb3[2].xyxx, cb3[2].zwzz + mul r18.x, r6.x, l(3.54490781) + mul r18.yzw, r6.yyyy, r17.yyzw + mul r0.z, r17.x, l(0.406976730) + exp r0.z, r0.z + mul r17.xyzw, r0.zzzz, r18.xyzw + mov r18.xyzw, r17.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r2.x + breakc_nz r3.w + mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r19.xyzw, r18.xyzw + dp2 r6.x, r19.yxyy, r18.xyxx + dp2 r6.y, r19.zxzz, r18.xzxx + dp2 r6.z, r19.wxww, r18.xwxx + iadd r9.w, r0.z, l(1) + mov r18.x, r3.w + mov r18.yzw, r6.xxyz + mov r0.z, r9.w + continue + endloop + mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r17.xyzw, r18.xyzw + dp2 r2.x, r17.yxyy, r18.xyxx + dp2 r3.w, r17.zxzz, r18.xzxx + dp2 r6.x, r17.wxww, r18.xwxx + mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r6.y, r17.xyzw, r18.xyzw + dp2 r6.z, r17.yxyy, r18.xyxx + dp2 r9.w, r17.zxzz, r18.xzxx + dp2 r10.w, r17.wxww, r18.xwxx + mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r11.w, r17.xyzw, r18.xyzw + dp2 r13.z, r17.yxyy, r18.xyxx + dp2 r13.w, r17.zxzz, r18.xzxx + dp2 r17.x, r17.wxww, r18.xwxx + mul r15.w, r0.z, l(0.886226952) + mul r15.x, r6.x, l(-1.02332675) + mul r15.y, r2.x, l(-1.02332675) + mul r15.z, r3.w, l(1.02332675) + mul r14.x, r10.w, l(-1.02332675) + mul r14.yw, r6.zzzy, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r14.z, r9.w, l(1.02332675) + mul r16.w, r11.w, l(0.886226952) + mul r16.x, r17.x, l(-1.02332675) + mul r16.yz, r13.zzwz, l(0.000000, -1.02332675, 1.02332675, 0.000000) + endif +endif +mov r5.w, l(1.000000) +dp4 r6.x, r15.xyzw, r5.xyzw +dp4 r6.y, r14.xyzw, r5.xyzw +dp4 r6.z, r16.xyzw, r5.xyzw +max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +dp3 r0.z, -r11.xyzx, r5.xyzx +add r0.z, r0.z, r0.z +mad r17.xyz, r5.xyzx, -r0.zzzz, -r11.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r2.x, r12.z, l(0.001000) +log r2.x, r2.x +mad r2.x, -r2.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r2.x +mul r13.zw, r4.yyyz, cb1[0].wwww +round_ni r13.zw, r13.zzzw +add r2.x, |r2.y|, -cb1[2].y +round_ni r2.x, r2.x +add r3.w, l(-1.000000), cb1[1].x +max r9.w, r2.x, l(0.000000) +min r3.w, r3.w, r9.w +ge r2.x, r3.w, r2.x +mad r9.w, r13.w, cb1[0].x, r13.z +ftoi r9.w, r9.w +iadd r9.w, r9.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r9.w, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r9.w +and r2.x, r2.x, r3.w +mul r18.xyz, r6.xyzx, cb0[111].xxxx +dp3 r3.w, r18.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r18.xyz, l(0,0,0,0) +mov r9.w, l(1.000000) +mov r10.w, r2.x +mov r11.w, l(0) +loop + lt r12.z, l(0.010000), r9.w + ine r13.z, r10.w, l(0) + and r13.z, r12.z, r13.z + if_nz r13.z + firstbit_lo r13.z, r10.w + ishl r13.w, l(1), r13.z + xor r10.w, r10.w, r13.w + ishl r13.z, r13.z, l(3) + dp4 r19.x, cb1[r13.z + 6].xyzw, r7.xyzw + dp4 r19.y, cb1[r13.z + 7].xyzw, r7.xyzw + dp4 r19.z, cb1[r13.z + 8].xyzw, r7.xyzw + ge r20.xyz, cb1[r13.z + 5].xyzx, |r19.xyzx| + and r13.w, r20.y, r20.x + and r13.w, r20.z, r13.w + if_nz r13.w + mul r13.w, l(0.100000), cb1[r13.z + 5].x + mul r20.xyz, |r19.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r20.xy, r20.xyxx, r20.xyxx + add r21.xyz, -|r19.xyzx|, cb1[r13.z + 5].xyzx + mul r21.xyz, r21.xyzx, cb1[r13.z + 9].xyzx + eq r17.w, l(1.000000), cb1[r13.z + 10].x + if_nz r17.w + dp3 r22.x, cb1[r13.z + 6].xyzx, r17.xyzx + dp3 r22.y, cb1[r13.z + 7].xyzx, r17.xyzx + dp3 r22.z, cb1[r13.z + 8].xyzx, r17.xyzx + add r23.xyz, -r19.xyzx, cb1[r13.z + 5].xyzx + div r23.xyz, r23.xyzx, r22.xyzx + add r24.xyz, -r19.xyzx, -cb1[r13.z + 5].xyzx + div r24.xyz, r24.xyzx, r22.xyzx + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + movc r23.xyz, r25.xyzx, r23.xyzx, r24.xyzx + min r17.w, r23.y, r23.x + min r17.w, r23.z, r17.w + mad r19.xyz, r22.xyzx, r17.wwww, r19.xyzx + else + mov r19.xyz, r17.xyzx + endif + dp3 r17.w, r19.xyzx, r19.xyzx + rsq r17.w, r17.w + mul r19.xyz, r17.wwww, r19.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + lt r23.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r22.xyz, -r22.xyzx, r23.xyzx + itof r22.xyz, r22.xyzx + dp3 r17.w, r19.xyzx, r22.xyzx + div r19.xyz, r19.xyzx, r17.wwww + lt r17.w, r19.z, l(0.000000) + add r19.zw, -|r19.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r19.zw, r19.zzzw, r22.xxxy + movc r19.xy, r17.wwww, r19.zwzz, r19.xyxx + dp4 r17.w, cb1[r13.z + 4].xyzw, r5.xyzw + max r17.w, r17.w, l(0.000000) + max r17.w, r17.w, l(0.000100) + min r18.w, r21.z, r21.y + min r18.w, r18.w, r21.x + add r19.z, r20.y, r20.x + mad r19.z, r20.z, r20.z, r19.z + mad r13.w, r13.w, r13.w, -r19.z + mul r13.w, r13.w, cb1[r13.z + 9].x + mul r13.w, r13.w, cb1[r13.z + 9].x + add r19.z, l(1.000000), -cb1[r13.z + 10].y + mul r13.w, r13.w, r19.z + mul r13.w, r13.w, l(100.000000) + mad_sat r13.w, r18.w, cb1[r13.z + 10].y, r13.w + mul r18.w, r13.w, cb1[r13.z + 10].w + mad r19.xy, r19.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r19.xy, r19.xyxx, cb1[1].wwww, cb1[2].wwww + mov r19.z, cb1[r13.z + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r19.xyz, r19.xyzx, t5.xyzw, s3, r0.z + mul r19.xyz, r19.xyzx, cb1[r13.z + 9].wwww + div r19.w, r3.w, r17.w + min r19.w, |r19.w|, l(1.000000) + mad r19.w, r19.w, l(2.000000), r3.w + add r17.w, r17.w, l(2.000000) + div r17.w, r19.w, r17.w + add r17.w, r17.w, l(-1.000000) + mad r17.w, r17.w, cb0[112].w, l(1.000000) + mul r19.xyz, r17.wwww, r19.xyzx + mul r19.xyz, r18.wwww, r19.xyzx + mad r18.xyz, r19.xyzx, r9.wwww, r18.xyzx + mad r13.z, -r13.w, cb1[r13.z + 10].w, l(1.000000) + mul r9.w, r9.w, r13.z + endif + mov r11.w, l(-1) + continue + else + mov r11.w, r12.z + break + endif + mov r11.w, r12.z +endloop +if_nz r11.w + dp3 r2.x, r17.xyzx, r17.xyzx + rsq r2.x, r2.x + mul r17.xyz, r2.xxxx, r17.xyzx + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r20.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r19.xyz, -r19.xyzx, r20.xyzx + itof r19.xyz, r19.xyzx + dp3 r2.x, r17.xyzx, r19.xyzx + div r17.xyz, r17.xyzx, r2.xxxx + lt r2.x, r17.z, l(0.000000) + add r13.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r13.zw, r13.zzzw, r19.xxxy + movc r13.zw, r2.xxxx, r13.zzzw, r17.xxxy + dp4 r2.x, cb1[3].xyzw, r5.xyzw + max r2.x, r2.x, l(0.000000) + max r2.x, r2.x, l(0.000100) + mad r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r17.xy, r13.zwzz, cb1[1].wwww, cb1[2].wwww + mov r17.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z + div r0.z, r3.w, r2.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r2.x, r2.x, l(2.000000) + div r0.z, r0.z, r2.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r17.xyz, r0.zzzz, r17.xyzx + mad r18.xyz, r17.xyzx, r9.wwww, r18.xyzx +endif +mul r17.xyz, r18.xyzx, cb0[112].zzzz +mul r17.xyz, r17.xyzx, cb0[111].yyyy +if_nz r6.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r18.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r2.x, -r0.z, l(1.000000) + mul r19.xyz, r2.xxxx, r17.xyzx + mad r17.xyz, r18.xyzx, r0.zzzz, r19.xyzx +endif +mul r6.xyz, r3.xyzx, r6.xyzx +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mad r0.z, r2.z, r13.x, r13.y +mul r13.xyz, r0.zzzz, r17.xyzx +mul r10.xyz, r10.xyzx, r13.xyzx +mad r6.xyz, r6.xyzx, r12.xywx, r10.xyzx +mul r5.xyzw, r5.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r10.x, r15.xyzw, r5.xyzw +dp4 r10.y, r14.xyzw, r5.xyzw +dp4 r10.z, r16.xyzw, r5.xyzw +max r5.xyz, r10.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r5.xyz, r5.xyzx, cb0[111].xxxx +mul r5.xyz, r12.xywx, r5.xyzx +max r0.z, r3.y, r3.x +max r0.z, r3.z, r0.z +max r0.z, r0.z, l(0.010000) +div r3.xyz, r3.xyzx, r0.zzzz +mul r3.xyz, r3.xyzx, r5.xyzx +mul r0.z, r4.x, l(0.00787401572) +min r2.x, r8.w, l(1.000000) +bfi r1.z, l(3), l(2), r1.z, l(0) +ftou r2.z, r2.w +bfi r1.z, l(2), l(0), r2.z, r1.z +utof r1.z, r1.z +mul r1.z, r1.z, l(0.0322580636) +mad r0.z, r0.z, r2.x, r1.z +mul r2.xzw, r0.zzzz, r3.xxyz +mad r2.xzw, r2.xxzw, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r6.xxyz +add r1.xyz, r1.xywx, r2.xzwx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r4.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r7.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xzw, r0.zzzz, cb0[155].xxyz +mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r2.xzw, r2.xxzw +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.x, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r3.x +lt r3.x, l(0.000000), cb0[163].z +if_nz r3.x + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r9.xyzx + add r3.z, r7.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.w + mul r0.x, r0.x, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul r4.x, r0.x, r3.w + mad r5.x, r4.x, r3.z, cb0[44].y + mad r3.z, -r4.x, r3.z, r3.z + mul r4.x, r3.z, cb0[159].z + max r4.x, r4.x, l(-127.000000) + mul r3.z, r3.z, cb0[162].x + max r3.z, r3.z, l(-127.000000) + add r5.y, r5.x, -cb0[159].x + mul r5.y, r5.y, cb0[159].z + max r5.y, r5.y, l(-127.000000) + exp r5.y, -r5.y + mul r5.y, r5.y, cb0[159].y + lt r5.z, l(5.960464478E-08), |r4.x| + exp r5.w, -r4.x + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r5.z, r5.w, r4.x + add r5.x, r5.x, -cb0[162].z + mul r5.x, r5.x, cb0[162].x + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[162].y + lt r5.z, l(5.960464478E-08), |r3.z| + exp r5.w, -r3.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r5.z, r5.w, r3.z + mul r3.z, r3.z, r5.x + mad r3.z, r5.y, r4.x, r3.z + mad r0.x, -r0.x, r3.w, l(1.000000) + mul r0.x, r4.w, r0.x + mul r0.x, r0.x, r3.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r4.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r2.y|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t10.xyzw, s1, l(0.000000) + add r0.y, |r2.y|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.y, cb0[44].y, -cb0[159].x + mul r2.y, r2.y, cb0[159].z + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.y, r0.w, r0.y + mul r0.y, r4.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r4.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xzwx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.y, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +// Check fog modification toggle (cb13[12].y) +// If 0 (Original), skip fog modification and output original +if_z cb13[12].y + mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx + dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + dp3 r1.w, r8.xyzx, r8.xyzx + sqrt r1.w, r1.w + mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) + mul r2.x, r1.w, cb0[169].x + mad r1.w, -cb0[169].x, r1.w, l(1.000000) + mul r2.yzw, cb0[168].xxyz, cb0[183].wwww + mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw + sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t23.xwyz, s2, l(0.000000) + dp2 r2.x, r2.yyyy, r2.xxxx + add r1.w, r1.w, r2.x + add r2.x, r0.w, l(1.000000) + min r1.w, r1.w, r2.x + add r0.xyz, -r1.xyzx, r0.xyzx + mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx + mov o0.w, r0.w + ret +endif + +// === Simplified Fog Modification (Anti-Banding) === +// r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter (0-255) + +// Normalize colors to 0-1 range +mul r9.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 +mul r10.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 + +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density +add r11.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r11.xyz, r11.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + +// Reduce fog inscatter intensity +mul r10.xyz, r10.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + +// Standard fog blend with reduced intensity +mad r12.xyz, r9.xyzx, r11.xyzx, r10.xyzx + +// Scale back to 0-255 +mul r0.xyz, r12.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) + +// Continue with original post-fog processing +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r8.xyzx, r8.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t23.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0_original_backup.asm new file mode 100644 index 000000000..9cdfeebe7 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0_original_backup.asm @@ -0,0 +1,901 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 20:20:39 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[4], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_default +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture2d (float,float,float,float) t19 +dcl_resource_texture2d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture3d (float,float,float,float) t23 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 26 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t20.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t21.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t22.xyzw +mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) +ftou r1.xz, r1.xxzx +ubfe r4.x, l(7), l(3), r1.x +utof r4.x, r4.x +round_ne r1.y, r1.y +ftou r1.y, r1.y +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.y, l(1.000000) +lt r4.y, r5.y, l(0.000000) +ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) +movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) +mul r4.zw, r4.zzzw, r6.xxxy +movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r5.xyz, r2.xxxx, r5.xyzx +and r2.x, r1.y, l(7) +utof r2.x, r2.x +mad r2.x, r2.x, l(0.107142866), l(0.500000) +utof r4.yz, r0.xxyx +mul r6.xy, v0.xyxx, cb0[82].zwzz +mad r6.zw, r6.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r7.xy, r4.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r7.xy, r7.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r2.y, r7.xyxx, t1.yxzw, s0, l(0.000000) +mul r7.xyzw, -r6.wwww, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r6.zzzz, r7.xyzw +mad r7.xyzw, cb0[26].xyzw, r2.yyyy, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r2.y, r7.y, cb0[1].z +mad r2.y, cb0[0].z, r7.x, r2.y +mad r2.y, cb0[2].z, r7.z, r2.y +add r2.y, r2.y, cb0[3].z +eq r4.w, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r10.xyz, r4.wwww, r8.xyzx, r9.xyzx +dp3 r4.w, r10.xyzx, r10.xyzx +max r6.z, r4.w, l(9.999999939E-09) +rsq r6.z, r6.z +mul r11.xyz, r6.zzzz, r10.xyzx +mul r4.w, r4.w, r6.z +lt r6.w, l(0.000488281250), cb0[234].x +if_nz r6.w + sample_b_indexable(texture2d)(float,float,float,float) r6.w, v1.xyxx, t19.yzwx, s1, cb0[108].x +else + mov r6.w, l(1.000000) +endif +add r6.w, -r6.w, l(1.000000) +mad_sat r8.w, r2.z, l(0.300000), l(0.250000) +mul r8.w, r8.w, cb0[222].x +mul r8.w, r6.w, r8.w +mad r8.w, r8.w, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r8.wwww +min r8.w, r2.z, l(0.300000) +mul r6.w, r6.w, cb0[222].x +mul r6.w, r6.w, l(0.500000) +add r8.w, -r2.z, r8.w +mad r12.z, r6.w, r8.w, r2.z +mul r2.zw, r2.xxxw, l(0.000000, 0.000000, 0.080000, 3.000000) +dp3 r6.w, r5.xyzx, r11.xyzx +max r8.w, r6.w, l(0.000000) +mad r13.xyzw, r12.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r9.w, r13.x, r13.x +mul r10.w, r8.w, l(-9.280000) +exp r10.w, r10.w +min r9.w, r9.w, r10.w +mad r9.w, r9.w, r13.x, r13.y +mad r13.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t6.zwxy +lt r0.z, l(0.001000), r13.z +if_nz r0.z + bfi r0.z, l(3), l(2), r1.x, l(0) + mul r1.x, r1.w, l(3.000000) + ftou r1.x, r1.x + bfi r0.z, l(2), l(0), r1.x, r0.z + utof r0.z, r0.z + mul r1.x, r0.z, l(0.0322580636) + ubfe r1.y, l(7), l(3), r1.y + utof r1.y, r1.y + mul r1.y, r1.y, l(0.00787401572) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t9.yzwx, s1, l(0.000000) + dp3 r9.w, -r11.xyzx, r5.xyzx + add r9.w, r9.w, r9.w + mad r14.xyz, r5.xyzx, -r9.wwww, -r11.xyzx + dp3 r9.w, -cb2[0].xyzx, r14.xyzx + mad r15.xyz, cb2[0].xyzx, r9.wwww, r14.xyzx + lt r9.w, r9.w, cb2[4].z + dp3 r10.w, r15.xyzx, r15.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb2[4].yyyy + mad r15.xyz, -cb2[0].xyzx, cb2[4].zzzz, r15.xyzx + dp3 r10.w, r15.xyzx, r15.xyzx + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + movc r14.xyz, r9.wwww, r15.xyzx, r14.xyzx + mad r10.xyz, r10.xyzx, r6.zzzz, r14.xyzx + dp3 r6.z, r10.xyzx, r10.xyzx + max r6.z, r6.z, l(0.0000610351562) + rsq r6.z, r6.z + mul r10.xyz, r6.zzzz, r10.xyzx + dp3 r6.z, r5.xyzx, r14.xyzx + mov_sat r12.x, r6.z + dp3_sat r9.w, r5.xyzx, r10.xyzx + dp3 r10.w, r11.xyzx, r14.xyzx + min r12.y, r8.w, l(1.000000) + mul r11.w, r12.z, r12.z + mul r11.w, r11.w, r11.w + mad r12.w, r9.w, r11.w, -r9.w + mad r9.w, r12.w, r9.w, l(1.000000) + dp3_sat r10.x, r11.xyzx, r10.xyzx + add r10.x, -r10.x, l(1.000000) + mul r10.y, r10.x, r10.x + mul r10.y, r10.y, r10.y + mul r10.z, r10.x, r10.y + add r12.w, -r12.z, l(1.000000) + mad r14.x, -r12.w, l(0.383026), l(-0.0761947036) + mad r14.x, r12.w, r14.x, l(1.049970) + mad r12.w, r12.w, r14.x, l(0.409255) + min r12.w, r12.w, l(0.999000) + add r14.x, -r12.w, l(1.000000) + mad r2.x, -r2.x, l(0.080000), l(1.000000) + mad r2.x, r2.x, l(0.0476190485), r2.z + mov_sat r14.y, -r10.w + mul r14.y, r14.y, r14.y + mad r14.y, r14.y, l(-0.640000), l(1.000000) + mul r14.y, r14.y, r14.y + mad r10.x, -r10.y, r10.x, l(1.000000) + mad r10.x, r2.z, r10.x, r10.z + mul r9.w, r9.w, r9.w + div r9.w, r11.w, r9.w + mad r10.yz, -r12.yyxy, r11.wwww, r12.yyxy + mad r10.yz, r10.yyzy, r12.yyxy, r11.wwww + sqrt r10.yz, r10.yyzy + mul r10.yz, r10.yyzy, r12.xxyx + add r10.y, r10.z, r10.y + add r10.y, r10.y, l(0.000100) + div r10.y, l(0.500000), r10.y + mul r9.w, r9.w, r10.y + mul r9.w, r9.w, r10.x + min r9.w, r9.w, l(2048.000000) + mad r15.xyzw, r12.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r10.x, r15.xyxx, t8.xyzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r10.y, r15.zwzz, t8.yxzw, s1, l(0.000000) + mul r10.x, r10.y, r10.x + mul r10.x, r12.w, r10.x + div r10.x, r10.x, r14.x + mul r10.y, r2.x, r2.x + mul r10.x, r10.x, r10.y + mad r2.x, -r2.x, r14.x, l(1.000000) + div r2.x, r10.x, r2.x + add r2.x, r2.x, r9.w + add_sat r6.w, r6.w, l(0.200000) + mov_sat r9.w, r10.w + add r9.w, r9.w, l(0.500000) + min r9.w, r9.w, l(1.000000) + mul r10.x, r6.w, r9.w + add_sat r10.y, r10.w, l(1.000000) + mad r6.w, -r6.w, r9.w, l(1.000000) + mad r6.w, r10.y, r6.w, r10.x + mul r2.x, r2.x, r6.w + mul r2.x, r1.y, r2.x + mul r10.xyz, r1.yyyy, r3.xyzx + ubfe r6.w, l(7), l(3), r1.z + utof r6.w, r6.w + mul r6.w, r6.w, l(0.00787401572) + mul r2.x, r2.x, cb2[4].x + max r2.x, r2.x, l(0.000000) + min r2.x, r2.x, l(1000.000000) + mul r2.x, r12.x, r2.x + mad r10.xyz, r10.xyzx, r6.wwww, r2.xxxx + max r2.x, r3.y, r3.x + max r2.x, r3.z, r2.x + max r2.x, r2.x, l(0.010000) + div r14.xzw, r3.xxyz, r2.xxxx + mul r2.x, r4.x, l(0.00393700786) + mul r14.xzw, r2.xxxx, r14.xxzw + add_sat r2.x, -r6.z, l(0.500000) + ne r6.w, r14.y, l(0.360000) + div r9.w, l(0.360000), r14.y + movc r6.w, r6.w, r9.w, l(1.000000) + mul r2.x, r2.x, r6.w + mad_sat r0.z, r0.z, l(0.0322580636), r6.z + add r0.z, -r12.x, r0.z + mul r12.xyw, r0.zzzz, r3.xyxz + mad r12.xyw, r14.xzxw, r2.xxxx, r12.xyxw + mad r10.xyz, r12.xywx, r1.yyyy, r10.xyzx + mul r10.xyz, r10.xyzx, cb2[1].xyzx + mov r13.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r12.xyw, r13.zwzz, t7.xywz, s1, cb0[108].x + add r0.z, -r13.z, l(1.000000) + mad r12.xyw, r10.xyxz, r12.xyxw, -r10.xyxz + mad r10.xyz, r0.zzzz, r12.xywx, r10.xyzx + max r0.z, r1.y, r1.w + add r0.z, -r1.w, r0.z + mad r0.z, r1.x, r0.z, r1.w + mul r1.xyw, r0.zzzz, r10.xyxz +else + mov r1.xyw, l(0,0,0,0) +endif +ne r6.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r6.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r2.x, r0.z, r8.w + mad r6.z, r12.z, l(-16.000000), l(-1.000000) + exp r6.z, r6.z + log r2.x, |r2.x| + mul r2.x, r2.x, r6.z + exp r2.x, r2.x + add r2.x, r0.z, r2.x + add r2.x, r2.x, l(-1.000000) + mov_sat r10.xyz, r2.xxxx + mad r12.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) + mul r12.xyw, r0.zzzz, r12.xyxw + mad r12.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r12.xyxw + add r12.xyw, r12.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) + mul r12.xyw, r0.zzzz, r12.xyxw + mad r12.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r12.xyxw + add r12.xyw, r12.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) + mul r12.xyw, r0.zzzz, r12.xyxw + max r12.xyw, r0.zzzz, r12.xyxw +else + mov r10.xyz, r3.wwww + mov r12.xyw, r3.wwww +endif +mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r14.xyz, r7.xzyx, -r14.xyzx +max r0.z, |r14.y|, |r14.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r2.x, |r14.z|, l(-208.000000) +mul_sat r2.x, r2.x, l(0.031250) +max r0.z, r0.z, r2.x +ne r2.x, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r2.x, r2.x, r3.w +if_nz r2.x + mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r14.xyz, r7.xzyx, -r14.xyzx + max r2.x, |r14.y|, |r14.x| + add r2.x, r2.x, l(-29.000000) + mul_sat r2.x, r2.x, l(0.500000) + add r3.w, |r14.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r2.x, r2.x, r3.w + lt r3.w, r2.x, l(1.000000) + if_nz r3.w + mad r14.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r15.xyw, r14.xyzx, t13.yzwx, s2, l(0.000000) + add r3.w, -r2.x, l(1.000000) + mul r6.z, l(0.500000), cb0[211].y + mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) + max r6.z, r6.z, r14.y + min r6.z, r9.w, r6.z + mul r14.w, r6.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t14.xyzw, s1, l(0.000000) + mad r6.z, r16.w, r3.w, r0.z + add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t14.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r15.yyyy, r17.xyzx + mov r17.w, r15.y + mul r17.xyzw, r3.wwww, r17.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t14.xyzw, s1, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r15.xxxx, r14.xyzx + mov r14.w, r15.x + mul r14.xyzw, r3.wwww, r14.xyzw + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r15.wwww, r16.xyzx + mul r15.xyzw, r3.wwww, r15.xyzw + else + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r6.z, r0.z + endif + mad r16.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r16.xyz, r7.xzyx, -r16.xyzx + max r3.w, |r16.y|, |r16.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r9.w, |r16.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r3.w, r3.w, r9.w + lt r9.w, r3.w, l(1.000000) + if_nz r9.w + mad r16.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r16.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r16.xyzx, t15.yzwx, s2, l(0.000000) + add r9.w, -r3.w, l(1.000000) + mul r2.x, r2.x, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r16.y + min r9.w, r10.w, r9.w + mul r16.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t16.xyzw, s1, l(0.000000) + mad r6.z, r19.w, r2.x, r6.z + add r20.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t16.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mad r17.xyzw, r20.xyzw, r2.xxxx, r17.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t16.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r18.xxxx, r16.xyzx + mov r16.w, r18.x + mad r14.xyzw, r16.xyzw, r2.xxxx, r14.xyzw + mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r16.xyzx + mad r15.xyzw, r18.xyzw, r2.xxxx, r15.xyzw + endif + lt r2.x, l(0.000000), r3.w + if_nz r2.x + mad r16.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r16.xyzx, cb0[211].xyzx + mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r16.xyz, r19.xyzx, r16.xyzx + min r16.xyz, r18.xyzx, r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) + add r2.x, -r0.z, l(1.000000) + mul r2.x, r2.x, r3.w + max r3.w, r19.y, r16.y + min r3.w, r18.y, r3.w + mul r16.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r20.yyyy, r19.xyzx + mov r19.w, r20.y + mad r17.xyzw, r19.xyzw, r2.xxxx, r17.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r20.xxxx, r16.xyzx + mov r16.w, r20.x + mad r14.xyzw, r16.xyzw, r2.xxxx, r14.xyzw + mad r16.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r16.xyzx + mad r15.xyzw, r20.xyzw, r2.xxxx, r15.xyzw + mad r6.z, r18.w, r2.x, r6.z + endif + mad_sat r2.x, r6.z, l(2.000000), l(-1.000000) + add r16.x, -r0.z, r2.x + add r0.z, r0.z, r2.x + mul r16.y, r0.z, l(0.500000) +else + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r16.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r16.yyyx, cb0[213].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[213].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r15.xyzw, r15.xyzw, r18.xyzw +mul r18.xyzw, r16.yyyx, cb0[214].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[214].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r14.xyzw, r14.xyzw, r18.xyzw +mul r18.xyzw, r16.yyyx, cb0[215].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[215].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r16.xyzw, r17.xyzw, r18.xyzw +ge r13.zw, r6.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r13.w, r13.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r6.xyxx, t12.xyzw, s1, l(0.000000) + lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| + or r6.xy, r18.zwzz, r18.xyxx + or r0.z, r6.y, r6.x + if_nz r0.z + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mov r6.x, l(1.000000) + mov r6.y, r0.z + mov r2.x, l(0) + loop + ge r3.w, l(4.600000), r6.y + breakc_nz r3.w + iadd r3.w, r2.x, l(1) + mul r13.zw, r6.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) + mov r6.xy, r13.zwzz + mov r2.x, r3.w + continue + endloop + mul r17.xyzw, r6.xxxx, r17.xyzw + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb3[3].x, cb3[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r6.x, r0.z, l(0.00390625000) + mov r6.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyxx, t11.xyzw, s1, l(0.000000) + mad r6.xy, r6.xyxx, cb3[2].xyxx, cb3[2].zwzz + mul r18.x, r6.x, l(3.54490781) + mul r18.yzw, r6.yyyy, r17.yyzw + mul r0.z, r17.x, l(0.406976730) + exp r0.z, r0.z + mul r17.xyzw, r0.zzzz, r18.xyzw + mov r18.xyzw, r17.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r2.x + breakc_nz r3.w + mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r19.xyzw, r18.xyzw + dp2 r6.x, r19.yxyy, r18.xyxx + dp2 r6.y, r19.zxzz, r18.xzxx + dp2 r6.z, r19.wxww, r18.xwxx + iadd r9.w, r0.z, l(1) + mov r18.x, r3.w + mov r18.yzw, r6.xxyz + mov r0.z, r9.w + continue + endloop + mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r17.xyzw, r18.xyzw + dp2 r2.x, r17.yxyy, r18.xyxx + dp2 r3.w, r17.zxzz, r18.xzxx + dp2 r6.x, r17.wxww, r18.xwxx + mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r6.y, r17.xyzw, r18.xyzw + dp2 r6.z, r17.yxyy, r18.xyxx + dp2 r9.w, r17.zxzz, r18.xzxx + dp2 r10.w, r17.wxww, r18.xwxx + mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r11.w, r17.xyzw, r18.xyzw + dp2 r13.z, r17.yxyy, r18.xyxx + dp2 r13.w, r17.zxzz, r18.xzxx + dp2 r17.x, r17.wxww, r18.xwxx + mul r15.w, r0.z, l(0.886226952) + mul r15.x, r6.x, l(-1.02332675) + mul r15.y, r2.x, l(-1.02332675) + mul r15.z, r3.w, l(1.02332675) + mul r14.x, r10.w, l(-1.02332675) + mul r14.yw, r6.zzzy, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r14.z, r9.w, l(1.02332675) + mul r16.w, r11.w, l(0.886226952) + mul r16.x, r17.x, l(-1.02332675) + mul r16.yz, r13.zzwz, l(0.000000, -1.02332675, 1.02332675, 0.000000) + endif +endif +mov r5.w, l(1.000000) +dp4 r6.x, r15.xyzw, r5.xyzw +dp4 r6.y, r14.xyzw, r5.xyzw +dp4 r6.z, r16.xyzw, r5.xyzw +max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +dp3 r0.z, -r11.xyzx, r5.xyzx +add r0.z, r0.z, r0.z +mad r17.xyz, r5.xyzx, -r0.zzzz, -r11.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r2.x, r12.z, l(0.001000) +log r2.x, r2.x +mad r2.x, -r2.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r2.x +mul r13.zw, r4.yyyz, cb1[0].wwww +round_ni r13.zw, r13.zzzw +add r2.x, |r2.y|, -cb1[2].y +round_ni r2.x, r2.x +add r3.w, l(-1.000000), cb1[1].x +max r9.w, r2.x, l(0.000000) +min r3.w, r3.w, r9.w +ge r2.x, r3.w, r2.x +mad r9.w, r13.w, cb1[0].x, r13.z +ftoi r9.w, r9.w +iadd r9.w, r9.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r9.w, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r9.w +and r2.x, r2.x, r3.w +mul r18.xyz, r6.xyzx, cb0[111].xxxx +dp3 r3.w, r18.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r18.xyz, l(0,0,0,0) +mov r9.w, l(1.000000) +mov r10.w, r2.x +mov r11.w, l(0) +loop + lt r12.z, l(0.010000), r9.w + ine r13.z, r10.w, l(0) + and r13.z, r12.z, r13.z + if_nz r13.z + firstbit_lo r13.z, r10.w + ishl r13.w, l(1), r13.z + xor r10.w, r10.w, r13.w + ishl r13.z, r13.z, l(3) + dp4 r19.x, cb1[r13.z + 6].xyzw, r7.xyzw + dp4 r19.y, cb1[r13.z + 7].xyzw, r7.xyzw + dp4 r19.z, cb1[r13.z + 8].xyzw, r7.xyzw + ge r20.xyz, cb1[r13.z + 5].xyzx, |r19.xyzx| + and r13.w, r20.y, r20.x + and r13.w, r20.z, r13.w + if_nz r13.w + mul r13.w, l(0.100000), cb1[r13.z + 5].x + mul r20.xyz, |r19.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r20.xy, r20.xyxx, r20.xyxx + add r21.xyz, -|r19.xyzx|, cb1[r13.z + 5].xyzx + mul r21.xyz, r21.xyzx, cb1[r13.z + 9].xyzx + eq r17.w, l(1.000000), cb1[r13.z + 10].x + if_nz r17.w + dp3 r22.x, cb1[r13.z + 6].xyzx, r17.xyzx + dp3 r22.y, cb1[r13.z + 7].xyzx, r17.xyzx + dp3 r22.z, cb1[r13.z + 8].xyzx, r17.xyzx + add r23.xyz, -r19.xyzx, cb1[r13.z + 5].xyzx + div r23.xyz, r23.xyzx, r22.xyzx + add r24.xyz, -r19.xyzx, -cb1[r13.z + 5].xyzx + div r24.xyz, r24.xyzx, r22.xyzx + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + movc r23.xyz, r25.xyzx, r23.xyzx, r24.xyzx + min r17.w, r23.y, r23.x + min r17.w, r23.z, r17.w + mad r19.xyz, r22.xyzx, r17.wwww, r19.xyzx + else + mov r19.xyz, r17.xyzx + endif + dp3 r17.w, r19.xyzx, r19.xyzx + rsq r17.w, r17.w + mul r19.xyz, r17.wwww, r19.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + lt r23.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r22.xyz, -r22.xyzx, r23.xyzx + itof r22.xyz, r22.xyzx + dp3 r17.w, r19.xyzx, r22.xyzx + div r19.xyz, r19.xyzx, r17.wwww + lt r17.w, r19.z, l(0.000000) + add r19.zw, -|r19.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r19.zw, r19.zzzw, r22.xxxy + movc r19.xy, r17.wwww, r19.zwzz, r19.xyxx + dp4 r17.w, cb1[r13.z + 4].xyzw, r5.xyzw + max r17.w, r17.w, l(0.000000) + max r17.w, r17.w, l(0.000100) + min r18.w, r21.z, r21.y + min r18.w, r18.w, r21.x + add r19.z, r20.y, r20.x + mad r19.z, r20.z, r20.z, r19.z + mad r13.w, r13.w, r13.w, -r19.z + mul r13.w, r13.w, cb1[r13.z + 9].x + mul r13.w, r13.w, cb1[r13.z + 9].x + add r19.z, l(1.000000), -cb1[r13.z + 10].y + mul r13.w, r13.w, r19.z + mul r13.w, r13.w, l(100.000000) + mad_sat r13.w, r18.w, cb1[r13.z + 10].y, r13.w + mul r18.w, r13.w, cb1[r13.z + 10].w + mad r19.xy, r19.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r19.xy, r19.xyxx, cb1[1].wwww, cb1[2].wwww + mov r19.z, cb1[r13.z + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r19.xyz, r19.xyzx, t5.xyzw, s3, r0.z + mul r19.xyz, r19.xyzx, cb1[r13.z + 9].wwww + div r19.w, r3.w, r17.w + min r19.w, |r19.w|, l(1.000000) + mad r19.w, r19.w, l(2.000000), r3.w + add r17.w, r17.w, l(2.000000) + div r17.w, r19.w, r17.w + add r17.w, r17.w, l(-1.000000) + mad r17.w, r17.w, cb0[112].w, l(1.000000) + mul r19.xyz, r17.wwww, r19.xyzx + mul r19.xyz, r18.wwww, r19.xyzx + mad r18.xyz, r19.xyzx, r9.wwww, r18.xyzx + mad r13.z, -r13.w, cb1[r13.z + 10].w, l(1.000000) + mul r9.w, r9.w, r13.z + endif + mov r11.w, l(-1) + continue + else + mov r11.w, r12.z + break + endif + mov r11.w, r12.z +endloop +if_nz r11.w + dp3 r2.x, r17.xyzx, r17.xyzx + rsq r2.x, r2.x + mul r17.xyz, r2.xxxx, r17.xyzx + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r20.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r19.xyz, -r19.xyzx, r20.xyzx + itof r19.xyz, r19.xyzx + dp3 r2.x, r17.xyzx, r19.xyzx + div r17.xyz, r17.xyzx, r2.xxxx + lt r2.x, r17.z, l(0.000000) + add r13.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r13.zw, r13.zzzw, r19.xxxy + movc r13.zw, r2.xxxx, r13.zzzw, r17.xxxy + dp4 r2.x, cb1[3].xyzw, r5.xyzw + max r2.x, r2.x, l(0.000000) + max r2.x, r2.x, l(0.000100) + mad r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r17.xy, r13.zwzz, cb1[1].wwww, cb1[2].wwww + mov r17.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z + div r0.z, r3.w, r2.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r2.x, r2.x, l(2.000000) + div r0.z, r0.z, r2.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r17.xyz, r0.zzzz, r17.xyzx + mad r18.xyz, r17.xyzx, r9.wwww, r18.xyzx +endif +mul r17.xyz, r18.xyzx, cb0[112].zzzz +mul r17.xyz, r17.xyzx, cb0[111].yyyy +if_nz r6.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r18.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r2.x, -r0.z, l(1.000000) + mul r19.xyz, r2.xxxx, r17.xyzx + mad r17.xyz, r18.xyzx, r0.zzzz, r19.xyzx +endif +mul r6.xyz, r3.xyzx, r6.xyzx +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mad r0.z, r2.z, r13.x, r13.y +mul r13.xyz, r0.zzzz, r17.xyzx +mul r10.xyz, r10.xyzx, r13.xyzx +mad r6.xyz, r6.xyzx, r12.xywx, r10.xyzx +mul r5.xyzw, r5.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r10.x, r15.xyzw, r5.xyzw +dp4 r10.y, r14.xyzw, r5.xyzw +dp4 r10.z, r16.xyzw, r5.xyzw +max r5.xyz, r10.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r5.xyz, r5.xyzx, cb0[111].xxxx +mul r5.xyz, r12.xywx, r5.xyzx +max r0.z, r3.y, r3.x +max r0.z, r3.z, r0.z +max r0.z, r0.z, l(0.010000) +div r3.xyz, r3.xyzx, r0.zzzz +mul r3.xyz, r3.xyzx, r5.xyzx +mul r0.z, r4.x, l(0.00787401572) +min r2.x, r8.w, l(1.000000) +bfi r1.z, l(3), l(2), r1.z, l(0) +ftou r2.z, r2.w +bfi r1.z, l(2), l(0), r2.z, r1.z +utof r1.z, r1.z +mul r1.z, r1.z, l(0.0322580636) +mad r0.z, r0.z, r2.x, r1.z +mul r2.xzw, r0.zzzz, r3.xxyz +mad r2.xzw, r2.xxzw, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r6.xxyz +add r1.xyz, r1.xywx, r2.xzwx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r4.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r7.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xzw, r0.zzzz, cb0[155].xxyz +mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r2.xzw, r2.xxzw +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.x, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r3.x +lt r3.x, l(0.000000), cb0[163].z +if_nz r3.x + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r9.xyzx + add r3.z, r7.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.w + mul r0.x, r0.x, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul r4.x, r0.x, r3.w + mad r5.x, r4.x, r3.z, cb0[44].y + mad r3.z, -r4.x, r3.z, r3.z + mul r4.x, r3.z, cb0[159].z + max r4.x, r4.x, l(-127.000000) + mul r3.z, r3.z, cb0[162].x + max r3.z, r3.z, l(-127.000000) + add r5.y, r5.x, -cb0[159].x + mul r5.y, r5.y, cb0[159].z + max r5.y, r5.y, l(-127.000000) + exp r5.y, -r5.y + mul r5.y, r5.y, cb0[159].y + lt r5.z, l(5.960464478E-08), |r4.x| + exp r5.w, -r4.x + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r5.z, r5.w, r4.x + add r5.x, r5.x, -cb0[162].z + mul r5.x, r5.x, cb0[162].x + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[162].y + lt r5.z, l(5.960464478E-08), |r3.z| + exp r5.w, -r3.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r5.z, r5.w, r3.z + mul r3.z, r3.z, r5.x + mad r3.z, r5.y, r4.x, r3.z + mad r0.x, -r0.x, r3.w, l(1.000000) + mul r0.x, r4.w, r0.x + mul r0.x, r0.x, r3.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r4.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r2.y|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t10.xyzw, s1, l(0.000000) + add r0.y, |r2.y|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.y, cb0[44].y, -cb0[159].x + mul r2.y, r2.y, cb0[159].z + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.y, r0.w, r0.y + mul r0.y, r4.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r4.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xzwx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.y, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r8.xyzx, r8.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t23.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x7010AF4B.cso b/src/games/endfield/deferred-lighting/0x7010AF4B.cso new file mode 100644 index 0000000000000000000000000000000000000000..849917eb70e6f4148116f248d1ba84b739d24fdc GIT binary patch literal 27140 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 bg9C2U>NdKziPVqQkG%4u_0z4fdj0$_w=w^X literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm new file mode 100644 index 000000000..284197b74 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm @@ -0,0 +1,913 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 20:24:58 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[4], immediateIndexed +dcl_constantbuffer CB13[13], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_default +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture2d (float,float,float,float) t19 +dcl_resource_texture2d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture3d (float,float,float,float) t23 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 24 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t20.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t21.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r3.xyz, r1.wwww, r3.xyzx +utof r2.xy, r0.xyxx +mul r4.xy, v0.xyxx, cb0[82].zwzz +mad r4.zw, r4.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r5.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r5.xy, r5.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t1.yzwx, s0, l(0.000000) +mul r5.xyzw, -r4.wwww, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r4.zzzz, r5.xyzw +mad r5.xyzw, cb0[26].xyzw, r1.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r1.w, r5.y, cb0[1].z +mad r1.w, cb0[0].z, r5.x, r1.w +mad r1.w, cb0[2].z, r5.z, r1.w +add r1.w, r1.w, cb0[3].z +eq r2.w, l(0.000000), cb0[86].w +add r6.xyz, -r5.xyzx, cb0[44].xyzx +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r8.xyz, r2.wwww, r6.xyzx, r7.xyzx +dp3 r2.w, r8.xyzx, r8.xyzx +max r4.z, r2.w, l(9.999999939E-09) +rsq r4.z, r4.z +mul r9.xyz, r4.zzzz, r8.xyzx +mul r2.w, r2.w, r4.z +lt r4.w, l(0.000488281250), cb0[234].x +if_nz r4.w + sample_b_indexable(texture2d)(float,float,float,float) r10.xy, v1.xyxx, t19.xyzw, s1, cb0[108].x +else + mov r10.xy, l(1.000000,1.000000,0,0) +endif +min r6.w, r10.y, r10.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r7.w, r10.y, l(-1.000000) +mad r11.x, r1.z, r7.w, l(1.000000) +add r11.y, -r1.z, l(1.000000) +movc r10.yz, r4.wwww, r11.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r2.z, r10.y +add r4.w, -r1.z, r2.z +mad r1.z, r6.w, r4.w, r1.z +add r2.z, -r1.z, r2.z +mad r11.z, r10.x, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r12.xyz, r0.xyzz, t22.xyzw +add r1.z, -r10.z, l(1.000000) +mad r1.z, r6.w, r1.z, r10.z +add r2.z, -r1.z, l(1.000000) +mad r1.z, r10.x, r2.z, r1.z +mul r10.xyz, r1.zzzz, r12.xyzx +mul r13.xyz, r1.xxxx, r10.xyzx +mad r12.xyz, r12.xyzx, r1.zzzz, -r13.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r10.xyz, r10.xyzx, r1.xxxx, r1.zzzz +dp3 r1.x, r3.xyzx, r9.xyzx +max r13.x, r1.x, l(0.000000) +mul r14.y, r11.z, r11.z +mul r15.x, r13.x, r13.x +mul r15.z, r13.x, r15.x +mul r1.x, r14.y, r14.y +mul r14.z, r14.y, r1.x +mov r13.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r16.x, l(3.327070, 1.000000, 0.000000, 0.000000), r13.xyxx +dp2 r16.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r13.xzxx +mov r14.x, l(1.000000) +dp2 r1.z, r16.xyxx, r14.xyxx +mov r15.yw, l(0,9.044010,0,1.000000) +dp3 r16.x, l(3.596850, -1.367720, 1.000000, 0.000000), r15.xzwx +dp3 r16.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r15.xyzx +mov r17.x, l(5.565890) +mov r17.yz, r15.xxzx +dp3 r16.z, l(1.000000, 19.788601, -20.212299, 0.000000), r17.xyzx +dp3 r2.z, r16.xyzx, r14.xyzx +div r1.z, r1.z, r2.z +dp2 r16.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r13.xwxx +mov r15.x, l(1.296780) +mov r15.y, r13.x +dp2 r16.y, l(1.000000, -0.755907, 0.000000, 0.000000), r15.xyxx +dp2 r2.z, r16.xyxx, r14.xyxx +dp3 r16.x, l(2.923380, 59.418800, 1.000000, 0.000000), r15.yzwy +mov r15.xw, l(20.322500,0,0,121.563004) +dp3 r16.y, l(1.000000, -27.030199, 222.591995, 0.000000), r15.xyzx +dp3 r16.z, l(626.130005, 316.627014, 1.000000, 0.000000), r15.yzwy +dp3 r4.w, r16.xyzx, r14.xyzx +div r2.z, r2.z, r4.w +mad r13.yzw, r10.xxyz, r1.zzzz, r2.zzzz +add r1.z, r1.z, r2.z +ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t6.xyzw +lt r0.z, l(0.001000), r14.x +if_nz r0.z + dp3 r0.z, -r9.xyzx, r3.xyzx + add r0.z, r0.z, r0.z + mad r15.xyz, r3.xyzx, -r0.zzzz, -r9.xyzx + dp3 r0.z, -cb2[0].xyzx, r15.xyzx + mad r16.xyz, cb2[0].xyzx, r0.zzzz, r15.xyzx + lt r0.z, r0.z, cb2[4].z + dp3 r2.z, r16.xyzx, r16.xyzx + max r2.z, r2.z, l(0.0000610351562) + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb2[4].yyyy + mad r16.xyz, -cb2[0].xyzx, cb2[4].zzzz, r16.xyzx + dp3 r2.z, r16.xyzx, r16.xyzx + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + movc r15.xyz, r0.zzzz, r16.xyzx, r15.xyzx + mad r8.xyz, r8.xyzx, r4.zzzz, r15.xyzx + dp3 r0.z, r8.xyzx, r8.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r8.xyz, r0.zzzz, r8.xyzx + dp3_sat r11.x, r15.xyzx, r3.xyzx + dp3_sat r0.z, r3.xyzx, r8.xyzx + min r11.y, r13.x, l(1.000000) + mad r2.z, r0.z, r1.x, -r0.z + mad r0.z, r2.z, r0.z, l(1.000000) + dp3_sat r2.z, r9.xyzx, r8.xyzx + add r2.z, -r2.z, l(1.000000) + mul r4.z, r2.z, r2.z + mul r4.z, r4.z, r4.z + mul r4.w, r2.z, r4.z + add r6.w, -r11.z, l(1.000000) + mad r7.w, -r6.w, l(0.383026), l(-0.0761947036) + mad r7.w, r6.w, r7.w, l(1.049970) + mad r6.w, r6.w, r7.w, l(0.409255) + min r6.w, r6.w, l(0.999000) + add r7.w, -r6.w, l(1.000000) + add r8.xyz, -r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r8.xyz, r8.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r10.xyzx + mad r2.z, -r4.z, r2.z, l(1.000000) + mad r15.xyz, r10.xyzx, r2.zzzz, r4.wwww + mul r0.z, r0.z, r0.z + div r0.z, r1.x, r0.z + mad r4.zw, -r11.yyyx, r1.xxxx, r11.yyyx + mad r4.zw, r4.zzzw, r11.yyyx, r1.xxxx + sqrt r4.zw, r4.zzzw + mul r4.zw, r4.zzzw, r11.xxxy + add r1.x, r4.w, r4.z + add r1.x, r1.x, l(0.000100) + div r1.x, l(0.500000), r1.x + mul r0.z, r0.z, r1.x + mul r15.xyz, r0.zzzz, r15.xyzx + min r15.xyz, r15.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r16.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r16.xyxx, t8.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r1.x, r16.zwzz, t8.xyzw, s1, l(0.000000) + mul r0.z, r0.z, r1.x + mul r0.z, r6.w, r0.z + div r0.z, r0.z, r7.w + mul r16.xyz, r8.xyzx, r8.xyzx + mul r16.xyz, r0.zzzz, r16.xyzx + mad r8.xyz, -r8.xyzx, r7.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r8.xyz, r16.xyzx, r8.xyzx + add r8.xyz, r8.xyzx, r15.xyzx + mul r8.xyz, r8.xyzx, cb2[4].xxxx + max r8.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r8.xyz, r8.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r15.xyz, r11.xxxx, r12.xyzx + mad r8.xyz, r8.xyzx, r11.xxxx, r15.xyzx + mul r8.xyz, r8.xyzx, cb2[1].xyzx + mov r14.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r14.xyxx, t7.xywz, s1, cb0[108].x + add r0.z, -r14.x, l(1.000000) + mad r11.xyw, r8.xyxz, r11.xyxw, -r8.xyxz + mad r8.xyz, r0.zzzz, r11.xywx, r8.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t9.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r8.xyz, r0.zzzz, r8.xyzx +else + mov r8.xyz, l(0,0,0,0) +endif +ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r4.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + add r1.x, r0.z, r13.x + mad r2.z, r11.z, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.x, |r1.x| + mul r1.x, r1.x, r2.z + exp r1.x, r1.x + add r1.x, r0.z, r1.x + add r1.x, r1.x, l(-1.000000) + mov_sat r11.xyw, r1.xxxx + mad r14.xyz, r12.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r12.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r12.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r11.xyw, r1.yyyy + mov r14.xyz, r1.yyyy +endif +mad r15.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r1.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r2.xyxx +dp2 r0.z, r1.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx +mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r16.xyz, r15.xzyx, -r16.xyzx +max r0.z, |r16.y|, |r16.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.x, |r16.z|, l(-208.000000) +mul_sat r1.x, r1.x, l(0.031250) +max r0.z, r0.z, r1.x +ne r1.x, l(0.000000), cb0[210].w +lt r1.y, r0.z, l(1.000000) +and r1.x, r1.y, r1.x +if_nz r1.x + mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r16.xyz, r15.xzyx, -r16.xyzx + max r1.x, |r16.y|, |r16.x| + add r1.x, r1.x, l(-29.000000) + add r1.y, |r16.z|, l(-13.000000) + mul_sat r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + max r1.x, r1.y, r1.x + lt r1.y, r1.x, l(1.000000) + if_nz r1.y + mad r16.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t13.yzwx, s2, l(0.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r4.z, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r16.y + min r2.z, r4.z, r2.z + mul r16.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t14.xyzw, s1, l(0.000000) + mad r2.z, r18.w, r1.y, r0.z + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t14.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mul r19.xyzw, r1.yyyy, r19.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t14.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.xxxx, r16.xyzx + mov r16.w, r17.x + mul r16.xyzw, r1.yyyy, r16.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r18.xyzx + mul r17.xyzw, r1.yyyy, r17.xyzw + else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r15.xzyx, -r18.xyzx + max r1.y, |r18.y|, |r18.x| + add r1.y, r1.y, l(-116.000000) + mul_sat r1.y, r1.y, l(0.125000) + add r4.z, |r18.z|, l(-52.000000) + mul_sat r4.z, r4.z, l(0.125000) + max r1.y, r1.y, r4.z + lt r4.z, r1.y, l(1.000000) + if_nz r4.z + mad r18.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t15.yzwx, s2, l(0.000000) + add r4.z, -r1.y, l(1.000000) + mul r1.x, r1.x, r4.z + mul r4.z, l(0.500000), cb0[211].y + mad r6.w, -cb0[211].y, l(0.500000), l(1.000000) + max r4.z, r4.z, r18.y + min r4.z, r6.w, r4.z + mul r18.w, r4.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t16.xyzw, s1, l(0.000000) + mad r2.z, r21.w, r1.x, r2.z + add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t16.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r20.yyyy, r22.xyzx + mov r22.w, r20.y + mad r19.xyzw, r22.xyzw, r1.xxxx, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t16.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r1.xxxx, r16.xyzw + mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r18.xyzx + mad r17.xyzw, r20.xyzw, r1.xxxx, r17.xyzw + endif + lt r1.x, l(0.000000), r1.y + if_nz r1.x + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r18.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.y + max r1.y, r20.y, r15.y + min r1.y, r18.y, r1.y + mul r15.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) + add r20.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t18.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r21.yyyy, r20.xyzx + mov r20.w, r21.y + mad r19.xyzw, r20.xyzw, r1.xxxx, r19.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r21.xxxx, r15.xyzx + mov r15.w, r21.x + mad r16.xyzw, r15.xyzw, r1.xxxx, r16.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r15.xyzx + mad r17.xyzw, r21.xyzw, r1.xxxx, r17.xyzw + mad r2.z, r18.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r15.y, r0.z, l(0.500000) +else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r15.yxyy, cb0[213].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r1.xy, r15.yxyy, cb0[213].wyww +mad r18.x, r1.y, l(0.375000), r1.x +add r17.xyzw, r17.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[214].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r1.xy, r15.yxyy, cb0[214].wyww +mad r18.x, r1.y, l(0.375000), r1.x +add r16.xyzw, r16.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[215].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r1.xy, r15.yxyy, cb0[215].wyww +mad r18.x, r1.y, l(0.375000), r1.x +add r15.xyzw, r18.wyzx, r19.xyzw +ge r1.xy, r4.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r1.y, r1.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r18.xyzw, r4.xyxx, t12.xyzw, s1, l(0.000000) + lt r19.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r18.xyzw| + or r1.xy, r19.zwzz, r19.xyxx + or r0.z, r1.y, r1.x + if_nz r0.z + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.y, r0.z + mov r2.z, l(0) + loop + ge r4.x, l(4.600000), r1.y + breakc_nz r4.x + iadd r4.x, r2.z, l(1) + mul r4.yz, r1.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000) + mov r1.xy, r4.yzyy + mov r2.z, r4.x + continue + endloop + mul r18.xyzw, r1.xxxx, r18.xyzw + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb3[3].x, cb3[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r1.x, r0.z, l(0.00390625000) + mov r1.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xy, r1.xyxx, t11.xyzw, s1, l(0.000000) + mad r1.xy, r1.xyxx, cb3[2].xyxx, cb3[2].zwzz + mul r19.x, r1.x, l(3.54490781) + mul r19.yzw, r1.yyyy, r18.yyzw + mul r0.z, r18.x, l(0.406976730) + exp r0.z, r0.z + mul r18.xyzw, r0.zzzz, r19.xyzw + mov r19.xyzw, r18.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r2.z + breakc_nz r1.x + mul r20.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r20.xyzw, r19.xyzw + dp2 r1.y, r20.yxyy, r19.xyxx + dp2 r4.x, r20.zxzz, r19.xzxx + dp2 r4.y, r20.wxww, r19.xwxx + iadd r4.z, r0.z, l(1) + mov r19.xy, r1.xyxx + mov r19.zw, r4.xxxy + mov r0.z, r4.z + continue + endloop + mul r18.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r19.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r18.xyzw, r19.xyzw + dp2 r1.x, r18.yxyy, r19.xyxx + dp2 r1.y, r18.zxzz, r19.xzxx + dp2 r2.z, r18.wxww, r19.xwxx + mul r19.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.x, r18.xyzw, r19.xyzw + dp2 r4.y, r18.yxyy, r19.xyxx + dp2 r4.z, r18.zxzz, r19.xzxx + dp2 r6.w, r18.wxww, r19.xwxx + mul r19.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.w, r18.xyzw, r19.xyzw + dp2 r8.w, r18.yxyy, r19.xyxx + dp2 r9.w, r18.zxzz, r19.xzxx + dp2 r10.w, r18.wxww, r19.xwxx + mul r17.w, r0.z, l(0.886226952) + mul r17.x, r2.z, l(-1.02332675) + mul r17.yz, r1.xxyx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r16.x, r6.w, l(-1.02332675) + mul r16.yzw, r4.yyzx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) + mul r15.w, r7.w, l(0.886226952) + mul r15.x, r10.w, l(-1.02332675) + mul r15.y, r8.w, l(-1.02332675) + mul r15.z, r9.w, l(1.02332675) + endif +endif +dp3 r0.z, r17.xyzx, r3.xyzx +add r0.z, r17.w, r0.z +max r4.x, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r3.xyzx +add r0.z, r16.w, r0.z +max r4.y, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r3.xyzx +add r0.z, r15.w, r0.z +max r4.z, r0.z, l(0.000000) +dp3 r0.z, -r9.xyzx, r3.xyzx +add r0.z, r0.z, r0.z +mad r15.xyz, r3.xyzx, -r0.zzzz, -r9.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r1.x, r11.z, l(0.001000) +log r1.x, r1.x +mad r1.x, -r1.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.x +mul r1.xy, r2.xyxx, cb1[0].wwww +round_ni r1.xy, r1.xyxx +add r2.z, |r1.w|, -cb1[2].y +round_ni r2.z, r2.z +add r6.w, l(-1.000000), cb1[1].x +max r7.w, r2.z, l(0.000000) +min r6.w, r6.w, r7.w +ge r2.z, r6.w, r2.z +mad r1.x, r1.y, cb1[0].x, r1.x +ftoi r1.x, r1.x +iadd r1.x, r1.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx +ftoi r1.y, r6.w +iadd r1.y, r1.y, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r1.y, l(0), t0.xxxx +and r1.x, r1.y, r1.x +and r1.x, r1.x, r2.z +mul r16.xyz, r4.xyzx, cb0[111].xxxx +dp3 r1.y, r16.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r3.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r2.z, l(1.000000) +mov r6.w, r1.x +mov r7.w, l(0) +loop + lt r8.w, l(0.010000), r2.z + ine r9.w, r6.w, l(0) + and r9.w, r8.w, r9.w + if_nz r9.w + firstbit_lo r9.w, r6.w + ishl r10.w, l(1), r9.w + xor r6.w, r6.w, r10.w + ishl r9.w, r9.w, l(3) + dp4 r17.x, cb1[r9.w + 6].xyzw, r5.xyzw + dp4 r17.y, cb1[r9.w + 7].xyzw, r5.xyzw + dp4 r17.z, cb1[r9.w + 8].xyzw, r5.xyzw + ge r18.xyz, cb1[r9.w + 5].xyzx, |r17.xyzx| + and r10.w, r18.y, r18.x + and r10.w, r18.z, r10.w + if_nz r10.w + mul r10.w, l(0.100000), cb1[r9.w + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb1[r9.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb1[r9.w + 9].xyzx + eq r11.z, l(1.000000), cb1[r9.w + 10].x + if_nz r11.z + dp3 r20.x, cb1[r9.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb1[r9.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb1[r9.w + 8].xyzx, r15.xyzx + add r21.xyz, -r17.xyzx, cb1[r9.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb1[r9.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r11.z, r21.y, r21.x + min r11.z, r21.z, r11.z + mad r17.xyz, r20.xyzx, r11.zzzz, r17.xyzx + else + mov r17.xyz, r15.xyzx + endif + dp3 r11.z, r17.xyzx, r17.xyzx + rsq r11.z, r11.z + mul r17.xyz, r11.zzzz, r17.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r11.z, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r11.zzzz + lt r11.z, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r20.xxxy + movc r17.xy, r11.zzzz, r17.zwzz, r17.xyxx + dp4 r11.z, cb1[r9.w + 4].xyzw, r3.xyzw + max r11.z, r11.z, l(0.000000) + max r11.z, r11.z, l(0.000100) + min r12.w, r19.z, r19.y + min r12.w, r12.w, r19.x + add r13.x, r18.y, r18.x + mad r13.x, r18.z, r18.z, r13.x + mad r10.w, r10.w, r10.w, -r13.x + mul r10.w, r10.w, cb1[r9.w + 9].x + mul r10.w, r10.w, cb1[r9.w + 9].x + add r13.x, l(1.000000), -cb1[r9.w + 10].y + mul r10.w, r10.w, r13.x + mul r10.w, r10.w, l(100.000000) + mad_sat r10.w, r12.w, cb1[r9.w + 10].y, r10.w + mul r12.w, r10.w, cb1[r9.w + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r17.xyxx, cb1[1].wwww, cb1[2].wwww + mov r17.z, cb1[r9.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z + mul r17.xyz, r17.xyzx, cb1[r9.w + 9].wwww + div r13.x, r1.y, r11.z + min r13.x, |r13.x|, l(1.000000) + mad r13.x, r13.x, l(2.000000), r1.y + add r11.z, r11.z, l(2.000000) + div r11.z, r13.x, r11.z + add r11.z, r11.z, l(-1.000000) + mad r11.z, r11.z, cb0[112].w, l(1.000000) + mul r17.xyz, r11.zzzz, r17.xyzx + mul r17.xyz, r12.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r2.zzzz, r16.xyzx + mad r9.w, -r10.w, cb1[r9.w + 10].w, l(1.000000) + mul r2.z, r2.z, r9.w + endif + mov r7.w, l(-1) + continue + else + mov r7.w, r8.w + break + endif + mov r7.w, r8.w +endloop +if_nz r7.w + dp3 r1.x, r15.xyzx, r15.xyzx + rsq r1.x, r1.x + mul r15.xyz, r1.xxxx, r15.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r18.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r18.xyzx + itof r17.xyz, r17.xyzx + dp3 r1.x, r15.xyzx, r17.xyzx + div r15.xyz, r15.xyzx, r1.xxxx + lt r1.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r17.xxxy + movc r15.xy, r1.xxxx, r15.zwzz, r15.xyxx + mov r3.w, l(1.000000) + dp4 r1.x, cb1[3].xyzw, r3.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r3.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb1[1].wwww, cb1[2].wwww + mov r3.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r3.xyz, r3.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.y, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.y + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r3.xyz, r0.zzzz, r3.xyzx + mad r16.xyz, r3.xyzx, r2.zzzz, r16.xyzx +endif +mul r3.xyz, r16.xyzx, cb0[112].zzzz +mul r3.xyz, r3.xyzx, cb0[111].yyyy +if_nz r4.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.x, -r0.z, l(1.000000) + mul r16.xyz, r1.xxxx, r3.xyzx + mad r3.xyz, r15.xyzx, r0.zzzz, r16.xyzx +endif +mul r4.xyz, r12.xyzx, r4.xyzx +mul r4.xyz, r4.xyzx, cb0[111].xxxx +add r0.z, -r1.z, l(1.000000) +div r0.z, r0.z, r1.z +mul r1.xyz, r0.zzzz, r10.xyzx +mad r1.xyz, r1.xyzx, r13.yzwy, r13.yzwy +mul r1.xyz, r1.xyzx, r3.xyzx +mul r1.xyz, r11.xywx, r1.xyzx +mad r1.xyz, r4.xyzx, r14.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r8.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r2.z, r2.w, cb0[154].w, -cb0[153].w +max r2.z, r2.z, l(0.000000) +mul r3.x, r0.z, l(-1.442695) +exp r3.x, r3.x +add r3.x, -r3.x, l(1.000000) +div r0.z, r3.x, r0.z +mad r3.x, r5.y, cb0[156].w, cb0[158].w +mul r3.x, r3.x, l(1.442695) +exp r3.x, r3.x +mul r0.z, r0.z, r3.x +mul r0.z, r0.z, -r2.z +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r9.xyzx, cb0[154].xyzx +mad r2.z, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.w, r0.zzzz, cb0[155].wwww +add r2.z, r2.z, -r3.w +lt r3.w, l(0.000000), cb0[163].z +if_nz r3.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r9.xyzx, -r7.xyzx + add r3.w, r5.y, -cb0[44].y + lt r4.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r4.z + mul r0.x, r0.x, cb0[163].w + div r4.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w + mul r4.w, r0.x, r4.z + mad r5.w, r4.w, r3.w, cb0[44].y + mad r3.w, -r4.w, r3.w, r3.w + mul r4.w, r3.w, cb0[159].z + max r4.w, r4.w, l(-127.000000) + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + add r6.w, r5.w, -cb0[159].x + mul r6.w, r6.w, cb0[159].z + max r6.w, r6.w, l(-127.000000) + exp r6.w, -r6.w + mul r6.w, r6.w, cb0[159].y + lt r7.x, l(5.960464478E-08), |r4.w| + exp r7.y, -r4.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r4.w + mad r4.w, -r4.w, l(0.240226507), l(0.693147182) + movc r4.w, r7.x, r7.y, r4.w + add r5.w, r5.w, -cb0[162].z + mul r5.w, r5.w, cb0[162].x + max r5.w, r5.w, l(-127.000000) + exp r5.w, -r5.w + mul r5.w, r5.w, cb0[162].y + lt r7.x, l(5.960464478E-08), |r3.w| + exp r7.y, -r3.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r7.x, r7.y, r3.w + mul r3.w, r3.w, r5.w + mad r3.w, r6.w, r4.w, r3.w + mad r0.x, -r0.x, r4.z, l(1.000000) + mul r0.x, r2.w, r0.x + mul r0.x, r0.x, r3.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r2.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy + mul r4.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r1.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r4.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t10.xyzw, s1, l(0.000000) + add r0.y, |r1.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r0.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r7.xyz, r0.yyyy, cb0[161].xyzx + mad r4.xyz, r7.xyzx, r4.wwww, r4.xyzx + mul r0.x, r0.x, r4.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r1.w, cb0[44].y, -cb0[159].x + mul r1.w, r1.w, cb0[159].z + max r1.w, r1.w, l(-127.000000) + exp r1.w, -r1.w + mul r1.w, r1.w, cb0[159].y + lt r2.x, l(5.960464478E-08), |r0.w| + exp r2.y, -r0.w + add r2.y, -r2.y, l(1.000000) + div r2.y, r2.y, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r2.x, r2.y, r0.w + add r2.x, cb0[44].y, -cb0[162].z + mul r2.x, r2.x, cb0[162].x + max r2.x, r2.x, l(-127.000000) + exp r2.x, -r2.x + mul r2.x, r2.x, cb0[162].y + lt r2.y, l(5.960464478E-08), |r0.y| + exp r3.w, -r0.y + add r3.w, -r3.w, l(1.000000) + div r3.w, r3.w, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r2.y, r3.w, r0.y + mul r0.y, r0.y, r2.x + mad r0.y, r1.w, r0.w, r0.y + mul r0.y, r2.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r2.xy, r2.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r2.x + add r0.y, r2.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r2.xyw, r0.xxxx, r3.xyxz +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r1.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r2.z, l(12.566371) +sqrt r2.z, r2.z +mul r2.z, r2.z, r3.w +max r2.z, r2.z, l(0.001000) +div r1.w, r1.w, r2.z +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r4.xyzx +// Check fog modification toggle (cb13[12].y) +// If 0 (Original), skip fog modification and output original +if_z cb13[12].y + mad r0.xyz, r1.xyzx, r2.xywx, r0.xyzx + dp3 r0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + dp3 r1.w, r6.xyzx, r6.xyzx + sqrt r1.w, r1.w + mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) + mul r2.x, r1.w, cb0[169].x + mad r1.w, -cb0[169].x, r1.w, l(1.000000) + mul r2.yzw, cb0[168].xxyz, cb0[183].wwww + mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw + sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t23.xwyz, s2, l(0.000000) + dp2 r2.x, r2.yyyy, r2.xxxx + add r1.w, r1.w, r2.x + add r2.x, r0.w, l(1.000000) + min r1.w, r1.w, r2.x + add r0.xyz, -r1.xyzx, r0.xyzx + mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx + mov o0.w, r0.w + ret +endif + +// === Simplified Fog Modification (Anti-Banding) === +// r1.xyz = scene color (0-255), r2.xyw = transmittance, r0.xyz = fog inscatter (0-255) + +// Normalize colors to 0-1 range +mul r7.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 +mul r8.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 + +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density +add r9.xyz, -r2.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r9.xyz, r9.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r2.xywx + +// Reduce fog inscatter intensity +mul r8.xyz, r8.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + +// Standard fog blend with reduced intensity +mad r10.xyz, r7.xyzx, r9.xyzx, r8.xyzx + +// Scale back to 0-255 +mul r0.xyz, r10.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) + +// Continue with original post-fog processing +dp3 r0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r6.xyzx, r6.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t23.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0_original_backup.asm new file mode 100644 index 000000000..03f090d63 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0_original_backup.asm @@ -0,0 +1,869 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 20:24:58 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[4], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_default +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture2d (float,float,float,float) t19 +dcl_resource_texture2d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture3d (float,float,float,float) t23 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 24 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t20.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t21.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r3.xyz, r1.wwww, r3.xyzx +utof r2.xy, r0.xyxx +mul r4.xy, v0.xyxx, cb0[82].zwzz +mad r4.zw, r4.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r5.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r5.xy, r5.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t1.yzwx, s0, l(0.000000) +mul r5.xyzw, -r4.wwww, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r4.zzzz, r5.xyzw +mad r5.xyzw, cb0[26].xyzw, r1.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r1.w, r5.y, cb0[1].z +mad r1.w, cb0[0].z, r5.x, r1.w +mad r1.w, cb0[2].z, r5.z, r1.w +add r1.w, r1.w, cb0[3].z +eq r2.w, l(0.000000), cb0[86].w +add r6.xyz, -r5.xyzx, cb0[44].xyzx +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r8.xyz, r2.wwww, r6.xyzx, r7.xyzx +dp3 r2.w, r8.xyzx, r8.xyzx +max r4.z, r2.w, l(9.999999939E-09) +rsq r4.z, r4.z +mul r9.xyz, r4.zzzz, r8.xyzx +mul r2.w, r2.w, r4.z +lt r4.w, l(0.000488281250), cb0[234].x +if_nz r4.w + sample_b_indexable(texture2d)(float,float,float,float) r10.xy, v1.xyxx, t19.xyzw, s1, cb0[108].x +else + mov r10.xy, l(1.000000,1.000000,0,0) +endif +min r6.w, r10.y, r10.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r7.w, r10.y, l(-1.000000) +mad r11.x, r1.z, r7.w, l(1.000000) +add r11.y, -r1.z, l(1.000000) +movc r10.yz, r4.wwww, r11.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r2.z, r10.y +add r4.w, -r1.z, r2.z +mad r1.z, r6.w, r4.w, r1.z +add r2.z, -r1.z, r2.z +mad r11.z, r10.x, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r12.xyz, r0.xyzz, t22.xyzw +add r1.z, -r10.z, l(1.000000) +mad r1.z, r6.w, r1.z, r10.z +add r2.z, -r1.z, l(1.000000) +mad r1.z, r10.x, r2.z, r1.z +mul r10.xyz, r1.zzzz, r12.xyzx +mul r13.xyz, r1.xxxx, r10.xyzx +mad r12.xyz, r12.xyzx, r1.zzzz, -r13.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r10.xyz, r10.xyzx, r1.xxxx, r1.zzzz +dp3 r1.x, r3.xyzx, r9.xyzx +max r13.x, r1.x, l(0.000000) +mul r14.y, r11.z, r11.z +mul r15.x, r13.x, r13.x +mul r15.z, r13.x, r15.x +mul r1.x, r14.y, r14.y +mul r14.z, r14.y, r1.x +mov r13.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r16.x, l(3.327070, 1.000000, 0.000000, 0.000000), r13.xyxx +dp2 r16.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r13.xzxx +mov r14.x, l(1.000000) +dp2 r1.z, r16.xyxx, r14.xyxx +mov r15.yw, l(0,9.044010,0,1.000000) +dp3 r16.x, l(3.596850, -1.367720, 1.000000, 0.000000), r15.xzwx +dp3 r16.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r15.xyzx +mov r17.x, l(5.565890) +mov r17.yz, r15.xxzx +dp3 r16.z, l(1.000000, 19.788601, -20.212299, 0.000000), r17.xyzx +dp3 r2.z, r16.xyzx, r14.xyzx +div r1.z, r1.z, r2.z +dp2 r16.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r13.xwxx +mov r15.x, l(1.296780) +mov r15.y, r13.x +dp2 r16.y, l(1.000000, -0.755907, 0.000000, 0.000000), r15.xyxx +dp2 r2.z, r16.xyxx, r14.xyxx +dp3 r16.x, l(2.923380, 59.418800, 1.000000, 0.000000), r15.yzwy +mov r15.xw, l(20.322500,0,0,121.563004) +dp3 r16.y, l(1.000000, -27.030199, 222.591995, 0.000000), r15.xyzx +dp3 r16.z, l(626.130005, 316.627014, 1.000000, 0.000000), r15.yzwy +dp3 r4.w, r16.xyzx, r14.xyzx +div r2.z, r2.z, r4.w +mad r13.yzw, r10.xxyz, r1.zzzz, r2.zzzz +add r1.z, r1.z, r2.z +ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t6.xyzw +lt r0.z, l(0.001000), r14.x +if_nz r0.z + dp3 r0.z, -r9.xyzx, r3.xyzx + add r0.z, r0.z, r0.z + mad r15.xyz, r3.xyzx, -r0.zzzz, -r9.xyzx + dp3 r0.z, -cb2[0].xyzx, r15.xyzx + mad r16.xyz, cb2[0].xyzx, r0.zzzz, r15.xyzx + lt r0.z, r0.z, cb2[4].z + dp3 r2.z, r16.xyzx, r16.xyzx + max r2.z, r2.z, l(0.0000610351562) + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb2[4].yyyy + mad r16.xyz, -cb2[0].xyzx, cb2[4].zzzz, r16.xyzx + dp3 r2.z, r16.xyzx, r16.xyzx + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + movc r15.xyz, r0.zzzz, r16.xyzx, r15.xyzx + mad r8.xyz, r8.xyzx, r4.zzzz, r15.xyzx + dp3 r0.z, r8.xyzx, r8.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r8.xyz, r0.zzzz, r8.xyzx + dp3_sat r11.x, r15.xyzx, r3.xyzx + dp3_sat r0.z, r3.xyzx, r8.xyzx + min r11.y, r13.x, l(1.000000) + mad r2.z, r0.z, r1.x, -r0.z + mad r0.z, r2.z, r0.z, l(1.000000) + dp3_sat r2.z, r9.xyzx, r8.xyzx + add r2.z, -r2.z, l(1.000000) + mul r4.z, r2.z, r2.z + mul r4.z, r4.z, r4.z + mul r4.w, r2.z, r4.z + add r6.w, -r11.z, l(1.000000) + mad r7.w, -r6.w, l(0.383026), l(-0.0761947036) + mad r7.w, r6.w, r7.w, l(1.049970) + mad r6.w, r6.w, r7.w, l(0.409255) + min r6.w, r6.w, l(0.999000) + add r7.w, -r6.w, l(1.000000) + add r8.xyz, -r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r8.xyz, r8.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r10.xyzx + mad r2.z, -r4.z, r2.z, l(1.000000) + mad r15.xyz, r10.xyzx, r2.zzzz, r4.wwww + mul r0.z, r0.z, r0.z + div r0.z, r1.x, r0.z + mad r4.zw, -r11.yyyx, r1.xxxx, r11.yyyx + mad r4.zw, r4.zzzw, r11.yyyx, r1.xxxx + sqrt r4.zw, r4.zzzw + mul r4.zw, r4.zzzw, r11.xxxy + add r1.x, r4.w, r4.z + add r1.x, r1.x, l(0.000100) + div r1.x, l(0.500000), r1.x + mul r0.z, r0.z, r1.x + mul r15.xyz, r0.zzzz, r15.xyzx + min r15.xyz, r15.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r16.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r16.xyxx, t8.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r1.x, r16.zwzz, t8.xyzw, s1, l(0.000000) + mul r0.z, r0.z, r1.x + mul r0.z, r6.w, r0.z + div r0.z, r0.z, r7.w + mul r16.xyz, r8.xyzx, r8.xyzx + mul r16.xyz, r0.zzzz, r16.xyzx + mad r8.xyz, -r8.xyzx, r7.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r8.xyz, r16.xyzx, r8.xyzx + add r8.xyz, r8.xyzx, r15.xyzx + mul r8.xyz, r8.xyzx, cb2[4].xxxx + max r8.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r8.xyz, r8.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r15.xyz, r11.xxxx, r12.xyzx + mad r8.xyz, r8.xyzx, r11.xxxx, r15.xyzx + mul r8.xyz, r8.xyzx, cb2[1].xyzx + mov r14.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r14.xyxx, t7.xywz, s1, cb0[108].x + add r0.z, -r14.x, l(1.000000) + mad r11.xyw, r8.xyxz, r11.xyxw, -r8.xyxz + mad r8.xyz, r0.zzzz, r11.xywx, r8.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t9.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r8.xyz, r0.zzzz, r8.xyzx +else + mov r8.xyz, l(0,0,0,0) +endif +ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r4.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + add r1.x, r0.z, r13.x + mad r2.z, r11.z, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.x, |r1.x| + mul r1.x, r1.x, r2.z + exp r1.x, r1.x + add r1.x, r0.z, r1.x + add r1.x, r1.x, l(-1.000000) + mov_sat r11.xyw, r1.xxxx + mad r14.xyz, r12.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r12.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r12.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r11.xyw, r1.yyyy + mov r14.xyz, r1.yyyy +endif +mad r15.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r1.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r2.xyxx +dp2 r0.z, r1.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx +mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r16.xyz, r15.xzyx, -r16.xyzx +max r0.z, |r16.y|, |r16.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.x, |r16.z|, l(-208.000000) +mul_sat r1.x, r1.x, l(0.031250) +max r0.z, r0.z, r1.x +ne r1.x, l(0.000000), cb0[210].w +lt r1.y, r0.z, l(1.000000) +and r1.x, r1.y, r1.x +if_nz r1.x + mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r16.xyz, r15.xzyx, -r16.xyzx + max r1.x, |r16.y|, |r16.x| + add r1.x, r1.x, l(-29.000000) + add r1.y, |r16.z|, l(-13.000000) + mul_sat r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + max r1.x, r1.y, r1.x + lt r1.y, r1.x, l(1.000000) + if_nz r1.y + mad r16.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t13.yzwx, s2, l(0.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r4.z, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r16.y + min r2.z, r4.z, r2.z + mul r16.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t14.xyzw, s1, l(0.000000) + mad r2.z, r18.w, r1.y, r0.z + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t14.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mul r19.xyzw, r1.yyyy, r19.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t14.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.xxxx, r16.xyzx + mov r16.w, r17.x + mul r16.xyzw, r1.yyyy, r16.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r18.xyzx + mul r17.xyzw, r1.yyyy, r17.xyzw + else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r15.xzyx, -r18.xyzx + max r1.y, |r18.y|, |r18.x| + add r1.y, r1.y, l(-116.000000) + mul_sat r1.y, r1.y, l(0.125000) + add r4.z, |r18.z|, l(-52.000000) + mul_sat r4.z, r4.z, l(0.125000) + max r1.y, r1.y, r4.z + lt r4.z, r1.y, l(1.000000) + if_nz r4.z + mad r18.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t15.yzwx, s2, l(0.000000) + add r4.z, -r1.y, l(1.000000) + mul r1.x, r1.x, r4.z + mul r4.z, l(0.500000), cb0[211].y + mad r6.w, -cb0[211].y, l(0.500000), l(1.000000) + max r4.z, r4.z, r18.y + min r4.z, r6.w, r4.z + mul r18.w, r4.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t16.xyzw, s1, l(0.000000) + mad r2.z, r21.w, r1.x, r2.z + add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t16.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r20.yyyy, r22.xyzx + mov r22.w, r20.y + mad r19.xyzw, r22.xyzw, r1.xxxx, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t16.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r1.xxxx, r16.xyzw + mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r18.xyzx + mad r17.xyzw, r20.xyzw, r1.xxxx, r17.xyzw + endif + lt r1.x, l(0.000000), r1.y + if_nz r1.x + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r18.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.y + max r1.y, r20.y, r15.y + min r1.y, r18.y, r1.y + mul r15.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) + add r20.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t18.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r21.yyyy, r20.xyzx + mov r20.w, r21.y + mad r19.xyzw, r20.xyzw, r1.xxxx, r19.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r21.xxxx, r15.xyzx + mov r15.w, r21.x + mad r16.xyzw, r15.xyzw, r1.xxxx, r16.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r15.xyzx + mad r17.xyzw, r21.xyzw, r1.xxxx, r17.xyzw + mad r2.z, r18.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r15.y, r0.z, l(0.500000) +else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r15.yxyy, cb0[213].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r1.xy, r15.yxyy, cb0[213].wyww +mad r18.x, r1.y, l(0.375000), r1.x +add r17.xyzw, r17.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[214].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r1.xy, r15.yxyy, cb0[214].wyww +mad r18.x, r1.y, l(0.375000), r1.x +add r16.xyzw, r16.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[215].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r1.xy, r15.yxyy, cb0[215].wyww +mad r18.x, r1.y, l(0.375000), r1.x +add r15.xyzw, r18.wyzx, r19.xyzw +ge r1.xy, r4.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r1.y, r1.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r18.xyzw, r4.xyxx, t12.xyzw, s1, l(0.000000) + lt r19.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r18.xyzw| + or r1.xy, r19.zwzz, r19.xyxx + or r0.z, r1.y, r1.x + if_nz r0.z + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.y, r0.z + mov r2.z, l(0) + loop + ge r4.x, l(4.600000), r1.y + breakc_nz r4.x + iadd r4.x, r2.z, l(1) + mul r4.yz, r1.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000) + mov r1.xy, r4.yzyy + mov r2.z, r4.x + continue + endloop + mul r18.xyzw, r1.xxxx, r18.xyzw + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb3[3].x, cb3[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r1.x, r0.z, l(0.00390625000) + mov r1.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xy, r1.xyxx, t11.xyzw, s1, l(0.000000) + mad r1.xy, r1.xyxx, cb3[2].xyxx, cb3[2].zwzz + mul r19.x, r1.x, l(3.54490781) + mul r19.yzw, r1.yyyy, r18.yyzw + mul r0.z, r18.x, l(0.406976730) + exp r0.z, r0.z + mul r18.xyzw, r0.zzzz, r19.xyzw + mov r19.xyzw, r18.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r2.z + breakc_nz r1.x + mul r20.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r20.xyzw, r19.xyzw + dp2 r1.y, r20.yxyy, r19.xyxx + dp2 r4.x, r20.zxzz, r19.xzxx + dp2 r4.y, r20.wxww, r19.xwxx + iadd r4.z, r0.z, l(1) + mov r19.xy, r1.xyxx + mov r19.zw, r4.xxxy + mov r0.z, r4.z + continue + endloop + mul r18.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r19.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r18.xyzw, r19.xyzw + dp2 r1.x, r18.yxyy, r19.xyxx + dp2 r1.y, r18.zxzz, r19.xzxx + dp2 r2.z, r18.wxww, r19.xwxx + mul r19.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.x, r18.xyzw, r19.xyzw + dp2 r4.y, r18.yxyy, r19.xyxx + dp2 r4.z, r18.zxzz, r19.xzxx + dp2 r6.w, r18.wxww, r19.xwxx + mul r19.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.w, r18.xyzw, r19.xyzw + dp2 r8.w, r18.yxyy, r19.xyxx + dp2 r9.w, r18.zxzz, r19.xzxx + dp2 r10.w, r18.wxww, r19.xwxx + mul r17.w, r0.z, l(0.886226952) + mul r17.x, r2.z, l(-1.02332675) + mul r17.yz, r1.xxyx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r16.x, r6.w, l(-1.02332675) + mul r16.yzw, r4.yyzx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) + mul r15.w, r7.w, l(0.886226952) + mul r15.x, r10.w, l(-1.02332675) + mul r15.y, r8.w, l(-1.02332675) + mul r15.z, r9.w, l(1.02332675) + endif +endif +dp3 r0.z, r17.xyzx, r3.xyzx +add r0.z, r17.w, r0.z +max r4.x, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r3.xyzx +add r0.z, r16.w, r0.z +max r4.y, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r3.xyzx +add r0.z, r15.w, r0.z +max r4.z, r0.z, l(0.000000) +dp3 r0.z, -r9.xyzx, r3.xyzx +add r0.z, r0.z, r0.z +mad r15.xyz, r3.xyzx, -r0.zzzz, -r9.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r1.x, r11.z, l(0.001000) +log r1.x, r1.x +mad r1.x, -r1.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.x +mul r1.xy, r2.xyxx, cb1[0].wwww +round_ni r1.xy, r1.xyxx +add r2.z, |r1.w|, -cb1[2].y +round_ni r2.z, r2.z +add r6.w, l(-1.000000), cb1[1].x +max r7.w, r2.z, l(0.000000) +min r6.w, r6.w, r7.w +ge r2.z, r6.w, r2.z +mad r1.x, r1.y, cb1[0].x, r1.x +ftoi r1.x, r1.x +iadd r1.x, r1.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx +ftoi r1.y, r6.w +iadd r1.y, r1.y, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r1.y, l(0), t0.xxxx +and r1.x, r1.y, r1.x +and r1.x, r1.x, r2.z +mul r16.xyz, r4.xyzx, cb0[111].xxxx +dp3 r1.y, r16.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r3.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r2.z, l(1.000000) +mov r6.w, r1.x +mov r7.w, l(0) +loop + lt r8.w, l(0.010000), r2.z + ine r9.w, r6.w, l(0) + and r9.w, r8.w, r9.w + if_nz r9.w + firstbit_lo r9.w, r6.w + ishl r10.w, l(1), r9.w + xor r6.w, r6.w, r10.w + ishl r9.w, r9.w, l(3) + dp4 r17.x, cb1[r9.w + 6].xyzw, r5.xyzw + dp4 r17.y, cb1[r9.w + 7].xyzw, r5.xyzw + dp4 r17.z, cb1[r9.w + 8].xyzw, r5.xyzw + ge r18.xyz, cb1[r9.w + 5].xyzx, |r17.xyzx| + and r10.w, r18.y, r18.x + and r10.w, r18.z, r10.w + if_nz r10.w + mul r10.w, l(0.100000), cb1[r9.w + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb1[r9.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb1[r9.w + 9].xyzx + eq r11.z, l(1.000000), cb1[r9.w + 10].x + if_nz r11.z + dp3 r20.x, cb1[r9.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb1[r9.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb1[r9.w + 8].xyzx, r15.xyzx + add r21.xyz, -r17.xyzx, cb1[r9.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb1[r9.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r11.z, r21.y, r21.x + min r11.z, r21.z, r11.z + mad r17.xyz, r20.xyzx, r11.zzzz, r17.xyzx + else + mov r17.xyz, r15.xyzx + endif + dp3 r11.z, r17.xyzx, r17.xyzx + rsq r11.z, r11.z + mul r17.xyz, r11.zzzz, r17.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r11.z, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r11.zzzz + lt r11.z, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r20.xxxy + movc r17.xy, r11.zzzz, r17.zwzz, r17.xyxx + dp4 r11.z, cb1[r9.w + 4].xyzw, r3.xyzw + max r11.z, r11.z, l(0.000000) + max r11.z, r11.z, l(0.000100) + min r12.w, r19.z, r19.y + min r12.w, r12.w, r19.x + add r13.x, r18.y, r18.x + mad r13.x, r18.z, r18.z, r13.x + mad r10.w, r10.w, r10.w, -r13.x + mul r10.w, r10.w, cb1[r9.w + 9].x + mul r10.w, r10.w, cb1[r9.w + 9].x + add r13.x, l(1.000000), -cb1[r9.w + 10].y + mul r10.w, r10.w, r13.x + mul r10.w, r10.w, l(100.000000) + mad_sat r10.w, r12.w, cb1[r9.w + 10].y, r10.w + mul r12.w, r10.w, cb1[r9.w + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r17.xyxx, cb1[1].wwww, cb1[2].wwww + mov r17.z, cb1[r9.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z + mul r17.xyz, r17.xyzx, cb1[r9.w + 9].wwww + div r13.x, r1.y, r11.z + min r13.x, |r13.x|, l(1.000000) + mad r13.x, r13.x, l(2.000000), r1.y + add r11.z, r11.z, l(2.000000) + div r11.z, r13.x, r11.z + add r11.z, r11.z, l(-1.000000) + mad r11.z, r11.z, cb0[112].w, l(1.000000) + mul r17.xyz, r11.zzzz, r17.xyzx + mul r17.xyz, r12.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r2.zzzz, r16.xyzx + mad r9.w, -r10.w, cb1[r9.w + 10].w, l(1.000000) + mul r2.z, r2.z, r9.w + endif + mov r7.w, l(-1) + continue + else + mov r7.w, r8.w + break + endif + mov r7.w, r8.w +endloop +if_nz r7.w + dp3 r1.x, r15.xyzx, r15.xyzx + rsq r1.x, r1.x + mul r15.xyz, r1.xxxx, r15.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r18.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r18.xyzx + itof r17.xyz, r17.xyzx + dp3 r1.x, r15.xyzx, r17.xyzx + div r15.xyz, r15.xyzx, r1.xxxx + lt r1.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r17.xxxy + movc r15.xy, r1.xxxx, r15.zwzz, r15.xyxx + mov r3.w, l(1.000000) + dp4 r1.x, cb1[3].xyzw, r3.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r3.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb1[1].wwww, cb1[2].wwww + mov r3.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r3.xyz, r3.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.y, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.y + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r3.xyz, r0.zzzz, r3.xyzx + mad r16.xyz, r3.xyzx, r2.zzzz, r16.xyzx +endif +mul r3.xyz, r16.xyzx, cb0[112].zzzz +mul r3.xyz, r3.xyzx, cb0[111].yyyy +if_nz r4.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.x, -r0.z, l(1.000000) + mul r16.xyz, r1.xxxx, r3.xyzx + mad r3.xyz, r15.xyzx, r0.zzzz, r16.xyzx +endif +mul r4.xyz, r12.xyzx, r4.xyzx +mul r4.xyz, r4.xyzx, cb0[111].xxxx +add r0.z, -r1.z, l(1.000000) +div r0.z, r0.z, r1.z +mul r1.xyz, r0.zzzz, r10.xyzx +mad r1.xyz, r1.xyzx, r13.yzwy, r13.yzwy +mul r1.xyz, r1.xyzx, r3.xyzx +mul r1.xyz, r11.xywx, r1.xyzx +mad r1.xyz, r4.xyzx, r14.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r8.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r2.z, r2.w, cb0[154].w, -cb0[153].w +max r2.z, r2.z, l(0.000000) +mul r3.x, r0.z, l(-1.442695) +exp r3.x, r3.x +add r3.x, -r3.x, l(1.000000) +div r0.z, r3.x, r0.z +mad r3.x, r5.y, cb0[156].w, cb0[158].w +mul r3.x, r3.x, l(1.442695) +exp r3.x, r3.x +mul r0.z, r0.z, r3.x +mul r0.z, r0.z, -r2.z +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r9.xyzx, cb0[154].xyzx +mad r2.z, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.w, r0.zzzz, cb0[155].wwww +add r2.z, r2.z, -r3.w +lt r3.w, l(0.000000), cb0[163].z +if_nz r3.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r9.xyzx, -r7.xyzx + add r3.w, r5.y, -cb0[44].y + lt r4.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r4.z + mul r0.x, r0.x, cb0[163].w + div r4.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w + mul r4.w, r0.x, r4.z + mad r5.w, r4.w, r3.w, cb0[44].y + mad r3.w, -r4.w, r3.w, r3.w + mul r4.w, r3.w, cb0[159].z + max r4.w, r4.w, l(-127.000000) + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + add r6.w, r5.w, -cb0[159].x + mul r6.w, r6.w, cb0[159].z + max r6.w, r6.w, l(-127.000000) + exp r6.w, -r6.w + mul r6.w, r6.w, cb0[159].y + lt r7.x, l(5.960464478E-08), |r4.w| + exp r7.y, -r4.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r4.w + mad r4.w, -r4.w, l(0.240226507), l(0.693147182) + movc r4.w, r7.x, r7.y, r4.w + add r5.w, r5.w, -cb0[162].z + mul r5.w, r5.w, cb0[162].x + max r5.w, r5.w, l(-127.000000) + exp r5.w, -r5.w + mul r5.w, r5.w, cb0[162].y + lt r7.x, l(5.960464478E-08), |r3.w| + exp r7.y, -r3.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r7.x, r7.y, r3.w + mul r3.w, r3.w, r5.w + mad r3.w, r6.w, r4.w, r3.w + mad r0.x, -r0.x, r4.z, l(1.000000) + mul r0.x, r2.w, r0.x + mul r0.x, r0.x, r3.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r2.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy + mul r4.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r1.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r4.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t10.xyzw, s1, l(0.000000) + add r0.y, |r1.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r0.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r7.xyz, r0.yyyy, cb0[161].xyzx + mad r4.xyz, r7.xyzx, r4.wwww, r4.xyzx + mul r0.x, r0.x, r4.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r1.w, cb0[44].y, -cb0[159].x + mul r1.w, r1.w, cb0[159].z + max r1.w, r1.w, l(-127.000000) + exp r1.w, -r1.w + mul r1.w, r1.w, cb0[159].y + lt r2.x, l(5.960464478E-08), |r0.w| + exp r2.y, -r0.w + add r2.y, -r2.y, l(1.000000) + div r2.y, r2.y, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r2.x, r2.y, r0.w + add r2.x, cb0[44].y, -cb0[162].z + mul r2.x, r2.x, cb0[162].x + max r2.x, r2.x, l(-127.000000) + exp r2.x, -r2.x + mul r2.x, r2.x, cb0[162].y + lt r2.y, l(5.960464478E-08), |r0.y| + exp r3.w, -r0.y + add r3.w, -r3.w, l(1.000000) + div r3.w, r3.w, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r2.y, r3.w, r0.y + mul r0.y, r0.y, r2.x + mad r0.y, r1.w, r0.w, r0.y + mul r0.y, r2.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r2.xy, r2.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r2.x + add r0.y, r2.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r2.xyw, r0.xxxx, r3.xyxz +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r1.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r2.z, l(12.566371) +sqrt r2.z, r2.z +mul r2.z, r2.z, r3.w +max r2.z, r2.z, l(0.001000) +div r1.w, r1.w, r2.z +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r4.xyzx +mad r0.xyz, r1.xyzx, r2.xywx, r0.xyzx +dp3 r0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r6.xyzx, r6.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t23.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x8BA3C806.cso b/src/games/endfield/deferred-lighting/0x8BA3C806.cso new file mode 100644 index 0000000000000000000000000000000000000000..774ea32576bbc9beb0f737791fa4892fdc2d076f GIT binary patch literal 48028 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm new file mode 100644 index 000000000..1cfe304dc --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm @@ -0,0 +1,1576 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 20:09:21 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[160], dynamicIndexed +dcl_constantbuffer CB6[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture3d (float,float,float,float) t25 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 37 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t22.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t23.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r3.xyz, r1.wwww, r3.xyzx +utof r2.xy, r0.xyxx +mul r4.xy, v0.xyxx, cb0[82].zwzz +mad r4.zw, r4.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r5.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r5.xy, r5.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t1.yzwx, s0, l(0.000000) +mul r5.xyzw, -r4.wwww, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r4.zzzz, r5.xyzw +mad r5.xyzw, cb0[26].xyzw, r1.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r1.w, r5.y, cb0[1].z +mad r1.w, cb0[0].z, r5.x, r1.w +mad r1.w, cb0[2].z, r5.z, r1.w +add r1.w, r1.w, cb0[3].z +eq r2.w, l(0.000000), cb0[86].w +add r6.xyz, -r5.xyzx, cb0[44].xyzx +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r8.xyz, r2.wwww, r6.xyzx, r7.xyzx +dp3 r2.w, r8.xyzx, r8.xyzx +max r4.z, r2.w, l(9.999999939E-09) +rsq r4.z, r4.z +mul r9.xyz, r4.zzzz, r8.xyzx +mul r2.w, r2.w, r4.z +lt r4.w, l(0.000488281250), cb0[234].x +if_nz r4.w + sample_b_indexable(texture2d)(float,float,float,float) r10.xy, v1.xyxx, t21.xyzw, s1, cb0[108].x +else + mov r10.xy, l(1.000000,1.000000,0,0) +endif +min r6.w, r10.y, r10.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r7.w, r10.y, l(-1.000000) +mad r11.x, r1.z, r7.w, l(1.000000) +add r11.y, -r1.z, l(1.000000) +movc r10.yz, r4.wwww, r11.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r2.z, r10.y +add r4.w, -r1.z, r2.z +mad r1.z, r6.w, r4.w, r1.z +add r2.z, -r1.z, r2.z +mad r11.w, r10.x, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r12.xyz, r0.xyzz, t24.xyzw +add r1.z, -r10.z, l(1.000000) +mad r1.z, r6.w, r1.z, r10.z +add r2.z, -r1.z, l(1.000000) +mad r1.z, r10.x, r2.z, r1.z +mul r10.xyz, r1.zzzz, r12.xyzx +mul r13.xyz, r1.xxxx, r10.xyzx +mad r12.xyz, r12.xyzx, r1.zzzz, -r13.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r10.xyz, r10.xyzx, r1.xxxx, r1.zzzz +dp3 r1.x, r3.xyzx, r9.xyzx +max r13.x, r1.x, l(0.000000) +mul r14.y, r11.w, r11.w +mul r15.x, r13.x, r13.x +mul r15.z, r13.x, r15.x +mul r1.x, r14.y, r14.y +mul r14.z, r14.y, r1.x +mov r13.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r16.x, l(3.327070, 1.000000, 0.000000, 0.000000), r13.xyxx +dp2 r16.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r13.xzxx +mov r14.x, l(1.000000) +dp2 r1.z, r16.xyxx, r14.xyxx +mov r15.yw, l(0,9.044010,0,1.000000) +dp3 r16.x, l(3.596850, -1.367720, 1.000000, 0.000000), r15.xzwx +dp3 r16.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r15.xyzx +mov r17.x, l(5.565890) +mov r17.yz, r15.xxzx +dp3 r16.z, l(1.000000, 19.788601, -20.212299, 0.000000), r17.xyzx +dp3 r2.z, r16.xyzx, r14.xyzx +div r1.z, r1.z, r2.z +dp2 r16.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r13.xwxx +mov r15.x, l(1.296780) +mov r15.y, r13.x +dp2 r16.y, l(1.000000, -0.755907, 0.000000, 0.000000), r15.xyxx +dp2 r2.z, r16.xyxx, r14.xyxx +dp3 r16.x, l(2.923380, 59.418800, 1.000000, 0.000000), r15.yzwy +mov r15.xw, l(20.322500,0,0,121.563004) +dp3 r16.y, l(1.000000, -27.030199, 222.591995, 0.000000), r15.xyzx +dp3 r16.z, l(626.130005, 316.627014, 1.000000, 0.000000), r15.yzwy +dp3 r4.w, r16.xyzx, r14.xyzx +div r2.z, r2.z, r4.w +mad r13.yzw, r10.xxyz, r1.zzzz, r2.zzzz +add r1.z, r1.z, r2.z +ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t7.xzyw +lt r0.z, l(0.001000), r14.x +if_nz r0.z + dp3 r0.z, -r9.xyzx, r3.xyzx + add r0.z, r0.z, r0.z + mad r15.xyz, r3.xyzx, -r0.zzzz, -r9.xyzx + dp3 r0.z, -cb3[0].xyzx, r15.xyzx + mad r16.xyz, cb3[0].xyzx, r0.zzzz, r15.xyzx + lt r0.z, r0.z, cb3[4].z + dp3 r2.z, r16.xyzx, r16.xyzx + max r2.z, r2.z, l(0.0000610351562) + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb3[4].yyyy + mad r16.xyz, -cb3[0].xyzx, cb3[4].zzzz, r16.xyzx + dp3 r2.z, r16.xyzx, r16.xyzx + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + movc r15.xyz, r0.zzzz, r16.xyzx, r15.xyzx + mad r16.xyz, r8.xyzx, r4.zzzz, r15.xyzx + dp3 r0.z, r16.xyzx, r16.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r16.xyz, r0.zzzz, r16.xyzx + dp3_sat r11.y, r15.xyzx, r3.xyzx + dp3_sat r0.z, r3.xyzx, r16.xyzx + min r11.z, r13.x, l(1.000000) + mad r2.z, r0.z, r1.x, -r0.z + mad r0.z, r2.z, r0.z, l(1.000000) + dp3_sat r2.z, r9.xyzx, r16.xyzx + add r2.z, -r2.z, l(1.000000) + mul r4.w, r2.z, r2.z + mul r4.w, r4.w, r4.w + mul r6.w, r2.z, r4.w + add r7.w, -r11.w, l(1.000000) + mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) + mad r8.w, r7.w, r8.w, l(1.049970) + mad r7.w, r7.w, r8.w, l(0.409255) + min r7.w, r7.w, l(0.999000) + add r8.w, -r7.w, l(1.000000) + add r15.xyz, -r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r10.xyzx + mad r2.z, -r4.w, r2.z, l(1.000000) + mad r16.xyz, r10.xyzx, r2.zzzz, r6.wwww + mul r0.z, r0.z, r0.z + div r0.z, r1.x, r0.z + mad r17.xy, -r11.zyzz, r1.xxxx, r11.zyzz + mad r17.xy, r17.xyxx, r11.zyzz, r1.xxxx + sqrt r17.xy, r17.xyxx + mul r17.xy, r11.yzyy, r17.xyxx + add r1.x, r17.y, r17.x + add r1.x, r1.x, l(0.000100) + div r1.x, l(0.500000), r1.x + mul r0.z, r0.z, r1.x + mul r16.xyz, r0.zzzz, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r17.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r17.xyxx, t9.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r1.x, r17.zwzz, t9.xyzw, s1, l(0.000000) + mul r0.z, r0.z, r1.x + mul r0.z, r7.w, r0.z + div r0.z, r0.z, r8.w + mul r17.xyz, r15.xyzx, r15.xyzx + mul r17.xyz, r0.zzzz, r17.xyzx + mad r15.xyz, -r15.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r15.xyz, r17.xyzx, r15.xyzx + add r15.xyz, r15.xyzx, r16.xyzx + mul r15.xyz, r15.xyzx, cb3[4].xxxx + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r15.xyz, r15.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r16.xyz, r11.yyyy, r12.xyzx + mad r15.xyz, r15.xyzx, r11.yyyy, r16.xyzx + mul r15.xyz, r15.xyzx, cb3[1].xyzx + mov r14.z, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r16.xyz, r14.xzxx, t8.xyzw, s1, cb0[108].x + add r0.z, -r14.x, l(1.000000) + mad r14.xzw, r15.xxyz, r16.xxyz, -r15.xxyz + mad r14.xzw, r0.zzzz, r14.xxzw, r15.xxyz + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t10.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r14.xzw, r0.zzzz, r14.xxzw +else + mov r14.xzw, l(0,0,0,0) +endif +mul r11.yz, r2.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r11.yz, r11.yyzy +mad r0.z, r11.z, cb2[1].y, r11.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r1.x, -cb0[85].y, cb2[2].w, |r1.w| +round_ni r1.x, r1.x +add r2.z, l(-1.000000), cb2[1].w +max r4.w, r1.x, l(0.000000) +min r2.z, r2.z, r4.w +mul r4.w, r2.z, l(8.000000) +ftoi r4.w, r4.w +ge r1.x, r2.z, r1.x +iadd r2.z, r4.w, cb0[110].y +dp3 r4.w, -r9.xyzx, r3.xyzx +add r4.w, r4.w, r4.w +mad r15.xyz, r3.xyzx, -r4.wwww, -r9.xyzx +min r11.x, r13.x, l(1.000000) +add r4.w, -r11.w, l(1.000000) +mad r6.w, -r4.w, l(0.383026), l(-0.0761947036) +mad r6.w, r4.w, r6.w, l(1.049970) +mad r4.w, r4.w, r6.w, l(0.409255) +min r4.w, r4.w, l(0.999000) +add r6.w, -r4.w, l(1.000000) +add r16.xyz, -r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r10.xyzx +mad r11.yz, r11.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r7.w, r11.yzyy, t9.yzwx, s1, l(0.000000) +mad r17.xyz, -r16.xyzx, r6.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r18.w, l(1.000000) +mov r19.y, l(1.000000) +mov r20.z, r11.w +mov r21.xyz, l(0,0,0,0) +mov r8.w, l(1.000000) +mov r9.w, l(0) +loop + ilt r10.w, l(7), r9.w + breakc_nz r10.w + iadd r10.w, r0.z, r9.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.w, r10.w, l(0), t0.xxxx + iadd r11.y, r2.z, r9.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.y, r11.y, l(0), t0.xxxx + and r10.w, r10.w, r11.y + and r10.w, r1.x, r10.w + ishl r11.y, r9.w, l(5) + mov r22.xyz, l(0,0,0,0) + mov r11.z, r8.w + mov r12.w, r10.w + loop + breakc_z r12.w + firstbit_lo r15.w, r12.w + ishl r16.w, l(1), r15.w + xor r16.w, r12.w, r16.w + iadd r15.w, r11.y, r15.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r15.wwww, l(1, 3, 5, 6) + bfi r17.w, l(29), l(3), r15.w, l(7) + ftou r19.z, cb3[r23.z + 6].w + ieq r19.z, r19.z, l(1) + if_nz r19.z + add r18.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.w + 6].yxzy + ushr r26.xyz, cb3[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb3[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r19.z, r18.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r19.w, r18.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r18.x, r18.xyzw, r27.xyzw + max r18.y, |r19.w|, |r19.z| + max r18.x, |r18.x|, r18.y + mad r18.y, cb3[r17.w + 6].x, l(0.500000), l(0.500000) + add r18.x, -r18.y, r18.x + mad r18.y, -cb3[r17.w + 6].x, l(0.500000), l(0.500000) + div_sat r18.x, r18.x, r18.y + add r18.x, -r18.x, l(1.000000) + mul r18.x, r18.x, r18.x + else + mov r18.x, l(1.000000) + endif + lt r18.y, l(0.500000), cb3[r23.y + 6].z + lt r18.z, r18.x, l(0.001000) + or r18.z, r18.y, r18.z + if_nz r18.z + mov r12.w, r16.w + continue + endif + ishl r18.z, r15.w, l(3) + bfi r15.w, l(29), l(3), r15.w, l(2) + lt r19.z, cb3[r18.z + 6].w, l(1.500000) + if_nz r19.z + mad r19.z, cb3[r15.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r19.z, -|cb3[r15.w + 6].x| + add r24.y, -r24.x, cb3[r15.w + 6].y + add r19.z, -|r24.x|, l(1.000000) + add r19.z, -|r24.y|, r19.z + max r19.z, r19.z, l(0.000488281250) + ge r19.w, cb3[r15.w + 6].x, l(0.000000) + movc r24.z, r19.w, r19.z, -r19.z + dp3 r19.z, r24.xyzx, r24.xyzx + rsq r19.z, r19.z + mul r24.xyz, r19.zzzz, r24.xyzx + add r25.xyz, -r5.xyzx, cb3[r23.x + 6].xyzx + dp3 r19.z, r25.xyzx, r25.xyzx + rsq r19.w, r19.z + mul r26.xyz, r19.wwww, r25.xyzx + ftoi r20.w, cb3[r17.w + 6].w + mul r27.xyz, r24.xyzx, cb3[r15.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r21.w, cb3[r18.z + 6].w + and r21.w, r21.w, l(1) + ieq r22.w, r21.w, l(0) + not r22.w, r22.w + lt r23.z, l(0.000000), cb3[r15.w + 6].z + and r22.w, r22.w, r23.z + dp3 r23.z, r28.xyzx, r28.xyzx + sqrt r23.z, r23.z + dp3 r24.w, r29.xyzx, r29.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r3.xyzx, r28.xyzx + div r25.w, r25.w, r23.z + dp3 r26.w, r3.xyzx, r29.xyzx + div r26.w, r26.w, r24.w + add r25.w, r25.w, r26.w + mul_sat r30.x, r25.w, l(0.500000) + dp3 r25.w, r28.xyzx, r29.xyzx + mad r23.z, r23.z, r24.w, r25.w + mad r23.z, r23.z, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r23.z + dp3_sat r19.x, r3.xyzx, r26.xyzx + movc r20.xy, r22.wwww, r30.xyxx, r19.xyxx + lt r19.x, cb3[r23.w + 6].w, l(0.000000) + if_nz r19.x + mul r19.x, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r19.x, r19.x, r19.z + mad r19.x, -r19.x, r19.x, l(1.000000) + max r19.x, r19.x, l(0.000000) + add r19.z, r19.z, l(1.000000) + div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z + and r23.z, r22.w, l(0x3f800000) + add r24.w, -r19.z, r20.y + mad r19.z, r23.z, r24.w, r19.z + mul r19.x, r19.x, r19.x + mul r19.x, r19.x, r19.z + else + mul r29.xyz, r25.xyzx, cb3[r23.x + 6].wwww + dp3 r19.z, r29.xyzx, r29.xyzx + min r19.z, r19.z, l(1.000000) + add r19.z, -r19.z, l(1.000000) + log r19.z, r19.z + mul r19.z, r19.z, cb3[r23.w + 6].w + exp r19.z, r19.z + mul r19.x, r19.z, r20.y + endif + dp3 r19.z, r26.xyzx, -r24.xyzx + add r19.z, r19.z, -cb3[r15.w + 6].z + mul_sat r19.z, r19.z, cb3[r15.w + 6].w + mul r19.z, r19.z, r19.z + movc r19.z, r21.w, l(1.000000), r19.z + mul r19.x, r19.z, r19.x + not r19.z, r22.w + ige r20.y, r20.w, l(0) + and r19.z, r19.z, r20.y + if_nz r19.z + if_z r21.w + ishl r19.z, r20.w, l(2) + mul r24.xyz, r5.yyyy, cb5[r19.z + 33].xywx + mad r24.xyz, cb5[r19.z + 32].xywx, r5.xxxx, r24.xyzx + mad r24.xyz, cb5[r19.z + 34].xywx, r5.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb5[r19.z + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb5[r20.w + 0].zwzz, cb5[r20.w + 0].xyxx + else + ishl r19.z, r20.w, l(2) + dp3 r29.x, -r25.xyzx, cb5[r19.z + 32].xyzx + dp3 r29.y, -r25.xyzx, cb5[r19.z + 33].xyzx + dp3 r29.z, -r25.xyzx, cb5[r19.z + 34].xyzx + lt r19.z, |r29.x|, |r29.y| + and r19.z, r19.z, l(1) + dp2 r20.y, |r29.xyxx|, icb[r19.z + 0].xyxx + lt r20.y, r20.y, |r29.z| + movc r19.z, r20.y, l(2), r19.z + dp3 r20.y, r29.xyzx, icb[r19.z + 0].xyzx + lt r20.y, r20.y, l(0.000000) + bfi r19.z, l(31), l(1), r19.z, r20.y + ushr r20.y, r19.z, l(1) + dp3 r20.y, r29.xyzx, icb[r20.y + 0].xyzx + div r23.z, l(0.000244140625), cb5[r20.w + 0].w + add r23.z, -r23.z, l(0.500000) + utof r24.z, r19.z + ult r24.w, r19.z, l(2) + and r24.w, r24.w, l(2) + dp2 r24.w, r29.xzxx, icb[r24.w + 0].xzxx + mul r24.w, r24.w, icb[r19.z + 4].z + div r24.w, r24.w, |r20.y| + mad r24.z, r24.w, r23.z, r24.z + add r24.z, r24.z, l(0.500000) + mul_sat r25.x, r24.z, l(0.166666672) + iadd r24.z, l(-1), icb[r19.z + 4].y + dp2 r24.z, r29.yzyy, icb[r24.z + 0].xyxx + mul r19.z, r24.z, icb[r19.z + 4].w + div r19.z, r19.z, |r20.y| + mad_sat r25.y, -r19.z, r23.z, l(0.500000) + mad r24.xy, r25.xyxx, cb5[r20.w + 0].zwzz, cb5[r20.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.z, r24.xyxx, t11.yzxw, s1, l(0.000000) + mul r19.x, r19.z, r19.x + endif + lt r19.z, l(0.000000), r19.x + if_nz r19.z + if_z r21.w + ftoi r20.y, cb3[r23.y + 6].x + else + add r24.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + lt r25.xyz, |r24.yzzy|, |r24.xxyx| + and r20.w, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r21.w, cb3[r15.w + 6].w, l(24) + ubfe r25.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r15.w + 6].wwww + movc r21.w, r24.x, r21.w, r25.x + and r23.z, l(255), cb3[r15.w + 6].w + movc r23.z, r24.y, r25.y, r23.z + ubfe r24.x, l(8), l(8), cb3[r23.y + 6].x + and r24.y, l(255), cb3[r23.y + 6].x + movc r24.x, r24.z, r24.x, r24.y + movc r23.z, r25.z, r23.z, r24.x + movc r20.w, r20.w, r21.w, r23.z + ilt r21.w, r20.w, l(80) + movc r20.y, r21.w, r20.w, l(-1) + endif + ishl r20.w, r20.y, l(2) + mad r24.xyz, r26.xyzx, cb4[r20.y + 288].xxxx, r5.xyzx + mul r21.w, l(5.000000), cb4[r20.y + 288].y + mad r24.xyz, r3.xyzx, r21.wwww, r24.xyzx + mul r25.xyzw, r24.yyyy, cb4[r20.w + 65].xyzw + mad r25.xyzw, cb4[r20.w + 64].xyzw, r24.xxxx, r25.xyzw + mad r24.xyzw, cb4[r20.w + 66].xyzw, r24.zzzz, r25.xyzw + add r24.xyzw, r24.xyzw, cb4[r20.w + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r30.xy, -cb4[r20.y + 344].xyxx, cb4[r20.y + 344].zwzz + mad r24.xy, r24.xyxx, r30.xyxx, cb4[r20.y + 344].xyxx + mad r30.xy, r24.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r30.xy, r30.xyxx + mad r24.xy, r24.xyxx, cb4[400].zwzz, -r30.xyxx + add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx + mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz + add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r35.z, r36.x + mov r35.w, r24.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r24.y + mov r33.z, r34.y + mov r33.w, r32.z + add r24.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.yxzy, cb4[400].xxxx + div r33.xyz, r33.zywz, r24.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.xyzx, cb4[400].yyyy + mov r32.w, r33.x + mad r34.xyzw, r30.xyxy, cb4[400].xyxy, r32.ywxw + mad r30.zw, r30.xxxy, cb4[400].xxxy, r32.zzzw + mov r33.w, r32.y + mov r32.yw, r33.yyyz + mad r35.xyzw, r30.xyxy, cb4[400].xyxy, r32.xyzy + mad r33.xyzw, r30.xyxy, cb4[400].xyxy, r33.wywz + mad r32.xyzw, r30.xyxy, cb4[400].xyxy, r32.xwzw + mul r36.xyzw, r24.xxxy, r31.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r34.xyxx, t6.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r34.zwzz, t6.xxxx, s4, r24.z + mul r21.w, r21.w, r36.y + mad r20.w, r36.x, r20.w, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r30.zwzz, t6.xxxx, s4, r24.z + mad r20.w, r36.z, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r33.xyxx, t6.xxxx, s4, r24.z + mad r20.w, r36.w, r21.w, r20.w + mul r30.xyzw, r24.yyww, r31.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.xyxx, t6.xxxx, s4, r24.z + mad r20.w, r30.x, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.zwzz, t6.xxxx, s4, r24.z + mad r20.w, r30.y, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r33.zwzz, t6.xxxx, s4, r24.z + mad r20.w, r30.z, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r32.xyxx, t6.xxxx, s4, r24.z + mad r20.w, r30.w, r21.w, r20.w + ige r21.w, r20.y, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r23.z, r25.y, r25.x + or r23.z, r25.z, r23.z + and r24.x, r24.z, l(0x7fffffff) + ult r24.x, l(0x7f800000), r24.x + or r23.z, r23.z, r24.x + mul r24.x, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r32.zwzz, t6.xxxx, s4, r24.z + mad r20.w, r24.x, r24.y, r20.w + add r20.w, r20.w, l(-1.000000) + mad r20.y, cb4[r20.y + 288].w, r20.w, l(1.000000) + movc r20.y, r23.z, l(1.000000), r20.y + movc r20.y, r21.w, r20.y, l(1.000000) + else + mov r20.y, l(1.000000) + endif + if_nz r22.w + dp3 r20.w, r15.xyzx, r27.xyzx + mul_sat r21.w, r19.w, cb3[r15.w + 6].z + mad r21.w, r21.w, l(0.500000), r14.y + min r21.w, r21.w, l(1.000000) + div r21.w, r14.y, r21.w + mad r24.xyz, r15.xyzx, r20.wwww, -r27.xyzx + dp3 r22.w, r28.xyzx, r24.xyzx + mul r20.w, r20.w, r20.w + mad r20.w, cb3[r15.w + 6].z, cb3[r15.w + 6].z, -r20.w + div_sat r20.w, r22.w, r20.w + mad r24.xyz, r27.xyzx, r20.wwww, r28.xyzx + dp3 r20.w, r24.xyzx, r24.xyzx + rsq r20.w, r20.w + mul r26.xyz, r20.wwww, r24.xyzx + else + mov r21.w, l(1.000000) + endif + if_nz r19.z + mul_sat r19.z, r19.w, cb3[r17.w + 6].y + mad r24.xyz, r8.xyzx, r4.zzzz, r26.xyzx + dp3 r19.w, r24.xyzx, r24.xyzx + max r19.w, r19.w, l(0.0000610351562) + rsq r19.w, r19.w + mul r24.xyz, r19.wwww, r24.xyzx + dp3_sat r19.w, r3.xyzx, r24.xyzx + dp3_sat r20.w, r9.xyzx, r24.xyzx + lt r22.w, l(0.000000), r19.z + mul r19.z, r19.z, r19.z + mad r23.z, r20.w, l(3.600000), l(0.400000) + div r19.z, r19.z, r23.z + mad r19.z, r11.w, r11.w, r19.z + min r19.z, r19.z, l(1.000000) + movc r19.z, r22.w, r19.z, r14.y + mul r19.z, r19.z, r19.z + mad r22.w, r19.w, r19.z, -r19.w + mad r19.w, r22.w, r19.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + mul r22.w, r20.w, r20.w + mul r22.w, r22.w, r22.w + mul r23.z, r20.w, r22.w + mad r20.w, -r22.w, r20.w, l(1.000000) + mad r24.xyz, r10.xyzx, r20.wwww, r23.zzzz + mul r19.w, r19.w, r19.w + div r19.w, r19.z, r19.w + mul r19.w, r21.w, r19.w + mad r20.w, -r11.x, r19.z, r11.x + mad r20.w, r20.w, r11.x, r19.z + sqrt r20.w, r20.w + mad r21.w, -r20.x, r19.z, r20.x + mad r19.z, r21.w, r20.x, r19.z + sqrt r19.z, r19.z + mul r19.z, r11.x, r19.z + mad r19.z, r20.x, r20.w, r19.z + add r19.z, r19.z, l(0.000100) + div r19.z, l(0.500000), r19.z + mul r19.z, r19.z, r19.w + mul r24.xyz, r19.zzzz, r24.xyzx + min r24.xyz, r24.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r19.zw, r20.xxxz, l(0.000000, 0.000000, 0.968750, 0.968750), l(0.000000, 0.000000, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r19.z, r19.zwzz, t9.yzxw, s1, l(0.000000) + mul r19.z, r7.w, r19.z + mul r19.z, r4.w, r19.z + div r19.z, r19.z, r6.w + mul r25.xyz, r16.xyzx, r19.zzzz + div r25.xyz, r25.xyzx, r17.xyzx + add r24.xyz, r24.xyzx, r25.xyzx + mul r24.xyz, r24.xyzx, cb3[r17.w + 6].zzzz + max r24.xyz, r24.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r24.xyz, r24.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r25.xyz, r12.xyzx, r20.xxxx + mad r24.xyz, r24.xyzx, r20.xxxx, r25.xyzx + mul r19.xzw, r19.xxxx, cb3[r18.z + 6].xxyz + mul r19.xzw, r20.yyyy, r19.xxzw + mul r19.xzw, r18.xxxx, r19.xxzw + mul r19.xzw, r19.xxzw, r24.xxyz + else + mov r19.xzw, l(0,0,0,0) + endif + else + if_z r18.y + mad r18.x, cb3[r15.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r18.x, -|cb3[r15.w + 6].x| + add r24.y, -r24.x, cb3[r15.w + 6].y + add r18.x, -|r24.x|, l(1.000000) + add r18.x, -|r24.y|, r18.x + max r18.x, r18.x, l(0.000488281250) + ge r18.y, cb3[r15.w + 6].x, l(0.000000) + movc r24.z, r18.y, r18.x, -r18.x + dp3 r18.x, r24.xyzx, r24.xyzx + rsq r18.x, r18.x + mul r20.xyw, r18.xxxx, r24.xyxz + add r24.xyz, -r5.xyzx, cb3[r23.x + 6].xyzx + dp3 r18.x, r24.xyzx, r24.xyzx + rsq r18.y, r18.x + mul r25.xyz, r18.yyyy, r24.xyzx + ftoi r17.w, cb3[r17.w + 6].w + mul r26.xyz, r20.xywx, cb3[r15.w + 6].zzzz + mad r27.xyz, -r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + mad r26.xyz, r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + ftou r18.y, cb3[r18.z + 6].w + and r18.y, r18.y, l(1) + ieq r18.z, r18.y, l(0) + not r18.z, r18.z + lt r21.w, l(0.000000), cb3[r15.w + 6].z + and r18.z, r18.z, r21.w + dp3 r21.w, r27.xyzx, r27.xyzx + sqrt r21.w, r21.w + dp3 r22.w, r26.xyzx, r26.xyzx + sqrt r22.w, r22.w + dp3 r23.z, r27.xyzx, r26.xyzx + mad r21.w, r21.w, r22.w, r23.z + mad r21.w, r21.w, l(0.500000), l(1.000000) + div r21.w, l(1.000000, 1.000000, 1.000000, 1.000000), r21.w + movc r21.w, r18.z, r21.w, l(1.000000) + lt r22.w, cb3[r23.w + 6].w, l(0.000000) + if_nz r22.w + mul r22.w, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r22.w, r18.x, r22.w + mad r22.w, -r22.w, r22.w, l(1.000000) + max r22.w, r22.w, l(0.000000) + add r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + and r23.z, r18.z, l(0x3f800000) + add r24.w, -r18.x, r21.w + mad r18.x, r23.z, r24.w, r18.x + mul r22.w, r22.w, r22.w + mul r18.x, r18.x, r22.w + else + mul r26.xyz, r24.xyzx, cb3[r23.x + 6].wwww + dp3 r22.w, r26.xyzx, r26.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb3[r23.w + 6].w + exp r22.w, r22.w + mul r18.x, r21.w, r22.w + endif + dp3 r20.x, r25.xyzx, -r20.xywx + add r20.x, r20.x, -cb3[r15.w + 6].z + mul_sat r20.x, r20.x, cb3[r15.w + 6].w + mul r20.x, r20.x, r20.x + movc r20.x, r18.y, l(1.000000), r20.x + mul r18.x, r18.x, r20.x + not r18.z, r18.z + ige r20.x, r17.w, l(0) + and r18.z, r18.z, r20.x + if_nz r18.z + if_z r18.y + ishl r18.z, r17.w, l(2) + mul r20.xyw, r5.yyyy, cb5[r18.z + 33].xyxw + mad r20.xyw, cb5[r18.z + 32].xyxw, r5.xxxx, r20.xyxw + mad r20.xyw, cb5[r18.z + 34].xyxw, r5.zzzz, r20.xyxw + add r20.xyw, r20.xyxw, cb5[r18.z + 35].xyxw + div_sat r20.xy, r20.xyxx, r20.wwww + mad r20.xy, r20.xyxx, cb5[r17.w + 0].zwzz, cb5[r17.w + 0].xyxx + else + ishl r18.z, r17.w, l(2) + dp3 r26.x, -r24.xyzx, cb5[r18.z + 32].xyzx + dp3 r26.y, -r24.xyzx, cb5[r18.z + 33].xyzx + dp3 r26.z, -r24.xyzx, cb5[r18.z + 34].xyzx + lt r18.z, |r26.x|, |r26.y| + and r18.z, r18.z, l(1) + dp2 r20.w, |r26.xyxx|, icb[r18.z + 0].xyxx + lt r20.w, r20.w, |r26.z| + movc r18.z, r20.w, l(2), r18.z + dp3 r20.w, r26.xyzx, icb[r18.z + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r18.z, l(31), l(1), r18.z, r20.w + ushr r20.w, r18.z, l(1) + dp3 r20.w, r26.xyzx, icb[r20.w + 0].xyzx + div r21.w, l(0.000244140625), cb5[r17.w + 0].w + add r21.w, -r21.w, l(0.500000) + utof r22.w, r18.z + ult r23.z, r18.z, l(2) + and r23.z, r23.z, l(2) + dp2 r23.z, r26.xzxx, icb[r23.z + 0].xzxx + mul r23.z, r23.z, icb[r18.z + 4].z + div r23.z, r23.z, |r20.w| + mad r22.w, r23.z, r21.w, r22.w + add r22.w, r22.w, l(0.500000) + mul_sat r24.x, r22.w, l(0.166666672) + iadd r22.w, l(-1), icb[r18.z + 4].y + dp2 r22.w, r26.yzyy, icb[r22.w + 0].xyxx + mul r18.z, r22.w, icb[r18.z + 4].w + div r18.z, r18.z, |r20.w| + mad_sat r24.y, -r18.z, r21.w, l(0.500000) + mad r20.xy, r24.xyxx, cb5[r17.w + 0].zwzz, cb5[r17.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.w, r20.xyxx, t11.yzwx, s1, l(0.000000) + mul r18.x, r17.w, r18.x + endif + lt r17.w, l(0.000000), r18.x + if_nz r17.w + if_z r18.y + ftoi r17.w, cb3[r23.y + 6].x + else + add r18.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + lt r20.xyw, |r18.yzyz|, |r18.xxxy| + and r20.x, r20.y, r20.x + lt r18.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + ushr r20.y, cb3[r15.w + 6].w, l(24) + ubfe r23.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r15.w + 6].wwww + movc r18.x, r18.x, r20.y, r23.x + and r15.w, l(255), cb3[r15.w + 6].w + movc r15.w, r18.y, r23.z, r15.w + ubfe r18.y, l(8), l(8), cb3[r23.y + 6].x + and r20.y, l(255), cb3[r23.y + 6].x + movc r18.y, r18.z, r18.y, r20.y + movc r15.w, r20.w, r15.w, r18.y + movc r15.w, r20.x, r18.x, r15.w + ilt r18.x, r15.w, l(80) + movc r17.w, r18.x, r15.w, l(-1) + endif + ishl r15.w, r17.w, l(2) + mad r18.xyz, r25.xyzx, cb4[r17.w + 288].xxxx, r5.xyzx + mul r20.x, l(5.000000), cb4[r17.w + 288].y + mad r18.xyz, r3.xyzx, r20.xxxx, r18.xyzx + mul r23.xyzw, r18.yyyy, cb4[r15.w + 65].xyzw + mad r23.xyzw, cb4[r15.w + 64].xyzw, r18.xxxx, r23.xyzw + mad r23.xyzw, cb4[r15.w + 66].xyzw, r18.zzzz, r23.xyzw + add r23.xyzw, r23.xyzw, cb4[r15.w + 67].xyzw + div r18.xyz, r23.xyzx, r23.wwww + ge r20.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyxz + ge r23.xyz, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r24.xy, -cb4[r17.w + 344].xyxx, cb4[r17.w + 344].zwzz + mad r18.xy, r18.xyxx, r24.xyxx, cb4[r17.w + 344].xyxx + mad r24.xy, r18.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r24.xy, r24.xyxx + mad r18.xy, r18.xyxx, cb4[400].zwzz, -r24.xyxx + add r25.xyzw, r18.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r26.xyzw, r25.xxzz, r25.xxzz + add r24.zw, -r18.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r25.xz, r18.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r27.xy, r18.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r28.xy, r24.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r27.xy, -r27.xyxx, r27.xyxx, r25.ywyy + add r27.xy, r27.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r27.xy, r27.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r26.xz, r26.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r18.xy, r26.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r18.xyxx + mul r29.xy, r18.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r18.xy, -r25.xzxx, r25.xzxx, r24.zwzz + add r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r30.xy, r18.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r18.xy, r25.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r29.z, r30.x + mov r29.w, r18.x + mov r28.z, r27.x + mov r28.w, r26.x + add r25.xyzw, r28.zwxz, r29.zwxz + mov r30.z, r29.y + mov r30.w, r18.y + mov r27.z, r28.y + mov r27.w, r26.z + add r26.xyz, r27.zywz, r30.zywz + div r28.xyz, r28.xzwx, r25.zwyz + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.yxzy, cb4[400].xxxx + div r27.xyz, r27.zywz, r26.xyzx + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.xyzx, cb4[400].yyyy + mov r28.w, r27.x + mad r29.xyzw, r24.xyxy, cb4[400].xyxy, r28.ywxw + mad r18.xy, r24.xyxx, cb4[400].xyxx, r28.zwzz + mov r27.w, r28.y + mov r28.yw, r27.yyyz + mad r30.xyzw, r24.xyxy, cb4[400].xyxy, r28.xyzy + mad r27.xyzw, r24.xyxy, cb4[400].xyxy, r27.wywz + mad r24.xyzw, r24.xyxy, cb4[400].xyxy, r28.xwzw + mul r28.xyzw, r25.zwyz, r26.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r29.xyxx, t6.xxxx, s4, r18.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r29.zwzz, t6.xxxx, s4, r18.z + mul r21.w, r21.w, r28.y + mad r15.w, r28.x, r15.w, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r18.xyxx, t6.xxxx, s4, r18.z + mad r15.w, r28.z, r18.x, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r27.xyxx, t6.xxxx, s4, r18.z + mad r15.w, r28.w, r18.x, r15.w + mul r28.xyzw, r25.xyzw, r26.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.xyxx, t6.xxxx, s4, r18.z + mad r15.w, r28.x, r18.x, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.zwzz, t6.xxxx, s4, r18.z + mad r15.w, r28.y, r18.x, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r27.zwzz, t6.xxxx, s4, r18.z + mad r15.w, r28.z, r18.x, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r24.xyxx, t6.xxxx, s4, r18.z + mad r15.w, r28.w, r18.x, r15.w + ige r18.x, r17.w, l(0) + or r20.xyw, r20.xyxw, r23.xyxz + or r18.y, r20.y, r20.x + or r18.y, r20.w, r18.y + and r20.x, r18.z, l(0x7fffffff) + ult r20.x, l(0x7f800000), r20.x + or r18.y, r18.y, r20.x + mul r20.x, r25.y, r26.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r24.zwzz, t6.xxxx, s4, r18.z + mad r15.w, r20.x, r18.z, r15.w + add r15.w, r15.w, l(-1.000000) + mad r15.w, cb4[r17.w + 288].w, r15.w, l(1.000000) + movc r15.w, r18.y, l(1.000000), r15.w + movc r15.w, r18.x, r15.w, l(1.000000) + else + mov r15.w, l(1.000000) + endif + else + mov r15.w, l(1.000000) + endif + mul r11.z, r11.z, r15.w + mov r19.xzw, l(0,0,0,0) + endif + add r22.xyz, r19.xzwx, r22.xyzx + mov r12.w, r16.w + endloop + mov r8.w, r11.z + add r21.xyz, r21.xyzx, r22.xyzx + iadd r9.w, r9.w, l(1) +endloop +mad r8.xyz, r21.xyzx, r8.wwww, r14.xzwx +ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r4.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + add r1.x, r0.z, r13.x + mad r2.z, r11.w, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.x, |r1.x| + mul r1.x, r1.x, r2.z + exp r1.x, r1.x + add r1.x, r0.z, r1.x + add r1.x, r1.x, l(-1.000000) + mov_sat r11.xyz, r1.xxxx + mad r14.xyz, r12.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r12.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r12.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r11.xyz, r1.yyyy + mov r14.xyz, r1.yyyy +endif +mad r16.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r1.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r2.xyxx +dp2 r0.z, r1.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r16.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r16.xyzx +mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r17.xyz, r16.xzyx, -r17.xyzx +max r0.z, |r17.y|, |r17.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.x, |r17.z|, l(-208.000000) +mul_sat r1.x, r1.x, l(0.031250) +max r0.z, r0.z, r1.x +ne r1.x, l(0.000000), cb0[210].w +lt r1.y, r0.z, l(1.000000) +and r1.x, r1.y, r1.x +if_nz r1.x + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r16.xzyx, -r17.xyzx + max r1.x, |r17.y|, |r17.x| + add r1.x, r1.x, l(-29.000000) + add r1.y, |r17.z|, l(-13.000000) + mul_sat r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + max r1.x, r1.y, r1.x + lt r1.y, r1.x, l(1.000000) + if_nz r1.y + mad r17.xyz, r16.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t15.yzwx, s2, l(0.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r4.z, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r17.y + min r2.z, r4.z, r2.z + mul r17.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t16.xyzw, s1, l(0.000000) + mad r2.z, r19.w, r1.y, r0.z + add r20.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t16.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mul r20.xyzw, r1.yyyy, r20.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r1.yyyy, r17.xyzw + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r1.yyyy, r18.xyzw + else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r16.xzyx, -r19.xyzx + max r1.y, |r19.y|, |r19.x| + add r1.y, r1.y, l(-116.000000) + mul_sat r1.y, r1.y, l(0.125000) + add r4.z, |r19.z|, l(-52.000000) + mul_sat r4.z, r4.z, l(0.125000) + max r1.y, r1.y, r4.z + lt r4.z, r1.y, l(1.000000) + if_nz r4.z + mad r19.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r21.xyz, r19.xyzx, cb0[211].xyzx + round_ni r21.xyz, r21.xyzx + mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r19.xyzx, t17.yzwx, s2, l(0.000000) + add r4.z, -r1.y, l(1.000000) + mul r1.x, r1.x, r4.z + mul r4.z, l(0.500000), cb0[211].y + mad r6.w, -cb0[211].y, l(0.500000), l(1.000000) + max r4.z, r4.z, r19.y + min r4.z, r6.w, r4.z + mul r19.w, r4.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyzw, r19.xwzx, t18.xyzw, s1, l(0.000000) + mad r2.z, r22.w, r1.x, r2.z + add r23.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r23.xyzx, t18.xyzw, s1, l(0.000000) + mad r23.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r21.yyyy, r23.xyzx + mov r23.w, r21.y + mad r20.xyzw, r23.xyzw, r1.xxxx, r20.xyzw + add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.xxxx, r19.xyzx + mov r19.w, r21.x + mad r17.xyzw, r19.xyzw, r1.xxxx, r17.xyzw + mad r19.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r19.xyzx + mad r18.xyzw, r21.xyzw, r1.xxxx, r18.xyzw + endif + lt r1.x, l(0.000000), r1.y + if_nz r1.x + mad r16.xyz, r16.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r16.xyzx, cb0[211].xyzx + mul r21.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r19.xyzx + mad r19.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r16.xyz, r21.xyzx, r16.xyzx + min r16.xyz, r19.xyzx, r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r16.xyzx, t19.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.y + max r1.y, r21.y, r16.y + min r1.y, r19.y, r1.y + mul r16.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t20.xyzw, s1, l(0.000000) + add r21.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t20.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r22.yyyy, r21.xyzx + mov r21.w, r22.y + mad r20.xyzw, r21.xyzw, r1.xxxx, r20.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t20.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r22.xxxx, r16.xyzx + mov r16.w, r22.x + mad r17.xyzw, r16.xyzw, r1.xxxx, r17.xyzw + mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r16.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + mad r2.z, r19.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r16.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r16.y, r0.z, l(0.500000) +else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r16.xy, l(0,1.000000,0,0) +endif +mul r19.xyzw, r16.yxyy, cb0[213].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r1.xy, r16.yxyy, cb0[213].wyww +mad r19.x, r1.y, l(0.375000), r1.x +add r18.xyzw, r18.xyzw, r19.wyzx +mul r19.xyzw, r16.yxyy, cb0[214].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r1.xy, r16.yxyy, cb0[214].wyww +mad r19.x, r1.y, l(0.375000), r1.x +add r17.xyzw, r17.xyzw, r19.wyzx +mul r19.xyzw, r16.yxyy, cb0[215].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r1.xy, r16.yxyy, cb0[215].wyww +mad r19.x, r1.y, l(0.375000), r1.x +add r16.xyzw, r19.wyzx, r20.xyzw +ge r1.xy, r4.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r1.y, r1.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r19.xyzw, r4.xyxx, t14.xyzw, s1, l(0.000000) + lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r19.xyzw| + or r1.xy, r20.zwzz, r20.xyxx + or r0.z, r1.y, r1.x + if_nz r0.z + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.y, r0.z + mov r2.z, l(0) + loop + ge r4.x, l(4.600000), r1.y + breakc_nz r4.x + iadd r4.x, r2.z, l(1) + mul r4.yz, r1.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000) + mov r1.xy, r4.yzyy + mov r2.z, r4.x + continue + endloop + mul r19.xyzw, r1.xxxx, r19.xyzw + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb6[3].x, cb6[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r1.x, r0.z, l(0.00390625000) + mov r1.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xy, r1.xyxx, t13.xyzw, s1, l(0.000000) + mad r1.xy, r1.xyxx, cb6[2].xyxx, cb6[2].zwzz + mul r20.x, r1.x, l(3.54490781) + mul r20.yzw, r1.yyyy, r19.yyzw + mul r0.z, r19.x, l(0.406976730) + exp r0.z, r0.z + mul r19.xyzw, r0.zzzz, r20.xyzw + mov r20.xyzw, r19.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r2.z + breakc_nz r1.x + mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r21.xyzw, r20.xyzw + dp2 r1.y, r21.yxyy, r20.xyxx + dp2 r4.x, r21.zxzz, r20.xzxx + dp2 r4.y, r21.wxww, r20.xwxx + iadd r4.z, r0.z, l(1) + mov r20.xy, r1.xyxx + mov r20.zw, r4.xxxy + mov r0.z, r4.z + continue + endloop + mul r19.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r19.xyzw, r20.xyzw + dp2 r1.x, r19.yxyy, r20.xyxx + dp2 r1.y, r19.zxzz, r20.xzxx + dp2 r2.z, r19.wxww, r20.xwxx + mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.x, r19.xyzw, r20.xyzw + dp2 r4.y, r19.yxyy, r20.xyxx + dp2 r4.z, r19.zxzz, r20.xzxx + dp2 r6.w, r19.wxww, r20.xwxx + mul r20.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.w, r19.xyzw, r20.xyzw + dp2 r8.w, r19.yxyy, r20.xyxx + dp2 r9.w, r19.zxzz, r20.xzxx + dp2 r10.w, r19.wxww, r20.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r2.z, l(-1.02332675) + mul r18.yz, r1.xxyx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r17.x, r6.w, l(-1.02332675) + mul r17.yzw, r4.yyzx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) + mul r16.w, r7.w, l(0.886226952) + mul r16.x, r10.w, l(-1.02332675) + mul r16.y, r8.w, l(-1.02332675) + mul r16.z, r9.w, l(1.02332675) + endif +endif +dp3 r0.z, r18.xyzx, r3.xyzx +add r0.z, r18.w, r0.z +max r4.x, r0.z, l(0.000000) +dp3 r0.z, r17.xyzx, r3.xyzx +add r0.z, r17.w, r0.z +max r4.y, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r3.xyzx +add r0.z, r16.w, r0.z +max r4.z, r0.z, l(0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.x, r11.w, l(0.001000) +log r1.x, r1.x +mad r1.x, -r1.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.x +mul r1.xy, r2.xyxx, cb1[0].wwww +round_ni r1.xy, r1.xyxx +add r2.z, |r1.w|, -cb1[2].y +round_ni r2.z, r2.z +add r6.w, l(-1.000000), cb1[1].x +max r7.w, r2.z, l(0.000000) +min r6.w, r6.w, r7.w +ge r2.z, r6.w, r2.z +mad r1.x, r1.y, cb1[0].x, r1.x +ftoi r1.x, r1.x +iadd r1.x, r1.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx +ftoi r1.y, r6.w +iadd r1.y, r1.y, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r1.y, l(0), t0.xxxx +and r1.x, r1.y, r1.x +and r1.x, r1.x, r2.z +mul r16.xyz, r4.xyzx, cb0[111].xxxx +dp3 r1.y, r16.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r3.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r2.z, l(1.000000) +mov r6.w, r1.x +mov r7.w, l(0) +loop + lt r8.w, l(0.010000), r2.z + ine r9.w, r6.w, l(0) + and r9.w, r8.w, r9.w + if_nz r9.w + firstbit_lo r9.w, r6.w + ishl r10.w, l(1), r9.w + xor r6.w, r6.w, r10.w + ishl r9.w, r9.w, l(3) + dp4 r17.x, cb1[r9.w + 6].xyzw, r5.xyzw + dp4 r17.y, cb1[r9.w + 7].xyzw, r5.xyzw + dp4 r17.z, cb1[r9.w + 8].xyzw, r5.xyzw + ge r18.xyz, cb1[r9.w + 5].xyzx, |r17.xyzx| + and r10.w, r18.y, r18.x + and r10.w, r18.z, r10.w + if_nz r10.w + mul r10.w, l(0.100000), cb1[r9.w + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb1[r9.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb1[r9.w + 9].xyzx + eq r11.w, l(1.000000), cb1[r9.w + 10].x + if_nz r11.w + dp3 r20.x, cb1[r9.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb1[r9.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb1[r9.w + 8].xyzx, r15.xyzx + add r21.xyz, -r17.xyzx, cb1[r9.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb1[r9.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r11.w, r21.y, r21.x + min r11.w, r21.z, r11.w + mad r17.xyz, r20.xyzx, r11.wwww, r17.xyzx + else + mov r17.xyz, r15.xyzx + endif + dp3 r11.w, r17.xyzx, r17.xyzx + rsq r11.w, r11.w + mul r17.xyz, r11.wwww, r17.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r11.w, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r11.wwww + lt r11.w, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r20.xxxy + movc r17.xy, r11.wwww, r17.zwzz, r17.xyxx + dp4 r11.w, cb1[r9.w + 4].xyzw, r3.xyzw + max r11.w, r11.w, l(0.000000) + max r11.w, r11.w, l(0.000100) + min r12.w, r19.z, r19.y + min r12.w, r12.w, r19.x + add r13.x, r18.y, r18.x + mad r13.x, r18.z, r18.z, r13.x + mad r10.w, r10.w, r10.w, -r13.x + mul r10.w, r10.w, cb1[r9.w + 9].x + mul r10.w, r10.w, cb1[r9.w + 9].x + add r13.x, l(1.000000), -cb1[r9.w + 10].y + mul r10.w, r10.w, r13.x + mul r10.w, r10.w, l(100.000000) + mad_sat r10.w, r12.w, cb1[r9.w + 10].y, r10.w + mul r12.w, r10.w, cb1[r9.w + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r17.xyxx, cb1[1].wwww, cb1[2].wwww + mov r17.z, cb1[r9.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z + mul r17.xyz, r17.xyzx, cb1[r9.w + 9].wwww + div r13.x, r1.y, r11.w + min r13.x, |r13.x|, l(1.000000) + mad r13.x, r13.x, l(2.000000), r1.y + add r11.w, r11.w, l(2.000000) + div r11.w, r13.x, r11.w + add r11.w, r11.w, l(-1.000000) + mad r11.w, r11.w, cb0[112].w, l(1.000000) + mul r17.xyz, r11.wwww, r17.xyzx + mul r17.xyz, r12.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r2.zzzz, r16.xyzx + mad r9.w, -r10.w, cb1[r9.w + 10].w, l(1.000000) + mul r2.z, r2.z, r9.w + endif + mov r7.w, l(-1) + continue + else + mov r7.w, r8.w + break + endif + mov r7.w, r8.w +endloop +if_nz r7.w + dp3 r1.x, r15.xyzx, r15.xyzx + rsq r1.x, r1.x + mul r15.xyz, r1.xxxx, r15.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r18.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r18.xyzx + itof r17.xyz, r17.xyzx + dp3 r1.x, r15.xyzx, r17.xyzx + div r15.xyz, r15.xyzx, r1.xxxx + lt r1.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r17.xxxy + movc r15.xy, r1.xxxx, r15.zwzz, r15.xyxx + mov r3.w, l(1.000000) + dp4 r1.x, cb1[3].xyzw, r3.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r3.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb1[1].wwww, cb1[2].wwww + mov r3.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r3.xyz, r3.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.y, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.y + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r3.xyz, r0.zzzz, r3.xyzx + mad r16.xyz, r3.xyzx, r2.zzzz, r16.xyzx +endif +mul r3.xyz, r16.xyzx, cb0[112].zzzz +mul r3.xyz, r3.xyzx, cb0[111].yyyy +if_nz r4.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.x, -r0.z, l(1.000000) + mul r16.xyz, r1.xxxx, r3.xyzx + mad r3.xyz, r15.xyzx, r0.zzzz, r16.xyzx +endif +mul r4.xyz, r12.xyzx, r4.xyzx +mul r4.xyz, r4.xyzx, cb0[111].xxxx +add r0.z, -r1.z, l(1.000000) +div r0.z, r0.z, r1.z +mul r1.xyz, r0.zzzz, r10.xyzx +mad r1.xyz, r1.xyzx, r13.yzwy, r13.yzwy +mul r1.xyz, r1.xyzx, r3.xyzx +mul r1.xyz, r11.xyzx, r1.xyzx +mad r1.xyz, r4.xyzx, r14.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r8.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r2.z, r2.w, cb0[154].w, -cb0[153].w +max r2.z, r2.z, l(0.000000) +mul r3.x, r0.z, l(-1.442695) +exp r3.x, r3.x +add r3.x, -r3.x, l(1.000000) +div r0.z, r3.x, r0.z +mad r3.x, r5.y, cb0[156].w, cb0[158].w +mul r3.x, r3.x, l(1.442695) +exp r3.x, r3.x +mul r0.z, r0.z, r3.x +mul r0.z, r0.z, -r2.z +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r9.xyzx, cb0[154].xyzx +mad r2.z, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.w, r0.zzzz, cb0[155].wwww +add r2.z, r2.z, -r3.w +lt r3.w, l(0.000000), cb0[163].z +if_nz r3.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r9.xyzx, -r7.xyzx + add r3.w, r5.y, -cb0[44].y + lt r4.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r4.z + mul r0.x, r0.x, cb0[163].w + div r4.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w + mul r4.w, r0.x, r4.z + mad r5.w, r4.w, r3.w, cb0[44].y + mad r3.w, -r4.w, r3.w, r3.w + mul r4.w, r3.w, cb0[159].z + max r4.w, r4.w, l(-127.000000) + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + add r6.w, r5.w, -cb0[159].x + mul r6.w, r6.w, cb0[159].z + max r6.w, r6.w, l(-127.000000) + exp r6.w, -r6.w + mul r6.w, r6.w, cb0[159].y + lt r7.x, l(5.960464478E-08), |r4.w| + exp r7.y, -r4.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r4.w + mad r4.w, -r4.w, l(0.240226507), l(0.693147182) + movc r4.w, r7.x, r7.y, r4.w + add r5.w, r5.w, -cb0[162].z + mul r5.w, r5.w, cb0[162].x + max r5.w, r5.w, l(-127.000000) + exp r5.w, -r5.w + mul r5.w, r5.w, cb0[162].y + lt r7.x, l(5.960464478E-08), |r3.w| + exp r7.y, -r3.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r7.x, r7.y, r3.w + mul r3.w, r3.w, r5.w + mad r3.w, r6.w, r4.w, r3.w + mad r0.x, -r0.x, r4.z, l(1.000000) + mul r0.x, r2.w, r0.x + mul r0.x, r0.x, r3.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r2.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy + mul r4.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r1.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r4.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t12.xyzw, s1, l(0.000000) + add r0.y, |r1.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r0.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r7.xyz, r0.yyyy, cb0[161].xyzx + mad r4.xyz, r7.xyzx, r4.wwww, r4.xyzx + mul r0.x, r0.x, r4.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r1.w, cb0[44].y, -cb0[159].x + mul r1.w, r1.w, cb0[159].z + max r1.w, r1.w, l(-127.000000) + exp r1.w, -r1.w + mul r1.w, r1.w, cb0[159].y + lt r2.x, l(5.960464478E-08), |r0.w| + exp r2.y, -r0.w + add r2.y, -r2.y, l(1.000000) + div r2.y, r2.y, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r2.x, r2.y, r0.w + add r2.x, cb0[44].y, -cb0[162].z + mul r2.x, r2.x, cb0[162].x + max r2.x, r2.x, l(-127.000000) + exp r2.x, -r2.x + mul r2.x, r2.x, cb0[162].y + lt r2.y, l(5.960464478E-08), |r0.y| + exp r3.w, -r0.y + add r3.w, -r3.w, l(1.000000) + div r3.w, r3.w, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r2.y, r3.w, r0.y + mul r0.y, r0.y, r2.x + mad r0.y, r1.w, r0.w, r0.y + mul r0.y, r2.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r2.xy, r2.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r2.x + add r0.y, r2.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r2.xyw, r0.xxxx, r3.xyxz +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r1.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r2.z, l(12.566371) +sqrt r2.z, r2.z +mul r2.z, r2.z, r3.w +max r2.z, r2.z, l(0.001000) +div r1.w, r1.w, r2.z +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r4.xyzx +// Check fog modification toggle (cb13[12].y) +// If 0 (Original), skip fog modification and output original +if_z cb13[12].y + mad r0.xyz, r1.xyzx, r2.xywx, r0.xyzx + dp3 r0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + dp3 r1.w, r6.xyzx, r6.xyzx + sqrt r1.w, r1.w + mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) + mul r2.x, r1.w, cb0[169].x + mad r1.w, -cb0[169].x, r1.w, l(1.000000) + mul r2.yzw, cb0[168].xxyz, cb0[183].wwww + mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw + sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) + dp2 r2.x, r2.yyyy, r2.xxxx + add r1.w, r1.w, r2.x + add r2.x, r0.w, l(1.000000) + min r1.w, r1.w, r2.x + add r0.xyz, -r1.xyzx, r0.xyzx + mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx + mov o0.w, r0.w + ret +endif + +// === Simplified Fog Modification (Anti-Banding) === +// r1.xyz = scene color (0-255), r2.xyw = transmittance, r0.xyz = fog inscatter (0-255) + +// Normalize colors to 0-1 range +mul r7.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 +mul r8.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 + +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density +add r9.xyz, -r2.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r9.xyz, r9.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r2.xywx + +// Reduce fog inscatter intensity +mul r8.xyz, r8.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + +// Standard fog blend with reduced intensity +mad r10.xyz, r7.xyzx, r9.xyzx, r8.xyzx + +// Scale back to 0-255 +mul r0.xyz, r10.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) + +// Continue with original post-fog processing +dp3 r0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r6.xyzx, r6.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0_original_backup.asm new file mode 100644 index 000000000..c6e6c6e4c --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0_original_backup.asm @@ -0,0 +1,1532 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 20:09:21 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[160], dynamicIndexed +dcl_constantbuffer CB6[4], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture3d (float,float,float,float) t25 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 37 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t22.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t23.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r3.xyz, r1.wwww, r3.xyzx +utof r2.xy, r0.xyxx +mul r4.xy, v0.xyxx, cb0[82].zwzz +mad r4.zw, r4.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r5.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r5.xy, r5.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t1.yzwx, s0, l(0.000000) +mul r5.xyzw, -r4.wwww, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r4.zzzz, r5.xyzw +mad r5.xyzw, cb0[26].xyzw, r1.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r1.w, r5.y, cb0[1].z +mad r1.w, cb0[0].z, r5.x, r1.w +mad r1.w, cb0[2].z, r5.z, r1.w +add r1.w, r1.w, cb0[3].z +eq r2.w, l(0.000000), cb0[86].w +add r6.xyz, -r5.xyzx, cb0[44].xyzx +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r8.xyz, r2.wwww, r6.xyzx, r7.xyzx +dp3 r2.w, r8.xyzx, r8.xyzx +max r4.z, r2.w, l(9.999999939E-09) +rsq r4.z, r4.z +mul r9.xyz, r4.zzzz, r8.xyzx +mul r2.w, r2.w, r4.z +lt r4.w, l(0.000488281250), cb0[234].x +if_nz r4.w + sample_b_indexable(texture2d)(float,float,float,float) r10.xy, v1.xyxx, t21.xyzw, s1, cb0[108].x +else + mov r10.xy, l(1.000000,1.000000,0,0) +endif +min r6.w, r10.y, r10.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r7.w, r10.y, l(-1.000000) +mad r11.x, r1.z, r7.w, l(1.000000) +add r11.y, -r1.z, l(1.000000) +movc r10.yz, r4.wwww, r11.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r2.z, r10.y +add r4.w, -r1.z, r2.z +mad r1.z, r6.w, r4.w, r1.z +add r2.z, -r1.z, r2.z +mad r11.w, r10.x, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r12.xyz, r0.xyzz, t24.xyzw +add r1.z, -r10.z, l(1.000000) +mad r1.z, r6.w, r1.z, r10.z +add r2.z, -r1.z, l(1.000000) +mad r1.z, r10.x, r2.z, r1.z +mul r10.xyz, r1.zzzz, r12.xyzx +mul r13.xyz, r1.xxxx, r10.xyzx +mad r12.xyz, r12.xyzx, r1.zzzz, -r13.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r10.xyz, r10.xyzx, r1.xxxx, r1.zzzz +dp3 r1.x, r3.xyzx, r9.xyzx +max r13.x, r1.x, l(0.000000) +mul r14.y, r11.w, r11.w +mul r15.x, r13.x, r13.x +mul r15.z, r13.x, r15.x +mul r1.x, r14.y, r14.y +mul r14.z, r14.y, r1.x +mov r13.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r16.x, l(3.327070, 1.000000, 0.000000, 0.000000), r13.xyxx +dp2 r16.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r13.xzxx +mov r14.x, l(1.000000) +dp2 r1.z, r16.xyxx, r14.xyxx +mov r15.yw, l(0,9.044010,0,1.000000) +dp3 r16.x, l(3.596850, -1.367720, 1.000000, 0.000000), r15.xzwx +dp3 r16.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r15.xyzx +mov r17.x, l(5.565890) +mov r17.yz, r15.xxzx +dp3 r16.z, l(1.000000, 19.788601, -20.212299, 0.000000), r17.xyzx +dp3 r2.z, r16.xyzx, r14.xyzx +div r1.z, r1.z, r2.z +dp2 r16.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r13.xwxx +mov r15.x, l(1.296780) +mov r15.y, r13.x +dp2 r16.y, l(1.000000, -0.755907, 0.000000, 0.000000), r15.xyxx +dp2 r2.z, r16.xyxx, r14.xyxx +dp3 r16.x, l(2.923380, 59.418800, 1.000000, 0.000000), r15.yzwy +mov r15.xw, l(20.322500,0,0,121.563004) +dp3 r16.y, l(1.000000, -27.030199, 222.591995, 0.000000), r15.xyzx +dp3 r16.z, l(626.130005, 316.627014, 1.000000, 0.000000), r15.yzwy +dp3 r4.w, r16.xyzx, r14.xyzx +div r2.z, r2.z, r4.w +mad r13.yzw, r10.xxyz, r1.zzzz, r2.zzzz +add r1.z, r1.z, r2.z +ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t7.xzyw +lt r0.z, l(0.001000), r14.x +if_nz r0.z + dp3 r0.z, -r9.xyzx, r3.xyzx + add r0.z, r0.z, r0.z + mad r15.xyz, r3.xyzx, -r0.zzzz, -r9.xyzx + dp3 r0.z, -cb3[0].xyzx, r15.xyzx + mad r16.xyz, cb3[0].xyzx, r0.zzzz, r15.xyzx + lt r0.z, r0.z, cb3[4].z + dp3 r2.z, r16.xyzx, r16.xyzx + max r2.z, r2.z, l(0.0000610351562) + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb3[4].yyyy + mad r16.xyz, -cb3[0].xyzx, cb3[4].zzzz, r16.xyzx + dp3 r2.z, r16.xyzx, r16.xyzx + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + movc r15.xyz, r0.zzzz, r16.xyzx, r15.xyzx + mad r16.xyz, r8.xyzx, r4.zzzz, r15.xyzx + dp3 r0.z, r16.xyzx, r16.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r16.xyz, r0.zzzz, r16.xyzx + dp3_sat r11.y, r15.xyzx, r3.xyzx + dp3_sat r0.z, r3.xyzx, r16.xyzx + min r11.z, r13.x, l(1.000000) + mad r2.z, r0.z, r1.x, -r0.z + mad r0.z, r2.z, r0.z, l(1.000000) + dp3_sat r2.z, r9.xyzx, r16.xyzx + add r2.z, -r2.z, l(1.000000) + mul r4.w, r2.z, r2.z + mul r4.w, r4.w, r4.w + mul r6.w, r2.z, r4.w + add r7.w, -r11.w, l(1.000000) + mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) + mad r8.w, r7.w, r8.w, l(1.049970) + mad r7.w, r7.w, r8.w, l(0.409255) + min r7.w, r7.w, l(0.999000) + add r8.w, -r7.w, l(1.000000) + add r15.xyz, -r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r10.xyzx + mad r2.z, -r4.w, r2.z, l(1.000000) + mad r16.xyz, r10.xyzx, r2.zzzz, r6.wwww + mul r0.z, r0.z, r0.z + div r0.z, r1.x, r0.z + mad r17.xy, -r11.zyzz, r1.xxxx, r11.zyzz + mad r17.xy, r17.xyxx, r11.zyzz, r1.xxxx + sqrt r17.xy, r17.xyxx + mul r17.xy, r11.yzyy, r17.xyxx + add r1.x, r17.y, r17.x + add r1.x, r1.x, l(0.000100) + div r1.x, l(0.500000), r1.x + mul r0.z, r0.z, r1.x + mul r16.xyz, r0.zzzz, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r17.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r17.xyxx, t9.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r1.x, r17.zwzz, t9.xyzw, s1, l(0.000000) + mul r0.z, r0.z, r1.x + mul r0.z, r7.w, r0.z + div r0.z, r0.z, r8.w + mul r17.xyz, r15.xyzx, r15.xyzx + mul r17.xyz, r0.zzzz, r17.xyzx + mad r15.xyz, -r15.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r15.xyz, r17.xyzx, r15.xyzx + add r15.xyz, r15.xyzx, r16.xyzx + mul r15.xyz, r15.xyzx, cb3[4].xxxx + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r15.xyz, r15.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r16.xyz, r11.yyyy, r12.xyzx + mad r15.xyz, r15.xyzx, r11.yyyy, r16.xyzx + mul r15.xyz, r15.xyzx, cb3[1].xyzx + mov r14.z, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r16.xyz, r14.xzxx, t8.xyzw, s1, cb0[108].x + add r0.z, -r14.x, l(1.000000) + mad r14.xzw, r15.xxyz, r16.xxyz, -r15.xxyz + mad r14.xzw, r0.zzzz, r14.xxzw, r15.xxyz + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t10.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r14.xzw, r0.zzzz, r14.xxzw +else + mov r14.xzw, l(0,0,0,0) +endif +mul r11.yz, r2.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r11.yz, r11.yyzy +mad r0.z, r11.z, cb2[1].y, r11.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r1.x, -cb0[85].y, cb2[2].w, |r1.w| +round_ni r1.x, r1.x +add r2.z, l(-1.000000), cb2[1].w +max r4.w, r1.x, l(0.000000) +min r2.z, r2.z, r4.w +mul r4.w, r2.z, l(8.000000) +ftoi r4.w, r4.w +ge r1.x, r2.z, r1.x +iadd r2.z, r4.w, cb0[110].y +dp3 r4.w, -r9.xyzx, r3.xyzx +add r4.w, r4.w, r4.w +mad r15.xyz, r3.xyzx, -r4.wwww, -r9.xyzx +min r11.x, r13.x, l(1.000000) +add r4.w, -r11.w, l(1.000000) +mad r6.w, -r4.w, l(0.383026), l(-0.0761947036) +mad r6.w, r4.w, r6.w, l(1.049970) +mad r4.w, r4.w, r6.w, l(0.409255) +min r4.w, r4.w, l(0.999000) +add r6.w, -r4.w, l(1.000000) +add r16.xyz, -r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r10.xyzx +mad r11.yz, r11.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r7.w, r11.yzyy, t9.yzwx, s1, l(0.000000) +mad r17.xyz, -r16.xyzx, r6.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r18.w, l(1.000000) +mov r19.y, l(1.000000) +mov r20.z, r11.w +mov r21.xyz, l(0,0,0,0) +mov r8.w, l(1.000000) +mov r9.w, l(0) +loop + ilt r10.w, l(7), r9.w + breakc_nz r10.w + iadd r10.w, r0.z, r9.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.w, r10.w, l(0), t0.xxxx + iadd r11.y, r2.z, r9.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.y, r11.y, l(0), t0.xxxx + and r10.w, r10.w, r11.y + and r10.w, r1.x, r10.w + ishl r11.y, r9.w, l(5) + mov r22.xyz, l(0,0,0,0) + mov r11.z, r8.w + mov r12.w, r10.w + loop + breakc_z r12.w + firstbit_lo r15.w, r12.w + ishl r16.w, l(1), r15.w + xor r16.w, r12.w, r16.w + iadd r15.w, r11.y, r15.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r15.wwww, l(1, 3, 5, 6) + bfi r17.w, l(29), l(3), r15.w, l(7) + ftou r19.z, cb3[r23.z + 6].w + ieq r19.z, r19.z, l(1) + if_nz r19.z + add r18.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.w + 6].yxzy + ushr r26.xyz, cb3[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb3[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r19.z, r18.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r19.w, r18.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r18.x, r18.xyzw, r27.xyzw + max r18.y, |r19.w|, |r19.z| + max r18.x, |r18.x|, r18.y + mad r18.y, cb3[r17.w + 6].x, l(0.500000), l(0.500000) + add r18.x, -r18.y, r18.x + mad r18.y, -cb3[r17.w + 6].x, l(0.500000), l(0.500000) + div_sat r18.x, r18.x, r18.y + add r18.x, -r18.x, l(1.000000) + mul r18.x, r18.x, r18.x + else + mov r18.x, l(1.000000) + endif + lt r18.y, l(0.500000), cb3[r23.y + 6].z + lt r18.z, r18.x, l(0.001000) + or r18.z, r18.y, r18.z + if_nz r18.z + mov r12.w, r16.w + continue + endif + ishl r18.z, r15.w, l(3) + bfi r15.w, l(29), l(3), r15.w, l(2) + lt r19.z, cb3[r18.z + 6].w, l(1.500000) + if_nz r19.z + mad r19.z, cb3[r15.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r19.z, -|cb3[r15.w + 6].x| + add r24.y, -r24.x, cb3[r15.w + 6].y + add r19.z, -|r24.x|, l(1.000000) + add r19.z, -|r24.y|, r19.z + max r19.z, r19.z, l(0.000488281250) + ge r19.w, cb3[r15.w + 6].x, l(0.000000) + movc r24.z, r19.w, r19.z, -r19.z + dp3 r19.z, r24.xyzx, r24.xyzx + rsq r19.z, r19.z + mul r24.xyz, r19.zzzz, r24.xyzx + add r25.xyz, -r5.xyzx, cb3[r23.x + 6].xyzx + dp3 r19.z, r25.xyzx, r25.xyzx + rsq r19.w, r19.z + mul r26.xyz, r19.wwww, r25.xyzx + ftoi r20.w, cb3[r17.w + 6].w + mul r27.xyz, r24.xyzx, cb3[r15.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r21.w, cb3[r18.z + 6].w + and r21.w, r21.w, l(1) + ieq r22.w, r21.w, l(0) + not r22.w, r22.w + lt r23.z, l(0.000000), cb3[r15.w + 6].z + and r22.w, r22.w, r23.z + dp3 r23.z, r28.xyzx, r28.xyzx + sqrt r23.z, r23.z + dp3 r24.w, r29.xyzx, r29.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r3.xyzx, r28.xyzx + div r25.w, r25.w, r23.z + dp3 r26.w, r3.xyzx, r29.xyzx + div r26.w, r26.w, r24.w + add r25.w, r25.w, r26.w + mul_sat r30.x, r25.w, l(0.500000) + dp3 r25.w, r28.xyzx, r29.xyzx + mad r23.z, r23.z, r24.w, r25.w + mad r23.z, r23.z, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r23.z + dp3_sat r19.x, r3.xyzx, r26.xyzx + movc r20.xy, r22.wwww, r30.xyxx, r19.xyxx + lt r19.x, cb3[r23.w + 6].w, l(0.000000) + if_nz r19.x + mul r19.x, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r19.x, r19.x, r19.z + mad r19.x, -r19.x, r19.x, l(1.000000) + max r19.x, r19.x, l(0.000000) + add r19.z, r19.z, l(1.000000) + div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z + and r23.z, r22.w, l(0x3f800000) + add r24.w, -r19.z, r20.y + mad r19.z, r23.z, r24.w, r19.z + mul r19.x, r19.x, r19.x + mul r19.x, r19.x, r19.z + else + mul r29.xyz, r25.xyzx, cb3[r23.x + 6].wwww + dp3 r19.z, r29.xyzx, r29.xyzx + min r19.z, r19.z, l(1.000000) + add r19.z, -r19.z, l(1.000000) + log r19.z, r19.z + mul r19.z, r19.z, cb3[r23.w + 6].w + exp r19.z, r19.z + mul r19.x, r19.z, r20.y + endif + dp3 r19.z, r26.xyzx, -r24.xyzx + add r19.z, r19.z, -cb3[r15.w + 6].z + mul_sat r19.z, r19.z, cb3[r15.w + 6].w + mul r19.z, r19.z, r19.z + movc r19.z, r21.w, l(1.000000), r19.z + mul r19.x, r19.z, r19.x + not r19.z, r22.w + ige r20.y, r20.w, l(0) + and r19.z, r19.z, r20.y + if_nz r19.z + if_z r21.w + ishl r19.z, r20.w, l(2) + mul r24.xyz, r5.yyyy, cb5[r19.z + 33].xywx + mad r24.xyz, cb5[r19.z + 32].xywx, r5.xxxx, r24.xyzx + mad r24.xyz, cb5[r19.z + 34].xywx, r5.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb5[r19.z + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb5[r20.w + 0].zwzz, cb5[r20.w + 0].xyxx + else + ishl r19.z, r20.w, l(2) + dp3 r29.x, -r25.xyzx, cb5[r19.z + 32].xyzx + dp3 r29.y, -r25.xyzx, cb5[r19.z + 33].xyzx + dp3 r29.z, -r25.xyzx, cb5[r19.z + 34].xyzx + lt r19.z, |r29.x|, |r29.y| + and r19.z, r19.z, l(1) + dp2 r20.y, |r29.xyxx|, icb[r19.z + 0].xyxx + lt r20.y, r20.y, |r29.z| + movc r19.z, r20.y, l(2), r19.z + dp3 r20.y, r29.xyzx, icb[r19.z + 0].xyzx + lt r20.y, r20.y, l(0.000000) + bfi r19.z, l(31), l(1), r19.z, r20.y + ushr r20.y, r19.z, l(1) + dp3 r20.y, r29.xyzx, icb[r20.y + 0].xyzx + div r23.z, l(0.000244140625), cb5[r20.w + 0].w + add r23.z, -r23.z, l(0.500000) + utof r24.z, r19.z + ult r24.w, r19.z, l(2) + and r24.w, r24.w, l(2) + dp2 r24.w, r29.xzxx, icb[r24.w + 0].xzxx + mul r24.w, r24.w, icb[r19.z + 4].z + div r24.w, r24.w, |r20.y| + mad r24.z, r24.w, r23.z, r24.z + add r24.z, r24.z, l(0.500000) + mul_sat r25.x, r24.z, l(0.166666672) + iadd r24.z, l(-1), icb[r19.z + 4].y + dp2 r24.z, r29.yzyy, icb[r24.z + 0].xyxx + mul r19.z, r24.z, icb[r19.z + 4].w + div r19.z, r19.z, |r20.y| + mad_sat r25.y, -r19.z, r23.z, l(0.500000) + mad r24.xy, r25.xyxx, cb5[r20.w + 0].zwzz, cb5[r20.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.z, r24.xyxx, t11.yzxw, s1, l(0.000000) + mul r19.x, r19.z, r19.x + endif + lt r19.z, l(0.000000), r19.x + if_nz r19.z + if_z r21.w + ftoi r20.y, cb3[r23.y + 6].x + else + add r24.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + lt r25.xyz, |r24.yzzy|, |r24.xxyx| + and r20.w, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r21.w, cb3[r15.w + 6].w, l(24) + ubfe r25.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r15.w + 6].wwww + movc r21.w, r24.x, r21.w, r25.x + and r23.z, l(255), cb3[r15.w + 6].w + movc r23.z, r24.y, r25.y, r23.z + ubfe r24.x, l(8), l(8), cb3[r23.y + 6].x + and r24.y, l(255), cb3[r23.y + 6].x + movc r24.x, r24.z, r24.x, r24.y + movc r23.z, r25.z, r23.z, r24.x + movc r20.w, r20.w, r21.w, r23.z + ilt r21.w, r20.w, l(80) + movc r20.y, r21.w, r20.w, l(-1) + endif + ishl r20.w, r20.y, l(2) + mad r24.xyz, r26.xyzx, cb4[r20.y + 288].xxxx, r5.xyzx + mul r21.w, l(5.000000), cb4[r20.y + 288].y + mad r24.xyz, r3.xyzx, r21.wwww, r24.xyzx + mul r25.xyzw, r24.yyyy, cb4[r20.w + 65].xyzw + mad r25.xyzw, cb4[r20.w + 64].xyzw, r24.xxxx, r25.xyzw + mad r24.xyzw, cb4[r20.w + 66].xyzw, r24.zzzz, r25.xyzw + add r24.xyzw, r24.xyzw, cb4[r20.w + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r30.xy, -cb4[r20.y + 344].xyxx, cb4[r20.y + 344].zwzz + mad r24.xy, r24.xyxx, r30.xyxx, cb4[r20.y + 344].xyxx + mad r30.xy, r24.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r30.xy, r30.xyxx + mad r24.xy, r24.xyxx, cb4[400].zwzz, -r30.xyxx + add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx + mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz + add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r35.z, r36.x + mov r35.w, r24.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r24.y + mov r33.z, r34.y + mov r33.w, r32.z + add r24.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.yxzy, cb4[400].xxxx + div r33.xyz, r33.zywz, r24.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.xyzx, cb4[400].yyyy + mov r32.w, r33.x + mad r34.xyzw, r30.xyxy, cb4[400].xyxy, r32.ywxw + mad r30.zw, r30.xxxy, cb4[400].xxxy, r32.zzzw + mov r33.w, r32.y + mov r32.yw, r33.yyyz + mad r35.xyzw, r30.xyxy, cb4[400].xyxy, r32.xyzy + mad r33.xyzw, r30.xyxy, cb4[400].xyxy, r33.wywz + mad r32.xyzw, r30.xyxy, cb4[400].xyxy, r32.xwzw + mul r36.xyzw, r24.xxxy, r31.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r34.xyxx, t6.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r34.zwzz, t6.xxxx, s4, r24.z + mul r21.w, r21.w, r36.y + mad r20.w, r36.x, r20.w, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r30.zwzz, t6.xxxx, s4, r24.z + mad r20.w, r36.z, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r33.xyxx, t6.xxxx, s4, r24.z + mad r20.w, r36.w, r21.w, r20.w + mul r30.xyzw, r24.yyww, r31.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.xyxx, t6.xxxx, s4, r24.z + mad r20.w, r30.x, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.zwzz, t6.xxxx, s4, r24.z + mad r20.w, r30.y, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r33.zwzz, t6.xxxx, s4, r24.z + mad r20.w, r30.z, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r32.xyxx, t6.xxxx, s4, r24.z + mad r20.w, r30.w, r21.w, r20.w + ige r21.w, r20.y, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r23.z, r25.y, r25.x + or r23.z, r25.z, r23.z + and r24.x, r24.z, l(0x7fffffff) + ult r24.x, l(0x7f800000), r24.x + or r23.z, r23.z, r24.x + mul r24.x, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r32.zwzz, t6.xxxx, s4, r24.z + mad r20.w, r24.x, r24.y, r20.w + add r20.w, r20.w, l(-1.000000) + mad r20.y, cb4[r20.y + 288].w, r20.w, l(1.000000) + movc r20.y, r23.z, l(1.000000), r20.y + movc r20.y, r21.w, r20.y, l(1.000000) + else + mov r20.y, l(1.000000) + endif + if_nz r22.w + dp3 r20.w, r15.xyzx, r27.xyzx + mul_sat r21.w, r19.w, cb3[r15.w + 6].z + mad r21.w, r21.w, l(0.500000), r14.y + min r21.w, r21.w, l(1.000000) + div r21.w, r14.y, r21.w + mad r24.xyz, r15.xyzx, r20.wwww, -r27.xyzx + dp3 r22.w, r28.xyzx, r24.xyzx + mul r20.w, r20.w, r20.w + mad r20.w, cb3[r15.w + 6].z, cb3[r15.w + 6].z, -r20.w + div_sat r20.w, r22.w, r20.w + mad r24.xyz, r27.xyzx, r20.wwww, r28.xyzx + dp3 r20.w, r24.xyzx, r24.xyzx + rsq r20.w, r20.w + mul r26.xyz, r20.wwww, r24.xyzx + else + mov r21.w, l(1.000000) + endif + if_nz r19.z + mul_sat r19.z, r19.w, cb3[r17.w + 6].y + mad r24.xyz, r8.xyzx, r4.zzzz, r26.xyzx + dp3 r19.w, r24.xyzx, r24.xyzx + max r19.w, r19.w, l(0.0000610351562) + rsq r19.w, r19.w + mul r24.xyz, r19.wwww, r24.xyzx + dp3_sat r19.w, r3.xyzx, r24.xyzx + dp3_sat r20.w, r9.xyzx, r24.xyzx + lt r22.w, l(0.000000), r19.z + mul r19.z, r19.z, r19.z + mad r23.z, r20.w, l(3.600000), l(0.400000) + div r19.z, r19.z, r23.z + mad r19.z, r11.w, r11.w, r19.z + min r19.z, r19.z, l(1.000000) + movc r19.z, r22.w, r19.z, r14.y + mul r19.z, r19.z, r19.z + mad r22.w, r19.w, r19.z, -r19.w + mad r19.w, r22.w, r19.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + mul r22.w, r20.w, r20.w + mul r22.w, r22.w, r22.w + mul r23.z, r20.w, r22.w + mad r20.w, -r22.w, r20.w, l(1.000000) + mad r24.xyz, r10.xyzx, r20.wwww, r23.zzzz + mul r19.w, r19.w, r19.w + div r19.w, r19.z, r19.w + mul r19.w, r21.w, r19.w + mad r20.w, -r11.x, r19.z, r11.x + mad r20.w, r20.w, r11.x, r19.z + sqrt r20.w, r20.w + mad r21.w, -r20.x, r19.z, r20.x + mad r19.z, r21.w, r20.x, r19.z + sqrt r19.z, r19.z + mul r19.z, r11.x, r19.z + mad r19.z, r20.x, r20.w, r19.z + add r19.z, r19.z, l(0.000100) + div r19.z, l(0.500000), r19.z + mul r19.z, r19.z, r19.w + mul r24.xyz, r19.zzzz, r24.xyzx + min r24.xyz, r24.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r19.zw, r20.xxxz, l(0.000000, 0.000000, 0.968750, 0.968750), l(0.000000, 0.000000, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r19.z, r19.zwzz, t9.yzxw, s1, l(0.000000) + mul r19.z, r7.w, r19.z + mul r19.z, r4.w, r19.z + div r19.z, r19.z, r6.w + mul r25.xyz, r16.xyzx, r19.zzzz + div r25.xyz, r25.xyzx, r17.xyzx + add r24.xyz, r24.xyzx, r25.xyzx + mul r24.xyz, r24.xyzx, cb3[r17.w + 6].zzzz + max r24.xyz, r24.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r24.xyz, r24.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r25.xyz, r12.xyzx, r20.xxxx + mad r24.xyz, r24.xyzx, r20.xxxx, r25.xyzx + mul r19.xzw, r19.xxxx, cb3[r18.z + 6].xxyz + mul r19.xzw, r20.yyyy, r19.xxzw + mul r19.xzw, r18.xxxx, r19.xxzw + mul r19.xzw, r19.xxzw, r24.xxyz + else + mov r19.xzw, l(0,0,0,0) + endif + else + if_z r18.y + mad r18.x, cb3[r15.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r18.x, -|cb3[r15.w + 6].x| + add r24.y, -r24.x, cb3[r15.w + 6].y + add r18.x, -|r24.x|, l(1.000000) + add r18.x, -|r24.y|, r18.x + max r18.x, r18.x, l(0.000488281250) + ge r18.y, cb3[r15.w + 6].x, l(0.000000) + movc r24.z, r18.y, r18.x, -r18.x + dp3 r18.x, r24.xyzx, r24.xyzx + rsq r18.x, r18.x + mul r20.xyw, r18.xxxx, r24.xyxz + add r24.xyz, -r5.xyzx, cb3[r23.x + 6].xyzx + dp3 r18.x, r24.xyzx, r24.xyzx + rsq r18.y, r18.x + mul r25.xyz, r18.yyyy, r24.xyzx + ftoi r17.w, cb3[r17.w + 6].w + mul r26.xyz, r20.xywx, cb3[r15.w + 6].zzzz + mad r27.xyz, -r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + mad r26.xyz, r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + ftou r18.y, cb3[r18.z + 6].w + and r18.y, r18.y, l(1) + ieq r18.z, r18.y, l(0) + not r18.z, r18.z + lt r21.w, l(0.000000), cb3[r15.w + 6].z + and r18.z, r18.z, r21.w + dp3 r21.w, r27.xyzx, r27.xyzx + sqrt r21.w, r21.w + dp3 r22.w, r26.xyzx, r26.xyzx + sqrt r22.w, r22.w + dp3 r23.z, r27.xyzx, r26.xyzx + mad r21.w, r21.w, r22.w, r23.z + mad r21.w, r21.w, l(0.500000), l(1.000000) + div r21.w, l(1.000000, 1.000000, 1.000000, 1.000000), r21.w + movc r21.w, r18.z, r21.w, l(1.000000) + lt r22.w, cb3[r23.w + 6].w, l(0.000000) + if_nz r22.w + mul r22.w, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r22.w, r18.x, r22.w + mad r22.w, -r22.w, r22.w, l(1.000000) + max r22.w, r22.w, l(0.000000) + add r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + and r23.z, r18.z, l(0x3f800000) + add r24.w, -r18.x, r21.w + mad r18.x, r23.z, r24.w, r18.x + mul r22.w, r22.w, r22.w + mul r18.x, r18.x, r22.w + else + mul r26.xyz, r24.xyzx, cb3[r23.x + 6].wwww + dp3 r22.w, r26.xyzx, r26.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb3[r23.w + 6].w + exp r22.w, r22.w + mul r18.x, r21.w, r22.w + endif + dp3 r20.x, r25.xyzx, -r20.xywx + add r20.x, r20.x, -cb3[r15.w + 6].z + mul_sat r20.x, r20.x, cb3[r15.w + 6].w + mul r20.x, r20.x, r20.x + movc r20.x, r18.y, l(1.000000), r20.x + mul r18.x, r18.x, r20.x + not r18.z, r18.z + ige r20.x, r17.w, l(0) + and r18.z, r18.z, r20.x + if_nz r18.z + if_z r18.y + ishl r18.z, r17.w, l(2) + mul r20.xyw, r5.yyyy, cb5[r18.z + 33].xyxw + mad r20.xyw, cb5[r18.z + 32].xyxw, r5.xxxx, r20.xyxw + mad r20.xyw, cb5[r18.z + 34].xyxw, r5.zzzz, r20.xyxw + add r20.xyw, r20.xyxw, cb5[r18.z + 35].xyxw + div_sat r20.xy, r20.xyxx, r20.wwww + mad r20.xy, r20.xyxx, cb5[r17.w + 0].zwzz, cb5[r17.w + 0].xyxx + else + ishl r18.z, r17.w, l(2) + dp3 r26.x, -r24.xyzx, cb5[r18.z + 32].xyzx + dp3 r26.y, -r24.xyzx, cb5[r18.z + 33].xyzx + dp3 r26.z, -r24.xyzx, cb5[r18.z + 34].xyzx + lt r18.z, |r26.x|, |r26.y| + and r18.z, r18.z, l(1) + dp2 r20.w, |r26.xyxx|, icb[r18.z + 0].xyxx + lt r20.w, r20.w, |r26.z| + movc r18.z, r20.w, l(2), r18.z + dp3 r20.w, r26.xyzx, icb[r18.z + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r18.z, l(31), l(1), r18.z, r20.w + ushr r20.w, r18.z, l(1) + dp3 r20.w, r26.xyzx, icb[r20.w + 0].xyzx + div r21.w, l(0.000244140625), cb5[r17.w + 0].w + add r21.w, -r21.w, l(0.500000) + utof r22.w, r18.z + ult r23.z, r18.z, l(2) + and r23.z, r23.z, l(2) + dp2 r23.z, r26.xzxx, icb[r23.z + 0].xzxx + mul r23.z, r23.z, icb[r18.z + 4].z + div r23.z, r23.z, |r20.w| + mad r22.w, r23.z, r21.w, r22.w + add r22.w, r22.w, l(0.500000) + mul_sat r24.x, r22.w, l(0.166666672) + iadd r22.w, l(-1), icb[r18.z + 4].y + dp2 r22.w, r26.yzyy, icb[r22.w + 0].xyxx + mul r18.z, r22.w, icb[r18.z + 4].w + div r18.z, r18.z, |r20.w| + mad_sat r24.y, -r18.z, r21.w, l(0.500000) + mad r20.xy, r24.xyxx, cb5[r17.w + 0].zwzz, cb5[r17.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.w, r20.xyxx, t11.yzwx, s1, l(0.000000) + mul r18.x, r17.w, r18.x + endif + lt r17.w, l(0.000000), r18.x + if_nz r17.w + if_z r18.y + ftoi r17.w, cb3[r23.y + 6].x + else + add r18.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + lt r20.xyw, |r18.yzyz|, |r18.xxxy| + and r20.x, r20.y, r20.x + lt r18.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + ushr r20.y, cb3[r15.w + 6].w, l(24) + ubfe r23.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r15.w + 6].wwww + movc r18.x, r18.x, r20.y, r23.x + and r15.w, l(255), cb3[r15.w + 6].w + movc r15.w, r18.y, r23.z, r15.w + ubfe r18.y, l(8), l(8), cb3[r23.y + 6].x + and r20.y, l(255), cb3[r23.y + 6].x + movc r18.y, r18.z, r18.y, r20.y + movc r15.w, r20.w, r15.w, r18.y + movc r15.w, r20.x, r18.x, r15.w + ilt r18.x, r15.w, l(80) + movc r17.w, r18.x, r15.w, l(-1) + endif + ishl r15.w, r17.w, l(2) + mad r18.xyz, r25.xyzx, cb4[r17.w + 288].xxxx, r5.xyzx + mul r20.x, l(5.000000), cb4[r17.w + 288].y + mad r18.xyz, r3.xyzx, r20.xxxx, r18.xyzx + mul r23.xyzw, r18.yyyy, cb4[r15.w + 65].xyzw + mad r23.xyzw, cb4[r15.w + 64].xyzw, r18.xxxx, r23.xyzw + mad r23.xyzw, cb4[r15.w + 66].xyzw, r18.zzzz, r23.xyzw + add r23.xyzw, r23.xyzw, cb4[r15.w + 67].xyzw + div r18.xyz, r23.xyzx, r23.wwww + ge r20.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyxz + ge r23.xyz, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r24.xy, -cb4[r17.w + 344].xyxx, cb4[r17.w + 344].zwzz + mad r18.xy, r18.xyxx, r24.xyxx, cb4[r17.w + 344].xyxx + mad r24.xy, r18.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r24.xy, r24.xyxx + mad r18.xy, r18.xyxx, cb4[400].zwzz, -r24.xyxx + add r25.xyzw, r18.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r26.xyzw, r25.xxzz, r25.xxzz + add r24.zw, -r18.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r25.xz, r18.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r27.xy, r18.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r28.xy, r24.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r27.xy, -r27.xyxx, r27.xyxx, r25.ywyy + add r27.xy, r27.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r27.xy, r27.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r26.xz, r26.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r18.xy, r26.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r18.xyxx + mul r29.xy, r18.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r18.xy, -r25.xzxx, r25.xzxx, r24.zwzz + add r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r30.xy, r18.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r18.xy, r25.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r29.z, r30.x + mov r29.w, r18.x + mov r28.z, r27.x + mov r28.w, r26.x + add r25.xyzw, r28.zwxz, r29.zwxz + mov r30.z, r29.y + mov r30.w, r18.y + mov r27.z, r28.y + mov r27.w, r26.z + add r26.xyz, r27.zywz, r30.zywz + div r28.xyz, r28.xzwx, r25.zwyz + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.yxzy, cb4[400].xxxx + div r27.xyz, r27.zywz, r26.xyzx + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.xyzx, cb4[400].yyyy + mov r28.w, r27.x + mad r29.xyzw, r24.xyxy, cb4[400].xyxy, r28.ywxw + mad r18.xy, r24.xyxx, cb4[400].xyxx, r28.zwzz + mov r27.w, r28.y + mov r28.yw, r27.yyyz + mad r30.xyzw, r24.xyxy, cb4[400].xyxy, r28.xyzy + mad r27.xyzw, r24.xyxy, cb4[400].xyxy, r27.wywz + mad r24.xyzw, r24.xyxy, cb4[400].xyxy, r28.xwzw + mul r28.xyzw, r25.zwyz, r26.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r29.xyxx, t6.xxxx, s4, r18.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r29.zwzz, t6.xxxx, s4, r18.z + mul r21.w, r21.w, r28.y + mad r15.w, r28.x, r15.w, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r18.xyxx, t6.xxxx, s4, r18.z + mad r15.w, r28.z, r18.x, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r27.xyxx, t6.xxxx, s4, r18.z + mad r15.w, r28.w, r18.x, r15.w + mul r28.xyzw, r25.xyzw, r26.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.xyxx, t6.xxxx, s4, r18.z + mad r15.w, r28.x, r18.x, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.zwzz, t6.xxxx, s4, r18.z + mad r15.w, r28.y, r18.x, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r27.zwzz, t6.xxxx, s4, r18.z + mad r15.w, r28.z, r18.x, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r24.xyxx, t6.xxxx, s4, r18.z + mad r15.w, r28.w, r18.x, r15.w + ige r18.x, r17.w, l(0) + or r20.xyw, r20.xyxw, r23.xyxz + or r18.y, r20.y, r20.x + or r18.y, r20.w, r18.y + and r20.x, r18.z, l(0x7fffffff) + ult r20.x, l(0x7f800000), r20.x + or r18.y, r18.y, r20.x + mul r20.x, r25.y, r26.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r24.zwzz, t6.xxxx, s4, r18.z + mad r15.w, r20.x, r18.z, r15.w + add r15.w, r15.w, l(-1.000000) + mad r15.w, cb4[r17.w + 288].w, r15.w, l(1.000000) + movc r15.w, r18.y, l(1.000000), r15.w + movc r15.w, r18.x, r15.w, l(1.000000) + else + mov r15.w, l(1.000000) + endif + else + mov r15.w, l(1.000000) + endif + mul r11.z, r11.z, r15.w + mov r19.xzw, l(0,0,0,0) + endif + add r22.xyz, r19.xzwx, r22.xyzx + mov r12.w, r16.w + endloop + mov r8.w, r11.z + add r21.xyz, r21.xyzx, r22.xyzx + iadd r9.w, r9.w, l(1) +endloop +mad r8.xyz, r21.xyzx, r8.wwww, r14.xzwx +ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r4.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + add r1.x, r0.z, r13.x + mad r2.z, r11.w, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.x, |r1.x| + mul r1.x, r1.x, r2.z + exp r1.x, r1.x + add r1.x, r0.z, r1.x + add r1.x, r1.x, l(-1.000000) + mov_sat r11.xyz, r1.xxxx + mad r14.xyz, r12.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r12.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r12.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r11.xyz, r1.yyyy + mov r14.xyz, r1.yyyy +endif +mad r16.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r1.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r2.xyxx +dp2 r0.z, r1.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r16.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r16.xyzx +mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r17.xyz, r16.xzyx, -r17.xyzx +max r0.z, |r17.y|, |r17.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.x, |r17.z|, l(-208.000000) +mul_sat r1.x, r1.x, l(0.031250) +max r0.z, r0.z, r1.x +ne r1.x, l(0.000000), cb0[210].w +lt r1.y, r0.z, l(1.000000) +and r1.x, r1.y, r1.x +if_nz r1.x + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r16.xzyx, -r17.xyzx + max r1.x, |r17.y|, |r17.x| + add r1.x, r1.x, l(-29.000000) + add r1.y, |r17.z|, l(-13.000000) + mul_sat r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + max r1.x, r1.y, r1.x + lt r1.y, r1.x, l(1.000000) + if_nz r1.y + mad r17.xyz, r16.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t15.yzwx, s2, l(0.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r4.z, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r17.y + min r2.z, r4.z, r2.z + mul r17.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t16.xyzw, s1, l(0.000000) + mad r2.z, r19.w, r1.y, r0.z + add r20.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t16.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mul r20.xyzw, r1.yyyy, r20.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r1.yyyy, r17.xyzw + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r1.yyyy, r18.xyzw + else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r16.xzyx, -r19.xyzx + max r1.y, |r19.y|, |r19.x| + add r1.y, r1.y, l(-116.000000) + mul_sat r1.y, r1.y, l(0.125000) + add r4.z, |r19.z|, l(-52.000000) + mul_sat r4.z, r4.z, l(0.125000) + max r1.y, r1.y, r4.z + lt r4.z, r1.y, l(1.000000) + if_nz r4.z + mad r19.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r21.xyz, r19.xyzx, cb0[211].xyzx + round_ni r21.xyz, r21.xyzx + mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r19.xyzx, t17.yzwx, s2, l(0.000000) + add r4.z, -r1.y, l(1.000000) + mul r1.x, r1.x, r4.z + mul r4.z, l(0.500000), cb0[211].y + mad r6.w, -cb0[211].y, l(0.500000), l(1.000000) + max r4.z, r4.z, r19.y + min r4.z, r6.w, r4.z + mul r19.w, r4.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyzw, r19.xwzx, t18.xyzw, s1, l(0.000000) + mad r2.z, r22.w, r1.x, r2.z + add r23.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r23.xyzx, t18.xyzw, s1, l(0.000000) + mad r23.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r21.yyyy, r23.xyzx + mov r23.w, r21.y + mad r20.xyzw, r23.xyzw, r1.xxxx, r20.xyzw + add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.xxxx, r19.xyzx + mov r19.w, r21.x + mad r17.xyzw, r19.xyzw, r1.xxxx, r17.xyzw + mad r19.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r19.xyzx + mad r18.xyzw, r21.xyzw, r1.xxxx, r18.xyzw + endif + lt r1.x, l(0.000000), r1.y + if_nz r1.x + mad r16.xyz, r16.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r16.xyzx, cb0[211].xyzx + mul r21.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r19.xyzx + mad r19.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r16.xyz, r21.xyzx, r16.xyzx + min r16.xyz, r19.xyzx, r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r16.xyzx, t19.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.y + max r1.y, r21.y, r16.y + min r1.y, r19.y, r1.y + mul r16.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t20.xyzw, s1, l(0.000000) + add r21.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t20.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r22.yyyy, r21.xyzx + mov r21.w, r22.y + mad r20.xyzw, r21.xyzw, r1.xxxx, r20.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t20.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r22.xxxx, r16.xyzx + mov r16.w, r22.x + mad r17.xyzw, r16.xyzw, r1.xxxx, r17.xyzw + mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r16.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + mad r2.z, r19.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r16.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r16.y, r0.z, l(0.500000) +else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r16.xy, l(0,1.000000,0,0) +endif +mul r19.xyzw, r16.yxyy, cb0[213].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r1.xy, r16.yxyy, cb0[213].wyww +mad r19.x, r1.y, l(0.375000), r1.x +add r18.xyzw, r18.xyzw, r19.wyzx +mul r19.xyzw, r16.yxyy, cb0[214].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r1.xy, r16.yxyy, cb0[214].wyww +mad r19.x, r1.y, l(0.375000), r1.x +add r17.xyzw, r17.xyzw, r19.wyzx +mul r19.xyzw, r16.yxyy, cb0[215].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r1.xy, r16.yxyy, cb0[215].wyww +mad r19.x, r1.y, l(0.375000), r1.x +add r16.xyzw, r19.wyzx, r20.xyzw +ge r1.xy, r4.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r1.y, r1.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r19.xyzw, r4.xyxx, t14.xyzw, s1, l(0.000000) + lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r19.xyzw| + or r1.xy, r20.zwzz, r20.xyxx + or r0.z, r1.y, r1.x + if_nz r0.z + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.y, r0.z + mov r2.z, l(0) + loop + ge r4.x, l(4.600000), r1.y + breakc_nz r4.x + iadd r4.x, r2.z, l(1) + mul r4.yz, r1.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000) + mov r1.xy, r4.yzyy + mov r2.z, r4.x + continue + endloop + mul r19.xyzw, r1.xxxx, r19.xyzw + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb6[3].x, cb6[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r1.x, r0.z, l(0.00390625000) + mov r1.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xy, r1.xyxx, t13.xyzw, s1, l(0.000000) + mad r1.xy, r1.xyxx, cb6[2].xyxx, cb6[2].zwzz + mul r20.x, r1.x, l(3.54490781) + mul r20.yzw, r1.yyyy, r19.yyzw + mul r0.z, r19.x, l(0.406976730) + exp r0.z, r0.z + mul r19.xyzw, r0.zzzz, r20.xyzw + mov r20.xyzw, r19.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r2.z + breakc_nz r1.x + mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r21.xyzw, r20.xyzw + dp2 r1.y, r21.yxyy, r20.xyxx + dp2 r4.x, r21.zxzz, r20.xzxx + dp2 r4.y, r21.wxww, r20.xwxx + iadd r4.z, r0.z, l(1) + mov r20.xy, r1.xyxx + mov r20.zw, r4.xxxy + mov r0.z, r4.z + continue + endloop + mul r19.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r19.xyzw, r20.xyzw + dp2 r1.x, r19.yxyy, r20.xyxx + dp2 r1.y, r19.zxzz, r20.xzxx + dp2 r2.z, r19.wxww, r20.xwxx + mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.x, r19.xyzw, r20.xyzw + dp2 r4.y, r19.yxyy, r20.xyxx + dp2 r4.z, r19.zxzz, r20.xzxx + dp2 r6.w, r19.wxww, r20.xwxx + mul r20.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.w, r19.xyzw, r20.xyzw + dp2 r8.w, r19.yxyy, r20.xyxx + dp2 r9.w, r19.zxzz, r20.xzxx + dp2 r10.w, r19.wxww, r20.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r2.z, l(-1.02332675) + mul r18.yz, r1.xxyx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r17.x, r6.w, l(-1.02332675) + mul r17.yzw, r4.yyzx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) + mul r16.w, r7.w, l(0.886226952) + mul r16.x, r10.w, l(-1.02332675) + mul r16.y, r8.w, l(-1.02332675) + mul r16.z, r9.w, l(1.02332675) + endif +endif +dp3 r0.z, r18.xyzx, r3.xyzx +add r0.z, r18.w, r0.z +max r4.x, r0.z, l(0.000000) +dp3 r0.z, r17.xyzx, r3.xyzx +add r0.z, r17.w, r0.z +max r4.y, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r3.xyzx +add r0.z, r16.w, r0.z +max r4.z, r0.z, l(0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.x, r11.w, l(0.001000) +log r1.x, r1.x +mad r1.x, -r1.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.x +mul r1.xy, r2.xyxx, cb1[0].wwww +round_ni r1.xy, r1.xyxx +add r2.z, |r1.w|, -cb1[2].y +round_ni r2.z, r2.z +add r6.w, l(-1.000000), cb1[1].x +max r7.w, r2.z, l(0.000000) +min r6.w, r6.w, r7.w +ge r2.z, r6.w, r2.z +mad r1.x, r1.y, cb1[0].x, r1.x +ftoi r1.x, r1.x +iadd r1.x, r1.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx +ftoi r1.y, r6.w +iadd r1.y, r1.y, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r1.y, l(0), t0.xxxx +and r1.x, r1.y, r1.x +and r1.x, r1.x, r2.z +mul r16.xyz, r4.xyzx, cb0[111].xxxx +dp3 r1.y, r16.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r3.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r2.z, l(1.000000) +mov r6.w, r1.x +mov r7.w, l(0) +loop + lt r8.w, l(0.010000), r2.z + ine r9.w, r6.w, l(0) + and r9.w, r8.w, r9.w + if_nz r9.w + firstbit_lo r9.w, r6.w + ishl r10.w, l(1), r9.w + xor r6.w, r6.w, r10.w + ishl r9.w, r9.w, l(3) + dp4 r17.x, cb1[r9.w + 6].xyzw, r5.xyzw + dp4 r17.y, cb1[r9.w + 7].xyzw, r5.xyzw + dp4 r17.z, cb1[r9.w + 8].xyzw, r5.xyzw + ge r18.xyz, cb1[r9.w + 5].xyzx, |r17.xyzx| + and r10.w, r18.y, r18.x + and r10.w, r18.z, r10.w + if_nz r10.w + mul r10.w, l(0.100000), cb1[r9.w + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb1[r9.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb1[r9.w + 9].xyzx + eq r11.w, l(1.000000), cb1[r9.w + 10].x + if_nz r11.w + dp3 r20.x, cb1[r9.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb1[r9.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb1[r9.w + 8].xyzx, r15.xyzx + add r21.xyz, -r17.xyzx, cb1[r9.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb1[r9.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r11.w, r21.y, r21.x + min r11.w, r21.z, r11.w + mad r17.xyz, r20.xyzx, r11.wwww, r17.xyzx + else + mov r17.xyz, r15.xyzx + endif + dp3 r11.w, r17.xyzx, r17.xyzx + rsq r11.w, r11.w + mul r17.xyz, r11.wwww, r17.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r11.w, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r11.wwww + lt r11.w, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r20.xxxy + movc r17.xy, r11.wwww, r17.zwzz, r17.xyxx + dp4 r11.w, cb1[r9.w + 4].xyzw, r3.xyzw + max r11.w, r11.w, l(0.000000) + max r11.w, r11.w, l(0.000100) + min r12.w, r19.z, r19.y + min r12.w, r12.w, r19.x + add r13.x, r18.y, r18.x + mad r13.x, r18.z, r18.z, r13.x + mad r10.w, r10.w, r10.w, -r13.x + mul r10.w, r10.w, cb1[r9.w + 9].x + mul r10.w, r10.w, cb1[r9.w + 9].x + add r13.x, l(1.000000), -cb1[r9.w + 10].y + mul r10.w, r10.w, r13.x + mul r10.w, r10.w, l(100.000000) + mad_sat r10.w, r12.w, cb1[r9.w + 10].y, r10.w + mul r12.w, r10.w, cb1[r9.w + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r17.xyxx, cb1[1].wwww, cb1[2].wwww + mov r17.z, cb1[r9.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z + mul r17.xyz, r17.xyzx, cb1[r9.w + 9].wwww + div r13.x, r1.y, r11.w + min r13.x, |r13.x|, l(1.000000) + mad r13.x, r13.x, l(2.000000), r1.y + add r11.w, r11.w, l(2.000000) + div r11.w, r13.x, r11.w + add r11.w, r11.w, l(-1.000000) + mad r11.w, r11.w, cb0[112].w, l(1.000000) + mul r17.xyz, r11.wwww, r17.xyzx + mul r17.xyz, r12.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r2.zzzz, r16.xyzx + mad r9.w, -r10.w, cb1[r9.w + 10].w, l(1.000000) + mul r2.z, r2.z, r9.w + endif + mov r7.w, l(-1) + continue + else + mov r7.w, r8.w + break + endif + mov r7.w, r8.w +endloop +if_nz r7.w + dp3 r1.x, r15.xyzx, r15.xyzx + rsq r1.x, r1.x + mul r15.xyz, r1.xxxx, r15.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r18.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r18.xyzx + itof r17.xyz, r17.xyzx + dp3 r1.x, r15.xyzx, r17.xyzx + div r15.xyz, r15.xyzx, r1.xxxx + lt r1.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r17.xxxy + movc r15.xy, r1.xxxx, r15.zwzz, r15.xyxx + mov r3.w, l(1.000000) + dp4 r1.x, cb1[3].xyzw, r3.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r3.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb1[1].wwww, cb1[2].wwww + mov r3.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r3.xyz, r3.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.y, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.y + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r3.xyz, r0.zzzz, r3.xyzx + mad r16.xyz, r3.xyzx, r2.zzzz, r16.xyzx +endif +mul r3.xyz, r16.xyzx, cb0[112].zzzz +mul r3.xyz, r3.xyzx, cb0[111].yyyy +if_nz r4.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.x, -r0.z, l(1.000000) + mul r16.xyz, r1.xxxx, r3.xyzx + mad r3.xyz, r15.xyzx, r0.zzzz, r16.xyzx +endif +mul r4.xyz, r12.xyzx, r4.xyzx +mul r4.xyz, r4.xyzx, cb0[111].xxxx +add r0.z, -r1.z, l(1.000000) +div r0.z, r0.z, r1.z +mul r1.xyz, r0.zzzz, r10.xyzx +mad r1.xyz, r1.xyzx, r13.yzwy, r13.yzwy +mul r1.xyz, r1.xyzx, r3.xyzx +mul r1.xyz, r11.xyzx, r1.xyzx +mad r1.xyz, r4.xyzx, r14.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r8.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r2.z, r2.w, cb0[154].w, -cb0[153].w +max r2.z, r2.z, l(0.000000) +mul r3.x, r0.z, l(-1.442695) +exp r3.x, r3.x +add r3.x, -r3.x, l(1.000000) +div r0.z, r3.x, r0.z +mad r3.x, r5.y, cb0[156].w, cb0[158].w +mul r3.x, r3.x, l(1.442695) +exp r3.x, r3.x +mul r0.z, r0.z, r3.x +mul r0.z, r0.z, -r2.z +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r9.xyzx, cb0[154].xyzx +mad r2.z, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.w, r0.zzzz, cb0[155].wwww +add r2.z, r2.z, -r3.w +lt r3.w, l(0.000000), cb0[163].z +if_nz r3.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r9.xyzx, -r7.xyzx + add r3.w, r5.y, -cb0[44].y + lt r4.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r4.z + mul r0.x, r0.x, cb0[163].w + div r4.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w + mul r4.w, r0.x, r4.z + mad r5.w, r4.w, r3.w, cb0[44].y + mad r3.w, -r4.w, r3.w, r3.w + mul r4.w, r3.w, cb0[159].z + max r4.w, r4.w, l(-127.000000) + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + add r6.w, r5.w, -cb0[159].x + mul r6.w, r6.w, cb0[159].z + max r6.w, r6.w, l(-127.000000) + exp r6.w, -r6.w + mul r6.w, r6.w, cb0[159].y + lt r7.x, l(5.960464478E-08), |r4.w| + exp r7.y, -r4.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r4.w + mad r4.w, -r4.w, l(0.240226507), l(0.693147182) + movc r4.w, r7.x, r7.y, r4.w + add r5.w, r5.w, -cb0[162].z + mul r5.w, r5.w, cb0[162].x + max r5.w, r5.w, l(-127.000000) + exp r5.w, -r5.w + mul r5.w, r5.w, cb0[162].y + lt r7.x, l(5.960464478E-08), |r3.w| + exp r7.y, -r3.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r7.x, r7.y, r3.w + mul r3.w, r3.w, r5.w + mad r3.w, r6.w, r4.w, r3.w + mad r0.x, -r0.x, r4.z, l(1.000000) + mul r0.x, r2.w, r0.x + mul r0.x, r0.x, r3.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r2.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy + mul r4.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r1.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r4.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t12.xyzw, s1, l(0.000000) + add r0.y, |r1.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r0.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r7.xyz, r0.yyyy, cb0[161].xyzx + mad r4.xyz, r7.xyzx, r4.wwww, r4.xyzx + mul r0.x, r0.x, r4.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r1.w, cb0[44].y, -cb0[159].x + mul r1.w, r1.w, cb0[159].z + max r1.w, r1.w, l(-127.000000) + exp r1.w, -r1.w + mul r1.w, r1.w, cb0[159].y + lt r2.x, l(5.960464478E-08), |r0.w| + exp r2.y, -r0.w + add r2.y, -r2.y, l(1.000000) + div r2.y, r2.y, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r2.x, r2.y, r0.w + add r2.x, cb0[44].y, -cb0[162].z + mul r2.x, r2.x, cb0[162].x + max r2.x, r2.x, l(-127.000000) + exp r2.x, -r2.x + mul r2.x, r2.x, cb0[162].y + lt r2.y, l(5.960464478E-08), |r0.y| + exp r3.w, -r0.y + add r3.w, -r3.w, l(1.000000) + div r3.w, r3.w, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r2.y, r3.w, r0.y + mul r0.y, r0.y, r2.x + mad r0.y, r1.w, r0.w, r0.y + mul r0.y, r2.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r2.xy, r2.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r2.x + add r0.y, r2.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r2.xyw, r0.xxxx, r3.xyxz +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r1.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r2.z, l(12.566371) +sqrt r2.z, r2.z +mul r2.z, r2.z, r3.w +max r2.z, r2.z, l(0.001000) +div r1.w, r1.w, r2.z +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r4.xyzx +mad r0.xyz, r1.xyzx, r2.xywx, r0.xyzx +dp3 r0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r6.xyzx, r6.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x8D6CC6FA.cso b/src/games/endfield/deferred-lighting/0x8D6CC6FA.cso new file mode 100644 index 0000000000000000000000000000000000000000..e37fac5dda3046a0cf7e64c71166431798250581 GIT binary patch literal 67840 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 Oue>&X`Z1Nq&;JHA69mWr literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0.asm new file mode 100644 index 000000000..421a352f5 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0.asm @@ -0,0 +1,2234 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 19:59:40 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[63], dynamicIndexed +dcl_constantbuffer CB2[259], dynamicIndexed +dcl_constantbuffer CB3[3], immediateIndexed +dcl_constantbuffer CB4[2054], dynamicIndexed +dcl_constantbuffer CB5[401], dynamicIndexed +dcl_constantbuffer CB6[15], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_constantbuffer CB8[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2darray (float,float,float,float) t10 +dcl_resource_texture2darray (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture3d (float,float,float,float) t27 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 37 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t24.yxzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t25.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t26.xyzw +mul r3.w, r3.w, l(255.000000) +round_ne r3.w, r3.w +ftou r3.w, r3.w +and r4.x, r3.w, l(128) +if_nz r4.x + mad r4.yz, r1.yyxy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r4.yzyy| + add r5.y, -r4.w, l(1.000000) + lt r4.w, r5.y, l(0.000000) + ge r6.xy, r4.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + add r6.zw, -|r4.zzzy|, l(0.000000, 0.000000, 1.000000, 1.000000) + movc r6.xy, r6.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) + mul r6.xy, r6.xyxx, r6.zwzz + movc r5.xz, r4.wwww, r6.xxyx, r4.yyzy + mad r4.yz, r2.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r4.yzyy| + add r6.y, -r4.w, l(1.000000) + lt r4.w, r6.y, l(0.000000) + ge r7.xy, r4.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + add r7.zw, -|r4.zzzy|, l(0.000000, 0.000000, 1.000000, 1.000000) + movc r7.xy, r7.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) + mul r7.xy, r7.xyxx, r7.zwzz + movc r6.xz, r4.wwww, r7.xxyx, r4.yyzy + dp3 r4.y, r6.xyzx, r6.xyzx + rsq r4.y, r4.y + mul r6.xyz, r4.yyyy, r6.xyzx + dp3 r4.y, r5.xyzx, r5.xyzx + rsq r4.y, r4.y + mul r4.yzw, r4.yyyy, r5.xxyz + mul r1.w, r1.w, l(3.000000) + round_ne r1.w, r1.w + mul r2.w, r2.w, l(3.000000) + round_ne r2.w, r2.w + mad r1.w, r1.w, l(4.000000), r2.w + ftoi r1.w, r1.w + and r2.w, r3.w, l(127) + utof r2.w, r2.w + mul r2.w, r2.w, l(0.00787401572) + mov r1.x, r1.z + mov r1.z, l(0) + mov r5.xzw, l(0,0,0,0) + mov r3.w, r1.w +else + mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| + add r7.y, -r1.w, l(1.000000) + lt r1.w, r7.y, l(0.000000) + ge r8.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + add r8.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + movc r8.xy, r8.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) + mul r8.xy, r8.xyxx, r8.zwzz + movc r7.xz, r1.wwww, r8.xxyx, r2.xxyx + iadd r1.w, r3.w, l(-1) + umin r1.w, r1.w, l(62) + ult r2.x, l(0), r3.w + uge r2.y, l(63), r3.w + and r2.x, r2.y, r2.x + and r5.xyzw, r2.xxxx, cb1[r1.w + 0].yxzw + dp3 r1.w, r7.xyzx, r7.xyzx + rsq r1.w, r1.w + mul r6.xyz, r1.wwww, r7.xyzx + mul r1.z, r1.y, r5.y + mov r4.yzw, l(0,0,0,0) + mov r2.w, l(0) +endif +utof r1.yw, r0.xxxy +mul r2.xy, v0.xyxx, cb0[82].zwzz +mad r7.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r7.zw, r1.yyyw, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r7.zw, r7.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r5.y, r7.zwzz, t1.yxzw, s0, l(0.000000) +mul r8.xyzw, -r7.yyyy, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r7.xxxx, r8.xyzw +mad r7.xyzw, cb0[26].xyzw, r5.yyyy, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r5.y, r7.y, cb0[1].z +mad r5.y, cb0[0].z, r7.x, r5.y +mad r5.y, cb0[2].z, r7.z, r5.y +add r5.y, r5.y, cb0[3].z +eq r8.x, l(0.000000), cb0[86].w +add r8.yzw, -r7.xxyz, cb0[44].xxyz +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r10.xyz, r8.xxxx, r8.yzwy, r9.xyzx +dp3 r8.x, r10.xyzx, r10.xyzx +max r9.w, r8.x, l(9.999999939E-09) +rsq r9.w, r9.w +mul r11.xyz, r9.wwww, r10.xyzx +mul r8.x, r8.x, r9.w +lt r10.w, l(0.000488281250), cb0[234].x +if_nz r10.w + sample_b_indexable(texture2d)(float,float,float,float) r12.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x +else + mov r12.xy, l(1.000000,1.000000,0,0) +endif +min r10.w, r12.y, r12.x +min r11.w, r2.z, l(1.000000) +add r12.y, r2.z, -r11.w +mad r10.w, r10.w, r12.y, r11.w +add r2.z, r2.z, -r10.w +mad r12.w, r12.x, r2.z, r10.w +dp3 r2.z, r6.xyzx, r11.xyzx +max r2.z, r2.z, l(0.000000) +mad r13.xyzw, r12.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r10.w, r13.x, r13.x +mul r11.w, r2.z, l(-9.280000) +exp r11.w, r11.w +min r10.w, r10.w, r11.w +mad r10.w, r10.w, r13.x, r13.y +mad r13.xy, r10.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +mad r10.w, r13.x, l(0.040000), r13.y +ld_indexable(texture2d)(float,float,float,float) r13.x, r0.xyzz, t7.xyzw +lt r0.z, l(0.001000), r13.x +if_nz r0.z + dp3 r0.z, -r11.xyzx, r6.xyzx + add r0.z, r0.z, r0.z + mad r14.xyz, r6.xyzx, -r0.zzzz, -r11.xyzx + dp3 r0.z, -cb4[0].xyzx, r14.xyzx + mad r15.xyz, cb4[0].xyzx, r0.zzzz, r14.xyzx + lt r0.z, r0.z, cb4[4].z + dp3 r11.w, r15.xyzx, r15.xyzx + max r11.w, r11.w, l(0.0000610351562) + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb4[4].yyyy + mad r15.xyz, -cb4[0].xyzx, cb4[4].zzzz, r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + movc r14.xyz, r0.zzzz, r15.xyzx, r14.xyzx + mad r15.xyz, r10.xyzx, r9.wwww, r14.xyzx + dp3 r0.z, r15.xyzx, r15.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r15.xyz, r0.zzzz, r15.xyzx + dp3 r0.z, r14.xyzx, r6.xyzx + mov_sat r12.y, r0.z + dp3_sat r11.w, r6.xyzx, r15.xyzx + dp3_sat r13.z, r11.xyzx, r15.xyzx + min r12.z, r2.z, l(1.000000) + if_nz r4.x + mul r13.w, r12.w, r12.w + mul r13.w, r13.w, r13.w + mad r14.w, r11.w, r13.w, -r11.w + mad r14.w, r14.w, r11.w, l(1.000000) + add r15.x, -r13.z, l(1.000000) + mul r15.y, r15.x, r15.x + mul r15.y, r15.y, r15.y + mul r15.z, r15.x, r15.y + add r15.w, -r12.w, l(1.000000) + mad r16.x, -r15.w, l(0.383026), l(-0.0761947036) + mad r16.x, r15.w, r16.x, l(1.049970) + mad r15.w, r15.w, r16.x, l(0.409255) + min r15.w, r15.w, l(0.999000) + add r16.x, -r15.w, l(1.000000) + mad r15.x, -r15.y, r15.x, l(1.000000) + mad r15.x, r15.x, l(0.040000), r15.z + mul r14.w, r14.w, r14.w + div r14.w, r13.w, r14.w + mad r15.yz, -r12.zzyz, r13.wwww, r12.zzyz + mad r15.yz, r15.yyzy, r12.zzyz, r13.wwww + sqrt r15.yz, r15.yyzy + mul r15.yz, r12.yyzy, r15.yyzy + add r13.w, r15.z, r15.y + add r13.w, r13.w, l(0.000100) + div r13.w, l(0.500000), r13.w + mul r13.w, r13.w, r14.w + mul r13.w, r13.w, r15.x + min r13.w, r13.w, l(2048.000000) + mad r17.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r14.w, r17.xyxx, t9.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r15.x, r17.zwzz, t9.xyzw, s1, l(0.000000) + mul r14.w, r14.w, r15.x + mul r14.w, r15.w, r14.w + div r14.w, r14.w, r16.x + mul r14.w, r14.w, l(0.00734693790) + mad r15.x, -r16.x, l(0.0857142806), l(1.000000) + div r14.w, r14.w, r15.x + add r15.xyz, r13.wwww, r14.wwww + mov r16.xyz, l(0,0,0,0) + else + mul r13.w, r12.w, r12.w + mul r13.w, r13.w, r13.w + mad r14.w, r11.w, r13.w, -r11.w + mad r11.w, r14.w, r11.w, l(1.000000) + add r13.z, -r13.z, l(1.000000) + mul r14.w, r13.z, r13.z + mul r14.w, r14.w, r14.w + mul r15.w, r13.z, r14.w + add r16.w, -r12.w, l(1.000000) + mad r17.x, -r16.w, l(0.383026), l(-0.0761947036) + mad r17.x, r16.w, r17.x, l(1.049970) + mad r16.w, r16.w, r17.x, l(0.409255) + min r16.w, r16.w, l(0.999000) + add r17.x, -r16.w, l(1.000000) + add_sat r17.y, -r1.z, l(1.000000) + add r18.xyz, r5.xxxx, l(1.000000, 0.666666687, 0.333333343, 0.000000) + frc r18.xyz, r18.xyzx + mad r18.xyz, r18.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) + add_sat r18.xyz, |r18.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) + add r18.xyz, r18.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) + mad r18.xyz, r5.zzzz, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r18.xyz, r1.zzzz, r18.xyzx + mad_sat r0.z, r0.z, l(0.666666687), l(0.333333343) + log r0.z, r0.z + mul r0.z, r0.z, l(1.500000) + exp r0.z, r0.z + mad r0.z, r0.z, l(1.66666663), l(-1.000000) + mad r0.z, r17.y, r0.z, l(1.000000) + mul r0.z, r0.z, r1.x + mul r17.z, r0.z, l(0.159154937) + dp3 r17.w, r11.xyzx, r14.xyzx + mov_sat r17.w, -r17.w + log r17.w, r17.w + mul r17.w, r17.w, l(12.000000) + exp r17.w, r17.w + mad r17.y, r17.y, l(-2.900000), l(3.000000) + mul r17.y, r17.y, r17.w + mad r0.z, -r0.z, l(0.159154937), l(1.000000) + mad r0.z, r17.y, r0.z, r17.z + mul r16.xyz, r0.zzzz, r18.xyzx + mad r0.z, -r14.w, r13.z, l(1.000000) + mad r0.z, r0.z, l(0.040000), r15.w + mul r11.w, r11.w, r11.w + div r11.w, r13.w, r11.w + mad r17.yz, -r12.zzyz, r13.wwww, r12.zzyz + mad r13.zw, r17.yyyz, r12.zzzy, r13.wwww + sqrt r13.zw, r13.zzzw + mul r13.zw, r12.yyyz, r13.zzzw + add r13.z, r13.w, r13.z + add r13.z, r13.z, l(0.000100) + div r13.z, l(0.500000), r13.z + mul r11.w, r11.w, r13.z + mul r0.z, r0.z, r11.w + min r0.z, r0.z, l(2048.000000) + mad r18.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r11.w, r18.xyxx, t9.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r12.z, r18.zwzz, t9.yzxw, s1, l(0.000000) + mul r11.w, r11.w, r12.z + mul r11.w, r16.w, r11.w + div r11.w, r11.w, r17.x + mul r11.w, r11.w, l(0.00734693790) + mad r12.z, -r17.x, l(0.0857142806), l(1.000000) + div r11.w, r11.w, r12.z + add r15.xyz, r0.zzzz, r11.wwww + endif + mul r15.xyz, r15.xyzx, cb4[4].xxxx + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r15.xyz, r15.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r17.xyz, r12.yyyy, r15.xyzx + if_nz r4.x + ult r0.z, l(0), r3.w + uge r11.w, l(15), r3.w + and r0.z, r0.z, r11.w + if_nz r0.z + iadd r11.w, r3.w, l(-1) + umin r11.w, r11.w, l(14) + mul r18.y, r2.w, cb6[r11.w + 0].w + itof r18.z, r11.w + add r19.xyz, -r6.xyzx, r4.yzwy + mad r20.xyz, cb6[r11.w + 0].xxxx, r19.xyzx, r6.xyzx + dp3 r12.z, r20.xyzx, r20.xyzx + rsq r12.z, r12.z + mul r20.xyz, r12.zzzz, r20.xyzx + dp3 r12.z, r20.xyzx, r14.xyzx + mad r18.w, r12.z, l(0.500000), l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r20.x, r18.wyzw, t10.xyzw, s1, l(0.000000) + mad r21.xyz, cb6[r11.w + 0].yyyy, r19.xyzx, r6.xyzx + dp3 r12.z, r21.xyzx, r21.xyzx + rsq r12.z, r12.z + mul r21.xyz, r12.zzzz, r21.xyzx + dp3 r12.z, r21.xyzx, r14.xyzx + mad r18.x, r12.z, l(0.500000), l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r20.y, r18.xyzx, t10.xyzw, s1, l(0.000000) + mad r19.xyz, cb6[r11.w + 0].zzzz, r19.xyzx, r6.xyzx + dp3 r11.w, r19.xyzx, r19.xyzx + rsq r11.w, r11.w + mul r19.xyz, r11.wwww, r19.xyzx + dp3 r11.w, r19.xyzx, r14.xyzx + mad r18.x, r11.w, l(0.500000), l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r20.z, r18.xyzx, t10.xyzw, s1, l(0.000000) + endif + movc r14.xyz, r0.zzzz, r20.xyzx, r12.yyyy + mad r14.xyz, r3.xyzx, r14.xyzx, r17.xyzx + add r14.xyz, r16.xyzx, r14.xyzx + mul r14.xyz, r14.xyzx, cb4[1].xyzx + else + mad r15.xyz, r15.xyzx, r12.yyyy, r16.xyzx + mad r15.xyz, r3.xyzx, r12.yyyy, r15.xyzx + mul r14.xyz, r15.xyzx, cb4[1].xyzx + endif + mov r13.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r13.yzw, r13.xyxx, t8.wxyz, s1, cb0[108].x + add r0.z, -r13.x, l(1.000000) + mad r13.xyz, r14.xyzx, r13.yzwy, -r14.xyzx + mad r13.xyz, r0.zzzz, r13.xyzx, r14.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r2.xyxx, t12.yzxw, s1, l(0.000000) + mul r13.xyz, r0.zzzz, r13.xyzx +else + mov r13.xyz, l(0,0,0,0) +endif +mul r12.yz, r1.yywy, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r12.yz, r12.yyzy +mad r0.z, r12.z, cb3[1].y, r12.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r11.w, -cb0[85].y, cb3[2].w, |r5.y| +round_ni r11.w, r11.w +add r12.y, l(-1.000000), cb3[1].w +max r12.z, r11.w, l(0.000000) +min r12.y, r12.y, r12.z +mul r12.z, r12.y, l(8.000000) +ftoi r12.z, r12.z +ge r11.w, r12.y, r11.w +iadd r12.y, r12.z, cb0[110].y +mul r12.z, r12.w, r12.w +dp3 r13.w, -r11.xyzx, r6.xyzx +add r13.w, r13.w, r13.w +mad r14.xyz, r6.xyzx, -r13.wwww, -r11.xyzx +min r12.x, r2.z, l(1.000000) +add r13.w, -r12.w, l(1.000000) +mad r14.w, -r13.w, l(0.383026), l(-0.0761947036) +mad r14.w, r13.w, r14.w, l(1.049970) +mad r13.w, r13.w, r14.w, l(0.409255) +min r13.w, r13.w, l(0.999000) +add r14.w, -r13.w, l(1.000000) +mad r15.xy, r12.xwxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r15.x, r15.xyxx, t9.xyzw, s1, l(0.000000) +mad r15.y, -r14.w, l(0.0857142806), l(1.000000) +add_sat r15.z, -r1.z, l(1.000000) +add r16.xyz, r5.xxxx, l(1.000000, 0.666666687, 0.333333343, 0.000000) +frc r16.xyz, r16.xyzx +mad r16.xyz, r16.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) +add_sat r16.xyz, |r16.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) +add r16.xyz, r16.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) +mad r16.xyz, r5.zzzz, r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r1.zzzz, r16.xyzx +mad r1.z, r15.z, l(-2.900000), l(3.000000) +add r4.yzw, -r6.xxyz, r4.yyzw +mov r17.w, l(1.000000) +mov r18.y, l(1.000000) +mov r19.zw, r12.wwww +mov r20.xyz, l(0,0,0,0) +mov r5.x, r3.w +mov r5.z, l(1.000000) +mov r12.w, l(0) +loop + ilt r15.w, l(7), r12.w + breakc_nz r15.w + iadd r15.w, r0.z, r12.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t0.xxxx + iadd r16.w, r12.w, r12.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t0.xxxx + and r15.w, r15.w, r16.w + and r15.w, r11.w, r15.w + ishl r16.w, r12.w, l(5) + mov r21.xyz, l(0,0,0,0) + mov r18.zw, r5.xxxz + mov r20.w, r15.w + loop + breakc_z r20.w + firstbit_lo r21.w, r20.w + ishl r22.x, l(1), r21.w + xor r22.x, r20.w, r22.x + iadd r21.w, r16.w, r21.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r21.wwww, l(1, 3, 5, 6) + bfi r22.y, l(29), l(3), r21.w, l(7) + ftou r22.z, cb4[r23.z + 6].w + ieq r22.z, r22.z, l(1) + if_nz r22.z + add r17.xyz, r7.xyzx, -cb4[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb4[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb4[r23.w + 6].yxzy + ushr r26.xyz, cb4[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb4[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r22.z, r17.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r22.w, r17.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r17.x, r17.xyzw, r27.xyzw + max r17.y, |r22.w|, |r22.z| + max r17.x, |r17.x|, r17.y + mad r17.y, cb4[r22.y + 6].x, l(0.500000), l(0.500000) + add r17.x, -r17.y, r17.x + mad r17.y, -cb4[r22.y + 6].x, l(0.500000), l(0.500000) + div_sat r17.x, r17.x, r17.y + add r17.x, -r17.x, l(1.000000) + mul r17.x, r17.x, r17.x + else + mov r17.x, l(1.000000) + endif + lt r17.y, l(0.500000), cb4[r23.y + 6].z + lt r17.z, r17.x, l(0.001000) + or r17.z, r17.y, r17.z + if_nz r17.z + mov r20.w, r22.x + continue + endif + ishl r17.z, r21.w, l(3) + bfi r21.w, l(29), l(3), r21.w, l(2) + lt r22.z, cb4[r17.z + 6].w, l(1.500000) + if_nz r22.z + mad r22.z, cb4[r21.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r22.z, -|cb4[r21.w + 6].x| + add r24.y, -r24.x, cb4[r21.w + 6].y + add r22.z, -|r24.x|, l(1.000000) + add r22.z, -|r24.y|, r22.z + max r22.z, r22.z, l(0.000488281250) + ge r22.w, cb4[r21.w + 6].x, l(0.000000) + movc r24.z, r22.w, r22.z, -r22.z + dp3 r22.z, r24.xyzx, r24.xyzx + rsq r22.z, r22.z + mul r24.xyz, r22.zzzz, r24.xyzx + add r25.xyz, -r7.xyzx, cb4[r23.x + 6].xyzx + dp3 r22.z, r25.xyzx, r25.xyzx + rsq r22.w, r22.z + mul r26.xyz, r22.wwww, r25.xyzx + ftoi r23.z, cb4[r22.y + 6].w + mul r27.xyz, r24.xyzx, cb4[r21.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r24.w, cb4[r17.z + 6].w + and r24.w, r24.w, l(1) + ieq r25.w, r24.w, l(0) + not r25.w, r25.w + lt r26.w, l(0.000000), cb4[r21.w + 6].z + and r25.w, r25.w, r26.w + dp3 r26.w, r28.xyzx, r28.xyzx + sqrt r26.w, r26.w + dp3 r27.w, r29.xyzx, r29.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r6.xyzx, r28.xyzx + div r28.w, r28.w, r26.w + dp3 r29.w, r6.xyzx, r29.xyzx + div r29.w, r29.w, r27.w + add r28.w, r28.w, r29.w + mul_sat r30.x, r28.w, l(0.500000) + dp3 r28.w, r28.xyzx, r29.xyzx + mad r26.w, r26.w, r27.w, r28.w + mad r26.w, r26.w, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r26.w + dp3_sat r18.x, r6.xyzx, r26.xyzx + movc r19.xy, r25.wwww, r30.xyxx, r18.xyxx + lt r18.x, cb4[r23.w + 6].w, l(0.000000) + if_nz r18.x + mul r18.x, cb4[r23.x + 6].w, cb4[r23.x + 6].w + mul r18.x, r18.x, r22.z + mad r18.x, -r18.x, r18.x, l(1.000000) + max r18.x, r18.x, l(0.000000) + add r22.z, r22.z, l(1.000000) + div r22.z, l(1.000000, 1.000000, 1.000000, 1.000000), r22.z + and r26.w, r25.w, l(0x3f800000) + add r27.w, r19.y, -r22.z + mad r22.z, r26.w, r27.w, r22.z + mul r18.x, r18.x, r18.x + mul r18.x, r18.x, r22.z + else + mul r29.xyz, r25.xyzx, cb4[r23.x + 6].wwww + dp3 r22.z, r29.xyzx, r29.xyzx + min r22.z, r22.z, l(1.000000) + add r22.z, -r22.z, l(1.000000) + log r22.z, r22.z + mul r22.z, r22.z, cb4[r23.w + 6].w + exp r22.z, r22.z + mul r18.x, r19.y, r22.z + endif + dp3 r19.y, r26.xyzx, -r24.xyzx + add r19.y, r19.y, -cb4[r21.w + 6].z + mul_sat r19.y, r19.y, cb4[r21.w + 6].w + mul r19.y, r19.y, r19.y + movc r19.y, r24.w, l(1.000000), r19.y + mul r18.x, r18.x, r19.y + not r19.y, r25.w + ige r22.z, r23.z, l(0) + and r19.y, r19.y, r22.z + if_nz r19.y + if_z r24.w + ishl r19.y, r23.z, l(2) + mul r24.xyz, r7.yyyy, cb7[r19.y + 33].xywx + mad r24.xyz, cb7[r19.y + 32].xywx, r7.xxxx, r24.xyzx + mad r24.xyz, cb7[r19.y + 34].xywx, r7.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb7[r19.y + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb7[r23.z + 0].zwzz, cb7[r23.z + 0].xyxx + else + ishl r19.y, r23.z, l(2) + dp3 r29.x, -r25.xyzx, cb7[r19.y + 32].xyzx + dp3 r29.y, -r25.xyzx, cb7[r19.y + 33].xyzx + dp3 r29.z, -r25.xyzx, cb7[r19.y + 34].xyzx + lt r19.y, |r29.x|, |r29.y| + and r19.y, r19.y, l(1) + dp2 r22.z, |r29.xyxx|, icb[r19.y + 0].xyxx + lt r22.z, r22.z, |r29.z| + movc r19.y, r22.z, l(2), r19.y + dp3 r22.z, r29.xyzx, icb[r19.y + 0].xyzx + lt r22.z, r22.z, l(0.000000) + bfi r19.y, l(31), l(1), r19.y, r22.z + ushr r22.z, r19.y, l(1) + dp3 r22.z, r29.xyzx, icb[r22.z + 0].xyzx + div r24.z, l(0.000244140625), cb7[r23.z + 0].w + add r24.z, -r24.z, l(0.500000) + utof r25.x, r19.y + ult r25.y, r19.y, l(2) + and r25.y, r25.y, l(2) + dp2 r25.y, r29.xzxx, icb[r25.y + 0].xzxx + mul r25.y, r25.y, icb[r19.y + 4].z + div r25.y, r25.y, |r22.z| + mad r25.x, r25.y, r24.z, r25.x + add r25.x, r25.x, l(0.500000) + mul_sat r25.x, r25.x, l(0.166666672) + iadd r25.z, l(-1), icb[r19.y + 4].y + dp2 r25.z, r29.yzyy, icb[r25.z + 0].xyxx + mul r19.y, r25.z, icb[r19.y + 4].w + div r19.y, r19.y, |r22.z| + mad_sat r25.y, -r19.y, r24.z, l(0.500000) + mad r24.xy, r25.xyxx, cb7[r23.z + 0].zwzz, cb7[r23.z + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r24.xyxx, t13.yxzw, s1, l(0.000000) + mul r18.x, r18.x, r19.y + endif + lt r19.y, l(0.000000), r18.x + if_nz r19.y + if_z r24.w + ftoi r22.z, cb4[r23.y + 6].x + else + add r24.xyz, r7.xyzx, -cb4[r23.x + 6].xyzx + lt r25.xyz, |r24.yzzy|, |r24.xxyx| + and r23.z, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r24.w, cb4[r21.w + 6].w, l(24) + ubfe r25.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb4[r21.w + 6].wwww + movc r24.x, r24.x, r24.w, r25.x + and r24.w, l(255), cb4[r21.w + 6].w + movc r24.y, r24.y, r25.y, r24.w + ubfe r24.w, l(8), l(8), cb4[r23.y + 6].x + and r25.x, l(255), cb4[r23.y + 6].x + movc r24.z, r24.z, r24.w, r25.x + movc r24.y, r25.z, r24.y, r24.z + movc r23.z, r23.z, r24.x, r24.y + ilt r24.x, r23.z, l(80) + movc r22.z, r24.x, r23.z, l(-1) + endif + ishl r23.z, r22.z, l(2) + mad r24.xyz, r26.xyzx, cb5[r22.z + 288].xxxx, r7.xyzx + mul r24.w, l(5.000000), cb5[r22.z + 288].y + mad r24.xyz, r6.xyzx, r24.wwww, r24.xyzx + mul r29.xyzw, r24.yyyy, cb5[r23.z + 65].xyzw + mad r29.xyzw, cb5[r23.z + 64].xyzw, r24.xxxx, r29.xyzw + mad r24.xyzw, cb5[r23.z + 66].xyzw, r24.zzzz, r29.xyzw + add r24.xyzw, r24.xyzw, cb5[r23.z + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r30.xy, -cb5[r22.z + 344].xyxx, cb5[r22.z + 344].zwzz + mad r24.xy, r24.xyxx, r30.xyxx, cb5[r22.z + 344].xyxx + mad r30.xy, r24.xyxx, cb5[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r30.xy, r30.xyxx + mad r24.xy, r24.xyxx, cb5[400].zwzz, -r30.xyxx + add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx + mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz + add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r35.z, r36.x + mov r35.w, r24.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r24.y + mov r33.z, r34.y + mov r33.w, r32.z + add r24.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.yxzy, cb5[400].xxxx + div r33.xyz, r33.zywz, r24.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.xyzx, cb5[400].yyyy + mov r32.w, r33.x + mad r34.xyzw, r30.xyxy, cb5[400].xyxy, r32.ywxw + mad r30.zw, r30.xxxy, cb5[400].xxxy, r32.zzzw + mov r33.w, r32.y + mov r32.yw, r33.yyyz + mad r35.xyzw, r30.xyxy, cb5[400].xyxy, r32.xyzy + mad r33.xyzw, r30.xyxy, cb5[400].xyxy, r33.wywz + mad r32.xyzw, r30.xyxy, cb5[400].xyxy, r32.xwzw + mul r36.xyzw, r24.xxxy, r31.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.z, r34.xyxx, t6.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r34.zwzz, t6.xxxx, s4, r24.z + mul r24.x, r24.x, r36.y + mad r23.z, r36.x, r23.z, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r30.zwzz, t6.xxxx, s4, r24.z + mad r23.z, r36.z, r24.x, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r33.xyxx, t6.xxxx, s4, r24.z + mad r23.z, r36.w, r24.x, r23.z + mul r30.xyzw, r24.yyww, r31.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r35.xyxx, t6.xxxx, s4, r24.z + mad r23.z, r30.x, r24.x, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r35.zwzz, t6.xxxx, s4, r24.z + mad r23.z, r30.y, r24.x, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r33.zwzz, t6.xxxx, s4, r24.z + mad r23.z, r30.z, r24.x, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r32.xyxx, t6.xxxx, s4, r24.z + mad r23.z, r30.w, r24.x, r23.z + ige r24.x, r22.z, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r24.y, r25.y, r25.x + or r24.y, r25.z, r24.y + and r25.x, r24.z, l(0x7fffffff) + ult r25.x, l(0x7f800000), r25.x + or r24.y, r24.y, r25.x + mul r24.w, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r32.zwzz, t6.xxxx, s4, r24.z + mad r23.z, r24.w, r24.z, r23.z + add r23.z, r23.z, l(-1.000000) + mad r22.z, cb5[r22.z + 288].w, r23.z, l(1.000000) + movc r22.z, r24.y, l(1.000000), r22.z + movc r22.z, r24.x, r22.z, l(1.000000) + else + mov r22.z, l(1.000000) + endif + if_nz r25.w + dp3 r23.z, r14.xyzx, r27.xyzx + mul_sat r24.x, r22.w, cb4[r21.w + 6].z + mad r24.x, r24.x, l(0.500000), r12.z + min r24.x, r24.x, l(1.000000) + div r24.x, r12.z, r24.x + mad r24.yzw, r14.xxyz, r23.zzzz, -r27.xxyz + dp3 r24.y, r28.xyzx, r24.yzwy + mul r23.z, r23.z, r23.z + mad r23.z, cb4[r21.w + 6].z, cb4[r21.w + 6].z, -r23.z + div_sat r23.z, r24.y, r23.z + mad r24.yzw, r27.xxyz, r23.zzzz, r28.xxyz + dp3 r23.z, r24.yzwy, r24.yzwy + rsq r23.z, r23.z + mul r26.xyz, r23.zzzz, r24.yzwy + else + mov r24.x, l(1.000000) + endif + if_nz r19.y + mul_sat r19.y, r22.w, cb4[r22.y + 6].y + mad r24.yzw, r10.xxyz, r9.wwww, r26.xxyz + dp3 r22.w, r24.yzwy, r24.yzwy + max r22.w, r22.w, l(0.0000610351562) + rsq r22.w, r22.w + mul r24.yzw, r22.wwww, r24.yyzw + dp3_sat r22.w, r6.xyzx, r24.yzwy + dp3_sat r23.z, r11.xyzx, r24.yzwy + if_nz r4.x + lt r24.y, l(0.000000), r19.y + mul r24.z, r19.y, r19.y + mad r24.w, r23.z, l(3.600000), l(0.400000) + div r24.z, r24.z, r24.w + mad r24.z, r19.w, r19.w, r24.z + min r24.z, r24.z, l(1.000000) + movc r24.y, r24.y, r24.z, r12.z + mul r24.y, r24.y, r24.y + mad r24.z, r22.w, r24.y, -r22.w + mad r24.z, r24.z, r22.w, l(1.000000) + add r24.w, -r23.z, l(1.000000) + mul r25.x, r24.w, r24.w + mul r25.x, r25.x, r25.x + mul r25.y, r24.w, r25.x + mad r24.w, -r25.x, r24.w, l(1.000000) + mad r24.w, r24.w, l(0.040000), r25.y + mul r24.z, r24.z, r24.z + div r24.z, r24.y, r24.z + mul r24.z, r24.x, r24.z + mad r25.x, -r12.x, r24.y, r12.x + mad r25.x, r25.x, r12.x, r24.y + sqrt r25.x, r25.x + mad r25.y, -r19.x, r24.y, r19.x + mad r24.y, r25.y, r19.x, r24.y + sqrt r24.y, r24.y + mul r24.y, r12.x, r24.y + mad r24.y, r19.x, r25.x, r24.y + add r24.y, r24.y, l(0.000100) + div r24.y, l(0.500000), r24.y + mul r24.y, r24.y, r24.z + mul r24.y, r24.y, r24.w + min r24.y, r24.y, l(2048.000000) + mad r24.zw, r19.xxxz, l(0.000000, 0.000000, 0.968750, 0.968750), l(0.000000, 0.000000, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r24.z, r24.zwzz, t9.yzxw, s1, l(0.000000) + mul r24.z, r15.x, r24.z + mul r24.z, r13.w, r24.z + div r24.z, r24.z, r14.w + mul r24.z, r24.z, l(0.00734693790) + div r24.z, r24.z, r15.y + add r24.yzw, r24.zzzz, r24.yyyy + mov r25.xyz, l(0,0,0,0) + else + lt r25.w, l(0.000000), r19.y + mul r19.y, r19.y, r19.y + mad r26.w, r23.z, l(3.600000), l(0.400000) + div r19.y, r19.y, r26.w + mad r19.y, r19.w, r19.w, r19.y + min r19.y, r19.y, l(1.000000) + movc r19.y, r25.w, r19.y, r12.z + mul r19.y, r19.y, r19.y + mad r25.w, r22.w, r19.y, -r22.w + mad r22.w, r25.w, r22.w, l(1.000000) + add r23.z, -r23.z, l(1.000000) + mul r25.w, r23.z, r23.z + mul r25.w, r25.w, r25.w + mul r26.w, r23.z, r25.w + dp3 r27.x, r6.xyzx, r26.xyzx + mad_sat r27.x, r27.x, l(0.666666687), l(0.333333343) + log r27.x, r27.x + mul r27.x, r27.x, l(1.500000) + exp r27.x, r27.x + mad r27.x, r27.x, l(1.66666663), l(-1.000000) + mad r27.x, r15.z, r27.x, l(1.000000) + mul r27.x, r1.x, r27.x + dp3 r27.z, r11.xyzx, r26.xyzx + mov_sat r27.z, -r27.z + log r27.z, r27.z + mul r27.yz, r27.xxzx, l(0.000000, 0.159154937, 12.000000, 0.000000) + exp r27.z, r27.z + mul r27.z, r1.z, r27.z + mad r27.x, -r27.x, l(0.159154937), l(1.000000) + mad r27.x, r27.z, r27.x, r27.y + mul r25.xyz, r16.xyzx, r27.xxxx + mad r23.z, -r25.w, r23.z, l(1.000000) + mad r23.z, r23.z, l(0.040000), r26.w + mul r22.w, r22.w, r22.w + div r22.w, r19.y, r22.w + mul r22.w, r24.x, r22.w + mad r24.x, -r12.x, r19.y, r12.x + mad r24.x, r24.x, r12.x, r19.y + sqrt r24.x, r24.x + mad r25.w, -r19.x, r19.y, r19.x + mad r19.y, r25.w, r19.x, r19.y + sqrt r19.y, r19.y + mul r19.y, r12.x, r19.y + mad r19.y, r19.x, r24.x, r19.y + add r19.y, r19.y, l(0.000100) + div r19.y, l(0.500000), r19.y + mul r19.y, r19.y, r22.w + mul r19.y, r19.y, r23.z + min r19.y, r19.y, l(2048.000000) + mad r27.xy, r19.xwxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r22.w, r27.xyxx, t9.yzwx, s1, l(0.000000) + mul r22.w, r15.x, r22.w + mul r22.w, r13.w, r22.w + div r22.w, r22.w, r14.w + mul r22.w, r22.w, l(0.00734693790) + div r22.w, r22.w, r15.y + add r24.yzw, r19.yyyy, r22.wwww + endif + mul r27.xyz, r18.xxxx, cb4[r17.z + 6].xyzx + mul r27.xyz, r22.zzzz, r27.xyzx + mul r27.xyz, r17.xxxx, r27.xyzx + mul r24.xyz, r24.yzwy, cb4[r22.y + 6].zzzz + max r24.xyz, r24.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r24.xyz, r24.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r28.xyz, r19.xxxx, r24.xyzx + if_nz r4.x + ult r17.x, l(0), r18.z + uge r18.x, l(15), r18.z + and r17.x, r17.x, r18.x + if_nz r17.x + iadd r18.x, r18.z, l(-1) + umin r18.x, r18.x, l(14) + dp3 r19.y, cb6[r18.x + 0].xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + mad r29.xyz, r19.yyyy, r4.yzwy, r6.xyzx + dp3 r19.y, r29.xyzx, r29.xyzx + rsq r19.y, r19.y + mul r29.xyz, r19.yyyy, r29.xyzx + dp3 r19.y, r29.xyzx, r26.xyzx + mad r26.x, r19.y, l(0.500000), l(0.500000) + mul r26.y, r2.w, cb6[r18.x + 0].w + itof r26.z, r18.x + sample_l_indexable(texture2darray)(float,float,float,float) r26.xyz, r26.xyzx, t10.xyzw, s1, l(0.000000) + endif + movc r26.xyz, r17.xxxx, r26.xyzx, r19.xxxx + mad r26.xyz, r3.xyzx, r26.xyzx, r28.xyzx + add r26.xyz, r25.xyzx, r26.xyzx + mul r26.xyz, r26.xyzx, r27.xyzx + else + mad r24.xyz, r24.xyzx, r19.xxxx, r25.xyzx + mad r24.xyz, r3.xyzx, r19.xxxx, r24.xyzx + mul r26.xyz, r27.xyzx, r24.xyzx + endif + else + mov r26.xyz, l(0,0,0,0) + endif + else + if_z r17.y + mad r17.x, cb4[r21.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r17.x, -|cb4[r21.w + 6].x| + add r24.y, -r24.x, cb4[r21.w + 6].y + add r17.x, -|r24.x|, l(1.000000) + add r17.x, -|r24.y|, r17.x + max r17.x, r17.x, l(0.000488281250) + ge r17.y, cb4[r21.w + 6].x, l(0.000000) + movc r24.z, r17.y, r17.x, -r17.x + dp3 r17.x, r24.xyzx, r24.xyzx + rsq r17.x, r17.x + mul r24.xyz, r17.xxxx, r24.xyzx + add r25.xyz, -r7.xyzx, cb4[r23.x + 6].xyzx + dp3 r17.x, r25.xyzx, r25.xyzx + rsq r17.y, r17.x + mul r27.xyz, r17.yyyy, r25.xyzx + ftoi r17.y, cb4[r22.y + 6].w + mul r22.yzw, r24.xxyz, cb4[r21.w + 6].zzzz + mad r28.xyz, -r22.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r22.yzw, r22.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), r25.xxyz + ftou r17.z, cb4[r17.z + 6].w + and r17.z, r17.z, l(1) + ieq r18.x, r17.z, l(0) + not r18.x, r18.x + lt r19.x, l(0.000000), cb4[r21.w + 6].z + and r18.x, r18.x, r19.x + dp3 r19.x, r28.xyzx, r28.xyzx + dp3 r19.y, r22.yzwy, r22.yzwy + sqrt r19.xy, r19.xyxx + dp3 r22.y, r28.xyzx, r22.yzwy + mad r19.x, r19.x, r19.y, r22.y + mad r19.x, r19.x, l(0.500000), l(1.000000) + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x + movc r19.x, r18.x, r19.x, l(1.000000) + lt r19.y, cb4[r23.w + 6].w, l(0.000000) + if_nz r19.y + mul r19.y, cb4[r23.x + 6].w, cb4[r23.x + 6].w + mul r19.y, r17.x, r19.y + mad r19.y, -r19.y, r19.y, l(1.000000) + max r19.y, r19.y, l(0.000000) + add r17.x, r17.x, l(1.000000) + div r17.x, l(1.000000, 1.000000, 1.000000, 1.000000), r17.x + and r22.y, r18.x, l(0x3f800000) + add r22.z, -r17.x, r19.x + mad r17.x, r22.y, r22.z, r17.x + mul r19.y, r19.y, r19.y + mul r17.x, r17.x, r19.y + else + mul r22.yzw, r25.xxyz, cb4[r23.x + 6].wwww + dp3 r19.y, r22.yzwy, r22.yzwy + min r19.y, r19.y, l(1.000000) + add r19.y, -r19.y, l(1.000000) + log r19.y, r19.y + mul r19.y, r19.y, cb4[r23.w + 6].w + exp r19.y, r19.y + mul r17.x, r19.y, r19.x + endif + dp3 r19.x, r27.xyzx, -r24.xyzx + add r19.x, r19.x, -cb4[r21.w + 6].z + mul_sat r19.x, r19.x, cb4[r21.w + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r17.z, l(1.000000), r19.x + mul r17.x, r17.x, r19.x + not r18.x, r18.x + ige r19.x, r17.y, l(0) + and r18.x, r18.x, r19.x + if_nz r18.x + if_z r17.z + ishl r18.x, r17.y, l(2) + mul r22.yzw, r7.yyyy, cb7[r18.x + 33].xxyw + mad r22.yzw, cb7[r18.x + 32].xxyw, r7.xxxx, r22.yyzw + mad r22.yzw, cb7[r18.x + 34].xxyw, r7.zzzz, r22.yyzw + add r22.yzw, r22.yyzw, cb7[r18.x + 35].xxyw + div_sat r19.xy, r22.yzyy, r22.wwww + mad r19.xy, r19.xyxx, cb7[r17.y + 0].zwzz, cb7[r17.y + 0].xyxx + else + ishl r18.x, r17.y, l(2) + dp3 r24.x, -r25.xyzx, cb7[r18.x + 32].xyzx + dp3 r24.y, -r25.xyzx, cb7[r18.x + 33].xyzx + dp3 r24.z, -r25.xyzx, cb7[r18.x + 34].xyzx + lt r18.x, |r24.x|, |r24.y| + and r18.x, r18.x, l(1) + dp2 r22.y, |r24.xyxx|, icb[r18.x + 0].xyxx + lt r22.y, r22.y, |r24.z| + movc r18.x, r22.y, l(2), r18.x + dp3 r22.y, r24.xyzx, icb[r18.x + 0].xyzx + lt r22.y, r22.y, l(0.000000) + bfi r18.x, l(31), l(1), r18.x, r22.y + ushr r22.y, r18.x, l(1) + dp3 r22.y, r24.xyzx, icb[r22.y + 0].xyzx + div r22.z, l(0.000244140625), cb7[r17.y + 0].w + add r22.z, -r22.z, l(0.500000) + utof r22.w, r18.x + ult r23.z, r18.x, l(2) + and r23.z, r23.z, l(2) + dp2 r23.z, r24.xzxx, icb[r23.z + 0].xzxx + mul r23.z, r23.z, icb[r18.x + 4].z + div r23.z, r23.z, |r22.y| + mad r22.w, r23.z, r22.z, r22.w + add r22.w, r22.w, l(0.500000) + mul_sat r25.x, r22.w, l(0.166666672) + iadd r22.w, l(-1), icb[r18.x + 4].y + dp2 r22.w, r24.yzyy, icb[r22.w + 0].xyxx + mul r18.x, r22.w, icb[r18.x + 4].w + div r18.x, r18.x, |r22.y| + mad_sat r25.y, -r18.x, r22.z, l(0.500000) + mad r19.xy, r25.xyxx, cb7[r17.y + 0].zwzz, cb7[r17.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.y, r19.xyxx, t13.yxzw, s1, l(0.000000) + mul r17.x, r17.y, r17.x + endif + lt r17.x, l(0.000000), r17.x + if_nz r17.x + if_z r17.z + ftoi r17.x, cb4[r23.y + 6].x + else + add r22.yzw, r7.xxyz, -cb4[r23.x + 6].xxyz + lt r23.xzw, |r22.zzww|, |r22.yyyz| + and r17.y, r23.z, r23.x + lt r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r22.yyzw + ushr r17.z, cb4[r21.w + 6].w, l(24) + ubfe r19.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb4[r21.w + 6].wwww + movc r17.z, r22.y, r17.z, r19.x + and r18.x, l(255), cb4[r21.w + 6].w + movc r18.x, r22.z, r19.y, r18.x + ubfe r19.x, l(8), l(8), cb4[r23.y + 6].x + and r19.y, l(255), cb4[r23.y + 6].x + movc r19.x, r22.w, r19.x, r19.y + movc r18.x, r23.w, r18.x, r19.x + movc r17.y, r17.y, r17.z, r18.x + ilt r17.z, r17.y, l(80) + movc r17.x, r17.z, r17.y, l(-1) + endif + ishl r17.y, r17.x, l(2) + mad r22.yzw, r27.xxyz, cb5[r17.x + 288].xxxx, r7.xxyz + mul r17.z, l(5.000000), cb5[r17.x + 288].y + mad r22.yzw, r6.xxyz, r17.zzzz, r22.yyzw + mul r23.xyzw, r22.zzzz, cb5[r17.y + 65].xyzw + mad r23.xyzw, cb5[r17.y + 64].xyzw, r22.yyyy, r23.xyzw + mad r23.xyzw, cb5[r17.y + 66].xyzw, r22.wwww, r23.xyzw + add r23.xyzw, r23.xyzw, cb5[r17.y + 67].xyzw + div r22.yzw, r23.xxyz, r23.wwww + ge r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.yzwy + ge r24.xyz, r22.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) + add r17.yz, -cb5[r17.x + 344].xxyx, cb5[r17.x + 344].zzwz + mad r17.yz, r22.yyzy, r17.yyzy, cb5[r17.x + 344].xxyx + mad r19.xy, r17.yzyy, cb5[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r19.xy, r19.xyxx + mad r17.yz, r17.yyzy, cb5[400].zzwz, -r19.xxyx + add r25.xyzw, r17.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r25.xxzz, r25.xxzz + add r22.yz, -r17.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + min r25.xz, r17.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r17.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r22.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r25.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r17.yz, r27.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r17.yyzy + mul r30.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r17.yz, -r25.xxzx, r25.xxzx, r22.yyzy + add r17.yz, r17.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r31.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r17.yz, r25.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r30.z, r31.x + mov r30.w, r17.y + mov r29.z, r28.x + mov r29.w, r27.x + add r25.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r17.z + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r25.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.yxzy, cb5[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb5[400].yyyy + mov r29.w, r28.x + mad r30.xyzw, r19.xyxy, cb5[400].xyxy, r29.ywxw + mad r17.yz, r19.xxyx, cb5[400].xxyx, r29.zzwz + mov r28.w, r29.y + mov r29.yw, r28.yyyz + mad r31.xyzw, r19.xyxy, cb5[400].xyxy, r29.xyzy + mad r28.xyzw, r19.xyxy, cb5[400].xyxy, r28.wywz + mad r29.xyzw, r19.xyxy, cb5[400].xyxy, r29.xwzw + mul r32.xyzw, r25.zwyz, r27.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.xyxx, t6.xxxx, s4, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r30.zwzz, t6.xxxx, s4, r22.w + mul r19.x, r19.x, r32.y + mad r18.x, r32.x, r18.x, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r17.yzyy, t6.xxxx, s4, r22.w + mad r17.y, r32.z, r17.y, r18.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r28.xyxx, t6.xxxx, s4, r22.w + mad r17.y, r32.w, r17.z, r17.y + mul r30.xyzw, r25.xyzw, r27.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r31.xyxx, t6.xxxx, s4, r22.w + mad r17.y, r30.x, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r31.zwzz, t6.xxxx, s4, r22.w + mad r17.y, r30.y, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r28.zwzz, t6.xxxx, s4, r22.w + mad r17.y, r30.z, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r29.xyxx, t6.xxxx, s4, r22.w + mad r17.y, r30.w, r17.z, r17.y + ige r17.z, r17.x, l(0) + or r23.xyz, r23.xyzx, r24.xyzx + or r18.x, r23.y, r23.x + or r18.x, r23.z, r18.x + and r19.x, r22.w, l(0x7fffffff) + ult r19.x, l(0x7f800000), r19.x + or r18.x, r18.x, r19.x + mul r19.x, r25.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r29.zwzz, t6.xxxx, s4, r22.w + mad r17.y, r19.x, r19.y, r17.y + add r17.y, r17.y, l(-1.000000) + mad r17.x, cb5[r17.x + 288].w, r17.y, l(1.000000) + movc r17.x, r18.x, l(1.000000), r17.x + movc r17.x, r17.z, r17.x, l(1.000000) + else + mov r17.x, l(1.000000) + endif + else + mov r17.x, l(1.000000) + endif + mul r18.w, r17.x, r18.w + mov r26.xyz, l(0,0,0,0) + endif + add r21.xyz, r21.xyzx, r26.xyzx + mov r20.w, r22.x + endloop + mov r5.z, r18.w + add r20.xyz, r20.xyzx, r21.xyzx + iadd r12.w, r12.w, l(1) +endloop +mad r4.yzw, r20.xxyz, r5.zzzz, r13.xxyz +ne r0.z, l(0.000000), cb0[112].x +if_nz r0.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.x, r0.z + add r1.z, r0.z, r2.z + mad r2.z, r19.w, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.z, |r1.z| + mul r1.z, r1.z, r2.z + exp r1.z, r1.z + add r1.z, r0.z, r1.z + add r1.z, r1.z, l(-1.000000) + mov_sat r10.xyz, r1.zzzz + mad r12.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + max r12.xyz, r0.zzzz, r12.xyzx +else + mov r10.xyz, r1.xxxx + mov r12.xyz, r1.xxxx +endif +if_nz r4.x + ult r0.z, l(0), r3.w + uge r1.x, l(15), r3.w + and r0.z, r0.z, r1.x + if_nz r0.z + iadd r1.x, r3.w, l(-1) + umin r1.x, r1.x, l(14) + mul r13.x, r2.w, cb6[r1.x + 0].w + utof r13.z, r1.x + mov r13.y, l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r13.xyz, r13.xyzx, t11.xyzw, s1, l(0.000000) + endif + movc r13.xyz, r0.zzzz, r13.xyzx, l(1.000000,1.000000,1.000000,0) + mad r15.xyz, r6.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r7.xyzx + round_z r0.z, cb0[212].x + mad r1.xz, r0.zzzz, l(2.083000, 0.000000, 4.867000, 0.000000), r1.yywy + dp2 r0.z, r1.xzxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r0.z, r0.z + mul r0.z, r0.z, l(52.982918) + frc r0.z, r0.z + mad r0.z, r0.z, l(2.000000), l(-1.000000) + mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx + mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r17.xyz, r15.xzyx, -r17.xyzx + max r0.z, |r17.y|, |r17.x| + add r0.z, r0.z, l(-464.000000) + mul_sat r0.z, r0.z, l(0.031250) + add r1.x, |r17.z|, l(-208.000000) + mul_sat r1.x, r1.x, l(0.031250) + max r0.z, r0.z, r1.x + ne r1.x, l(0.000000), cb0[210].w + lt r1.z, r0.z, l(1.000000) + and r1.x, r1.z, r1.x + if_nz r1.x + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r15.xzyx, -r17.xyzx + max r1.x, |r17.y|, |r17.x| + add r1.x, r1.x, l(-29.000000) + add r1.z, |r17.z|, l(-13.000000) + mul_sat r1.xz, r1.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) + max r1.x, r1.z, r1.x + lt r1.z, r1.x, l(1.000000) + if_nz r1.z + mad r17.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t17.yzwx, s2, l(0.000000) + add r1.z, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r2.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r17.y + min r2.z, r2.w, r2.z + mul r17.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t18.xyzw, s1, l(0.000000) + mad r2.z, r20.w, r1.z, r0.z + add r19.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r18.yyyy, r19.xyzx + mov r21.w, r18.y + mul r21.xyzw, r1.zzzz, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t18.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r1.zzzz, r17.xyzw + mad r19.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r1.zzzz, r18.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r15.xzyx, -r19.xyzx + max r1.z, |r19.y|, |r19.x| + add r1.z, r1.z, l(-116.000000) + mul_sat r1.z, r1.z, l(0.125000) + add r2.w, |r19.z|, l(-52.000000) + mul_sat r2.w, r2.w, l(0.125000) + max r1.z, r1.z, r2.w + lt r2.w, r1.z, l(1.000000) + if_nz r2.w + mad r19.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r19.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r20.xyz, r19.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t19.yzwx, s2, l(0.000000) + add r2.w, -r1.z, l(1.000000) + mul r1.x, r1.x, r2.w + mul r2.w, l(0.500000), cb0[211].y + mad r3.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.w, r2.w, r20.y + min r2.w, r3.w, r2.w + mul r20.w, r2.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t20.xyzw, s1, l(0.000000) + mad r2.z, r23.w, r1.x, r2.z + add r19.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r19.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r1.xxxx, r21.xyzw + add r19.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r19.xyzx + mov r20.w, r22.x + mad r17.xyzw, r20.xyzw, r1.xxxx, r17.xyzw + mad r19.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r19.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + endif + lt r1.x, l(0.000000), r1.z + if_nz r1.x + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r19.xyzx + mad r19.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r19.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r15.xyzx, t21.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.z + max r1.z, r20.y, r15.y + min r1.z, r19.y, r1.z + mul r15.w, r1.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r15.xwzx, t22.xyzw, s1, l(0.000000) + add r19.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r22.yyyy, r19.xyzx + mov r23.w, r22.y + mad r21.xyzw, r23.xyzw, r1.xxxx, r21.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t22.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r22.xxxx, r15.xyzx + mov r15.w, r22.x + mad r17.xyzw, r15.xyzw, r1.xxxx, r17.xyzw + mad r15.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r15.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + mad r2.z, r20.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r15.y, r0.z, l(0.500000) + else + mov r21.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) + endif + mul r20.xyzw, r15.yxyy, cb0[213].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[213].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r18.xyzw, r18.xyzw, r20.wyzx + mul r20.xyzw, r15.yxyy, cb0[214].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[214].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r17.xyzw, r17.xyzw, r20.wyzx + mul r20.xyzw, r15.yxyy, cb0[215].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[215].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r15.xyzw, r20.wyzx, r21.xyzw + ge r1.xz, r2.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + and r0.z, r1.z, r1.x + if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r20.xyzw, r2.xyxx, t16.xyzw, s1, l(0.000000) + lt r21.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r20.xyzw| + or r1.xz, r21.zzwz, r21.xxyx + or r0.z, r1.z, r1.x + if_nz r0.z + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.z, r0.z + mov r2.z, l(0) + loop + ge r2.w, l(4.600000), r1.z + breakc_nz r2.w + iadd r2.w, r2.z, l(1) + mul r5.xz, r1.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) + mov r1.xz, r5.xxzx + mov r2.z, r2.w + continue + endloop + mul r20.xyzw, r1.xxxx, r20.xyzw + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb8[3].x, cb8[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r19.x, r0.z, l(0.00390625000) + mov r19.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xz, r19.xyxx, t15.xzyw, s1, l(0.000000) + mad r1.xz, r1.xxzx, cb8[2].xxyx, cb8[2].zzwz + mul r21.x, r1.x, l(3.54490781) + mul r21.yzw, r1.zzzz, r20.yyzw + mul r0.z, r20.x, l(0.406976730) + exp r0.z, r0.z + mul r20.xyzw, r0.zzzz, r21.xyzw + mov r21.xyzw, r20.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r2.z + breakc_nz r1.x + mul r22.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r22.xyzw, r21.xyzw + dp2 r1.z, r22.yxyy, r21.xyxx + dp2 r2.w, r22.zxzz, r21.xzxx + dp2 r3.w, r22.wxww, r21.xwxx + iadd r4.x, r0.z, l(1) + mov r21.xy, r1.xzxx + mov r21.z, r2.w + mov r21.w, r3.w + mov r0.z, r4.x + continue + endloop + mul r20.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r21.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r20.xyzw, r21.xyzw + dp2 r1.x, r20.yxyy, r21.xyxx + dp2 r1.z, r20.zxzz, r21.xzxx + dp2 r2.z, r20.wxww, r21.xwxx + mul r21.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r2.w, r20.xyzw, r21.xyzw + dp2 r3.w, r20.yxyy, r21.xyxx + dp2 r4.x, r20.zxzz, r21.xzxx + dp2 r5.x, r20.wxww, r21.xwxx + mul r21.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r5.z, r20.xyzw, r21.xyzw + dp2 r9.w, r20.yxyy, r21.xyxx + dp2 r11.w, r20.zxzz, r21.xzxx + dp2 r12.w, r20.wxww, r21.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r2.z, l(-1.02332675) + mul r18.yz, r1.xxzx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r17.w, r2.w, l(0.886226952) + mul r17.x, r5.x, l(-1.02332675) + mul r17.y, r3.w, l(-1.02332675) + mul r17.z, r4.x, l(1.02332675) + mul r15.w, r5.z, l(0.886226952) + mul r15.x, r12.w, l(-1.02332675) + mul r15.y, r9.w, l(-1.02332675) + mul r15.z, r11.w, l(1.02332675) + endif + endif + mul r18.xyz, r13.xxxx, r18.xyzx + dp3 r0.z, r18.xyzx, r6.xyzx + add r0.z, r18.w, r0.z + max r18.x, r0.z, l(0.000000) + mul r13.xyw, r13.yyyy, r17.xyxz + dp3 r0.z, r13.xywx, r6.xyzx + add r0.z, r17.w, r0.z + max r18.y, r0.z, l(0.000000) + mul r13.xyz, r13.zzzz, r15.xyzx + dp3 r0.z, r13.xyzx, r6.xyzx + add r0.z, r15.w, r0.z + max r18.z, r0.z, l(0.000000) + add r0.z, l(-1.000000), cb0[113].x + max r1.x, r19.w, l(0.001000) + log r1.x, r1.x + mad r1.x, -r1.x, l(1.200000), l(1.000000) + add r0.z, r0.z, -r1.x + mul r1.xz, r1.yywy, cb2[0].wwww + round_ni r1.xz, r1.xxzx + add r2.z, |r5.y|, -cb2[2].y + round_ni r2.z, r2.z + add r2.w, l(-1.000000), cb2[1].x + max r3.w, r2.z, l(0.000000) + min r2.w, r2.w, r3.w + ge r2.z, r2.w, r2.z + mad r1.x, r1.z, cb2[0].x, r1.x + ftoi r1.x, r1.x + iadd r1.x, r1.x, cb0[110].z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx + ftoi r1.z, r2.w + iadd r1.z, r1.z, cb0[110].w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.z, r1.z, l(0), t0.xxxx + and r1.x, r1.z, r1.x + and r1.x, r1.x, r2.z + mul r13.xyz, r18.xyzx, cb0[111].xxxx + dp3 r1.z, r13.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + mov r7.w, l(1.000000) + mov r6.w, l(1.000000) + mov r13.xyz, l(0,0,0,0) + mov r2.z, l(1.000000) + mov r2.w, r1.x + mov r3.w, l(0) + loop + lt r4.x, l(0.010000), r2.z + ine r5.x, r2.w, l(0) + and r5.x, r4.x, r5.x + if_nz r5.x + firstbit_lo r5.x, r2.w + ishl r5.z, l(1), r5.x + xor r2.w, r2.w, r5.z + ishl r5.x, r5.x, l(3) + dp4 r15.x, cb2[r5.x + 6].xyzw, r7.xyzw + dp4 r15.y, cb2[r5.x + 7].xyzw, r7.xyzw + dp4 r15.z, cb2[r5.x + 8].xyzw, r7.xyzw + ge r17.xyz, cb2[r5.x + 5].xyzx, |r15.xyzx| + and r5.z, r17.y, r17.x + and r5.z, r17.z, r5.z + if_nz r5.z + mul r5.z, l(0.100000), cb2[r5.x + 5].x + mul r17.xyz, |r15.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r19.xyz, -|r15.xyzx|, cb2[r5.x + 5].xyzx + mul r19.xyz, r19.xyzx, cb2[r5.x + 9].xyzx + eq r9.w, l(1.000000), cb2[r5.x + 10].x + if_nz r9.w + dp3 r20.x, cb2[r5.x + 6].xyzx, r14.xyzx + dp3 r20.y, cb2[r5.x + 7].xyzx, r14.xyzx + dp3 r20.z, cb2[r5.x + 8].xyzx, r14.xyzx + add r21.xyz, -r15.xyzx, cb2[r5.x + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r15.xyzx, -cb2[r5.x + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r9.w, r21.y, r21.x + min r9.w, r21.z, r9.w + mad r15.xyz, r20.xyzx, r9.wwww, r15.xyzx + else + mov r15.xyz, r14.xyzx + endif + dp3 r9.w, r15.xyzx, r15.xyzx + rsq r9.w, r9.w + mul r15.xyz, r9.wwww, r15.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r21.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r9.w, r15.xyzx, r20.xyzx + div r15.xyz, r15.xyzx, r9.wwww + lt r9.w, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r20.xxxy + movc r15.xy, r9.wwww, r15.zwzz, r15.xyxx + dp4 r9.w, cb2[r5.x + 4].xyzw, r6.xyzw + max r9.w, r9.w, l(0.000000) + max r9.w, r9.w, l(0.000100) + min r11.w, r19.z, r19.y + min r11.w, r11.w, r19.x + add r12.w, r17.y, r17.x + mad r12.w, r17.z, r17.z, r12.w + mad r5.z, r5.z, r5.z, -r12.w + mul r5.z, r5.z, cb2[r5.x + 9].x + mul r5.z, r5.z, cb2[r5.x + 9].x + add r12.w, l(1.000000), -cb2[r5.x + 10].y + mul r5.z, r5.z, r12.w + mul r5.z, r5.z, l(100.000000) + mad_sat r5.z, r11.w, cb2[r5.x + 10].y, r5.z + mul r11.w, r5.z, cb2[r5.x + 10].w + mad r15.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r15.xy, r15.xyxx, cb2[1].wwww, cb2[2].wwww + mov r15.z, cb2[r5.x + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + mul r15.xyz, r15.xyzx, cb2[r5.x + 9].wwww + div r12.w, r1.z, r9.w + min r12.w, |r12.w|, l(1.000000) + mad r12.w, r12.w, l(2.000000), r1.z + add r9.w, r9.w, l(2.000000) + div r9.w, r12.w, r9.w + add r9.w, r9.w, l(-1.000000) + mad r9.w, r9.w, cb0[112].w, l(1.000000) + mul r15.xyz, r9.wwww, r15.xyzx + mul r15.xyz, r11.wwww, r15.xyzx + mad r13.xyz, r15.xyzx, r2.zzzz, r13.xyzx + mad r5.x, -r5.z, cb2[r5.x + 10].w, l(1.000000) + mul r2.z, r2.z, r5.x + endif + mov r3.w, l(-1) + continue + else + mov r3.w, r4.x + break + endif + mov r3.w, r4.x + endloop + if_nz r3.w + dp3 r1.x, r14.xyzx, r14.xyzx + rsq r1.x, r1.x + mul r15.xyz, r1.xxxx, r14.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r19.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r19.xyzx + itof r17.xyz, r17.xyzx + dp3 r1.x, r15.xyzx, r17.xyzx + div r15.xyz, r15.xyzx, r1.xxxx + lt r1.x, r15.z, l(0.000000) + add r5.xz, -|r15.yyxy|, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r5.xz, r5.xxzx, r17.xxyx + movc r5.xz, r1.xxxx, r5.xxzx, r15.xxyx + mov r6.w, l(1.000000) + dp4 r1.x, cb2[3].xyzw, r6.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r5.xz, r5.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) + mad r15.xy, r5.xzxx, cb2[1].wwww, cb2[2].wwww + mov r15.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.z, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.z + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r15.xyz, r0.zzzz, r15.xyzx + mad r13.xyz, r15.xyzx, r2.zzzz, r13.xyzx + endif + mul r13.xyz, r13.xyzx, cb0[112].zzzz + mul r13.xyz, r13.xyzx, cb0[111].yyyy + ne r0.z, l(0.000000), cb0[112].y + if_nz r0.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.x, -r0.z, l(1.000000) + mul r17.xyz, r1.xxxx, r13.xyzx + mad r13.xyz, r15.xyzx, r0.zzzz, r17.xyzx + endif + mul r15.xyz, r3.xyzx, r18.xyzx + mul r15.xyz, r15.xyzx, cb0[111].xxxx + mul r13.xyz, r10.wwww, r13.xyzx + mul r13.xyz, r10.xyzx, r13.xyzx + mad r13.xyz, r15.xyzx, r12.xyzx, r13.xyzx +else + mad r15.xyz, r6.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r7.xyzx + round_z r0.z, cb0[212].x + mad r1.xz, r0.zzzz, l(2.083000, 0.000000, 4.867000, 0.000000), r1.yywy + dp2 r0.z, r1.xzxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r0.z, r0.z + mul r0.z, r0.z, l(52.982918) + frc r0.z, r0.z + mad r0.z, r0.z, l(2.000000), l(-1.000000) + mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx + mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r17.xyz, r15.xzyx, -r17.xyzx + max r0.z, |r17.y|, |r17.x| + add r0.z, r0.z, l(-464.000000) + mul_sat r0.z, r0.z, l(0.031250) + add r1.x, |r17.z|, l(-208.000000) + mul_sat r1.x, r1.x, l(0.031250) + max r0.z, r0.z, r1.x + ne r1.x, l(0.000000), cb0[210].w + lt r1.z, r0.z, l(1.000000) + and r1.x, r1.z, r1.x + if_nz r1.x + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r15.xzyx, -r17.xyzx + max r1.x, |r17.y|, |r17.x| + add r1.x, r1.x, l(-29.000000) + add r1.z, |r17.z|, l(-13.000000) + mul_sat r1.xz, r1.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) + max r1.x, r1.z, r1.x + lt r1.z, r1.x, l(1.000000) + if_nz r1.z + mad r17.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t17.yzwx, s2, l(0.000000) + add r1.z, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r2.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r17.y + min r2.z, r2.w, r2.z + mul r17.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t18.xyzw, s1, l(0.000000) + mad r2.z, r20.w, r1.z, r0.z + add r19.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r18.yyyy, r19.xyzx + mov r21.w, r18.y + mul r21.xyzw, r1.zzzz, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t18.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r1.zzzz, r17.xyzw + mad r19.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r1.zzzz, r18.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r15.xzyx, -r19.xyzx + max r1.z, |r19.y|, |r19.x| + add r1.z, r1.z, l(-116.000000) + mul_sat r1.z, r1.z, l(0.125000) + add r2.w, |r19.z|, l(-52.000000) + mul_sat r2.w, r2.w, l(0.125000) + max r1.z, r1.z, r2.w + lt r2.w, r1.z, l(1.000000) + if_nz r2.w + mad r19.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r19.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r20.xyz, r19.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t19.yzwx, s2, l(0.000000) + add r2.w, -r1.z, l(1.000000) + mul r1.x, r1.x, r2.w + mul r2.w, l(0.500000), cb0[211].y + mad r3.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.w, r2.w, r20.y + min r2.w, r3.w, r2.w + mul r20.w, r2.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t20.xyzw, s1, l(0.000000) + mad r2.z, r23.w, r1.x, r2.z + add r19.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r19.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r1.xxxx, r21.xyzw + add r19.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r19.xyzx + mov r20.w, r22.x + mad r17.xyzw, r20.xyzw, r1.xxxx, r17.xyzw + mad r19.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r19.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + endif + lt r1.x, l(0.000000), r1.z + if_nz r1.x + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r19.xyzx + mad r19.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r19.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r15.xyzx, t21.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.z + max r1.z, r20.y, r15.y + min r1.z, r19.y, r1.z + mul r15.w, r1.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r15.xwzx, t22.xyzw, s1, l(0.000000) + add r19.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r22.yyyy, r19.xyzx + mov r23.w, r22.y + mad r21.xyzw, r23.xyzw, r1.xxxx, r21.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t22.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r22.xxxx, r15.xyzx + mov r15.w, r22.x + mad r17.xyzw, r15.xyzw, r1.xxxx, r17.xyzw + mad r15.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r15.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + mad r2.z, r20.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r15.y, r0.z, l(0.500000) + else + mov r21.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) + endif + mul r20.xyzw, r15.yxyy, cb0[213].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[213].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r18.xyzw, r18.xyzw, r20.wyzx + mul r20.xyzw, r15.yxyy, cb0[214].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[214].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r17.xyzw, r17.xyzw, r20.wyzx + mul r20.xyzw, r15.yxyy, cb0[215].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[215].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r15.xyzw, r20.wyzx, r21.xyzw + ge r1.xz, r2.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + and r0.z, r1.z, r1.x + if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, r2.xyxx, t16.xyzw, s1, l(0.000000) + lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r2.xyzw| + or r1.xz, r20.zzwz, r20.xxyx + or r0.z, r1.z, r1.x + if_nz r0.z + dp3 r0.z, r2.yzwy, r2.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.z, r0.z + mov r3.w, l(0) + loop + ge r4.x, l(4.600000), r1.z + breakc_nz r4.x + iadd r4.x, r3.w, l(1) + mul r5.xz, r1.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) + mov r1.xz, r5.xxzx + mov r3.w, r4.x + continue + endloop + mul r2.xyzw, r1.xxxx, r2.xyzw + dp3 r0.z, r2.yzwy, r2.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb8[3].x, cb8[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r19.x, r0.z, l(0.00390625000) + mov r19.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xz, r19.xyxx, t15.xzyw, s1, l(0.000000) + mad r1.xz, r1.xxzx, cb8[2].xxyx, cb8[2].zzwz + mul r20.x, r1.x, l(3.54490781) + mul r20.yzw, r1.zzzz, r2.yyzw + mul r0.z, r2.x, l(0.406976730) + exp r0.z, r0.z + mul r2.xyzw, r0.zzzz, r20.xyzw + mov r20.xyzw, r2.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r3.w + breakc_nz r1.x + mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r21.xyzw, r20.xyzw + dp2 r1.z, r21.yxyy, r20.xyxx + dp2 r4.x, r21.zxzz, r20.xzxx + dp2 r5.x, r21.wxww, r20.xwxx + iadd r5.z, r0.z, l(1) + mov r20.xy, r1.xzxx + mov r20.z, r4.x + mov r20.w, r5.x + mov r0.z, r5.z + continue + endloop + mul r2.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r2.xyzw, r20.xyzw + dp2 r1.x, r2.yxyy, r20.xyxx + dp2 r1.z, r2.zxzz, r20.xzxx + dp2 r3.w, r2.wxww, r20.xwxx + mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.x, r2.xyzw, r20.xyzw + dp2 r5.x, r2.yxyy, r20.xyxx + dp2 r5.z, r2.zxzz, r20.xzxx + dp2 r9.w, r2.wxww, r20.xwxx + mul r20.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r11.w, r2.xyzw, r20.xyzw + dp2 r2.y, r2.yxyy, r20.xyxx + dp2 r2.z, r2.zxzz, r20.xzxx + dp2 r2.x, r2.wxww, r20.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r3.w, l(-1.02332675) + mul r18.yz, r1.xxzx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r17.w, r4.x, l(0.886226952) + mul r17.x, r9.w, l(-1.02332675) + mul r17.yz, r5.xxzx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r15.w, r11.w, l(0.886226952) + mul r15.xyz, r2.xyzx, l(-1.02332675, -1.02332675, 1.02332675, 0.000000) + endif + endif + dp3 r0.z, r18.xyzx, r6.xyzx + add r0.z, r18.w, r0.z + max r2.x, r0.z, l(0.000000) + dp3 r0.z, r17.xyzx, r6.xyzx + add r0.z, r17.w, r0.z + max r2.y, r0.z, l(0.000000) + dp3 r0.z, r15.xyzx, r6.xyzx + add r0.z, r15.w, r0.z + max r2.z, r0.z, l(0.000000) + add r0.z, l(-1.000000), cb0[113].x + max r1.x, r19.w, l(0.001000) + log r1.x, r1.x + mad r1.x, -r1.x, l(1.200000), l(1.000000) + add r0.z, r0.z, -r1.x + mul r1.xz, r1.yywy, cb2[0].wwww + round_ni r1.xz, r1.xxzx + add r2.w, |r5.y|, -cb2[2].y + round_ni r2.w, r2.w + add r3.w, l(-1.000000), cb2[1].x + max r4.x, r2.w, l(0.000000) + min r3.w, r3.w, r4.x + ge r2.w, r3.w, r2.w + mad r1.x, r1.z, cb2[0].x, r1.x + ftoi r1.x, r1.x + iadd r1.x, r1.x, cb0[110].z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx + ftoi r1.z, r3.w + iadd r1.z, r1.z, cb0[110].w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.z, r1.z, l(0), t0.xxxx + and r1.x, r1.z, r1.x + and r1.x, r1.x, r2.w + mul r15.xyz, r2.xyzx, cb0[111].xxxx + dp3 r1.z, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + mov r7.w, l(1.000000) + mov r6.w, l(1.000000) + mov r15.xyz, l(0,0,0,0) + mov r2.w, l(1.000000) + mov r3.w, r1.x + mov r4.x, l(0) + loop + lt r5.x, l(0.010000), r2.w + ine r5.z, r3.w, l(0) + and r5.z, r5.x, r5.z + if_nz r5.z + firstbit_lo r5.z, r3.w + ishl r9.w, l(1), r5.z + xor r3.w, r3.w, r9.w + ishl r5.z, r5.z, l(3) + dp4 r17.x, cb2[r5.z + 6].xyzw, r7.xyzw + dp4 r17.y, cb2[r5.z + 7].xyzw, r7.xyzw + dp4 r17.z, cb2[r5.z + 8].xyzw, r7.xyzw + ge r18.xyz, cb2[r5.z + 5].xyzx, |r17.xyzx| + and r9.w, r18.y, r18.x + and r9.w, r18.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb2[r5.z + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb2[r5.z + 5].xyzx + mul r19.xyz, r19.xyzx, cb2[r5.z + 9].xyzx + eq r11.w, l(1.000000), cb2[r5.z + 10].x + if_nz r11.w + dp3 r20.x, cb2[r5.z + 6].xyzx, r14.xyzx + dp3 r20.y, cb2[r5.z + 7].xyzx, r14.xyzx + dp3 r20.z, cb2[r5.z + 8].xyzx, r14.xyzx + add r21.xyz, -r17.xyzx, cb2[r5.z + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb2[r5.z + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r11.w, r21.y, r21.x + min r11.w, r21.z, r11.w + mad r17.xyz, r20.xyzx, r11.wwww, r17.xyzx + else + mov r17.xyz, r14.xyzx + endif + dp3 r11.w, r17.xyzx, r17.xyzx + rsq r11.w, r11.w + mul r17.xyz, r11.wwww, r17.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r11.w, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r11.wwww + lt r11.w, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r20.xxxy + movc r17.xy, r11.wwww, r17.zwzz, r17.xyxx + dp4 r11.w, cb2[r5.z + 4].xyzw, r6.xyzw + max r11.w, r11.w, l(0.000000) + max r11.w, r11.w, l(0.000100) + min r12.w, r19.z, r19.y + min r12.w, r12.w, r19.x + add r13.w, r18.y, r18.x + mad r13.w, r18.z, r18.z, r13.w + mad r9.w, r9.w, r9.w, -r13.w + mul r9.w, r9.w, cb2[r5.z + 9].x + mul r9.w, r9.w, cb2[r5.z + 9].x + add r13.w, l(1.000000), -cb2[r5.z + 10].y + mul r9.w, r9.w, r13.w + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r12.w, cb2[r5.z + 10].y, r9.w + mul r12.w, r9.w, cb2[r5.z + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r17.xyxx, cb2[1].wwww, cb2[2].wwww + mov r17.z, cb2[r5.z + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z + mul r17.xyz, r17.xyzx, cb2[r5.z + 9].wwww + div r13.w, r1.z, r11.w + min r13.w, |r13.w|, l(1.000000) + mad r13.w, r13.w, l(2.000000), r1.z + add r11.w, r11.w, l(2.000000) + div r11.w, r13.w, r11.w + add r11.w, r11.w, l(-1.000000) + mad r11.w, r11.w, cb0[112].w, l(1.000000) + mul r17.xyz, r11.wwww, r17.xyzx + mul r17.xyz, r12.wwww, r17.xyzx + mad r15.xyz, r17.xyzx, r2.wwww, r15.xyzx + mad r5.z, -r9.w, cb2[r5.z + 10].w, l(1.000000) + mul r2.w, r2.w, r5.z + endif + mov r4.x, l(-1) + continue + else + mov r4.x, r5.x + break + endif + mov r4.x, r5.x + endloop + if_nz r4.x + dp3 r1.x, r14.xyzx, r14.xyzx + rsq r1.x, r1.x + mul r14.xyz, r1.xxxx, r14.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xyzx + lt r18.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r18.xyzx + itof r17.xyz, r17.xyzx + dp3 r1.x, r14.xyzx, r17.xyzx + div r14.xyz, r14.xyzx, r1.xxxx + lt r1.x, r14.z, l(0.000000) + add r5.xz, -|r14.yyxy|, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r5.xz, r5.xxzx, r17.xxyx + movc r5.xz, r1.xxxx, r5.xxzx, r14.xxyx + mov r6.w, l(1.000000) + dp4 r1.x, cb2[3].xyzw, r6.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r5.xz, r5.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) + mad r6.xy, r5.xzxx, cb2[1].wwww, cb2[2].wwww + mov r6.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r6.xyz, r6.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.z, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.z + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r6.xyz, r0.zzzz, r6.xyzx + mad r15.xyz, r6.xyzx, r2.wwww, r15.xyzx + endif + mul r6.xyz, r15.xyzx, cb0[112].zzzz + mul r6.xyz, r6.xyzx, cb0[111].yyyy + ne r0.z, l(0.000000), cb0[112].y + if_nz r0.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r14.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.x, -r0.z, l(1.000000) + mul r15.xyz, r1.xxxx, r6.xyzx + mad r6.xyz, r14.xyzx, r0.zzzz, r15.xyzx + endif + mad r3.xyz, r16.xyzx, r5.wwww, r3.xyzx + mul r2.xyz, r2.xyzx, r3.xyzx + mul r2.xyz, r2.xyzx, cb0[111].xxxx + mul r3.xyz, r10.wwww, r6.xyzx + mul r3.xyz, r10.xyzx, r3.xyzx + mad r13.xyz, r2.xyzx, r12.xyzx, r3.xyzx +endif +add r2.xyz, r4.yzwy, r13.xyzx +max r2.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r2.xyz, r2.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.x, r8.x, cb0[154].w, -cb0[153].w +max r1.x, r1.x, l(0.000000) +mul r1.z, r0.z, l(-1.442695) +exp r1.z, r1.z +add r1.z, -r1.z, l(1.000000) +div r0.z, r1.z, r0.z +mad r1.z, r7.y, cb0[156].w, cb0[158].w +mul r1.z, r1.z, l(1.442695) +exp r1.z, r1.z +mul r0.z, r0.z, r1.z +mul r0.z, r0.z, -r1.x +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.x, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r1.z, r0.zzzz, cb0[155].wwww +add r1.x, -r1.z, r1.x +lt r1.z, l(0.000000), cb0[163].z +if_nz r1.z + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r9.xyzx + add r1.z, r7.y, -cb0[44].y + lt r2.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r2.w + mul r0.x, r0.x, cb0[163].w + div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.x + mul r3.w, r0.x, r2.w + mad r4.z, r3.w, r1.z, cb0[44].y + mad r1.z, -r3.w, r1.z, r1.z + mul r3.w, r1.z, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r1.z, r1.z, cb0[162].x + max r1.z, r1.z, l(-127.000000) + add r4.w, r4.z, -cb0[159].x + mul r4.w, r4.w, cb0[159].z + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[159].y + lt r5.x, l(5.960464478E-08), |r3.w| + exp r5.z, -r3.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.x, r5.z, r3.w + add r4.z, r4.z, -cb0[162].z + mul r4.z, r4.z, cb0[162].x + max r4.z, r4.z, l(-127.000000) + exp r4.z, -r4.z + mul r4.z, r4.z, cb0[162].y + lt r5.x, l(5.960464478E-08), |r1.z| + exp r5.z, -r1.z + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r1.z + mad r1.z, -r1.z, l(0.240226507), l(0.693147182) + movc r1.z, r5.x, r5.z, r1.z + mul r1.z, r1.z, r4.z + mad r1.z, r4.w, r3.w, r1.z + mad r0.x, -r0.x, r2.w, l(1.000000) + mul r0.x, r8.x, r0.x + mul r0.x, r0.x, r1.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r8.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r1.yyyw + mul r4.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r5.y|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r4.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r5.y|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r0.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r1.yzw, r0.yyyy, cb0[161].xxyz + mad r1.yzw, r1.yyzw, r4.wwww, r4.xxyz + mul r0.x, r0.x, r4.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r8.x, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r8.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r1.yzw, r0.yyyy, cb0[161].xxyz +endif +mul r4.xyz, r0.xxxx, r3.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.x, l(12.566371) +sqrt r1.x, r1.x +mul r1.x, r1.x, r3.w +max r1.x, r1.x, l(0.001000) +div r1.x, r2.w, r1.x +mad_sat r0.yzw, cb0[157].xxyz, r1.xxxx, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r1.yzwy +// Check fog modification toggle (cb13[12].y) +// If 0 (Original), skip fog modification and output original +if_z cb13[12].y + mad r0.xyz, r2.xyzx, r4.xyzx, r0.xyzx + dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + dp3 r1.x, r8.yzwy, r8.yzwy + sqrt r1.x, r1.x + mad_sat r1.x, -r1.x, cb0[169].z, l(1.000000) + mul r1.y, r1.x, cb0[169].x + mad r1.x, -cb0[169].x, r1.x, l(1.000000) + mul r3.xyz, cb0[168].xyzx, cb0[183].wwww + mad r3.xyz, r7.xyzx, cb0[169].yyyy, r3.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r1.z, r3.xyzx, t27.xywz, s2, l(0.000000) + dp2 r1.y, r1.zzzz, r1.yyyy + add r1.x, r1.y, r1.x + add r1.y, r0.w, l(1.000000) + min r1.x, r1.y, r1.x + add r0.xyz, -r2.xyzx, r0.xyzx + mad o0.xyz, r1.xxxx, r0.xyzx, r2.xyzx + mov o0.w, r0.w + ret +endif + +// === Simplified Fog Modification (Anti-Banding) === +// r2.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter (0-255) + +// Normalize colors to 0-1 range +mul r10.xyz, r2.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r2/255 +mul r11.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 + +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density +add r12.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r12.xyz, r12.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + +// Reduce fog inscatter intensity +mul r11.xyz, r11.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + +// Standard fog blend with reduced intensity +mad r13.xyz, r10.xyzx, r12.xyzx, r11.xyzx + +// Scale back to 0-255 +mul r0.xyz, r13.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) + +// Continue with original post-fog processing +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.x, r8.yzwy, r8.yzwy +sqrt r1.x, r1.x +mad_sat r1.x, -r1.x, cb0[169].z, l(1.000000) +mul r1.y, r1.x, cb0[169].x +mad r1.x, -cb0[169].x, r1.x, l(1.000000) +mul r3.xyz, cb0[168].xyzx, cb0[183].wwww +mad r3.xyz, r7.xyzx, cb0[169].yyyy, r3.xyzx +sample_l_indexable(texture3d)(float,float,float,float) r1.z, r3.xyzx, t27.xywz, s2, l(0.000000) +dp2 r1.y, r1.zzzz, r1.yyyy +add r1.x, r1.y, r1.x +add r1.y, r0.w, l(1.000000) +min r1.x, r1.y, r1.x +add r0.xyz, -r2.xyzx, r0.xyzx +mad o0.xyz, r1.xxxx, r0.xyzx, r2.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0_original_backup.asm new file mode 100644 index 000000000..242f49448 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0_original_backup.asm @@ -0,0 +1,2190 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 19:59:40 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[63], dynamicIndexed +dcl_constantbuffer CB2[259], dynamicIndexed +dcl_constantbuffer CB3[3], immediateIndexed +dcl_constantbuffer CB4[2054], dynamicIndexed +dcl_constantbuffer CB5[401], dynamicIndexed +dcl_constantbuffer CB6[15], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_constantbuffer CB8[4], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2darray (float,float,float,float) t10 +dcl_resource_texture2darray (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture3d (float,float,float,float) t27 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 37 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t24.yxzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t25.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t26.xyzw +mul r3.w, r3.w, l(255.000000) +round_ne r3.w, r3.w +ftou r3.w, r3.w +and r4.x, r3.w, l(128) +if_nz r4.x + mad r4.yz, r1.yyxy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r4.yzyy| + add r5.y, -r4.w, l(1.000000) + lt r4.w, r5.y, l(0.000000) + ge r6.xy, r4.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + add r6.zw, -|r4.zzzy|, l(0.000000, 0.000000, 1.000000, 1.000000) + movc r6.xy, r6.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) + mul r6.xy, r6.xyxx, r6.zwzz + movc r5.xz, r4.wwww, r6.xxyx, r4.yyzy + mad r4.yz, r2.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r4.yzyy| + add r6.y, -r4.w, l(1.000000) + lt r4.w, r6.y, l(0.000000) + ge r7.xy, r4.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + add r7.zw, -|r4.zzzy|, l(0.000000, 0.000000, 1.000000, 1.000000) + movc r7.xy, r7.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) + mul r7.xy, r7.xyxx, r7.zwzz + movc r6.xz, r4.wwww, r7.xxyx, r4.yyzy + dp3 r4.y, r6.xyzx, r6.xyzx + rsq r4.y, r4.y + mul r6.xyz, r4.yyyy, r6.xyzx + dp3 r4.y, r5.xyzx, r5.xyzx + rsq r4.y, r4.y + mul r4.yzw, r4.yyyy, r5.xxyz + mul r1.w, r1.w, l(3.000000) + round_ne r1.w, r1.w + mul r2.w, r2.w, l(3.000000) + round_ne r2.w, r2.w + mad r1.w, r1.w, l(4.000000), r2.w + ftoi r1.w, r1.w + and r2.w, r3.w, l(127) + utof r2.w, r2.w + mul r2.w, r2.w, l(0.00787401572) + mov r1.x, r1.z + mov r1.z, l(0) + mov r5.xzw, l(0,0,0,0) + mov r3.w, r1.w +else + mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| + add r7.y, -r1.w, l(1.000000) + lt r1.w, r7.y, l(0.000000) + ge r8.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + add r8.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + movc r8.xy, r8.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) + mul r8.xy, r8.xyxx, r8.zwzz + movc r7.xz, r1.wwww, r8.xxyx, r2.xxyx + iadd r1.w, r3.w, l(-1) + umin r1.w, r1.w, l(62) + ult r2.x, l(0), r3.w + uge r2.y, l(63), r3.w + and r2.x, r2.y, r2.x + and r5.xyzw, r2.xxxx, cb1[r1.w + 0].yxzw + dp3 r1.w, r7.xyzx, r7.xyzx + rsq r1.w, r1.w + mul r6.xyz, r1.wwww, r7.xyzx + mul r1.z, r1.y, r5.y + mov r4.yzw, l(0,0,0,0) + mov r2.w, l(0) +endif +utof r1.yw, r0.xxxy +mul r2.xy, v0.xyxx, cb0[82].zwzz +mad r7.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r7.zw, r1.yyyw, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r7.zw, r7.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r5.y, r7.zwzz, t1.yxzw, s0, l(0.000000) +mul r8.xyzw, -r7.yyyy, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r7.xxxx, r8.xyzw +mad r7.xyzw, cb0[26].xyzw, r5.yyyy, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r5.y, r7.y, cb0[1].z +mad r5.y, cb0[0].z, r7.x, r5.y +mad r5.y, cb0[2].z, r7.z, r5.y +add r5.y, r5.y, cb0[3].z +eq r8.x, l(0.000000), cb0[86].w +add r8.yzw, -r7.xxyz, cb0[44].xxyz +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r10.xyz, r8.xxxx, r8.yzwy, r9.xyzx +dp3 r8.x, r10.xyzx, r10.xyzx +max r9.w, r8.x, l(9.999999939E-09) +rsq r9.w, r9.w +mul r11.xyz, r9.wwww, r10.xyzx +mul r8.x, r8.x, r9.w +lt r10.w, l(0.000488281250), cb0[234].x +if_nz r10.w + sample_b_indexable(texture2d)(float,float,float,float) r12.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x +else + mov r12.xy, l(1.000000,1.000000,0,0) +endif +min r10.w, r12.y, r12.x +min r11.w, r2.z, l(1.000000) +add r12.y, r2.z, -r11.w +mad r10.w, r10.w, r12.y, r11.w +add r2.z, r2.z, -r10.w +mad r12.w, r12.x, r2.z, r10.w +dp3 r2.z, r6.xyzx, r11.xyzx +max r2.z, r2.z, l(0.000000) +mad r13.xyzw, r12.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r10.w, r13.x, r13.x +mul r11.w, r2.z, l(-9.280000) +exp r11.w, r11.w +min r10.w, r10.w, r11.w +mad r10.w, r10.w, r13.x, r13.y +mad r13.xy, r10.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +mad r10.w, r13.x, l(0.040000), r13.y +ld_indexable(texture2d)(float,float,float,float) r13.x, r0.xyzz, t7.xyzw +lt r0.z, l(0.001000), r13.x +if_nz r0.z + dp3 r0.z, -r11.xyzx, r6.xyzx + add r0.z, r0.z, r0.z + mad r14.xyz, r6.xyzx, -r0.zzzz, -r11.xyzx + dp3 r0.z, -cb4[0].xyzx, r14.xyzx + mad r15.xyz, cb4[0].xyzx, r0.zzzz, r14.xyzx + lt r0.z, r0.z, cb4[4].z + dp3 r11.w, r15.xyzx, r15.xyzx + max r11.w, r11.w, l(0.0000610351562) + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb4[4].yyyy + mad r15.xyz, -cb4[0].xyzx, cb4[4].zzzz, r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + movc r14.xyz, r0.zzzz, r15.xyzx, r14.xyzx + mad r15.xyz, r10.xyzx, r9.wwww, r14.xyzx + dp3 r0.z, r15.xyzx, r15.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r15.xyz, r0.zzzz, r15.xyzx + dp3 r0.z, r14.xyzx, r6.xyzx + mov_sat r12.y, r0.z + dp3_sat r11.w, r6.xyzx, r15.xyzx + dp3_sat r13.z, r11.xyzx, r15.xyzx + min r12.z, r2.z, l(1.000000) + if_nz r4.x + mul r13.w, r12.w, r12.w + mul r13.w, r13.w, r13.w + mad r14.w, r11.w, r13.w, -r11.w + mad r14.w, r14.w, r11.w, l(1.000000) + add r15.x, -r13.z, l(1.000000) + mul r15.y, r15.x, r15.x + mul r15.y, r15.y, r15.y + mul r15.z, r15.x, r15.y + add r15.w, -r12.w, l(1.000000) + mad r16.x, -r15.w, l(0.383026), l(-0.0761947036) + mad r16.x, r15.w, r16.x, l(1.049970) + mad r15.w, r15.w, r16.x, l(0.409255) + min r15.w, r15.w, l(0.999000) + add r16.x, -r15.w, l(1.000000) + mad r15.x, -r15.y, r15.x, l(1.000000) + mad r15.x, r15.x, l(0.040000), r15.z + mul r14.w, r14.w, r14.w + div r14.w, r13.w, r14.w + mad r15.yz, -r12.zzyz, r13.wwww, r12.zzyz + mad r15.yz, r15.yyzy, r12.zzyz, r13.wwww + sqrt r15.yz, r15.yyzy + mul r15.yz, r12.yyzy, r15.yyzy + add r13.w, r15.z, r15.y + add r13.w, r13.w, l(0.000100) + div r13.w, l(0.500000), r13.w + mul r13.w, r13.w, r14.w + mul r13.w, r13.w, r15.x + min r13.w, r13.w, l(2048.000000) + mad r17.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r14.w, r17.xyxx, t9.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r15.x, r17.zwzz, t9.xyzw, s1, l(0.000000) + mul r14.w, r14.w, r15.x + mul r14.w, r15.w, r14.w + div r14.w, r14.w, r16.x + mul r14.w, r14.w, l(0.00734693790) + mad r15.x, -r16.x, l(0.0857142806), l(1.000000) + div r14.w, r14.w, r15.x + add r15.xyz, r13.wwww, r14.wwww + mov r16.xyz, l(0,0,0,0) + else + mul r13.w, r12.w, r12.w + mul r13.w, r13.w, r13.w + mad r14.w, r11.w, r13.w, -r11.w + mad r11.w, r14.w, r11.w, l(1.000000) + add r13.z, -r13.z, l(1.000000) + mul r14.w, r13.z, r13.z + mul r14.w, r14.w, r14.w + mul r15.w, r13.z, r14.w + add r16.w, -r12.w, l(1.000000) + mad r17.x, -r16.w, l(0.383026), l(-0.0761947036) + mad r17.x, r16.w, r17.x, l(1.049970) + mad r16.w, r16.w, r17.x, l(0.409255) + min r16.w, r16.w, l(0.999000) + add r17.x, -r16.w, l(1.000000) + add_sat r17.y, -r1.z, l(1.000000) + add r18.xyz, r5.xxxx, l(1.000000, 0.666666687, 0.333333343, 0.000000) + frc r18.xyz, r18.xyzx + mad r18.xyz, r18.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) + add_sat r18.xyz, |r18.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) + add r18.xyz, r18.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) + mad r18.xyz, r5.zzzz, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r18.xyz, r1.zzzz, r18.xyzx + mad_sat r0.z, r0.z, l(0.666666687), l(0.333333343) + log r0.z, r0.z + mul r0.z, r0.z, l(1.500000) + exp r0.z, r0.z + mad r0.z, r0.z, l(1.66666663), l(-1.000000) + mad r0.z, r17.y, r0.z, l(1.000000) + mul r0.z, r0.z, r1.x + mul r17.z, r0.z, l(0.159154937) + dp3 r17.w, r11.xyzx, r14.xyzx + mov_sat r17.w, -r17.w + log r17.w, r17.w + mul r17.w, r17.w, l(12.000000) + exp r17.w, r17.w + mad r17.y, r17.y, l(-2.900000), l(3.000000) + mul r17.y, r17.y, r17.w + mad r0.z, -r0.z, l(0.159154937), l(1.000000) + mad r0.z, r17.y, r0.z, r17.z + mul r16.xyz, r0.zzzz, r18.xyzx + mad r0.z, -r14.w, r13.z, l(1.000000) + mad r0.z, r0.z, l(0.040000), r15.w + mul r11.w, r11.w, r11.w + div r11.w, r13.w, r11.w + mad r17.yz, -r12.zzyz, r13.wwww, r12.zzyz + mad r13.zw, r17.yyyz, r12.zzzy, r13.wwww + sqrt r13.zw, r13.zzzw + mul r13.zw, r12.yyyz, r13.zzzw + add r13.z, r13.w, r13.z + add r13.z, r13.z, l(0.000100) + div r13.z, l(0.500000), r13.z + mul r11.w, r11.w, r13.z + mul r0.z, r0.z, r11.w + min r0.z, r0.z, l(2048.000000) + mad r18.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r11.w, r18.xyxx, t9.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r12.z, r18.zwzz, t9.yzxw, s1, l(0.000000) + mul r11.w, r11.w, r12.z + mul r11.w, r16.w, r11.w + div r11.w, r11.w, r17.x + mul r11.w, r11.w, l(0.00734693790) + mad r12.z, -r17.x, l(0.0857142806), l(1.000000) + div r11.w, r11.w, r12.z + add r15.xyz, r0.zzzz, r11.wwww + endif + mul r15.xyz, r15.xyzx, cb4[4].xxxx + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r15.xyz, r15.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r17.xyz, r12.yyyy, r15.xyzx + if_nz r4.x + ult r0.z, l(0), r3.w + uge r11.w, l(15), r3.w + and r0.z, r0.z, r11.w + if_nz r0.z + iadd r11.w, r3.w, l(-1) + umin r11.w, r11.w, l(14) + mul r18.y, r2.w, cb6[r11.w + 0].w + itof r18.z, r11.w + add r19.xyz, -r6.xyzx, r4.yzwy + mad r20.xyz, cb6[r11.w + 0].xxxx, r19.xyzx, r6.xyzx + dp3 r12.z, r20.xyzx, r20.xyzx + rsq r12.z, r12.z + mul r20.xyz, r12.zzzz, r20.xyzx + dp3 r12.z, r20.xyzx, r14.xyzx + mad r18.w, r12.z, l(0.500000), l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r20.x, r18.wyzw, t10.xyzw, s1, l(0.000000) + mad r21.xyz, cb6[r11.w + 0].yyyy, r19.xyzx, r6.xyzx + dp3 r12.z, r21.xyzx, r21.xyzx + rsq r12.z, r12.z + mul r21.xyz, r12.zzzz, r21.xyzx + dp3 r12.z, r21.xyzx, r14.xyzx + mad r18.x, r12.z, l(0.500000), l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r20.y, r18.xyzx, t10.xyzw, s1, l(0.000000) + mad r19.xyz, cb6[r11.w + 0].zzzz, r19.xyzx, r6.xyzx + dp3 r11.w, r19.xyzx, r19.xyzx + rsq r11.w, r11.w + mul r19.xyz, r11.wwww, r19.xyzx + dp3 r11.w, r19.xyzx, r14.xyzx + mad r18.x, r11.w, l(0.500000), l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r20.z, r18.xyzx, t10.xyzw, s1, l(0.000000) + endif + movc r14.xyz, r0.zzzz, r20.xyzx, r12.yyyy + mad r14.xyz, r3.xyzx, r14.xyzx, r17.xyzx + add r14.xyz, r16.xyzx, r14.xyzx + mul r14.xyz, r14.xyzx, cb4[1].xyzx + else + mad r15.xyz, r15.xyzx, r12.yyyy, r16.xyzx + mad r15.xyz, r3.xyzx, r12.yyyy, r15.xyzx + mul r14.xyz, r15.xyzx, cb4[1].xyzx + endif + mov r13.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r13.yzw, r13.xyxx, t8.wxyz, s1, cb0[108].x + add r0.z, -r13.x, l(1.000000) + mad r13.xyz, r14.xyzx, r13.yzwy, -r14.xyzx + mad r13.xyz, r0.zzzz, r13.xyzx, r14.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r2.xyxx, t12.yzxw, s1, l(0.000000) + mul r13.xyz, r0.zzzz, r13.xyzx +else + mov r13.xyz, l(0,0,0,0) +endif +mul r12.yz, r1.yywy, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r12.yz, r12.yyzy +mad r0.z, r12.z, cb3[1].y, r12.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r11.w, -cb0[85].y, cb3[2].w, |r5.y| +round_ni r11.w, r11.w +add r12.y, l(-1.000000), cb3[1].w +max r12.z, r11.w, l(0.000000) +min r12.y, r12.y, r12.z +mul r12.z, r12.y, l(8.000000) +ftoi r12.z, r12.z +ge r11.w, r12.y, r11.w +iadd r12.y, r12.z, cb0[110].y +mul r12.z, r12.w, r12.w +dp3 r13.w, -r11.xyzx, r6.xyzx +add r13.w, r13.w, r13.w +mad r14.xyz, r6.xyzx, -r13.wwww, -r11.xyzx +min r12.x, r2.z, l(1.000000) +add r13.w, -r12.w, l(1.000000) +mad r14.w, -r13.w, l(0.383026), l(-0.0761947036) +mad r14.w, r13.w, r14.w, l(1.049970) +mad r13.w, r13.w, r14.w, l(0.409255) +min r13.w, r13.w, l(0.999000) +add r14.w, -r13.w, l(1.000000) +mad r15.xy, r12.xwxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r15.x, r15.xyxx, t9.xyzw, s1, l(0.000000) +mad r15.y, -r14.w, l(0.0857142806), l(1.000000) +add_sat r15.z, -r1.z, l(1.000000) +add r16.xyz, r5.xxxx, l(1.000000, 0.666666687, 0.333333343, 0.000000) +frc r16.xyz, r16.xyzx +mad r16.xyz, r16.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) +add_sat r16.xyz, |r16.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) +add r16.xyz, r16.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) +mad r16.xyz, r5.zzzz, r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r1.zzzz, r16.xyzx +mad r1.z, r15.z, l(-2.900000), l(3.000000) +add r4.yzw, -r6.xxyz, r4.yyzw +mov r17.w, l(1.000000) +mov r18.y, l(1.000000) +mov r19.zw, r12.wwww +mov r20.xyz, l(0,0,0,0) +mov r5.x, r3.w +mov r5.z, l(1.000000) +mov r12.w, l(0) +loop + ilt r15.w, l(7), r12.w + breakc_nz r15.w + iadd r15.w, r0.z, r12.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t0.xxxx + iadd r16.w, r12.w, r12.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t0.xxxx + and r15.w, r15.w, r16.w + and r15.w, r11.w, r15.w + ishl r16.w, r12.w, l(5) + mov r21.xyz, l(0,0,0,0) + mov r18.zw, r5.xxxz + mov r20.w, r15.w + loop + breakc_z r20.w + firstbit_lo r21.w, r20.w + ishl r22.x, l(1), r21.w + xor r22.x, r20.w, r22.x + iadd r21.w, r16.w, r21.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r21.wwww, l(1, 3, 5, 6) + bfi r22.y, l(29), l(3), r21.w, l(7) + ftou r22.z, cb4[r23.z + 6].w + ieq r22.z, r22.z, l(1) + if_nz r22.z + add r17.xyz, r7.xyzx, -cb4[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb4[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb4[r23.w + 6].yxzy + ushr r26.xyz, cb4[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb4[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r22.z, r17.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r22.w, r17.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r17.x, r17.xyzw, r27.xyzw + max r17.y, |r22.w|, |r22.z| + max r17.x, |r17.x|, r17.y + mad r17.y, cb4[r22.y + 6].x, l(0.500000), l(0.500000) + add r17.x, -r17.y, r17.x + mad r17.y, -cb4[r22.y + 6].x, l(0.500000), l(0.500000) + div_sat r17.x, r17.x, r17.y + add r17.x, -r17.x, l(1.000000) + mul r17.x, r17.x, r17.x + else + mov r17.x, l(1.000000) + endif + lt r17.y, l(0.500000), cb4[r23.y + 6].z + lt r17.z, r17.x, l(0.001000) + or r17.z, r17.y, r17.z + if_nz r17.z + mov r20.w, r22.x + continue + endif + ishl r17.z, r21.w, l(3) + bfi r21.w, l(29), l(3), r21.w, l(2) + lt r22.z, cb4[r17.z + 6].w, l(1.500000) + if_nz r22.z + mad r22.z, cb4[r21.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r22.z, -|cb4[r21.w + 6].x| + add r24.y, -r24.x, cb4[r21.w + 6].y + add r22.z, -|r24.x|, l(1.000000) + add r22.z, -|r24.y|, r22.z + max r22.z, r22.z, l(0.000488281250) + ge r22.w, cb4[r21.w + 6].x, l(0.000000) + movc r24.z, r22.w, r22.z, -r22.z + dp3 r22.z, r24.xyzx, r24.xyzx + rsq r22.z, r22.z + mul r24.xyz, r22.zzzz, r24.xyzx + add r25.xyz, -r7.xyzx, cb4[r23.x + 6].xyzx + dp3 r22.z, r25.xyzx, r25.xyzx + rsq r22.w, r22.z + mul r26.xyz, r22.wwww, r25.xyzx + ftoi r23.z, cb4[r22.y + 6].w + mul r27.xyz, r24.xyzx, cb4[r21.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r24.w, cb4[r17.z + 6].w + and r24.w, r24.w, l(1) + ieq r25.w, r24.w, l(0) + not r25.w, r25.w + lt r26.w, l(0.000000), cb4[r21.w + 6].z + and r25.w, r25.w, r26.w + dp3 r26.w, r28.xyzx, r28.xyzx + sqrt r26.w, r26.w + dp3 r27.w, r29.xyzx, r29.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r6.xyzx, r28.xyzx + div r28.w, r28.w, r26.w + dp3 r29.w, r6.xyzx, r29.xyzx + div r29.w, r29.w, r27.w + add r28.w, r28.w, r29.w + mul_sat r30.x, r28.w, l(0.500000) + dp3 r28.w, r28.xyzx, r29.xyzx + mad r26.w, r26.w, r27.w, r28.w + mad r26.w, r26.w, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r26.w + dp3_sat r18.x, r6.xyzx, r26.xyzx + movc r19.xy, r25.wwww, r30.xyxx, r18.xyxx + lt r18.x, cb4[r23.w + 6].w, l(0.000000) + if_nz r18.x + mul r18.x, cb4[r23.x + 6].w, cb4[r23.x + 6].w + mul r18.x, r18.x, r22.z + mad r18.x, -r18.x, r18.x, l(1.000000) + max r18.x, r18.x, l(0.000000) + add r22.z, r22.z, l(1.000000) + div r22.z, l(1.000000, 1.000000, 1.000000, 1.000000), r22.z + and r26.w, r25.w, l(0x3f800000) + add r27.w, r19.y, -r22.z + mad r22.z, r26.w, r27.w, r22.z + mul r18.x, r18.x, r18.x + mul r18.x, r18.x, r22.z + else + mul r29.xyz, r25.xyzx, cb4[r23.x + 6].wwww + dp3 r22.z, r29.xyzx, r29.xyzx + min r22.z, r22.z, l(1.000000) + add r22.z, -r22.z, l(1.000000) + log r22.z, r22.z + mul r22.z, r22.z, cb4[r23.w + 6].w + exp r22.z, r22.z + mul r18.x, r19.y, r22.z + endif + dp3 r19.y, r26.xyzx, -r24.xyzx + add r19.y, r19.y, -cb4[r21.w + 6].z + mul_sat r19.y, r19.y, cb4[r21.w + 6].w + mul r19.y, r19.y, r19.y + movc r19.y, r24.w, l(1.000000), r19.y + mul r18.x, r18.x, r19.y + not r19.y, r25.w + ige r22.z, r23.z, l(0) + and r19.y, r19.y, r22.z + if_nz r19.y + if_z r24.w + ishl r19.y, r23.z, l(2) + mul r24.xyz, r7.yyyy, cb7[r19.y + 33].xywx + mad r24.xyz, cb7[r19.y + 32].xywx, r7.xxxx, r24.xyzx + mad r24.xyz, cb7[r19.y + 34].xywx, r7.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb7[r19.y + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb7[r23.z + 0].zwzz, cb7[r23.z + 0].xyxx + else + ishl r19.y, r23.z, l(2) + dp3 r29.x, -r25.xyzx, cb7[r19.y + 32].xyzx + dp3 r29.y, -r25.xyzx, cb7[r19.y + 33].xyzx + dp3 r29.z, -r25.xyzx, cb7[r19.y + 34].xyzx + lt r19.y, |r29.x|, |r29.y| + and r19.y, r19.y, l(1) + dp2 r22.z, |r29.xyxx|, icb[r19.y + 0].xyxx + lt r22.z, r22.z, |r29.z| + movc r19.y, r22.z, l(2), r19.y + dp3 r22.z, r29.xyzx, icb[r19.y + 0].xyzx + lt r22.z, r22.z, l(0.000000) + bfi r19.y, l(31), l(1), r19.y, r22.z + ushr r22.z, r19.y, l(1) + dp3 r22.z, r29.xyzx, icb[r22.z + 0].xyzx + div r24.z, l(0.000244140625), cb7[r23.z + 0].w + add r24.z, -r24.z, l(0.500000) + utof r25.x, r19.y + ult r25.y, r19.y, l(2) + and r25.y, r25.y, l(2) + dp2 r25.y, r29.xzxx, icb[r25.y + 0].xzxx + mul r25.y, r25.y, icb[r19.y + 4].z + div r25.y, r25.y, |r22.z| + mad r25.x, r25.y, r24.z, r25.x + add r25.x, r25.x, l(0.500000) + mul_sat r25.x, r25.x, l(0.166666672) + iadd r25.z, l(-1), icb[r19.y + 4].y + dp2 r25.z, r29.yzyy, icb[r25.z + 0].xyxx + mul r19.y, r25.z, icb[r19.y + 4].w + div r19.y, r19.y, |r22.z| + mad_sat r25.y, -r19.y, r24.z, l(0.500000) + mad r24.xy, r25.xyxx, cb7[r23.z + 0].zwzz, cb7[r23.z + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r24.xyxx, t13.yxzw, s1, l(0.000000) + mul r18.x, r18.x, r19.y + endif + lt r19.y, l(0.000000), r18.x + if_nz r19.y + if_z r24.w + ftoi r22.z, cb4[r23.y + 6].x + else + add r24.xyz, r7.xyzx, -cb4[r23.x + 6].xyzx + lt r25.xyz, |r24.yzzy|, |r24.xxyx| + and r23.z, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r24.w, cb4[r21.w + 6].w, l(24) + ubfe r25.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb4[r21.w + 6].wwww + movc r24.x, r24.x, r24.w, r25.x + and r24.w, l(255), cb4[r21.w + 6].w + movc r24.y, r24.y, r25.y, r24.w + ubfe r24.w, l(8), l(8), cb4[r23.y + 6].x + and r25.x, l(255), cb4[r23.y + 6].x + movc r24.z, r24.z, r24.w, r25.x + movc r24.y, r25.z, r24.y, r24.z + movc r23.z, r23.z, r24.x, r24.y + ilt r24.x, r23.z, l(80) + movc r22.z, r24.x, r23.z, l(-1) + endif + ishl r23.z, r22.z, l(2) + mad r24.xyz, r26.xyzx, cb5[r22.z + 288].xxxx, r7.xyzx + mul r24.w, l(5.000000), cb5[r22.z + 288].y + mad r24.xyz, r6.xyzx, r24.wwww, r24.xyzx + mul r29.xyzw, r24.yyyy, cb5[r23.z + 65].xyzw + mad r29.xyzw, cb5[r23.z + 64].xyzw, r24.xxxx, r29.xyzw + mad r24.xyzw, cb5[r23.z + 66].xyzw, r24.zzzz, r29.xyzw + add r24.xyzw, r24.xyzw, cb5[r23.z + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r30.xy, -cb5[r22.z + 344].xyxx, cb5[r22.z + 344].zwzz + mad r24.xy, r24.xyxx, r30.xyxx, cb5[r22.z + 344].xyxx + mad r30.xy, r24.xyxx, cb5[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r30.xy, r30.xyxx + mad r24.xy, r24.xyxx, cb5[400].zwzz, -r30.xyxx + add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx + mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz + add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r35.z, r36.x + mov r35.w, r24.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r24.y + mov r33.z, r34.y + mov r33.w, r32.z + add r24.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.yxzy, cb5[400].xxxx + div r33.xyz, r33.zywz, r24.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.xyzx, cb5[400].yyyy + mov r32.w, r33.x + mad r34.xyzw, r30.xyxy, cb5[400].xyxy, r32.ywxw + mad r30.zw, r30.xxxy, cb5[400].xxxy, r32.zzzw + mov r33.w, r32.y + mov r32.yw, r33.yyyz + mad r35.xyzw, r30.xyxy, cb5[400].xyxy, r32.xyzy + mad r33.xyzw, r30.xyxy, cb5[400].xyxy, r33.wywz + mad r32.xyzw, r30.xyxy, cb5[400].xyxy, r32.xwzw + mul r36.xyzw, r24.xxxy, r31.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.z, r34.xyxx, t6.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r34.zwzz, t6.xxxx, s4, r24.z + mul r24.x, r24.x, r36.y + mad r23.z, r36.x, r23.z, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r30.zwzz, t6.xxxx, s4, r24.z + mad r23.z, r36.z, r24.x, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r33.xyxx, t6.xxxx, s4, r24.z + mad r23.z, r36.w, r24.x, r23.z + mul r30.xyzw, r24.yyww, r31.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r35.xyxx, t6.xxxx, s4, r24.z + mad r23.z, r30.x, r24.x, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r35.zwzz, t6.xxxx, s4, r24.z + mad r23.z, r30.y, r24.x, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r33.zwzz, t6.xxxx, s4, r24.z + mad r23.z, r30.z, r24.x, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r32.xyxx, t6.xxxx, s4, r24.z + mad r23.z, r30.w, r24.x, r23.z + ige r24.x, r22.z, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r24.y, r25.y, r25.x + or r24.y, r25.z, r24.y + and r25.x, r24.z, l(0x7fffffff) + ult r25.x, l(0x7f800000), r25.x + or r24.y, r24.y, r25.x + mul r24.w, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r32.zwzz, t6.xxxx, s4, r24.z + mad r23.z, r24.w, r24.z, r23.z + add r23.z, r23.z, l(-1.000000) + mad r22.z, cb5[r22.z + 288].w, r23.z, l(1.000000) + movc r22.z, r24.y, l(1.000000), r22.z + movc r22.z, r24.x, r22.z, l(1.000000) + else + mov r22.z, l(1.000000) + endif + if_nz r25.w + dp3 r23.z, r14.xyzx, r27.xyzx + mul_sat r24.x, r22.w, cb4[r21.w + 6].z + mad r24.x, r24.x, l(0.500000), r12.z + min r24.x, r24.x, l(1.000000) + div r24.x, r12.z, r24.x + mad r24.yzw, r14.xxyz, r23.zzzz, -r27.xxyz + dp3 r24.y, r28.xyzx, r24.yzwy + mul r23.z, r23.z, r23.z + mad r23.z, cb4[r21.w + 6].z, cb4[r21.w + 6].z, -r23.z + div_sat r23.z, r24.y, r23.z + mad r24.yzw, r27.xxyz, r23.zzzz, r28.xxyz + dp3 r23.z, r24.yzwy, r24.yzwy + rsq r23.z, r23.z + mul r26.xyz, r23.zzzz, r24.yzwy + else + mov r24.x, l(1.000000) + endif + if_nz r19.y + mul_sat r19.y, r22.w, cb4[r22.y + 6].y + mad r24.yzw, r10.xxyz, r9.wwww, r26.xxyz + dp3 r22.w, r24.yzwy, r24.yzwy + max r22.w, r22.w, l(0.0000610351562) + rsq r22.w, r22.w + mul r24.yzw, r22.wwww, r24.yyzw + dp3_sat r22.w, r6.xyzx, r24.yzwy + dp3_sat r23.z, r11.xyzx, r24.yzwy + if_nz r4.x + lt r24.y, l(0.000000), r19.y + mul r24.z, r19.y, r19.y + mad r24.w, r23.z, l(3.600000), l(0.400000) + div r24.z, r24.z, r24.w + mad r24.z, r19.w, r19.w, r24.z + min r24.z, r24.z, l(1.000000) + movc r24.y, r24.y, r24.z, r12.z + mul r24.y, r24.y, r24.y + mad r24.z, r22.w, r24.y, -r22.w + mad r24.z, r24.z, r22.w, l(1.000000) + add r24.w, -r23.z, l(1.000000) + mul r25.x, r24.w, r24.w + mul r25.x, r25.x, r25.x + mul r25.y, r24.w, r25.x + mad r24.w, -r25.x, r24.w, l(1.000000) + mad r24.w, r24.w, l(0.040000), r25.y + mul r24.z, r24.z, r24.z + div r24.z, r24.y, r24.z + mul r24.z, r24.x, r24.z + mad r25.x, -r12.x, r24.y, r12.x + mad r25.x, r25.x, r12.x, r24.y + sqrt r25.x, r25.x + mad r25.y, -r19.x, r24.y, r19.x + mad r24.y, r25.y, r19.x, r24.y + sqrt r24.y, r24.y + mul r24.y, r12.x, r24.y + mad r24.y, r19.x, r25.x, r24.y + add r24.y, r24.y, l(0.000100) + div r24.y, l(0.500000), r24.y + mul r24.y, r24.y, r24.z + mul r24.y, r24.y, r24.w + min r24.y, r24.y, l(2048.000000) + mad r24.zw, r19.xxxz, l(0.000000, 0.000000, 0.968750, 0.968750), l(0.000000, 0.000000, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r24.z, r24.zwzz, t9.yzxw, s1, l(0.000000) + mul r24.z, r15.x, r24.z + mul r24.z, r13.w, r24.z + div r24.z, r24.z, r14.w + mul r24.z, r24.z, l(0.00734693790) + div r24.z, r24.z, r15.y + add r24.yzw, r24.zzzz, r24.yyyy + mov r25.xyz, l(0,0,0,0) + else + lt r25.w, l(0.000000), r19.y + mul r19.y, r19.y, r19.y + mad r26.w, r23.z, l(3.600000), l(0.400000) + div r19.y, r19.y, r26.w + mad r19.y, r19.w, r19.w, r19.y + min r19.y, r19.y, l(1.000000) + movc r19.y, r25.w, r19.y, r12.z + mul r19.y, r19.y, r19.y + mad r25.w, r22.w, r19.y, -r22.w + mad r22.w, r25.w, r22.w, l(1.000000) + add r23.z, -r23.z, l(1.000000) + mul r25.w, r23.z, r23.z + mul r25.w, r25.w, r25.w + mul r26.w, r23.z, r25.w + dp3 r27.x, r6.xyzx, r26.xyzx + mad_sat r27.x, r27.x, l(0.666666687), l(0.333333343) + log r27.x, r27.x + mul r27.x, r27.x, l(1.500000) + exp r27.x, r27.x + mad r27.x, r27.x, l(1.66666663), l(-1.000000) + mad r27.x, r15.z, r27.x, l(1.000000) + mul r27.x, r1.x, r27.x + dp3 r27.z, r11.xyzx, r26.xyzx + mov_sat r27.z, -r27.z + log r27.z, r27.z + mul r27.yz, r27.xxzx, l(0.000000, 0.159154937, 12.000000, 0.000000) + exp r27.z, r27.z + mul r27.z, r1.z, r27.z + mad r27.x, -r27.x, l(0.159154937), l(1.000000) + mad r27.x, r27.z, r27.x, r27.y + mul r25.xyz, r16.xyzx, r27.xxxx + mad r23.z, -r25.w, r23.z, l(1.000000) + mad r23.z, r23.z, l(0.040000), r26.w + mul r22.w, r22.w, r22.w + div r22.w, r19.y, r22.w + mul r22.w, r24.x, r22.w + mad r24.x, -r12.x, r19.y, r12.x + mad r24.x, r24.x, r12.x, r19.y + sqrt r24.x, r24.x + mad r25.w, -r19.x, r19.y, r19.x + mad r19.y, r25.w, r19.x, r19.y + sqrt r19.y, r19.y + mul r19.y, r12.x, r19.y + mad r19.y, r19.x, r24.x, r19.y + add r19.y, r19.y, l(0.000100) + div r19.y, l(0.500000), r19.y + mul r19.y, r19.y, r22.w + mul r19.y, r19.y, r23.z + min r19.y, r19.y, l(2048.000000) + mad r27.xy, r19.xwxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r22.w, r27.xyxx, t9.yzwx, s1, l(0.000000) + mul r22.w, r15.x, r22.w + mul r22.w, r13.w, r22.w + div r22.w, r22.w, r14.w + mul r22.w, r22.w, l(0.00734693790) + div r22.w, r22.w, r15.y + add r24.yzw, r19.yyyy, r22.wwww + endif + mul r27.xyz, r18.xxxx, cb4[r17.z + 6].xyzx + mul r27.xyz, r22.zzzz, r27.xyzx + mul r27.xyz, r17.xxxx, r27.xyzx + mul r24.xyz, r24.yzwy, cb4[r22.y + 6].zzzz + max r24.xyz, r24.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r24.xyz, r24.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r28.xyz, r19.xxxx, r24.xyzx + if_nz r4.x + ult r17.x, l(0), r18.z + uge r18.x, l(15), r18.z + and r17.x, r17.x, r18.x + if_nz r17.x + iadd r18.x, r18.z, l(-1) + umin r18.x, r18.x, l(14) + dp3 r19.y, cb6[r18.x + 0].xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + mad r29.xyz, r19.yyyy, r4.yzwy, r6.xyzx + dp3 r19.y, r29.xyzx, r29.xyzx + rsq r19.y, r19.y + mul r29.xyz, r19.yyyy, r29.xyzx + dp3 r19.y, r29.xyzx, r26.xyzx + mad r26.x, r19.y, l(0.500000), l(0.500000) + mul r26.y, r2.w, cb6[r18.x + 0].w + itof r26.z, r18.x + sample_l_indexable(texture2darray)(float,float,float,float) r26.xyz, r26.xyzx, t10.xyzw, s1, l(0.000000) + endif + movc r26.xyz, r17.xxxx, r26.xyzx, r19.xxxx + mad r26.xyz, r3.xyzx, r26.xyzx, r28.xyzx + add r26.xyz, r25.xyzx, r26.xyzx + mul r26.xyz, r26.xyzx, r27.xyzx + else + mad r24.xyz, r24.xyzx, r19.xxxx, r25.xyzx + mad r24.xyz, r3.xyzx, r19.xxxx, r24.xyzx + mul r26.xyz, r27.xyzx, r24.xyzx + endif + else + mov r26.xyz, l(0,0,0,0) + endif + else + if_z r17.y + mad r17.x, cb4[r21.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r17.x, -|cb4[r21.w + 6].x| + add r24.y, -r24.x, cb4[r21.w + 6].y + add r17.x, -|r24.x|, l(1.000000) + add r17.x, -|r24.y|, r17.x + max r17.x, r17.x, l(0.000488281250) + ge r17.y, cb4[r21.w + 6].x, l(0.000000) + movc r24.z, r17.y, r17.x, -r17.x + dp3 r17.x, r24.xyzx, r24.xyzx + rsq r17.x, r17.x + mul r24.xyz, r17.xxxx, r24.xyzx + add r25.xyz, -r7.xyzx, cb4[r23.x + 6].xyzx + dp3 r17.x, r25.xyzx, r25.xyzx + rsq r17.y, r17.x + mul r27.xyz, r17.yyyy, r25.xyzx + ftoi r17.y, cb4[r22.y + 6].w + mul r22.yzw, r24.xxyz, cb4[r21.w + 6].zzzz + mad r28.xyz, -r22.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r22.yzw, r22.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), r25.xxyz + ftou r17.z, cb4[r17.z + 6].w + and r17.z, r17.z, l(1) + ieq r18.x, r17.z, l(0) + not r18.x, r18.x + lt r19.x, l(0.000000), cb4[r21.w + 6].z + and r18.x, r18.x, r19.x + dp3 r19.x, r28.xyzx, r28.xyzx + dp3 r19.y, r22.yzwy, r22.yzwy + sqrt r19.xy, r19.xyxx + dp3 r22.y, r28.xyzx, r22.yzwy + mad r19.x, r19.x, r19.y, r22.y + mad r19.x, r19.x, l(0.500000), l(1.000000) + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x + movc r19.x, r18.x, r19.x, l(1.000000) + lt r19.y, cb4[r23.w + 6].w, l(0.000000) + if_nz r19.y + mul r19.y, cb4[r23.x + 6].w, cb4[r23.x + 6].w + mul r19.y, r17.x, r19.y + mad r19.y, -r19.y, r19.y, l(1.000000) + max r19.y, r19.y, l(0.000000) + add r17.x, r17.x, l(1.000000) + div r17.x, l(1.000000, 1.000000, 1.000000, 1.000000), r17.x + and r22.y, r18.x, l(0x3f800000) + add r22.z, -r17.x, r19.x + mad r17.x, r22.y, r22.z, r17.x + mul r19.y, r19.y, r19.y + mul r17.x, r17.x, r19.y + else + mul r22.yzw, r25.xxyz, cb4[r23.x + 6].wwww + dp3 r19.y, r22.yzwy, r22.yzwy + min r19.y, r19.y, l(1.000000) + add r19.y, -r19.y, l(1.000000) + log r19.y, r19.y + mul r19.y, r19.y, cb4[r23.w + 6].w + exp r19.y, r19.y + mul r17.x, r19.y, r19.x + endif + dp3 r19.x, r27.xyzx, -r24.xyzx + add r19.x, r19.x, -cb4[r21.w + 6].z + mul_sat r19.x, r19.x, cb4[r21.w + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r17.z, l(1.000000), r19.x + mul r17.x, r17.x, r19.x + not r18.x, r18.x + ige r19.x, r17.y, l(0) + and r18.x, r18.x, r19.x + if_nz r18.x + if_z r17.z + ishl r18.x, r17.y, l(2) + mul r22.yzw, r7.yyyy, cb7[r18.x + 33].xxyw + mad r22.yzw, cb7[r18.x + 32].xxyw, r7.xxxx, r22.yyzw + mad r22.yzw, cb7[r18.x + 34].xxyw, r7.zzzz, r22.yyzw + add r22.yzw, r22.yyzw, cb7[r18.x + 35].xxyw + div_sat r19.xy, r22.yzyy, r22.wwww + mad r19.xy, r19.xyxx, cb7[r17.y + 0].zwzz, cb7[r17.y + 0].xyxx + else + ishl r18.x, r17.y, l(2) + dp3 r24.x, -r25.xyzx, cb7[r18.x + 32].xyzx + dp3 r24.y, -r25.xyzx, cb7[r18.x + 33].xyzx + dp3 r24.z, -r25.xyzx, cb7[r18.x + 34].xyzx + lt r18.x, |r24.x|, |r24.y| + and r18.x, r18.x, l(1) + dp2 r22.y, |r24.xyxx|, icb[r18.x + 0].xyxx + lt r22.y, r22.y, |r24.z| + movc r18.x, r22.y, l(2), r18.x + dp3 r22.y, r24.xyzx, icb[r18.x + 0].xyzx + lt r22.y, r22.y, l(0.000000) + bfi r18.x, l(31), l(1), r18.x, r22.y + ushr r22.y, r18.x, l(1) + dp3 r22.y, r24.xyzx, icb[r22.y + 0].xyzx + div r22.z, l(0.000244140625), cb7[r17.y + 0].w + add r22.z, -r22.z, l(0.500000) + utof r22.w, r18.x + ult r23.z, r18.x, l(2) + and r23.z, r23.z, l(2) + dp2 r23.z, r24.xzxx, icb[r23.z + 0].xzxx + mul r23.z, r23.z, icb[r18.x + 4].z + div r23.z, r23.z, |r22.y| + mad r22.w, r23.z, r22.z, r22.w + add r22.w, r22.w, l(0.500000) + mul_sat r25.x, r22.w, l(0.166666672) + iadd r22.w, l(-1), icb[r18.x + 4].y + dp2 r22.w, r24.yzyy, icb[r22.w + 0].xyxx + mul r18.x, r22.w, icb[r18.x + 4].w + div r18.x, r18.x, |r22.y| + mad_sat r25.y, -r18.x, r22.z, l(0.500000) + mad r19.xy, r25.xyxx, cb7[r17.y + 0].zwzz, cb7[r17.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.y, r19.xyxx, t13.yxzw, s1, l(0.000000) + mul r17.x, r17.y, r17.x + endif + lt r17.x, l(0.000000), r17.x + if_nz r17.x + if_z r17.z + ftoi r17.x, cb4[r23.y + 6].x + else + add r22.yzw, r7.xxyz, -cb4[r23.x + 6].xxyz + lt r23.xzw, |r22.zzww|, |r22.yyyz| + and r17.y, r23.z, r23.x + lt r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r22.yyzw + ushr r17.z, cb4[r21.w + 6].w, l(24) + ubfe r19.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb4[r21.w + 6].wwww + movc r17.z, r22.y, r17.z, r19.x + and r18.x, l(255), cb4[r21.w + 6].w + movc r18.x, r22.z, r19.y, r18.x + ubfe r19.x, l(8), l(8), cb4[r23.y + 6].x + and r19.y, l(255), cb4[r23.y + 6].x + movc r19.x, r22.w, r19.x, r19.y + movc r18.x, r23.w, r18.x, r19.x + movc r17.y, r17.y, r17.z, r18.x + ilt r17.z, r17.y, l(80) + movc r17.x, r17.z, r17.y, l(-1) + endif + ishl r17.y, r17.x, l(2) + mad r22.yzw, r27.xxyz, cb5[r17.x + 288].xxxx, r7.xxyz + mul r17.z, l(5.000000), cb5[r17.x + 288].y + mad r22.yzw, r6.xxyz, r17.zzzz, r22.yyzw + mul r23.xyzw, r22.zzzz, cb5[r17.y + 65].xyzw + mad r23.xyzw, cb5[r17.y + 64].xyzw, r22.yyyy, r23.xyzw + mad r23.xyzw, cb5[r17.y + 66].xyzw, r22.wwww, r23.xyzw + add r23.xyzw, r23.xyzw, cb5[r17.y + 67].xyzw + div r22.yzw, r23.xxyz, r23.wwww + ge r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.yzwy + ge r24.xyz, r22.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) + add r17.yz, -cb5[r17.x + 344].xxyx, cb5[r17.x + 344].zzwz + mad r17.yz, r22.yyzy, r17.yyzy, cb5[r17.x + 344].xxyx + mad r19.xy, r17.yzyy, cb5[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r19.xy, r19.xyxx + mad r17.yz, r17.yyzy, cb5[400].zzwz, -r19.xxyx + add r25.xyzw, r17.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r25.xxzz, r25.xxzz + add r22.yz, -r17.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + min r25.xz, r17.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r17.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r22.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r25.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r17.yz, r27.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r17.yyzy + mul r30.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r17.yz, -r25.xxzx, r25.xxzx, r22.yyzy + add r17.yz, r17.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r31.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r17.yz, r25.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r30.z, r31.x + mov r30.w, r17.y + mov r29.z, r28.x + mov r29.w, r27.x + add r25.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r17.z + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r25.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.yxzy, cb5[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb5[400].yyyy + mov r29.w, r28.x + mad r30.xyzw, r19.xyxy, cb5[400].xyxy, r29.ywxw + mad r17.yz, r19.xxyx, cb5[400].xxyx, r29.zzwz + mov r28.w, r29.y + mov r29.yw, r28.yyyz + mad r31.xyzw, r19.xyxy, cb5[400].xyxy, r29.xyzy + mad r28.xyzw, r19.xyxy, cb5[400].xyxy, r28.wywz + mad r29.xyzw, r19.xyxy, cb5[400].xyxy, r29.xwzw + mul r32.xyzw, r25.zwyz, r27.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.xyxx, t6.xxxx, s4, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r30.zwzz, t6.xxxx, s4, r22.w + mul r19.x, r19.x, r32.y + mad r18.x, r32.x, r18.x, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r17.yzyy, t6.xxxx, s4, r22.w + mad r17.y, r32.z, r17.y, r18.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r28.xyxx, t6.xxxx, s4, r22.w + mad r17.y, r32.w, r17.z, r17.y + mul r30.xyzw, r25.xyzw, r27.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r31.xyxx, t6.xxxx, s4, r22.w + mad r17.y, r30.x, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r31.zwzz, t6.xxxx, s4, r22.w + mad r17.y, r30.y, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r28.zwzz, t6.xxxx, s4, r22.w + mad r17.y, r30.z, r17.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r29.xyxx, t6.xxxx, s4, r22.w + mad r17.y, r30.w, r17.z, r17.y + ige r17.z, r17.x, l(0) + or r23.xyz, r23.xyzx, r24.xyzx + or r18.x, r23.y, r23.x + or r18.x, r23.z, r18.x + and r19.x, r22.w, l(0x7fffffff) + ult r19.x, l(0x7f800000), r19.x + or r18.x, r18.x, r19.x + mul r19.x, r25.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r29.zwzz, t6.xxxx, s4, r22.w + mad r17.y, r19.x, r19.y, r17.y + add r17.y, r17.y, l(-1.000000) + mad r17.x, cb5[r17.x + 288].w, r17.y, l(1.000000) + movc r17.x, r18.x, l(1.000000), r17.x + movc r17.x, r17.z, r17.x, l(1.000000) + else + mov r17.x, l(1.000000) + endif + else + mov r17.x, l(1.000000) + endif + mul r18.w, r17.x, r18.w + mov r26.xyz, l(0,0,0,0) + endif + add r21.xyz, r21.xyzx, r26.xyzx + mov r20.w, r22.x + endloop + mov r5.z, r18.w + add r20.xyz, r20.xyzx, r21.xyzx + iadd r12.w, r12.w, l(1) +endloop +mad r4.yzw, r20.xxyz, r5.zzzz, r13.xxyz +ne r0.z, l(0.000000), cb0[112].x +if_nz r0.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.x, r0.z + add r1.z, r0.z, r2.z + mad r2.z, r19.w, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.z, |r1.z| + mul r1.z, r1.z, r2.z + exp r1.z, r1.z + add r1.z, r0.z, r1.z + add r1.z, r1.z, l(-1.000000) + mov_sat r10.xyz, r1.zzzz + mad r12.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + max r12.xyz, r0.zzzz, r12.xyzx +else + mov r10.xyz, r1.xxxx + mov r12.xyz, r1.xxxx +endif +if_nz r4.x + ult r0.z, l(0), r3.w + uge r1.x, l(15), r3.w + and r0.z, r0.z, r1.x + if_nz r0.z + iadd r1.x, r3.w, l(-1) + umin r1.x, r1.x, l(14) + mul r13.x, r2.w, cb6[r1.x + 0].w + utof r13.z, r1.x + mov r13.y, l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r13.xyz, r13.xyzx, t11.xyzw, s1, l(0.000000) + endif + movc r13.xyz, r0.zzzz, r13.xyzx, l(1.000000,1.000000,1.000000,0) + mad r15.xyz, r6.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r7.xyzx + round_z r0.z, cb0[212].x + mad r1.xz, r0.zzzz, l(2.083000, 0.000000, 4.867000, 0.000000), r1.yywy + dp2 r0.z, r1.xzxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r0.z, r0.z + mul r0.z, r0.z, l(52.982918) + frc r0.z, r0.z + mad r0.z, r0.z, l(2.000000), l(-1.000000) + mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx + mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r17.xyz, r15.xzyx, -r17.xyzx + max r0.z, |r17.y|, |r17.x| + add r0.z, r0.z, l(-464.000000) + mul_sat r0.z, r0.z, l(0.031250) + add r1.x, |r17.z|, l(-208.000000) + mul_sat r1.x, r1.x, l(0.031250) + max r0.z, r0.z, r1.x + ne r1.x, l(0.000000), cb0[210].w + lt r1.z, r0.z, l(1.000000) + and r1.x, r1.z, r1.x + if_nz r1.x + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r15.xzyx, -r17.xyzx + max r1.x, |r17.y|, |r17.x| + add r1.x, r1.x, l(-29.000000) + add r1.z, |r17.z|, l(-13.000000) + mul_sat r1.xz, r1.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) + max r1.x, r1.z, r1.x + lt r1.z, r1.x, l(1.000000) + if_nz r1.z + mad r17.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t17.yzwx, s2, l(0.000000) + add r1.z, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r2.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r17.y + min r2.z, r2.w, r2.z + mul r17.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t18.xyzw, s1, l(0.000000) + mad r2.z, r20.w, r1.z, r0.z + add r19.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r18.yyyy, r19.xyzx + mov r21.w, r18.y + mul r21.xyzw, r1.zzzz, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t18.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r1.zzzz, r17.xyzw + mad r19.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r1.zzzz, r18.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r15.xzyx, -r19.xyzx + max r1.z, |r19.y|, |r19.x| + add r1.z, r1.z, l(-116.000000) + mul_sat r1.z, r1.z, l(0.125000) + add r2.w, |r19.z|, l(-52.000000) + mul_sat r2.w, r2.w, l(0.125000) + max r1.z, r1.z, r2.w + lt r2.w, r1.z, l(1.000000) + if_nz r2.w + mad r19.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r19.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r20.xyz, r19.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t19.yzwx, s2, l(0.000000) + add r2.w, -r1.z, l(1.000000) + mul r1.x, r1.x, r2.w + mul r2.w, l(0.500000), cb0[211].y + mad r3.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.w, r2.w, r20.y + min r2.w, r3.w, r2.w + mul r20.w, r2.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t20.xyzw, s1, l(0.000000) + mad r2.z, r23.w, r1.x, r2.z + add r19.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r19.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r1.xxxx, r21.xyzw + add r19.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r19.xyzx + mov r20.w, r22.x + mad r17.xyzw, r20.xyzw, r1.xxxx, r17.xyzw + mad r19.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r19.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + endif + lt r1.x, l(0.000000), r1.z + if_nz r1.x + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r19.xyzx + mad r19.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r19.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r15.xyzx, t21.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.z + max r1.z, r20.y, r15.y + min r1.z, r19.y, r1.z + mul r15.w, r1.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r15.xwzx, t22.xyzw, s1, l(0.000000) + add r19.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r22.yyyy, r19.xyzx + mov r23.w, r22.y + mad r21.xyzw, r23.xyzw, r1.xxxx, r21.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t22.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r22.xxxx, r15.xyzx + mov r15.w, r22.x + mad r17.xyzw, r15.xyzw, r1.xxxx, r17.xyzw + mad r15.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r15.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + mad r2.z, r20.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r15.y, r0.z, l(0.500000) + else + mov r21.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) + endif + mul r20.xyzw, r15.yxyy, cb0[213].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[213].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r18.xyzw, r18.xyzw, r20.wyzx + mul r20.xyzw, r15.yxyy, cb0[214].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[214].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r17.xyzw, r17.xyzw, r20.wyzx + mul r20.xyzw, r15.yxyy, cb0[215].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[215].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r15.xyzw, r20.wyzx, r21.xyzw + ge r1.xz, r2.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + and r0.z, r1.z, r1.x + if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r20.xyzw, r2.xyxx, t16.xyzw, s1, l(0.000000) + lt r21.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r20.xyzw| + or r1.xz, r21.zzwz, r21.xxyx + or r0.z, r1.z, r1.x + if_nz r0.z + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.z, r0.z + mov r2.z, l(0) + loop + ge r2.w, l(4.600000), r1.z + breakc_nz r2.w + iadd r2.w, r2.z, l(1) + mul r5.xz, r1.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) + mov r1.xz, r5.xxzx + mov r2.z, r2.w + continue + endloop + mul r20.xyzw, r1.xxxx, r20.xyzw + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb8[3].x, cb8[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r19.x, r0.z, l(0.00390625000) + mov r19.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xz, r19.xyxx, t15.xzyw, s1, l(0.000000) + mad r1.xz, r1.xxzx, cb8[2].xxyx, cb8[2].zzwz + mul r21.x, r1.x, l(3.54490781) + mul r21.yzw, r1.zzzz, r20.yyzw + mul r0.z, r20.x, l(0.406976730) + exp r0.z, r0.z + mul r20.xyzw, r0.zzzz, r21.xyzw + mov r21.xyzw, r20.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r2.z + breakc_nz r1.x + mul r22.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r22.xyzw, r21.xyzw + dp2 r1.z, r22.yxyy, r21.xyxx + dp2 r2.w, r22.zxzz, r21.xzxx + dp2 r3.w, r22.wxww, r21.xwxx + iadd r4.x, r0.z, l(1) + mov r21.xy, r1.xzxx + mov r21.z, r2.w + mov r21.w, r3.w + mov r0.z, r4.x + continue + endloop + mul r20.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r21.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r20.xyzw, r21.xyzw + dp2 r1.x, r20.yxyy, r21.xyxx + dp2 r1.z, r20.zxzz, r21.xzxx + dp2 r2.z, r20.wxww, r21.xwxx + mul r21.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r2.w, r20.xyzw, r21.xyzw + dp2 r3.w, r20.yxyy, r21.xyxx + dp2 r4.x, r20.zxzz, r21.xzxx + dp2 r5.x, r20.wxww, r21.xwxx + mul r21.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r5.z, r20.xyzw, r21.xyzw + dp2 r9.w, r20.yxyy, r21.xyxx + dp2 r11.w, r20.zxzz, r21.xzxx + dp2 r12.w, r20.wxww, r21.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r2.z, l(-1.02332675) + mul r18.yz, r1.xxzx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r17.w, r2.w, l(0.886226952) + mul r17.x, r5.x, l(-1.02332675) + mul r17.y, r3.w, l(-1.02332675) + mul r17.z, r4.x, l(1.02332675) + mul r15.w, r5.z, l(0.886226952) + mul r15.x, r12.w, l(-1.02332675) + mul r15.y, r9.w, l(-1.02332675) + mul r15.z, r11.w, l(1.02332675) + endif + endif + mul r18.xyz, r13.xxxx, r18.xyzx + dp3 r0.z, r18.xyzx, r6.xyzx + add r0.z, r18.w, r0.z + max r18.x, r0.z, l(0.000000) + mul r13.xyw, r13.yyyy, r17.xyxz + dp3 r0.z, r13.xywx, r6.xyzx + add r0.z, r17.w, r0.z + max r18.y, r0.z, l(0.000000) + mul r13.xyz, r13.zzzz, r15.xyzx + dp3 r0.z, r13.xyzx, r6.xyzx + add r0.z, r15.w, r0.z + max r18.z, r0.z, l(0.000000) + add r0.z, l(-1.000000), cb0[113].x + max r1.x, r19.w, l(0.001000) + log r1.x, r1.x + mad r1.x, -r1.x, l(1.200000), l(1.000000) + add r0.z, r0.z, -r1.x + mul r1.xz, r1.yywy, cb2[0].wwww + round_ni r1.xz, r1.xxzx + add r2.z, |r5.y|, -cb2[2].y + round_ni r2.z, r2.z + add r2.w, l(-1.000000), cb2[1].x + max r3.w, r2.z, l(0.000000) + min r2.w, r2.w, r3.w + ge r2.z, r2.w, r2.z + mad r1.x, r1.z, cb2[0].x, r1.x + ftoi r1.x, r1.x + iadd r1.x, r1.x, cb0[110].z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx + ftoi r1.z, r2.w + iadd r1.z, r1.z, cb0[110].w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.z, r1.z, l(0), t0.xxxx + and r1.x, r1.z, r1.x + and r1.x, r1.x, r2.z + mul r13.xyz, r18.xyzx, cb0[111].xxxx + dp3 r1.z, r13.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + mov r7.w, l(1.000000) + mov r6.w, l(1.000000) + mov r13.xyz, l(0,0,0,0) + mov r2.z, l(1.000000) + mov r2.w, r1.x + mov r3.w, l(0) + loop + lt r4.x, l(0.010000), r2.z + ine r5.x, r2.w, l(0) + and r5.x, r4.x, r5.x + if_nz r5.x + firstbit_lo r5.x, r2.w + ishl r5.z, l(1), r5.x + xor r2.w, r2.w, r5.z + ishl r5.x, r5.x, l(3) + dp4 r15.x, cb2[r5.x + 6].xyzw, r7.xyzw + dp4 r15.y, cb2[r5.x + 7].xyzw, r7.xyzw + dp4 r15.z, cb2[r5.x + 8].xyzw, r7.xyzw + ge r17.xyz, cb2[r5.x + 5].xyzx, |r15.xyzx| + and r5.z, r17.y, r17.x + and r5.z, r17.z, r5.z + if_nz r5.z + mul r5.z, l(0.100000), cb2[r5.x + 5].x + mul r17.xyz, |r15.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r19.xyz, -|r15.xyzx|, cb2[r5.x + 5].xyzx + mul r19.xyz, r19.xyzx, cb2[r5.x + 9].xyzx + eq r9.w, l(1.000000), cb2[r5.x + 10].x + if_nz r9.w + dp3 r20.x, cb2[r5.x + 6].xyzx, r14.xyzx + dp3 r20.y, cb2[r5.x + 7].xyzx, r14.xyzx + dp3 r20.z, cb2[r5.x + 8].xyzx, r14.xyzx + add r21.xyz, -r15.xyzx, cb2[r5.x + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r15.xyzx, -cb2[r5.x + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r9.w, r21.y, r21.x + min r9.w, r21.z, r9.w + mad r15.xyz, r20.xyzx, r9.wwww, r15.xyzx + else + mov r15.xyz, r14.xyzx + endif + dp3 r9.w, r15.xyzx, r15.xyzx + rsq r9.w, r9.w + mul r15.xyz, r9.wwww, r15.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r21.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r9.w, r15.xyzx, r20.xyzx + div r15.xyz, r15.xyzx, r9.wwww + lt r9.w, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r20.xxxy + movc r15.xy, r9.wwww, r15.zwzz, r15.xyxx + dp4 r9.w, cb2[r5.x + 4].xyzw, r6.xyzw + max r9.w, r9.w, l(0.000000) + max r9.w, r9.w, l(0.000100) + min r11.w, r19.z, r19.y + min r11.w, r11.w, r19.x + add r12.w, r17.y, r17.x + mad r12.w, r17.z, r17.z, r12.w + mad r5.z, r5.z, r5.z, -r12.w + mul r5.z, r5.z, cb2[r5.x + 9].x + mul r5.z, r5.z, cb2[r5.x + 9].x + add r12.w, l(1.000000), -cb2[r5.x + 10].y + mul r5.z, r5.z, r12.w + mul r5.z, r5.z, l(100.000000) + mad_sat r5.z, r11.w, cb2[r5.x + 10].y, r5.z + mul r11.w, r5.z, cb2[r5.x + 10].w + mad r15.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r15.xy, r15.xyxx, cb2[1].wwww, cb2[2].wwww + mov r15.z, cb2[r5.x + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + mul r15.xyz, r15.xyzx, cb2[r5.x + 9].wwww + div r12.w, r1.z, r9.w + min r12.w, |r12.w|, l(1.000000) + mad r12.w, r12.w, l(2.000000), r1.z + add r9.w, r9.w, l(2.000000) + div r9.w, r12.w, r9.w + add r9.w, r9.w, l(-1.000000) + mad r9.w, r9.w, cb0[112].w, l(1.000000) + mul r15.xyz, r9.wwww, r15.xyzx + mul r15.xyz, r11.wwww, r15.xyzx + mad r13.xyz, r15.xyzx, r2.zzzz, r13.xyzx + mad r5.x, -r5.z, cb2[r5.x + 10].w, l(1.000000) + mul r2.z, r2.z, r5.x + endif + mov r3.w, l(-1) + continue + else + mov r3.w, r4.x + break + endif + mov r3.w, r4.x + endloop + if_nz r3.w + dp3 r1.x, r14.xyzx, r14.xyzx + rsq r1.x, r1.x + mul r15.xyz, r1.xxxx, r14.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r19.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r19.xyzx + itof r17.xyz, r17.xyzx + dp3 r1.x, r15.xyzx, r17.xyzx + div r15.xyz, r15.xyzx, r1.xxxx + lt r1.x, r15.z, l(0.000000) + add r5.xz, -|r15.yyxy|, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r5.xz, r5.xxzx, r17.xxyx + movc r5.xz, r1.xxxx, r5.xxzx, r15.xxyx + mov r6.w, l(1.000000) + dp4 r1.x, cb2[3].xyzw, r6.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r5.xz, r5.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) + mad r15.xy, r5.xzxx, cb2[1].wwww, cb2[2].wwww + mov r15.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.z, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.z + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r15.xyz, r0.zzzz, r15.xyzx + mad r13.xyz, r15.xyzx, r2.zzzz, r13.xyzx + endif + mul r13.xyz, r13.xyzx, cb0[112].zzzz + mul r13.xyz, r13.xyzx, cb0[111].yyyy + ne r0.z, l(0.000000), cb0[112].y + if_nz r0.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.x, -r0.z, l(1.000000) + mul r17.xyz, r1.xxxx, r13.xyzx + mad r13.xyz, r15.xyzx, r0.zzzz, r17.xyzx + endif + mul r15.xyz, r3.xyzx, r18.xyzx + mul r15.xyz, r15.xyzx, cb0[111].xxxx + mul r13.xyz, r10.wwww, r13.xyzx + mul r13.xyz, r10.xyzx, r13.xyzx + mad r13.xyz, r15.xyzx, r12.xyzx, r13.xyzx +else + mad r15.xyz, r6.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r7.xyzx + round_z r0.z, cb0[212].x + mad r1.xz, r0.zzzz, l(2.083000, 0.000000, 4.867000, 0.000000), r1.yywy + dp2 r0.z, r1.xzxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r0.z, r0.z + mul r0.z, r0.z, l(52.982918) + frc r0.z, r0.z + mad r0.z, r0.z, l(2.000000), l(-1.000000) + mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx + mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r17.xyz, r15.xzyx, -r17.xyzx + max r0.z, |r17.y|, |r17.x| + add r0.z, r0.z, l(-464.000000) + mul_sat r0.z, r0.z, l(0.031250) + add r1.x, |r17.z|, l(-208.000000) + mul_sat r1.x, r1.x, l(0.031250) + max r0.z, r0.z, r1.x + ne r1.x, l(0.000000), cb0[210].w + lt r1.z, r0.z, l(1.000000) + and r1.x, r1.z, r1.x + if_nz r1.x + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r15.xzyx, -r17.xyzx + max r1.x, |r17.y|, |r17.x| + add r1.x, r1.x, l(-29.000000) + add r1.z, |r17.z|, l(-13.000000) + mul_sat r1.xz, r1.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) + max r1.x, r1.z, r1.x + lt r1.z, r1.x, l(1.000000) + if_nz r1.z + mad r17.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t17.yzwx, s2, l(0.000000) + add r1.z, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r2.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r17.y + min r2.z, r2.w, r2.z + mul r17.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t18.xyzw, s1, l(0.000000) + mad r2.z, r20.w, r1.z, r0.z + add r19.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r18.yyyy, r19.xyzx + mov r21.w, r18.y + mul r21.xyzw, r1.zzzz, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t18.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r1.zzzz, r17.xyzw + mad r19.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r1.zzzz, r18.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r15.xzyx, -r19.xyzx + max r1.z, |r19.y|, |r19.x| + add r1.z, r1.z, l(-116.000000) + mul_sat r1.z, r1.z, l(0.125000) + add r2.w, |r19.z|, l(-52.000000) + mul_sat r2.w, r2.w, l(0.125000) + max r1.z, r1.z, r2.w + lt r2.w, r1.z, l(1.000000) + if_nz r2.w + mad r19.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r19.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r20.xyz, r19.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t19.yzwx, s2, l(0.000000) + add r2.w, -r1.z, l(1.000000) + mul r1.x, r1.x, r2.w + mul r2.w, l(0.500000), cb0[211].y + mad r3.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.w, r2.w, r20.y + min r2.w, r3.w, r2.w + mul r20.w, r2.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t20.xyzw, s1, l(0.000000) + mad r2.z, r23.w, r1.x, r2.z + add r19.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r19.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r1.xxxx, r21.xyzw + add r19.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r19.xyzx + mov r20.w, r22.x + mad r17.xyzw, r20.xyzw, r1.xxxx, r17.xyzw + mad r19.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r19.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + endif + lt r1.x, l(0.000000), r1.z + if_nz r1.x + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r19.xyzx + mad r19.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r19.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r15.xyzx, t21.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.z + max r1.z, r20.y, r15.y + min r1.z, r19.y, r1.z + mul r15.w, r1.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r15.xwzx, t22.xyzw, s1, l(0.000000) + add r19.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r22.yyyy, r19.xyzx + mov r23.w, r22.y + mad r21.xyzw, r23.xyzw, r1.xxxx, r21.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t22.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r22.xxxx, r15.xyzx + mov r15.w, r22.x + mad r17.xyzw, r15.xyzw, r1.xxxx, r17.xyzw + mad r15.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r15.xyzx + mad r18.xyzw, r22.xyzw, r1.xxxx, r18.xyzw + mad r2.z, r20.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r15.y, r0.z, l(0.500000) + else + mov r21.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) + endif + mul r20.xyzw, r15.yxyy, cb0[213].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[213].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r18.xyzw, r18.xyzw, r20.wyzx + mul r20.xyzw, r15.yxyy, cb0[214].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[214].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r17.xyzw, r17.xyzw, r20.wyzx + mul r20.xyzw, r15.yxyy, cb0[215].ywzx + mad r20.y, r20.y, l(0.500000), r20.x + mul r1.xz, r15.yyxy, cb0[215].wwyw + mad r20.x, r1.z, l(0.375000), r1.x + add r15.xyzw, r20.wyzx, r21.xyzw + ge r1.xz, r2.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + and r0.z, r1.z, r1.x + if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, r2.xyxx, t16.xyzw, s1, l(0.000000) + lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r2.xyzw| + or r1.xz, r20.zzwz, r20.xxyx + or r0.z, r1.z, r1.x + if_nz r0.z + dp3 r0.z, r2.yzwy, r2.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.z, r0.z + mov r3.w, l(0) + loop + ge r4.x, l(4.600000), r1.z + breakc_nz r4.x + iadd r4.x, r3.w, l(1) + mul r5.xz, r1.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) + mov r1.xz, r5.xxzx + mov r3.w, r4.x + continue + endloop + mul r2.xyzw, r1.xxxx, r2.xyzw + dp3 r0.z, r2.yzwy, r2.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb8[3].x, cb8[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r19.x, r0.z, l(0.00390625000) + mov r19.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xz, r19.xyxx, t15.xzyw, s1, l(0.000000) + mad r1.xz, r1.xxzx, cb8[2].xxyx, cb8[2].zzwz + mul r20.x, r1.x, l(3.54490781) + mul r20.yzw, r1.zzzz, r2.yyzw + mul r0.z, r2.x, l(0.406976730) + exp r0.z, r0.z + mul r2.xyzw, r0.zzzz, r20.xyzw + mov r20.xyzw, r2.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r3.w + breakc_nz r1.x + mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r21.xyzw, r20.xyzw + dp2 r1.z, r21.yxyy, r20.xyxx + dp2 r4.x, r21.zxzz, r20.xzxx + dp2 r5.x, r21.wxww, r20.xwxx + iadd r5.z, r0.z, l(1) + mov r20.xy, r1.xzxx + mov r20.z, r4.x + mov r20.w, r5.x + mov r0.z, r5.z + continue + endloop + mul r2.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r2.xyzw, r20.xyzw + dp2 r1.x, r2.yxyy, r20.xyxx + dp2 r1.z, r2.zxzz, r20.xzxx + dp2 r3.w, r2.wxww, r20.xwxx + mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.x, r2.xyzw, r20.xyzw + dp2 r5.x, r2.yxyy, r20.xyxx + dp2 r5.z, r2.zxzz, r20.xzxx + dp2 r9.w, r2.wxww, r20.xwxx + mul r20.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r11.w, r2.xyzw, r20.xyzw + dp2 r2.y, r2.yxyy, r20.xyxx + dp2 r2.z, r2.zxzz, r20.xzxx + dp2 r2.x, r2.wxww, r20.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r3.w, l(-1.02332675) + mul r18.yz, r1.xxzx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r17.w, r4.x, l(0.886226952) + mul r17.x, r9.w, l(-1.02332675) + mul r17.yz, r5.xxzx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r15.w, r11.w, l(0.886226952) + mul r15.xyz, r2.xyzx, l(-1.02332675, -1.02332675, 1.02332675, 0.000000) + endif + endif + dp3 r0.z, r18.xyzx, r6.xyzx + add r0.z, r18.w, r0.z + max r2.x, r0.z, l(0.000000) + dp3 r0.z, r17.xyzx, r6.xyzx + add r0.z, r17.w, r0.z + max r2.y, r0.z, l(0.000000) + dp3 r0.z, r15.xyzx, r6.xyzx + add r0.z, r15.w, r0.z + max r2.z, r0.z, l(0.000000) + add r0.z, l(-1.000000), cb0[113].x + max r1.x, r19.w, l(0.001000) + log r1.x, r1.x + mad r1.x, -r1.x, l(1.200000), l(1.000000) + add r0.z, r0.z, -r1.x + mul r1.xz, r1.yywy, cb2[0].wwww + round_ni r1.xz, r1.xxzx + add r2.w, |r5.y|, -cb2[2].y + round_ni r2.w, r2.w + add r3.w, l(-1.000000), cb2[1].x + max r4.x, r2.w, l(0.000000) + min r3.w, r3.w, r4.x + ge r2.w, r3.w, r2.w + mad r1.x, r1.z, cb2[0].x, r1.x + ftoi r1.x, r1.x + iadd r1.x, r1.x, cb0[110].z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx + ftoi r1.z, r3.w + iadd r1.z, r1.z, cb0[110].w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.z, r1.z, l(0), t0.xxxx + and r1.x, r1.z, r1.x + and r1.x, r1.x, r2.w + mul r15.xyz, r2.xyzx, cb0[111].xxxx + dp3 r1.z, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + mov r7.w, l(1.000000) + mov r6.w, l(1.000000) + mov r15.xyz, l(0,0,0,0) + mov r2.w, l(1.000000) + mov r3.w, r1.x + mov r4.x, l(0) + loop + lt r5.x, l(0.010000), r2.w + ine r5.z, r3.w, l(0) + and r5.z, r5.x, r5.z + if_nz r5.z + firstbit_lo r5.z, r3.w + ishl r9.w, l(1), r5.z + xor r3.w, r3.w, r9.w + ishl r5.z, r5.z, l(3) + dp4 r17.x, cb2[r5.z + 6].xyzw, r7.xyzw + dp4 r17.y, cb2[r5.z + 7].xyzw, r7.xyzw + dp4 r17.z, cb2[r5.z + 8].xyzw, r7.xyzw + ge r18.xyz, cb2[r5.z + 5].xyzx, |r17.xyzx| + and r9.w, r18.y, r18.x + and r9.w, r18.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb2[r5.z + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb2[r5.z + 5].xyzx + mul r19.xyz, r19.xyzx, cb2[r5.z + 9].xyzx + eq r11.w, l(1.000000), cb2[r5.z + 10].x + if_nz r11.w + dp3 r20.x, cb2[r5.z + 6].xyzx, r14.xyzx + dp3 r20.y, cb2[r5.z + 7].xyzx, r14.xyzx + dp3 r20.z, cb2[r5.z + 8].xyzx, r14.xyzx + add r21.xyz, -r17.xyzx, cb2[r5.z + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb2[r5.z + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r11.w, r21.y, r21.x + min r11.w, r21.z, r11.w + mad r17.xyz, r20.xyzx, r11.wwww, r17.xyzx + else + mov r17.xyz, r14.xyzx + endif + dp3 r11.w, r17.xyzx, r17.xyzx + rsq r11.w, r11.w + mul r17.xyz, r11.wwww, r17.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r11.w, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r11.wwww + lt r11.w, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r20.xxxy + movc r17.xy, r11.wwww, r17.zwzz, r17.xyxx + dp4 r11.w, cb2[r5.z + 4].xyzw, r6.xyzw + max r11.w, r11.w, l(0.000000) + max r11.w, r11.w, l(0.000100) + min r12.w, r19.z, r19.y + min r12.w, r12.w, r19.x + add r13.w, r18.y, r18.x + mad r13.w, r18.z, r18.z, r13.w + mad r9.w, r9.w, r9.w, -r13.w + mul r9.w, r9.w, cb2[r5.z + 9].x + mul r9.w, r9.w, cb2[r5.z + 9].x + add r13.w, l(1.000000), -cb2[r5.z + 10].y + mul r9.w, r9.w, r13.w + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r12.w, cb2[r5.z + 10].y, r9.w + mul r12.w, r9.w, cb2[r5.z + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r17.xyxx, cb2[1].wwww, cb2[2].wwww + mov r17.z, cb2[r5.z + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z + mul r17.xyz, r17.xyzx, cb2[r5.z + 9].wwww + div r13.w, r1.z, r11.w + min r13.w, |r13.w|, l(1.000000) + mad r13.w, r13.w, l(2.000000), r1.z + add r11.w, r11.w, l(2.000000) + div r11.w, r13.w, r11.w + add r11.w, r11.w, l(-1.000000) + mad r11.w, r11.w, cb0[112].w, l(1.000000) + mul r17.xyz, r11.wwww, r17.xyzx + mul r17.xyz, r12.wwww, r17.xyzx + mad r15.xyz, r17.xyzx, r2.wwww, r15.xyzx + mad r5.z, -r9.w, cb2[r5.z + 10].w, l(1.000000) + mul r2.w, r2.w, r5.z + endif + mov r4.x, l(-1) + continue + else + mov r4.x, r5.x + break + endif + mov r4.x, r5.x + endloop + if_nz r4.x + dp3 r1.x, r14.xyzx, r14.xyzx + rsq r1.x, r1.x + mul r14.xyz, r1.xxxx, r14.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xyzx + lt r18.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r18.xyzx + itof r17.xyz, r17.xyzx + dp3 r1.x, r14.xyzx, r17.xyzx + div r14.xyz, r14.xyzx, r1.xxxx + lt r1.x, r14.z, l(0.000000) + add r5.xz, -|r14.yyxy|, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r5.xz, r5.xxzx, r17.xxyx + movc r5.xz, r1.xxxx, r5.xxzx, r14.xxyx + mov r6.w, l(1.000000) + dp4 r1.x, cb2[3].xyzw, r6.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r5.xz, r5.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) + mad r6.xy, r5.xzxx, cb2[1].wwww, cb2[2].wwww + mov r6.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r6.xyz, r6.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.z, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.z + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r6.xyz, r0.zzzz, r6.xyzx + mad r15.xyz, r6.xyzx, r2.wwww, r15.xyzx + endif + mul r6.xyz, r15.xyzx, cb0[112].zzzz + mul r6.xyz, r6.xyzx, cb0[111].yyyy + ne r0.z, l(0.000000), cb0[112].y + if_nz r0.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r14.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.x, -r0.z, l(1.000000) + mul r15.xyz, r1.xxxx, r6.xyzx + mad r6.xyz, r14.xyzx, r0.zzzz, r15.xyzx + endif + mad r3.xyz, r16.xyzx, r5.wwww, r3.xyzx + mul r2.xyz, r2.xyzx, r3.xyzx + mul r2.xyz, r2.xyzx, cb0[111].xxxx + mul r3.xyz, r10.wwww, r6.xyzx + mul r3.xyz, r10.xyzx, r3.xyzx + mad r13.xyz, r2.xyzx, r12.xyzx, r3.xyzx +endif +add r2.xyz, r4.yzwy, r13.xyzx +max r2.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r2.xyz, r2.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.x, r8.x, cb0[154].w, -cb0[153].w +max r1.x, r1.x, l(0.000000) +mul r1.z, r0.z, l(-1.442695) +exp r1.z, r1.z +add r1.z, -r1.z, l(1.000000) +div r0.z, r1.z, r0.z +mad r1.z, r7.y, cb0[156].w, cb0[158].w +mul r1.z, r1.z, l(1.442695) +exp r1.z, r1.z +mul r0.z, r0.z, r1.z +mul r0.z, r0.z, -r1.x +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.x, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r1.z, r0.zzzz, cb0[155].wwww +add r1.x, -r1.z, r1.x +lt r1.z, l(0.000000), cb0[163].z +if_nz r1.z + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r9.xyzx + add r1.z, r7.y, -cb0[44].y + lt r2.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r2.w + mul r0.x, r0.x, cb0[163].w + div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.x + mul r3.w, r0.x, r2.w + mad r4.z, r3.w, r1.z, cb0[44].y + mad r1.z, -r3.w, r1.z, r1.z + mul r3.w, r1.z, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r1.z, r1.z, cb0[162].x + max r1.z, r1.z, l(-127.000000) + add r4.w, r4.z, -cb0[159].x + mul r4.w, r4.w, cb0[159].z + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[159].y + lt r5.x, l(5.960464478E-08), |r3.w| + exp r5.z, -r3.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.x, r5.z, r3.w + add r4.z, r4.z, -cb0[162].z + mul r4.z, r4.z, cb0[162].x + max r4.z, r4.z, l(-127.000000) + exp r4.z, -r4.z + mul r4.z, r4.z, cb0[162].y + lt r5.x, l(5.960464478E-08), |r1.z| + exp r5.z, -r1.z + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r1.z + mad r1.z, -r1.z, l(0.240226507), l(0.693147182) + movc r1.z, r5.x, r5.z, r1.z + mul r1.z, r1.z, r4.z + mad r1.z, r4.w, r3.w, r1.z + mad r0.x, -r0.x, r2.w, l(1.000000) + mul r0.x, r8.x, r0.x + mul r0.x, r0.x, r1.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r8.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r1.yyyw + mul r4.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r5.y|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r4.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r5.y|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r0.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r1.yzw, r0.yyyy, cb0[161].xxyz + mad r1.yzw, r1.yyzw, r4.wwww, r4.xxyz + mul r0.x, r0.x, r4.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r8.x, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r8.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r1.yzw, r0.yyyy, cb0[161].xxyz +endif +mul r4.xyz, r0.xxxx, r3.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.x, l(12.566371) +sqrt r1.x, r1.x +mul r1.x, r1.x, r3.w +max r1.x, r1.x, l(0.001000) +div r1.x, r2.w, r1.x +mad_sat r0.yzw, cb0[157].xxyz, r1.xxxx, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r1.yzwy +mad r0.xyz, r2.xyzx, r4.xyzx, r0.xyzx +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.x, r8.yzwy, r8.yzwy +sqrt r1.x, r1.x +mad_sat r1.x, -r1.x, cb0[169].z, l(1.000000) +mul r1.y, r1.x, cb0[169].x +mad r1.x, -cb0[169].x, r1.x, l(1.000000) +mul r3.xyz, cb0[168].xyzx, cb0[183].wwww +mad r3.xyz, r7.xyzx, cb0[169].yyyy, r3.xyzx +sample_l_indexable(texture3d)(float,float,float,float) r1.z, r3.xyzx, t27.xywz, s2, l(0.000000) +dp2 r1.y, r1.zzzz, r1.yyyy +add r1.x, r1.y, r1.x +add r1.y, r0.w, l(1.000000) +min r1.x, r1.y, r1.x +add r0.xyz, -r2.xyzx, r0.xyzx +mad o0.xyz, r1.xxxx, r0.xyzx, r2.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x9630ACD4.cso b/src/games/endfield/deferred-lighting/0x9630ACD4.cso new file mode 100644 index 0000000000000000000000000000000000000000..f9f42439b70029a324c572a44dae467db6ffe009 GIT binary patch literal 48560 zcmcJYe~e~VdEf8cvB$f!Yp*>RvkWx6j45rFM7C$Q>t${4+#TB!16A!Byn*~ts8!sg zrTkbZq@>j2Az1+_;6m%lNlL*aCbcWI-Buz>3u|v1t4c{loYeG}ibN#~rD_yyq^N&T z((mWF=X>7gy>s97E^Uu=@45Fpzki(PoO|CpyLY{P^Uj}q;?C!<`12pQ`ucyj^Xnge z<;(x;Len(=^lMGCsQyQE{H%^&)A6Ra{@9d*26t>O(*EzV|k7yZh~T-h1!;cQsEx{q()!iyZLaJJI1*`D#G)Z~Kd<|MI&( zB%-(8bNAc-;9oTj`rLj~)BKe^&BC8K*ffWNaC^h_)Be)Oun%3DX8W9ujdU-*Js-yU zYjAp>l>3lf=qrBa_l~ByV(T*#$eRD5;~jhYdvF$YG8`G$Z#dUWa**$@(EZ;5ztCT) z`vVDoN!MTGzR0^u*UYF%^u1Y+KGt*)lm=;Cqo@HIO8#GW1>UQfXC{XH%BZ$H@I zL;t`7(|dU2d-&vgXyd-?>9Hllu_fPQOTH&>^8H@l7k!IozcgvC zSiiQ9A2ECI+Gde^uHUV^xG?EqKdBUdy~bYMG*_-S{n%EaJF2nGGPckON$p3Q=9A}} zX8X#6zpS$FU?f|}m*H-D`$%)%HGdf0trp*mA)^-s!?~X+U>M`0E~1PZRzg#=^Fe|1W-O60rMq zCg%3j(iJ^k+XdJs?z)z9Z8i203u@gU7V>Mu5zRUnk3Q>gPt$z*yqwD1a}L1|yvIJ+ z&qddJ=Ye?cy-;xE+sL7?v8+?fMcKA&9IsyoHU4CY&(<})j4?dssbgk54ehD?3a$B4 zpHy=rHesh?Ne>Ttd|=ziX~qt1Pjv3rZgeo**Vz2e|H!2(}}7Y{3t<=_B8G!#Z=wF#G^av4}Xa#u6XK%nO+1 z7~ecqm%^v$ReW}Qx%lk&H1?Y2ibZIEzqx5XlZ;L2=&yV9^o3<0tAM_-&_Cw7w>DiH*d< zc91L9OP4hk(x=KoH}KHcwCIVS=#gpt;Q_K`}{w9`5phQz3${kKmD-{@m@wBR^hg5ny>!; z+jO4U4~354VUzLx{rPL3&3I=7!3N2Ty#TuO{@6xFogb{1@Sq0={hrV@HnyEkYIpsM zYftu9+Z)22(eF3cAL>4M-9I^J*=H7eTJW-ddq1@k`hEZDmjy54h79Y+a|HVR#;eYD zj6EnF7+WfM@Y~cFy0)E8^2s&#e&OVAp8b;e_IUul;9(nc6B*#sW1Eg@_aQ+RG)50D z{>*;=>4$&0+9YuEoba+g(H(vN`}clj1AVcTG3OBcvi<1$nvb6p&%WVr@O4b})mZ4O zGy3X!MyFprcw6_M|M6ejw67n#s`_xx=Y$QvwriT7`MXbqk9FH@PX2HcK0{sp(;ffu z*-!udzi=lwjs)_XXkf`Db~;i+WE@oaf_G8^gEEHE@~Z-_bRGT-w{u zanEgfXw>G$=ttAD7O}!dTcV?#`B*PQYi-aoMtt74^6}%u1YFix;!V>zYA4sSA?gx! z1be6}YL$;^+{=!Ar^Nw(8(;bd4+t|q$=QofV|-^4IE!)D)53!q2|uvdCmD`UXvhFh zwpE?23;QSV(OKBjToO(2D?RlQJ#t(YIuSM7$Jpx(Vbn0|e_TPDj4-G{=!Q3MeQ%6<{%)LIljgj`T<56c3O1!(f%VQ+-uIo8fqWYx1CN+b9Xw(wF4K5 zjxS!_`=;%L(fqXL)%57cwr|&5s|UGsUIV;ua;)r&$Npv?$6+pI8r%G$VuFvzKVmT#GG^k7H zk!WUQ3V8-*J&2d|h<$~}=$E#q`vtAL5#tPRJ0T64b742$N41^sF||8tfqX$t@f?@k zF=sOm&wJyH>FfO)bAsmrVkLhx&hs~?_dECq*=Gt4`9S?}KIHd18m)Uj&4-A?l<#(| z@6Q)L?5)Fh>fx{Z8aM1Ro@2eFcarcjUCvqO8hK8wCC{lZ*0I=C-?;#C?)9*3YWG$1 zWGctvy_Ml@2Zz~4Jr}j|z zW9VsnXKiRs^1H_n#@tvDEwL8A@UbqN2XydG6#g8VgY`EI^fQg(7_>sE?{SLH&Y2$G z>^FCW%bH@Eq2G~%&P86}Vvp$zD|BIxVblnC>o<~GmyK_ETHC9R#>a=W_v%od)qS7l zNBDx;#9U!7t5$U}y?gmF?|A}W^(AeQ`j=E-pa1&^OpP#O)ELx z1JY|KVgZkPODtG>NC?Ur8t?0j!wLt|tb@d`?Q|NfgUr9v;$LDo)3Y`p`(>i)W3XM{BV9ij+Z3K^VE6|+MH}nn z4Z3bSod(Uk@nzmGG3BF}MJ{Gp6*s|LzpT#>C;65OZ`L;Z z^%c5qJDmm%zY+^{hjvlDeeHRIKKNCz_)UlLPn1~W0q7V*58^>SA)g!s2F{NsnDObs zbsWH3)tGhR{%<$U^%pdDP}gl2^_-es55~|rALK8zZP)7n3}5h@o%rp;Ugsmc&=nl( z$~`%w?z`S7XD8C(^IjMW|B&OIX+L)94 zX4`hun(3jT=FB6z^)L;;)3)6dA6nWCXQnjRh#alwA&1{;$9T3~tbfApdv%pYei`N2 zcDrdlF4t2pum{`eJ%+xF(R&Pi7^7$GtY|}?_I>o^=KUHYZcBw9V^4T&Pfx458o7x7 z`OP|fuO2$^SA>rY@(rCBBQHFLPK=Syj1eE?n=iF1^92WdbOR6F-~m3eEZ;piN6I?E znBo%qsgg@^jSS)JF}-w%aq!WbUNwCGTDjKVdL~EVwb1FL?+@JTy7Ci`ScBn%eTCoE ziQi0)9um$N&ub=A8_mc1WqIgN&LgMSr{6~>`vPVjstxR;BUYJ4ep$FhDqBz6ruW9x ze&mzq!i)WHwh?^Zq2Hch))yPW^?P-$od>Rm)GXD91@xfiZ5Ep2>X|R_UsO-6*-2yb zY7P5a>;X68pX{(cy^YUoT=&& z!FAlA8}pHSOdsQ;f4Otw4F}=g)eyM%Kl@hYs~2qkARCWJu%gq)=UK3EdE1h!vtz>Q>+YQj+D6` zxiZZ??Z?LEMdE8(_(SJ7IWLNDV%>O4$q!&de85C1x*@Ik)g@BC(b%m=n{3}!o4q?+JS zw>*d7`$wOh)-CuP)R=P=GZfaPV&X*+EMdP zc<8&T9$)Iv8^5VO=wE6==!I|9V*g-&)2p7%?8%TXKFsBp)HCo#{A0VAOU@z2ruDX; zi^$J0G@avnTk?T(>$Q@{9LHwxS+kta&c$rsYQfF>9L?o;?nECyW17bN*h4vg@Ez~9 zV=eypWQksSgna0f$FYWiw^iVi1YeR4L93X6GlsvG@Tof)U!ch2;9q!H&W(wVeKWNy z@JbJ_BJ=7YOy3D#fgJmBOYfBOJ#*+{{!#p6|5xT$r4w~4*LC}c*chhx1&(2gO*~sdcSbPc zdPZ?Ep62J?A?=|@zZrWV`$aZY9;TDM5j*0kxmfoeh98nFY=Q^9T3zEj*88W~I5wH; zpJ7iwb?Aijt-QhKH~!Uue%MHjL=Nv)V}6v}V+I{^j_`S8%3jkT8bXt)>9oQ=7NKA+Mj?CV8F+sRmsak#Zz%<-AAyx$>z z;OBaUJak0|V7|u&*%kZCu(4C_f-~~$125(vc-ZgWe&Aku?@hrKo3C@(I$#gHUd9E-F@%m-(!T<^g^$*ph%;lx!G`;E4?TKNPfV9_nD^wg z*HY&S`0!wz(A=BuA(R*F-InBUo=qll$ZFy5oYnlPIn&RNFLtXV_|!LY7+*jOKc4@w z!}$lV3&O!S>~jM5GrjDS8nZ3vXgvLGPUzMpIQyKS)q7ER89(#eO!(fL@ZJ-Awa~*n zGTog5S`XE``VPf5U=#Sf-@#t^wVh6bW_;sCy)E;w?Lg+a#RvDzHS6NXn!8o@%J}f@ zDJH6s;fp+m?a+k{sV{uS@T2wyyx@y(#OqPXYC8#?zC(!{#pcSYThUQ+_YLJ{KJ0Ob zDRR`p-xFOdmAJQ^ZbD8xzir?P<;PVQ#Q(JdENMSENxd%joiDQWH*Ucjo7+yO+IoNL zS!(%y;Z8Kp-=^%w>j{ns4;wV+>N?VPJuIKeTkvkw;EU1=o7zr;-@5Sxhi;?ECz)U9 zXx{WM$o5H(n(;z@+X0x#hj=c?`oW{^cFRRS>!FW;d{>Dl+vudci3VmzV9 z|8amG`_q%^@tbXbT|ZuZInQ=zw1*1YC;fFpZ@=j>YzNP4ciZV^j_rR^kc>B!YyIG7 z|F+$3A01T=Z^}p5L9K-^W7K1h!NYjO8a#Y%JdfcwwaC?pE?(4cH<26a;bk7kpq_dR zSsu%>kO3Y%EQ>ML5z9KOYiJ%)4Fg6GFV`sW_zU_2sCeP?} zu4$ej?!Q@N!(S@nq z$hO~^PZx?`w)A(c%)70hozlFpztI2 zu^G~^7BdgYk$E)eK%RR4L65J{Np{rz3o&BsxO#M<2X~%KVmD7_=8Nv;YaQS}#uxkX z{iX0lzcIe{Ir^O{Yx|bsF}a9L^5Rlt;v@LlH}=(-EyU$g`L13j-%IrozQ0s`@jdx` zDSp82F}|X&xrR;Nr;2TJyI|BL_E*#u_w1v9tq4YrLkA3B(`Oj=7zXZw=++7yuo&y& zdHG@99T>KtF|9`r!yBB;(__d3M*f)Yco_p{B3O>|W`PmsOZA&&Sy%Wo7u4#rpvQ{N z{Ecrs1I07K$Uc35&)@UbXA0X?cx@mbJ{bpk=A~iAU6Ff_YCXjl(>QK#=z77wNgouQ zo(rq)#8vMlBEGLye{3>+)<6z?^xk;v_rIt^t`GFR9!==1^(wxB-6^_SXY0y(W*ByW zZyfnA)-z&j{n+#4ciqRn23@g(m|_!n{0>I%oPa+x@XfvWUu)QyZDV8N5pv;k&1C97 z@&fsmA>K33VCb224;_d8x1IENmHklGm;7cP@|>7?f$x~xm-eq?j$XW@IacDzHDkn; zXUIkMtXtRtY^eWUjUn?&_4pPYtUo;LZ}-~IM_hqfPSGj;t`0pj%(h_*ax%|ri=REl zx@tLw;U~uU?#?j1i>Z0h%kFgvKNS7!humYkYntN;{X-8u)Y1ReH@vn-I$9RJ#UdcCIKtK5_R z&gnae4>U*rMxQUk_mr}KffyK{d_9X? zBs`#_ho}9)81aO^dvXn58AcqJ%l(j!`fC_@uv2(xEcDAc2p;!24=mF#?vdy35VBt8 zkFDl!xOFUks`(7Rf?sXS{JFMFY(szZ%DP);!z|Z5<7$=OJc)__*2=t{Gsek2#Shu< zz#L1*kh~B5V(Yft(s()w2wa2!#<>BZX`Fvgj{H>L9 zVyp1F*xyYV7aO(rsyUKv1$I?}<-E&&;2p00fDPEHd0KNCI{aXm`xW7+RsY#X^x%l+ zF8@85zBxK1p2YRY2wvL>Flh7R;lFjFpW5OYv#2rtrk{KA3|kB%&cvOVp?8_PRc~PE z$nT->@tXQFUE{N}g_d`&!9(vU;F)3Y0Dnu*)Zk>8$F@X=Z25HIsA{zNww(qCO*|IB z)4qRkweXf*`&V>LZs+x%93YmS6Ye#%4}4@g7xaGq%(J?;ou&nMZHgOp2f8si8jj!U z&_jGjzx%6tCb)G_F4WrSv7&Q)_XjP$l&&=%*0bQTr;hc~wgtZEtkX%+bIn?0T^xJ& z?AHvl9>nc*@dGi1hw*h8ze$xfA$&xxwoT|B0YLv#p-{2ol zJ~<>=}&O|EA)rH?R1*H!({&uHls5+S9xnK9pHls z{swZv7w`COZ%kLlRL5d(!1bzhj4>81WZ$8J#I{Nytlc(=)0u&qc_iZ z^pbh?5ccHHPvUzh+r9M2>^*bnV*XM5>)uKE7I_wHc=~3}Hi5e)-N?f+T*bB84=yp8 zhnszMi|TcXU;UOv`Btx~QO2=8%u$WUH*-71XIqJeZ|00E8N0qo60Gtk&&{9tgTLWV z4w;8+syvvRVVl00Gh8xi9nCz%qW)c;b5r>n{L$a^rglzecC7fFYmfPx zIm?kvm4|U;Z^W+5i?G@H!V7zg^l@;7rH%iqjdKWrrbz1#P^o%Z|2OyHiF}^85<|lZ{`G#d1`*sSU3Ee64M%?)r7hHQZ<5gXZY+6 zZ{mf2d3L|pH*>D{?xBSz^MUn;@#5>cN1>K47g(<4eg+6$Xa)_?t5JCA4#I{j{1ugPEZ#8!My4?Vr;WB&n7+vzlD$Ooo5 zTlWNGYb^Go58upD!?|udC60QU`?ia{3`2D+?{~-_)qwgP8M4upKI;yD*%i+X;3NN! z)sN|RYpEIF;b-%LhvoU3IbiTYU-$X>)p0^L^Bx~s_81!@L)s;E;mv zoIR!?=N&SdX7-yo*5!6dGO7geXMWN>Njv6!*=LG$J7@-WB6BBIR#&Q8{);cD{ZHX z>HCMcQEaZvH1L+(eM7mK&sNjde{j{p-_&`&nM2pM(<$WO2i{vuznP1iRLlau^upP9 zzW9f_NWLUKx})_zJuG?m3pePszU;>9v5yE38{)aG_@eE4SUw*sc>FHPZ{FC{b{d@X z&0OIZI+{2A3$h)Z)Mn%YYdf84PH^2n7i9g6H>1I`#s~)@{ETa%pLeL#-7My@Gu^+1`nSb&tv#a?WzlcBad(9A~)2-%RG=l?e`e6 zJeFl413Y+G7GsArW?84p^+Wm&3m84TT%(}nT~_E(-v4PR_63YlgX!B&r#auV0q2`J zdaVhyCRm2$(tGXD<;=SeU~Q+<92usiANytw+4eg*g^%$c-VEH*S`> zA_#hTp3l=W^CjouOAbJ5{`2_a-%H^OpE17K=j;XW`6>B`c{ficd2uN+v0+T+7+>OY zseD&2lkcVa=yH8eK3|F-=K21$$~ET*zVbd*Y~wq%=QYOuvA&DaoH$ruYl4v<=nM|@ z^tX$rVaR0+e}TJDY-#-im$iv|>!WucQAeZ)^{nc- zsC&!QW$+O^=-tCd^)md;w^8_y9=j0^KkCy=kFKjI>ayE}G z3sY(Wmsir7j#N{pW^{W;D1_{{(uc+%gbY05l+r+CGC3$8ss%6QcS8u%odfN6MC zH|R4AeHpV(M<@NiafQB11twb#5EuMUT!=^8HO=q+y|(kAp{DKhZsg{tzV1Uqp|@$D zRBfig176}A&(K4@AO67O&-lprx{f`P@#)*HX+E^|x(y#1`hjGwKX7yB10L2Z)(-eaLmypm^8BC}YsIo%ny?lXpCN_qp42 z8%^s+%q?!1TQt{5u02NH@BIE-H^=a$Tg>4hzV18E7w0g3$olL5WIEvkdVC3v@Z)=h z6jM|r z_NMvnzdkmZ2aA8RH-4kU&!Vfmd;9MT+LaOq$xF4Qxr4lS%q`P6Zv^e8Zck9J zd0xjYqFpQeOj~@uAzf;1b4@niT=UoG_*&0P;X7pgAilQV7xT4otXHr5cb}EW_?Bdj zKc7`B;<+Ap&Tri^?_%z$C+2f~kbO5RU;oFA>W6(M|3qCUKb)U!ryJ#WI+~Wdsr=AE zb18C?Jq)zLV`l3BWe!ls zs0q#=T~^=9?%;(Voj2%AJ|>!t)$NHedY#d4NAN}6Ydq);D>BNzKexT%+=kbo!V|xu z-{F$?z>XJw#-Row13Ztx`{}2iI+1O@Ae`%k^PGLF+6~RHc1!1(eFij+FZ@f3HH%k}P(a)D3`IT|oPK1|Hf1sttIR4xpEzdDr<5ytHt-Y=})IVU<&#{`1 zuXfuyzvhFFtXp*&6jK>y~LGGipr1y^eVl^yUA^L*Vb|Xgi$-vfGX!o{fF< zdvthMp8d`}btA*9C$M3yB-Zu^wKDcQ@0!`i3S;^_rCLze$39m5Z^DkBYX)FNXC^BT>768Mp0pqjs^{Wxqy0hqvcX z#%((|dyo3kdpKyRU5*F$M@#ME8Xo}joFYzRb1LFjY{hrGZJl4cz;`ap^P_FexNRrG z%diz%>VR$K-nMd04rN?Nw(4AapJDn~=A7oLxvOe~+YZtI#?E+_0y0(HH zSC4GxzvfAdQ{UDn&0fzBkC!^vl{s`yr18!IJA_l`nE7dV?)whr3iGJY3ROb8=r-iL z1^M>>_a1xCdXeAuawVKv)i-<~9YY6vbc6C7U0>Ll1j2vN8DC-paB`jAHsAy9;ej0D zZyq21>_m4>V;=a~JizODJaZ!Z@q%z1SNac^yt$Z;F9`4dR!8%=R2>z&$b0%r(eYdV z4|Ft-OVyD$S~upXV$JWVGw+$$x3-;5gQob@oOX?OoLKh{DNZ!jtn*4J{vMRr5#KHK z@TE=#*1P(=C^^GBzJ1`LPuul>56j=g`jD>m8H(Q{*M&>I@Y^3W@TUjH9H(7OM`2Vv z{;m=o-Sc-&=3$$tcldakqtpKbh_Q?ZEj7lr-Keb1uIB z7iskg@AxGvWb%&9*UZnMpL?G@d}rV58*S-kzuU(>Z2LBBS}T4qe$Kt@1N=ws@w?@4 zuYu0HaEqS!pKtKcnQQAqt}Q3ozwzw{J7C|@7%=t*$mH+y@gp$X3LRtUeDa;&Jn_mB z8x2*Tf$y03w*=2u>;@KjU-&z|@F>1$$h-T*XQk+A|IuR$d1o6WFTM*>K12@)aMQ(2qZF7P&9 zb?Bq#bVQHO(1`}W%oo2nKKLwPMc3?4dPahI+9cwcWU0_=T9v(+j`M z(+k*`UhoVbzl2__MQt}aa8AOb@Q>#lU`O?T+~T*ktMt2g;4^sO zo5Uk>$S{9PQFN?(P3Z7j(m(Rjboi~n;@@RbUdP&SR&?mKq@FD1@BFb@*VDY#HyPlt zr;qO^5)8TapHS-WRe21#G<;=wr!*fd5C2?_Jn$XMBjUL>&|ys8lbU0ehfgj?9{5?_ z<{WuKi{G8php)9wI_KZOKcF#mbv?ju{#Jzl*XbtJEW@Z{)2qer@8C+;*q?Fjcc|cS4=w)S8rk$} zgLksMAE4o|AIK@wIA(|CqaE>C6bv8H%a+JL_F0x?nCY{xR)vood{0k<2iN+}Y?q(4 z4#o3c&=kBwqNTl8$5+z-tC->u{H!UbfNvG?%9DNcDHY$R*~LpWcx^qI>uV7IP9?Ry87B zB0lsPhW{CZ2e|ep*UG>6yEU${UH_)p9h#rJ?nXW#8Fu@FX+h%N|bepm)bt zYpV8wfk%8Z-b{QG9`Vh1Gx05WVj1?cf5rZjy^N|ujQfse^aVAKry z3?nBQBR1e_oe18M3q>C98-XE%apl1Rbq5`cM~uWrJHdV~WPH=zRcZz>%TsQJZ{ahP zV}D?C+vzlD=4(9c@L1aokaf#CgU*o~CFbQieDH>1lgH@i*#pe6v=6ck(kW^Jw&G)8 z{hZK+a_@W@JGC&Kdu<2Et^fT5{}}g4)jIg_Hyp?(57rAG`|d^WL+vJQDJ zQt!AwlJs?KtnWM+@28wg?A5T78nIgX41*^)A*zJ;C^dE!u{Qm9c z`lQ*P>F}FmL~YFcZMSs?&tuv@?ZTH|4>(^~2gs$i(`oPyt?d|^eXl0keM4IBk*RUM zX1}7^5c_TTTaR2%?-}_v*YlS5RN(TSYEd0=r(xsiqO)-&Gi=OpWKKFh&e$!q5{l4`h zXY2#dcl%-pBNq(AuCvk$zw-QwM|s{OR{Z;Qj0@*#bT7V)`4hP|l1EveP0_%IIMJg& zJXi}@BjD-1DgTayt`}AYFlbn#MIZnFZl*Kr2En{qSXxf*p0S(e{+x*620wqt0#j+vI;wF^CcO)g^-`8~C% z|9vO_T|w|sT%(^;yNDlrXsgA4&P!^NVTxbWB=GD*=5B%ma(riM(wMJ=+GW|~2hFl| zS@klk$c>sblzXw7g#FYM8gqktbU!PZt~aE&%c52{)6@&9hnZDBWJHI{m=BZZH!K&5kG7qekaw_96#!g zeNbzzYOwutTC!|6GOG`ZABum1N9ZJ4Z18(Xd{gyREeB_5d!lpi8+9}Jby5T1SiiCS zAQ!+vcl1ME)l2?oog%h|5pQt#4UzTKeWo{#b7KhedIcZzMhD)tL@ycAHF66awb0El z_pCjt9Z}CcM&EWi4VvcO9K46`Y#JY-PyJnw`5W&awkN^umvr{L_y@YCZVl(nLMK6b z|026$Uxz;Un0aB^U+AxE{yeUG@4LZg9i)dB4gVphhk99t^xE)medbMXd|lSP9=<8CoV%dlhwu@;5N*_rMP1kY z+?nXEX?{_M;1OTo&cC(`A8nuyhd}XngTq`_C98E;v>}uIkiU~7Uif9F#Kmz$ZoamE zwMJI|TUXW^8Z>J0PB_Qf^#osNov-vgPx)(m0$uZE9n?VkO+11ZFmU5NNx`Mo-Kh1G znn9xu)7nlOz=vKLhi;>1?45u3-rG4CqZjSol|oA{(8x{Na_PZYn*%cqIQTBp8D@T# zMSUE?EK3}!J~MGDF=Jn;7O}*S@L~S0roU_X5#6(oLZ3xlFLXLJ+lMVfb!XW&w>?aG z)9;(;jVHgyo&{=;VGBITRr9E@6hCBGe%py4@#p%G_)srAU+_ugQ)DO~g9kA1-G|*p z7Pf-7DLCW8i`>q*&;mne@Md6z&p#C0wa#$*-gn@ z=#u;@P|Qchl@C>3;jy9ENA4B4>4T?ZReW4y1??aF@4tS6{^03b;_vPqD{_2{m&C`M zgBN)jJdGI{qwfJ&{kc?c-pVXyqI6f5A)4_WnAqC@+-9VE7zU_ zT+j0>ura?fF8gNIV#e%W$*Hxc=Ba(J9$a)uwITeb;oz~TzW49++ht(Vx#l+a=#Y3Y z6gcpAzB48rDu3;NcF|at=Jwor^(FCHpY+d`#G3Vt*qr+GMCYdYqK>6cOmyzA)$Njl z{?KNaeTJWC7t`-X`E{-EfQ|+oJc$$S0S!G-u6dRP)^<9n^%#ABO3!)5JEiXsXo|^! z;aJ-NX`1bDci*?22BK}Bb5A^nv|j7KA|!Mvd9!C-nsEJse($Gkm3s3lx)z`PYeiGp z7NXdq-!opJG4@jE!Mi%q zH-0YabBBRu*)p@<;#+g?Ng*AZ^xq~xVA;Xrbsu^YJT4U9_b!jpM>vG#1z8k~>cbuKBww2is17Xx~4d`q(p|zjKK_f_T+f zSswa;XIrv9epbow-lx-bp}>MK*S0a!SO;XXE+BJJ*CjrOCA+>Oaa|(@jGt6rTGTGa z9b>Kwk63S4#J9ks$0izc*M84Dp&hQb2`_YX{V^}Gt9v@zg>U7zs_PTFw;!+*TKYjO z>)zDx-j=Cv3vKY_dW@%aKqkJm4|-nPhgS!_T`N9fJo|PyKJ;yZhi^qMiM?-u(K1iu z4}EJq`xG9?F)!H{-!&Cpbk%o?VVz&cMd$p=xS9Tta9F?0o4m4ojaA!OkJ32oYEH3U z4q?a3eEgE|STEO$4PGx___+xzV!b?5aK9KMyXDvq0?+7>eUjHp+frhC$#oB3jnzHB zhobf&llRXwKUZg;<4>A<>yUk(^}GASAG$;I`@U1?mOeQNdfu&A7mx9dLAd*Ogd1^9 zb7|hQH*&#W6zy^K3+mD7zZ`he$+u|D1jd+Q#?NEGpm&|iFnIBen)mUBIq$ev{FjIJ z@xF+)132GG(Qk)j}_>trz*yb~+98B96!|xY2`m`0zhJ;R7mi z3?BFfe6(bY)^_|qfUn>1p`jU@z{9`vmILLAOv$!qJY<3;6V7c}7i0xfgW?TCc1BNY@LUPV$>#xBYwuCN+VhJ%3>@VOdlbKOhbMUiEbkB33QzI~*mL^-{9dJ={UP_gd~K}dra)|=b{2bk%A(QFg7FZnWJp6Fsv2fpG_{p=V=9!z?Eo{xsn6O;ITtKeAn H35owd6p*<5 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0.asm new file mode 100644 index 000000000..a58a6ae7d --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0.asm @@ -0,0 +1,1596 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 16:53:39 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[15], dynamicIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB7[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2darray (float,float,float,float) t10 +dcl_resource_texture2darray (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture3d (float,float,float,float) t27 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 38 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t24.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t25.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t26.xyzw +mul r1.w, r1.w, l(3.000000) +round_ne r1.w, r1.w +mul r2.w, r2.w, l(3.000000) +round_ne r2.w, r2.w +mad r1.w, r1.w, l(4.000000), r2.w +ftoi r1.w, r1.w +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r2.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r4.y, -r2.w, l(1.000000) +lt r2.w, r4.y, l(0.000000) +ge r5.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r5.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r5.xy, r5.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r5.xy, r5.xyxx, r5.zwzz +movc r4.xz, r2.wwww, r5.xxyx, r2.xxyx +dp3 r2.x, r4.xyzx, r4.xyzx +rsq r2.x, r2.x +mul r4.xyz, r2.xxxx, r4.xyzx +utof r2.xy, r0.xyxx +mul r5.xy, v0.xyxx, cb0[82].zwzz +mad r5.zw, r5.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r6.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r6.xy, r6.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r2.w, r6.xyxx, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.wwww, cb0[25].xyzw +mad r6.xyzw, cb0[24].xyzw, r5.zzzz, r6.xyzw +mad r6.xyzw, cb0[26].xyzw, r2.wwww, r6.xyzw +add r6.xyzw, r6.xyzw, cb0[27].xyzw +div r6.xyz, r6.xyzx, r6.wwww +mul r2.w, r6.y, cb0[1].z +mad r2.w, cb0[0].z, r6.x, r2.w +mad r2.w, cb0[2].z, r6.z, r2.w +add r2.w, r2.w, cb0[3].z +eq r5.z, l(0.000000), cb0[86].w +add r7.xyz, -r6.xyzx, cb0[44].xyzx +mov r8.x, cb0[0].z +mov r8.y, cb0[1].z +mov r8.z, cb0[2].z +movc r9.xyz, r5.zzzz, r7.xyzx, r8.xyzx +dp3 r5.z, r9.xyzx, r9.xyzx +max r5.w, r5.z, l(9.999999939E-09) +rsq r5.w, r5.w +mul r10.xyz, r5.wwww, r9.xyzx +mul r5.z, r5.w, r5.z +lt r7.w, l(0.000488281250), cb0[234].x +if_nz r7.w + sample_b_indexable(texture2d)(float,float,float,float) r11.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x +else + mov r11.xy, l(1.000000,1.000000,0,0) +endif +min r8.w, r11.y, r11.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r9.w, r11.y, l(-1.000000) +mad r12.x, r1.z, r9.w, l(1.000000) +add r12.y, -r1.z, l(1.000000) +movc r11.yz, r7.wwww, r12.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r2.z, r11.y +add r7.w, -r1.z, r2.z +mad r1.z, r8.w, r7.w, r1.z +add r2.z, -r1.z, r2.z +mad r12.w, r11.x, r2.z, r1.z +add r1.z, -r11.z, l(1.000000) +mad r1.z, r8.w, r1.z, r11.z +add r2.z, -r1.z, l(1.000000) +mad r1.z, r11.x, r2.z, r1.z +mul r11.xyz, r1.zzzz, r3.xyzx +mul r13.xyz, r1.xxxx, r11.xyzx +mad r3.xyz, r3.xyzx, r1.zzzz, -r13.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r11.xyz, r11.xyzx, r1.xxxx, r1.zzzz +dp3 r1.x, r4.xyzx, r10.xyzx +max r13.x, r1.x, l(0.000000) +mul r14.y, r12.w, r12.w +mul r15.x, r13.x, r13.x +mul r15.z, r13.x, r15.x +mul r1.x, r14.y, r14.y +mul r14.z, r14.y, r1.x +mov r13.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r16.x, l(3.327070, 1.000000, 0.000000, 0.000000), r13.xyxx +dp2 r16.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r13.xzxx +mov r14.x, l(1.000000) +dp2 r1.z, r16.xyxx, r14.xyxx +mov r15.yw, l(0,9.044010,0,1.000000) +dp3 r16.x, l(3.596850, -1.367720, 1.000000, 0.000000), r15.xzwx +dp3 r16.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r15.xyzx +mov r17.x, l(5.565890) +mov r17.yz, r15.xxzx +dp3 r16.z, l(1.000000, 19.788601, -20.212299, 0.000000), r17.xyzx +dp3 r2.z, r16.xyzx, r14.xyzx +div r1.z, r1.z, r2.z +dp2 r16.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r13.xwxx +mov r15.x, l(1.296780) +mov r15.y, r13.x +dp2 r16.y, l(1.000000, -0.755907, 0.000000, 0.000000), r15.xyxx +dp2 r2.z, r16.xyxx, r14.xyxx +dp3 r16.x, l(2.923380, 59.418800, 1.000000, 0.000000), r15.yzwy +mov r15.xw, l(20.322500,0,0,121.563004) +dp3 r16.y, l(1.000000, -27.030199, 222.591995, 0.000000), r15.xyzx +dp3 r16.z, l(626.130005, 316.627014, 1.000000, 0.000000), r15.yzwy +dp3 r7.w, r16.xyzx, r14.xyzx +div r2.z, r2.z, r7.w +mad r13.yzw, r11.xxyz, r1.zzzz, r2.zzzz +add r1.z, r1.z, r2.z +ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t7.xzyw +lt r0.z, l(0.001000), r14.x +if_nz r0.z + dp3 r0.z, -r10.xyzx, r4.xyzx + add r0.z, r0.z, r0.z + mad r15.xyz, r4.xyzx, -r0.zzzz, -r10.xyzx + dp3 r0.z, -cb3[0].xyzx, r15.xyzx + mad r16.xyz, cb3[0].xyzx, r0.zzzz, r15.xyzx + lt r0.z, r0.z, cb3[4].z + dp3 r2.z, r16.xyzx, r16.xyzx + max r2.z, r2.z, l(0.0000610351562) + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb3[4].yyyy + mad r16.xyz, -cb3[0].xyzx, cb3[4].zzzz, r16.xyzx + dp3 r2.z, r16.xyzx, r16.xyzx + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + movc r15.xyz, r0.zzzz, r16.xyzx, r15.xyzx + mad r16.xyz, r9.xyzx, r5.wwww, r15.xyzx + dp3 r0.z, r16.xyzx, r16.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r16.xyz, r0.zzzz, r16.xyzx + dp3 r0.z, r15.xyzx, r4.xyzx + mov_sat r12.y, r0.z + dp3_sat r2.z, r4.xyzx, r16.xyzx + min r12.z, r13.x, l(1.000000) + mad r7.w, r2.z, r1.x, -r2.z + mad r2.z, r7.w, r2.z, l(1.000000) + dp3_sat r7.w, r10.xyzx, r16.xyzx + add r7.w, -r7.w, l(1.000000) + mul r8.w, r7.w, r7.w + mul r8.w, r8.w, r8.w + mul r9.w, r7.w, r8.w + add r10.w, -r12.w, l(1.000000) + mad r11.w, -r10.w, l(0.383026), l(-0.0761947036) + mad r11.w, r10.w, r11.w, l(1.049970) + mad r10.w, r10.w, r11.w, l(0.409255) + min r10.w, r10.w, l(0.999000) + add r11.w, -r10.w, l(1.000000) + add r15.xyz, -r11.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r11.xyzx + ult r14.w, l(0), r1.w + uge r15.w, l(15), r1.w + and r14.w, r14.w, r15.w + if_nz r14.w + iadd r15.w, r1.w, l(-1) + umin r15.w, r15.w, l(14) + mad r16.x, r0.z, l(0.500000), l(0.500000) + mul r16.y, r3.w, cb5[r15.w + 0].w + utof r16.z, r15.w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t10.xyzw, s1, l(0.000000) + endif + movc r16.xyz, r14.wwww, r16.xyzx, r12.yyyy + mad r0.z, -r8.w, r7.w, l(1.000000) + mad r17.xyz, r11.xyzx, r0.zzzz, r9.wwww + mul r0.z, r2.z, r2.z + div r0.z, r1.x, r0.z + mad r18.xy, -r12.zyzz, r1.xxxx, r12.zyzz + mad r18.xy, r18.xyxx, r12.zyzz, r1.xxxx + sqrt r18.xy, r18.xyxx + mul r18.xy, r12.yzyy, r18.xyxx + add r1.x, r18.y, r18.x + add r1.x, r1.x, l(0.000100) + div r1.x, l(0.500000), r1.x + mul r0.z, r0.z, r1.x + mul r17.xyz, r0.zzzz, r17.xyzx + min r17.xyz, r17.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r18.xyxx, t9.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r1.x, r18.zwzz, t9.xyzw, s1, l(0.000000) + mul r0.z, r0.z, r1.x + mul r0.z, r10.w, r0.z + div r0.z, r0.z, r11.w + mul r18.xyz, r15.xyzx, r15.xyzx + mul r18.xyz, r0.zzzz, r18.xyzx + mad r15.xyz, -r15.xyzx, r11.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r15.xyz, r18.xyzx, r15.xyzx + add r15.xyz, r15.xyzx, r17.xyzx + mul r15.xyz, r15.xyzx, cb3[4].xxxx + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r15.xyz, r15.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r16.xyz, r3.xyzx, r16.xyzx + mad r15.xyz, r15.xyzx, r12.yyyy, r16.xyzx + mul r15.xyz, r15.xyzx, cb3[1].xyzx + mov r14.z, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r16.xyz, r14.xzxx, t8.xyzw, s1, cb0[108].x + add r0.z, -r14.x, l(1.000000) + mad r14.xzw, r15.xxyz, r16.xxyz, -r15.xxyz + mad r14.xzw, r0.zzzz, r14.xxzw, r15.xxyz + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r5.xyxx, t12.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r14.xzw, r0.zzzz, r14.xxzw +else + mov r14.xzw, l(0,0,0,0) +endif +mul r12.yz, r2.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r12.yz, r12.yyzy +mad r0.z, r12.z, cb2[1].y, r12.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r1.x, -cb0[85].y, cb2[2].w, |r2.w| +round_ni r1.x, r1.x +add r2.z, l(-1.000000), cb2[1].w +max r7.w, r1.x, l(0.000000) +min r2.z, r2.z, r7.w +mul r7.w, r2.z, l(8.000000) +ftoi r7.w, r7.w +ge r1.x, r2.z, r1.x +iadd r2.z, r7.w, cb0[110].y +dp3 r7.w, -r10.xyzx, r4.xyzx +add r7.w, r7.w, r7.w +mad r15.xyz, r4.xyzx, -r7.wwww, -r10.xyzx +min r12.x, r13.x, l(1.000000) +add r7.w, -r12.w, l(1.000000) +mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) +mad r8.w, r7.w, r8.w, l(1.049970) +mad r7.w, r7.w, r8.w, l(0.409255) +min r7.w, r7.w, l(0.999000) +add r8.w, -r7.w, l(1.000000) +add r16.xyz, -r11.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r11.xyzx +ult r9.w, l(0), r1.w +uge r10.w, l(15), r1.w +and r9.w, r9.w, r10.w +iadd r1.w, r1.w, l(-1) +umin r1.w, r1.w, l(14) +mul r17.y, r3.w, cb5[r1.w + 0].w +utof r17.z, r1.w +mad r12.yz, r12.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r1.w, r12.yzyy, t9.yzwx, s1, l(0.000000) +mad r18.xyz, -r16.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r19.w, l(1.000000) +mov r20.y, l(1.000000) +mov r21.z, r12.w +mov r22.xyz, l(0,0,0,0) +mov r3.w, l(1.000000) +mov r10.w, l(0) +loop + ilt r11.w, l(7), r10.w + breakc_nz r11.w + iadd r11.w, r0.z, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx + iadd r12.y, r2.z, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.y, r12.y, l(0), t0.xxxx + and r11.w, r11.w, r12.y + and r11.w, r1.x, r11.w + ishl r12.y, r10.w, l(5) + mov r23.xyz, l(0,0,0,0) + mov r12.z, r3.w + mov r15.w, r11.w + loop + breakc_z r15.w + firstbit_lo r16.w, r15.w + ishl r18.w, l(1), r16.w + xor r18.w, r15.w, r18.w + iadd r16.w, r12.y, r16.w + bfi r24.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 3, 5, 6) + bfi r20.z, l(29), l(3), r16.w, l(7) + ftou r20.w, cb3[r24.z + 6].w + ieq r20.w, r20.w, l(1) + if_nz r20.w + add r19.xyz, r6.xyzx, -cb3[r24.x + 6].xyzx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.z + 6].xzyx + and r26.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.w + 6].yxzy + ushr r27.xyz, cb3[r24.z + 6].xzyx, l(16, 16, 16, 0) + ushr r28.xyz, cb3[r24.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyz, r27.xyzx + f16tof32 r28.xyw, r28.yxyz + mov r29.xz, r25.xxzx + mov r29.yw, r27.xxxz + dp4 r20.w, r19.xyzw, r29.xyzw + mov r27.x, r25.y + mov r27.z, r26.y + mov r27.w, r28.x + dp4 r21.w, r19.xyzw, r27.xyzw + mov r28.xz, r26.xxzx + dp4 r19.x, r19.xyzw, r28.xyzw + max r19.y, |r20.w|, |r21.w| + max r19.x, |r19.x|, r19.y + mad r19.y, cb3[r20.z + 6].x, l(0.500000), l(0.500000) + add r19.x, -r19.y, r19.x + mad r19.y, -cb3[r20.z + 6].x, l(0.500000), l(0.500000) + div_sat r19.x, r19.x, r19.y + add r19.x, -r19.x, l(1.000000) + mul r19.x, r19.x, r19.x + else + mov r19.x, l(1.000000) + endif + lt r19.y, l(0.500000), cb3[r24.y + 6].z + lt r19.z, r19.x, l(0.001000) + or r19.z, r19.y, r19.z + if_nz r19.z + mov r15.w, r18.w + continue + endif + ishl r19.z, r16.w, l(3) + bfi r16.w, l(29), l(3), r16.w, l(2) + lt r20.w, cb3[r19.z + 6].w, l(1.500000) + if_nz r20.w + mad r20.w, cb3[r16.w + 6].y, l(0.500000), l(0.500000) + add r25.x, r20.w, -|cb3[r16.w + 6].x| + add r25.y, -r25.x, cb3[r16.w + 6].y + add r20.w, -|r25.x|, l(1.000000) + add r20.w, -|r25.y|, r20.w + max r20.w, r20.w, l(0.000488281250) + ge r21.w, cb3[r16.w + 6].x, l(0.000000) + movc r25.z, r21.w, r20.w, -r20.w + dp3 r20.w, r25.xyzx, r25.xyzx + rsq r20.w, r20.w + mul r25.xyz, r20.wwww, r25.xyzx + add r26.xyz, -r6.xyzx, cb3[r24.x + 6].xyzx + dp3 r20.w, r26.xyzx, r26.xyzx + rsq r21.w, r20.w + mul r27.xyz, r21.wwww, r26.xyzx + ftoi r22.w, cb3[r20.z + 6].w + mul r28.xyz, r25.xyzx, cb3[r16.w + 6].zzzz + mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r30.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + ftou r23.w, cb3[r19.z + 6].w + and r23.w, r23.w, l(1) + ieq r24.z, r23.w, l(0) + not r24.z, r24.z + lt r25.w, l(0.000000), cb3[r16.w + 6].z + and r24.z, r24.z, r25.w + dp3 r25.w, r29.xyzx, r29.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r30.xyzx, r30.xyzx + sqrt r26.w, r26.w + dp3 r27.w, r4.xyzx, r29.xyzx + div r27.w, r27.w, r25.w + dp3 r28.w, r4.xyzx, r30.xyzx + div r28.w, r28.w, r26.w + add r27.w, r27.w, r28.w + mul_sat r31.x, r27.w, l(0.500000) + dp3 r27.w, r29.xyzx, r30.xyzx + mad r25.w, r25.w, r26.w, r27.w + mad r25.w, r25.w, l(0.500000), l(1.000000) + div r31.y, l(1.000000, 1.000000, 1.000000, 1.000000), r25.w + dp3_sat r20.x, r4.xyzx, r27.xyzx + movc r21.xy, r24.zzzz, r31.xyxx, r20.xyxx + lt r20.x, cb3[r24.w + 6].w, l(0.000000) + if_nz r20.x + mul r20.x, cb3[r24.x + 6].w, cb3[r24.x + 6].w + mul r20.x, r20.x, r20.w + mad r20.x, -r20.x, r20.x, l(1.000000) + max r20.x, r20.x, l(0.000000) + add r20.w, r20.w, l(1.000000) + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r20.w + and r25.w, r24.z, l(0x3f800000) + add r26.w, -r20.w, r21.y + mad r20.w, r25.w, r26.w, r20.w + mul r20.x, r20.x, r20.x + mul r20.x, r20.x, r20.w + else + mul r30.xyz, r26.xyzx, cb3[r24.x + 6].wwww + dp3 r20.w, r30.xyzx, r30.xyzx + min r20.w, r20.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + log r20.w, r20.w + mul r20.w, r20.w, cb3[r24.w + 6].w + exp r20.w, r20.w + mul r20.x, r20.w, r21.y + endif + dp3 r20.w, r27.xyzx, -r25.xyzx + add r20.w, r20.w, -cb3[r16.w + 6].z + mul_sat r20.w, r20.w, cb3[r16.w + 6].w + mul r20.w, r20.w, r20.w + movc r20.w, r23.w, l(1.000000), r20.w + mul r20.x, r20.w, r20.x + not r20.w, r24.z + ige r21.y, r22.w, l(0) + and r20.w, r20.w, r21.y + if_nz r20.w + if_z r23.w + ishl r20.w, r22.w, l(2) + mul r25.xyz, r6.yyyy, cb6[r20.w + 33].xywx + mad r25.xyz, cb6[r20.w + 32].xywx, r6.xxxx, r25.xyzx + mad r25.xyz, cb6[r20.w + 34].xywx, r6.zzzz, r25.xyzx + add r25.xyz, r25.xyzx, cb6[r20.w + 35].xywx + div_sat r25.xy, r25.xyxx, r25.zzzz + mad r25.xy, r25.xyxx, cb6[r22.w + 0].zwzz, cb6[r22.w + 0].xyxx + else + ishl r20.w, r22.w, l(2) + dp3 r30.x, -r26.xyzx, cb6[r20.w + 32].xyzx + dp3 r30.y, -r26.xyzx, cb6[r20.w + 33].xyzx + dp3 r30.z, -r26.xyzx, cb6[r20.w + 34].xyzx + lt r20.w, |r30.x|, |r30.y| + and r20.w, r20.w, l(1) + dp2 r21.y, |r30.xyxx|, icb[r20.w + 0].xyxx + lt r21.y, r21.y, |r30.z| + movc r20.w, r21.y, l(2), r20.w + dp3 r21.y, r30.xyzx, icb[r20.w + 0].xyzx + lt r21.y, r21.y, l(0.000000) + bfi r20.w, l(31), l(1), r20.w, r21.y + ushr r21.y, r20.w, l(1) + dp3 r21.y, r30.xyzx, icb[r21.y + 0].xyzx + div r25.z, l(0.000244140625), cb6[r22.w + 0].w + add r25.z, -r25.z, l(0.500000) + utof r25.w, r20.w + ult r26.x, r20.w, l(2) + and r26.x, r26.x, l(2) + dp2 r26.x, r30.xzxx, icb[r26.x + 0].xzxx + mul r26.x, r26.x, icb[r20.w + 4].z + div r26.x, r26.x, |r21.y| + mad r25.w, r26.x, r25.z, r25.w + add r25.w, r25.w, l(0.500000) + mul_sat r26.x, r25.w, l(0.166666672) + iadd r25.w, l(-1), icb[r20.w + 4].y + dp2 r25.w, r30.yzyy, icb[r25.w + 0].xyxx + mul r20.w, r25.w, icb[r20.w + 4].w + div r20.w, r20.w, |r21.y| + mad_sat r26.y, -r20.w, r25.z, l(0.500000) + mad r25.xy, r26.xyxx, cb6[r22.w + 0].zwzz, cb6[r22.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r20.w, r25.xyxx, t13.yzwx, s1, l(0.000000) + mul r20.x, r20.w, r20.x + endif + lt r20.w, l(0.000000), r20.x + if_nz r20.w + if_z r23.w + ftoi r21.y, cb3[r24.y + 6].x + else + add r25.xyz, r6.xyzx, -cb3[r24.x + 6].xyzx + lt r26.xyz, |r25.yzzy|, |r25.xxyx| + and r22.w, r26.y, r26.x + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ushr r23.w, cb3[r16.w + 6].w, l(24) + ubfe r26.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r16.w + 6].wwww + movc r23.w, r25.x, r23.w, r26.x + and r25.x, l(255), cb3[r16.w + 6].w + movc r25.x, r25.y, r26.y, r25.x + ubfe r25.y, l(8), l(8), cb3[r24.y + 6].x + and r25.w, l(255), cb3[r24.y + 6].x + movc r25.y, r25.z, r25.y, r25.w + movc r25.x, r26.z, r25.x, r25.y + movc r22.w, r22.w, r23.w, r25.x + ilt r23.w, r22.w, l(80) + movc r21.y, r23.w, r22.w, l(-1) + endif + ishl r22.w, r21.y, l(2) + mad r25.xyz, r27.xyzx, cb4[r21.y + 288].xxxx, r6.xyzx + mul r23.w, l(5.000000), cb4[r21.y + 288].y + mad r25.xyz, r4.xyzx, r23.wwww, r25.xyzx + mul r26.xyzw, r25.yyyy, cb4[r22.w + 65].xyzw + mad r26.xyzw, cb4[r22.w + 64].xyzw, r25.xxxx, r26.xyzw + mad r25.xyzw, cb4[r22.w + 66].xyzw, r25.zzzz, r26.xyzw + add r25.xyzw, r25.xyzw, cb4[r22.w + 67].xyzw + div r25.xyz, r25.xyzx, r25.wwww + ge r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ge r30.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r31.xy, -cb4[r21.y + 344].xyxx, cb4[r21.y + 344].zwzz + mad r25.xy, r25.xyxx, r31.xyxx, cb4[r21.y + 344].xyxx + mad r31.xy, r25.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r31.xy, r31.xyxx + mad r25.xy, r25.xyxx, cb4[400].zwzz, -r31.xyxx + add r32.xyzw, r25.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r33.xyzw, r32.xxzz, r32.xxzz + add r31.zw, -r25.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r32.xz, r25.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r34.xy, r25.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r35.xy, r31.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r34.xy, -r34.xyxx, r34.xyxx, r32.ywyy + add r34.xy, r34.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r34.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r33.xz, r33.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r25.xy, r33.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r25.xyxx + mul r36.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r25.xy, -r32.xzxx, r32.xzxx, r31.zwzz + add r25.xy, r25.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r37.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xy, r32.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r36.z, r37.x + mov r36.w, r25.x + mov r35.z, r34.x + mov r35.w, r33.x + add r32.xyzw, r35.zwxz, r36.zwxz + mov r37.z, r36.y + mov r37.w, r25.y + mov r34.z, r35.y + mov r34.w, r33.z + add r25.xyw, r34.zyzw, r37.zyzw + div r33.xyz, r35.xzwx, r32.zwyz + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.yxzy, cb4[400].xxxx + div r34.xyz, r34.zywz, r25.xywx + add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r34.xyz, r34.xyzx, cb4[400].yyyy + mov r33.w, r34.x + mad r35.xyzw, r31.xyxy, cb4[400].xyxy, r33.ywxw + mad r31.zw, r31.xxxy, cb4[400].xxxy, r33.zzzw + mov r34.w, r33.y + mov r33.yw, r34.yyyz + mad r36.xyzw, r31.xyxy, cb4[400].xyxy, r33.xyzy + mad r34.xyzw, r31.xyxy, cb4[400].xyxy, r34.wywz + mad r33.xyzw, r31.xyxy, cb4[400].xyxy, r33.xwzw + mul r37.xyzw, r25.xxxy, r32.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.w, r35.xyxx, t6.xxxx, s4, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r35.zwzz, t6.xxxx, s4, r25.z + mul r23.w, r23.w, r37.y + mad r22.w, r37.x, r22.w, r23.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r31.zwzz, t6.xxxx, s4, r25.z + mad r22.w, r37.z, r23.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r34.xyxx, t6.xxxx, s4, r25.z + mad r22.w, r37.w, r23.w, r22.w + mul r31.xyzw, r25.yyww, r32.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r36.xyxx, t6.xxxx, s4, r25.z + mad r22.w, r31.x, r23.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r36.zwzz, t6.xxxx, s4, r25.z + mad r22.w, r31.y, r23.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r34.zwzz, t6.xxxx, s4, r25.z + mad r22.w, r31.z, r23.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r33.xyxx, t6.xxxx, s4, r25.z + mad r22.w, r31.w, r23.w, r22.w + ige r23.w, r21.y, l(0) + or r26.xyz, r26.xyzx, r30.xyzx + or r25.x, r26.y, r26.x + or r25.x, r26.z, r25.x + and r25.y, r25.z, l(0x7fffffff) + ult r25.y, l(0x7f800000), r25.y + or r25.x, r25.y, r25.x + mul r25.y, r25.w, r32.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.z, r33.zwzz, t6.xxxx, s4, r25.z + mad r22.w, r25.y, r25.z, r22.w + add r22.w, r22.w, l(-1.000000) + mad r21.y, cb4[r21.y + 288].w, r22.w, l(1.000000) + movc r21.y, r25.x, l(1.000000), r21.y + movc r21.y, r23.w, r21.y, l(1.000000) + else + mov r21.y, l(1.000000) + endif + if_nz r24.z + dp3 r22.w, r15.xyzx, r28.xyzx + mul_sat r23.w, r21.w, cb3[r16.w + 6].z + mad r23.w, r23.w, l(0.500000), r14.y + min r23.w, r23.w, l(1.000000) + div r23.w, r14.y, r23.w + mad r25.xyz, r15.xyzx, r22.wwww, -r28.xyzx + dp3 r24.z, r29.xyzx, r25.xyzx + mul r22.w, r22.w, r22.w + mad r22.w, cb3[r16.w + 6].z, cb3[r16.w + 6].z, -r22.w + div_sat r22.w, r24.z, r22.w + mad r25.xyz, r28.xyzx, r22.wwww, r29.xyzx + dp3 r22.w, r25.xyzx, r25.xyzx + rsq r22.w, r22.w + mul r27.xyz, r22.wwww, r25.xyzx + else + mov r23.w, l(1.000000) + endif + if_nz r20.w + mul_sat r20.w, r21.w, cb3[r20.z + 6].y + mad r25.xyz, r9.xyzx, r5.wwww, r27.xyzx + dp3 r21.w, r25.xyzx, r25.xyzx + max r21.w, r21.w, l(0.0000610351562) + rsq r21.w, r21.w + mul r25.xyz, r21.wwww, r25.xyzx + dp3_sat r21.w, r4.xyzx, r25.xyzx + dp3_sat r22.w, r10.xyzx, r25.xyzx + lt r24.z, l(0.000000), r20.w + mul r20.w, r20.w, r20.w + mad r25.x, r22.w, l(3.600000), l(0.400000) + div r20.w, r20.w, r25.x + mad r20.w, r12.w, r12.w, r20.w + min r20.w, r20.w, l(1.000000) + movc r20.w, r24.z, r20.w, r14.y + mul r20.w, r20.w, r20.w + mad r24.z, r21.w, r20.w, -r21.w + mad r21.w, r24.z, r21.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + mul r24.z, r22.w, r22.w + mul r24.z, r24.z, r24.z + mul r25.x, r22.w, r24.z + if_nz r9.w + dp3 r25.y, r4.xyzx, r27.xyzx + mad r17.x, r25.y, l(0.500000), l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r25.yzw, r17.xyzx, t10.wxyz, s1, l(0.000000) + endif + movc r25.yzw, r9.wwww, r25.yyzw, r21.xxxx + mad r17.x, -r24.z, r22.w, l(1.000000) + mad r26.xyz, r11.xyzx, r17.xxxx, r25.xxxx + mul r17.x, r21.w, r21.w + div r17.x, r20.w, r17.x + mul r17.x, r23.w, r17.x + mad r21.w, -r12.x, r20.w, r12.x + mad r21.w, r21.w, r12.x, r20.w + sqrt r21.w, r21.w + mad r22.w, -r21.x, r20.w, r21.x + mad r20.w, r22.w, r21.x, r20.w + sqrt r20.w, r20.w + mul r20.w, r12.x, r20.w + mad r20.w, r21.x, r21.w, r20.w + add r20.w, r20.w, l(0.000100) + div r20.w, l(0.500000), r20.w + mul r17.x, r17.x, r20.w + mul r26.xyz, r17.xxxx, r26.xyzx + min r26.xyz, r26.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r27.xy, r21.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r17.x, r27.xyxx, t9.xyzw, s1, l(0.000000) + mul r17.x, r1.w, r17.x + mul r17.x, r7.w, r17.x + div r17.x, r17.x, r8.w + mul r27.xyz, r16.xyzx, r17.xxxx + div r27.xyz, r27.xyzx, r18.xyzx + add r26.xyz, r26.xyzx, r27.xyzx + mul r26.xyz, r26.xyzx, cb3[r20.z + 6].zzzz + max r26.xyz, r26.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r26.xyz, r26.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r25.xyz, r3.xyzx, r25.yzwy + mad r25.xyz, r26.xyzx, r21.xxxx, r25.xyzx + mul r26.xyz, r20.xxxx, cb3[r19.z + 6].xyzx + mul r21.xyw, r21.yyyy, r26.xyxz + mul r21.xyw, r19.xxxx, r21.xyxw + mul r21.xyw, r21.xyxw, r25.xyxz + else + mov r21.xyw, l(0,0,0,0) + endif + else + if_z r19.y + mad r17.x, cb3[r16.w + 6].y, l(0.500000), l(0.500000) + add r25.x, r17.x, -|cb3[r16.w + 6].x| + add r25.y, -r25.x, cb3[r16.w + 6].y + add r17.x, -|r25.x|, l(1.000000) + add r17.x, -|r25.y|, r17.x + max r17.x, r17.x, l(0.000488281250) + ge r19.x, cb3[r16.w + 6].x, l(0.000000) + movc r25.z, r19.x, r17.x, -r17.x + dp3 r17.x, r25.xyzx, r25.xyzx + rsq r17.x, r17.x + mul r25.xyz, r17.xxxx, r25.xyzx + add r26.xyz, -r6.xyzx, cb3[r24.x + 6].xyzx + dp3 r17.x, r26.xyzx, r26.xyzx + rsq r19.x, r17.x + mul r27.xyz, r19.xxxx, r26.xyzx + ftoi r19.x, cb3[r20.z + 6].w + mul r20.xzw, r25.xxyz, cb3[r16.w + 6].zzzz + mad r28.xyz, -r20.xzwx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r20.xzw, r20.xxzw, l(0.500000, 0.000000, 0.500000, 0.500000), r26.xxyz + ftou r19.y, cb3[r19.z + 6].w + and r19.y, r19.y, l(1) + ieq r19.z, r19.y, l(0) + not r19.z, r19.z + lt r22.w, l(0.000000), cb3[r16.w + 6].z + and r19.z, r19.z, r22.w + dp3 r22.w, r28.xyzx, r28.xyzx + sqrt r22.w, r22.w + dp3 r23.w, r20.xzwx, r20.xzwx + sqrt r23.w, r23.w + dp3 r20.x, r28.xyzx, r20.xzwx + mad r20.x, r22.w, r23.w, r20.x + mad r20.x, r20.x, l(0.500000), l(1.000000) + div r20.x, l(1.000000, 1.000000, 1.000000, 1.000000), r20.x + movc r20.x, r19.z, r20.x, l(1.000000) + lt r20.z, cb3[r24.w + 6].w, l(0.000000) + if_nz r20.z + mul r20.z, cb3[r24.x + 6].w, cb3[r24.x + 6].w + mul r20.z, r17.x, r20.z + mad r20.z, -r20.z, r20.z, l(1.000000) + max r20.z, r20.z, l(0.000000) + add r17.x, r17.x, l(1.000000) + div r17.x, l(1.000000, 1.000000, 1.000000, 1.000000), r17.x + and r20.w, r19.z, l(0x3f800000) + add r22.w, -r17.x, r20.x + mad r17.x, r20.w, r22.w, r17.x + mul r20.z, r20.z, r20.z + mul r17.x, r17.x, r20.z + else + mul r28.xyz, r26.xyzx, cb3[r24.x + 6].wwww + dp3 r20.z, r28.xyzx, r28.xyzx + min r20.z, r20.z, l(1.000000) + add r20.z, -r20.z, l(1.000000) + log r20.z, r20.z + mul r20.z, r20.z, cb3[r24.w + 6].w + exp r20.z, r20.z + mul r17.x, r20.z, r20.x + endif + dp3 r20.x, r27.xyzx, -r25.xyzx + add r20.x, r20.x, -cb3[r16.w + 6].z + mul_sat r20.x, r20.x, cb3[r16.w + 6].w + mul r20.x, r20.x, r20.x + movc r20.x, r19.y, l(1.000000), r20.x + mul r17.x, r17.x, r20.x + not r19.z, r19.z + ige r20.x, r19.x, l(0) + and r19.z, r19.z, r20.x + if_nz r19.z + if_z r19.y + ishl r19.z, r19.x, l(2) + mul r20.xzw, r6.yyyy, cb6[r19.z + 33].xxyw + mad r20.xzw, cb6[r19.z + 32].xxyw, r6.xxxx, r20.xxzw + mad r20.xzw, cb6[r19.z + 34].xxyw, r6.zzzz, r20.xxzw + add r20.xzw, r20.xxzw, cb6[r19.z + 35].xxyw + div_sat r20.xz, r20.xxzx, r20.wwww + mad r20.xz, r20.xxzx, cb6[r19.x + 0].zzwz, cb6[r19.x + 0].xxyx + else + ishl r19.z, r19.x, l(2) + dp3 r25.x, -r26.xyzx, cb6[r19.z + 32].xyzx + dp3 r25.y, -r26.xyzx, cb6[r19.z + 33].xyzx + dp3 r25.z, -r26.xyzx, cb6[r19.z + 34].xyzx + lt r19.z, |r25.x|, |r25.y| + and r19.z, r19.z, l(1) + dp2 r20.w, |r25.xyxx|, icb[r19.z + 0].xyxx + lt r20.w, r20.w, |r25.z| + movc r19.z, r20.w, l(2), r19.z + dp3 r20.w, r25.xyzx, icb[r19.z + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r19.z, l(31), l(1), r19.z, r20.w + ushr r20.w, r19.z, l(1) + dp3 r20.w, r25.xyzx, icb[r20.w + 0].xyzx + div r22.w, l(0.000244140625), cb6[r19.x + 0].w + add r22.w, -r22.w, l(0.500000) + utof r23.w, r19.z + ult r24.z, r19.z, l(2) + and r24.z, r24.z, l(2) + dp2 r24.z, r25.xzxx, icb[r24.z + 0].xzxx + mul r24.z, r24.z, icb[r19.z + 4].z + div r24.z, r24.z, |r20.w| + mad r23.w, r24.z, r22.w, r23.w + add r23.w, r23.w, l(0.500000) + mul_sat r26.x, r23.w, l(0.166666672) + iadd r23.w, l(-1), icb[r19.z + 4].y + dp2 r23.w, r25.yzyy, icb[r23.w + 0].xyxx + mul r19.z, r23.w, icb[r19.z + 4].w + div r19.z, r19.z, |r20.w| + mad_sat r26.y, -r19.z, r22.w, l(0.500000) + mad r20.xz, r26.xxyx, cb6[r19.x + 0].zzwz, cb6[r19.x + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.x, r20.xzxx, t13.xyzw, s1, l(0.000000) + mul r17.x, r17.x, r19.x + endif + lt r17.x, l(0.000000), r17.x + if_nz r17.x + if_z r19.y + ftoi r17.x, cb3[r24.y + 6].x + else + add r19.xyz, r6.xyzx, -cb3[r24.x + 6].xyzx + lt r20.xzw, |r19.yyzz|, |r19.xxxy| + and r20.x, r20.z, r20.x + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ushr r20.z, cb3[r16.w + 6].w, l(24) + ubfe r24.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r16.w + 6].wwww + movc r19.x, r19.x, r20.z, r24.x + and r16.w, l(255), cb3[r16.w + 6].w + movc r16.w, r19.y, r24.z, r16.w + ubfe r19.y, l(8), l(8), cb3[r24.y + 6].x + and r20.z, l(255), cb3[r24.y + 6].x + movc r19.y, r19.z, r19.y, r20.z + movc r16.w, r20.w, r16.w, r19.y + movc r16.w, r20.x, r19.x, r16.w + ilt r19.x, r16.w, l(80) + movc r17.x, r19.x, r16.w, l(-1) + endif + ishl r16.w, r17.x, l(2) + mad r19.xyz, r27.xyzx, cb4[r17.x + 288].xxxx, r6.xyzx + mul r20.x, l(5.000000), cb4[r17.x + 288].y + mad r19.xyz, r4.xyzx, r20.xxxx, r19.xyzx + mul r24.xyzw, r19.yyyy, cb4[r16.w + 65].xyzw + mad r24.xyzw, cb4[r16.w + 64].xyzw, r19.xxxx, r24.xyzw + mad r24.xyzw, cb4[r16.w + 66].xyzw, r19.zzzz, r24.xyzw + add r24.xyzw, r24.xyzw, cb4[r16.w + 67].xyzw + div r19.xyz, r24.xyzx, r24.wwww + ge r20.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxyz + ge r24.xyz, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r25.xy, -cb4[r17.x + 344].xyxx, cb4[r17.x + 344].zwzz + mad r19.xy, r19.xyxx, r25.xyxx, cb4[r17.x + 344].xyxx + mad r25.xy, r19.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r19.xy, r19.xyxx, cb4[400].zwzz, -r25.xyxx + add r26.xyzw, r19.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r19.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r19.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r19.xyxx + mul r30.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xy, -r26.xzxx, r26.xzxx, r25.zwzz + add r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r30.z, r31.x + mov r30.w, r19.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r19.y + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r29.w, r28.x + mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw + mad r19.xy, r25.xyxx, cb4[400].xyxx, r29.zwzz + mov r28.w, r29.y + mov r29.yw, r28.yyyz + mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy + mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz + mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw + mul r29.xyzw, r26.zwyz, r27.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r30.xyxx, t6.xxxx, s4, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.w, r30.zwzz, t6.xxxx, s4, r19.z + mul r22.w, r22.w, r29.y + mad r16.w, r29.x, r16.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r19.xyxx, t6.xxxx, s4, r19.z + mad r16.w, r29.z, r19.x, r16.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r28.xyxx, t6.xxxx, s4, r19.z + mad r16.w, r29.w, r19.x, r16.w + mul r29.xyzw, r26.xyzw, r27.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r31.xyxx, t6.xxxx, s4, r19.z + mad r16.w, r29.x, r19.x, r16.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r31.zwzz, t6.xxxx, s4, r19.z + mad r16.w, r29.y, r19.x, r16.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r28.zwzz, t6.xxxx, s4, r19.z + mad r16.w, r29.z, r19.x, r16.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r25.xyxx, t6.xxxx, s4, r19.z + mad r16.w, r29.w, r19.x, r16.w + ige r19.x, r17.x, l(0) + or r20.xzw, r20.xxzw, r24.xxyz + or r19.y, r20.z, r20.x + or r19.y, r20.w, r19.y + and r20.x, r19.z, l(0x7fffffff) + ult r20.x, l(0x7f800000), r20.x + or r19.y, r19.y, r20.x + mul r20.x, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r25.zwzz, t6.xxxx, s4, r19.z + mad r16.w, r20.x, r19.z, r16.w + add r16.w, r16.w, l(-1.000000) + mad r16.w, cb4[r17.x + 288].w, r16.w, l(1.000000) + movc r16.w, r19.y, l(1.000000), r16.w + movc r16.w, r19.x, r16.w, l(1.000000) + else + mov r16.w, l(1.000000) + endif + else + mov r16.w, l(1.000000) + endif + mul r12.z, r12.z, r16.w + mov r21.xyw, l(0,0,0,0) + endif + add r23.xyz, r21.xywx, r23.xyzx + mov r15.w, r18.w + endloop + mov r3.w, r12.z + add r22.xyz, r22.xyzx, r23.xyzx + iadd r10.w, r10.w, l(1) +endloop +mad r9.xyz, r22.xyzx, r3.wwww, r14.xzwx +ne r1.xw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r1.x + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + add r1.x, r0.z, r13.x + mad r2.z, r12.w, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.x, |r1.x| + mul r1.x, r1.x, r2.z + exp r1.x, r1.x + add r1.x, r0.z, r1.x + add r1.x, r1.x, l(-1.000000) + mov_sat r12.xyz, r1.xxxx + mad r14.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r12.xyz, r1.yyyy + mov r14.xyz, r1.yyyy +endif +if_nz r9.w + mov r17.w, l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r17.ywzy, t11.xyzw, s1, l(0.000000) +endif +movc r16.xyz, r9.wwww, r16.xyzx, l(1.000000,1.000000,1.000000,0) +mad r17.xyz, r4.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r6.xyzx +round_z r0.z, cb0[212].x +mad r1.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r2.xyxx +dp2 r0.z, r1.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r17.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r17.xyzx +mad r18.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r18.xyz, r17.xzyx, -r18.xyzx +max r0.z, |r18.y|, |r18.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.x, |r18.z|, l(-208.000000) +mul_sat r1.x, r1.x, l(0.031250) +max r0.z, r0.z, r1.x +ne r1.x, l(0.000000), cb0[210].w +lt r1.y, r0.z, l(1.000000) +and r1.x, r1.y, r1.x +if_nz r1.x + mad r18.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r18.xyz, r17.xzyx, -r18.xyzx + max r1.x, |r18.y|, |r18.x| + add r1.x, r1.x, l(-29.000000) + add r1.y, |r18.z|, l(-13.000000) + mul_sat r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + max r1.x, r1.y, r1.x + lt r1.y, r1.x, l(1.000000) + if_nz r1.y + mad r18.xyz, r17.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r18.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r18.xyzx, t17.yzwx, s2, l(0.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r3.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r18.y + min r2.z, r3.w, r2.z + mul r18.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t18.xyzw, s1, l(0.000000) + mad r2.z, r20.w, r1.y, r0.z + add r21.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t18.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.yyyy, r21.xyzx + mov r21.w, r19.y + mul r21.xyzw, r1.yyyy, r21.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.xxxx, r18.xyzx + mov r18.w, r19.x + mul r18.xyzw, r1.yyyy, r18.xyzw + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r20.xyzx + mul r19.xyzw, r1.yyyy, r19.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r20.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r20.xyz, r17.xzyx, -r20.xyzx + max r1.y, |r20.y|, |r20.x| + add r1.y, r1.y, l(-116.000000) + mul_sat r1.y, r1.y, l(0.125000) + add r3.w, |r20.z|, l(-52.000000) + mul_sat r3.w, r3.w, l(0.125000) + max r1.y, r1.y, r3.w + lt r3.w, r1.y, l(1.000000) + if_nz r3.w + mad r20.xyz, r17.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r22.xyz, r20.xyzx, cb0[211].xyzx + round_ni r22.xyz, r22.xyzx + mad r20.xyz, r20.xyzx, cb0[211].xyzx, -r22.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t19.yzwx, s2, l(0.000000) + add r3.w, -r1.y, l(1.000000) + mul r1.x, r1.x, r3.w + mul r3.w, l(0.500000), cb0[211].y + mad r5.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.w, r3.w, r20.y + min r3.w, r5.w, r3.w + mul r20.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t20.xyzw, s1, l(0.000000) + mad r2.z, r23.w, r1.x, r2.z + add r24.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r24.xyz, r24.xyzx, t20.xyzw, s1, l(0.000000) + mad r24.xyz, r24.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r24.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r1.xxxx, r21.xyzw + add r20.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t20.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r20.xyzx + mov r20.w, r22.x + mad r18.xyzw, r20.xyzw, r1.xxxx, r18.xyzw + mad r20.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r20.xyzx + mad r19.xyzw, r22.xyzw, r1.xxxx, r19.xyzw + endif + lt r1.x, l(0.000000), r1.y + if_nz r1.x + mad r17.xyz, r17.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r17.xyzx, cb0[211].xyzx + mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r20.xyzx + mad r20.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r17.xyz, r22.xyzx, r17.xyzx + min r17.xyz, r20.xyzx, r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r17.xyzx, t21.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.y + max r1.y, r22.y, r17.y + min r1.y, r20.y, r1.y + mul r17.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t22.xyzw, s1, l(0.000000) + add r22.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t22.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r23.yyyy, r22.xyzx + mov r22.w, r23.y + mad r21.xyzw, r22.xyzw, r1.xxxx, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t22.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r23.xxxx, r17.xyzx + mov r17.w, r23.x + mad r18.xyzw, r17.xyzw, r1.xxxx, r18.xyzw + mad r17.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r23.wwww, r17.xyzx + mad r19.xyzw, r23.xyzw, r1.xxxx, r19.xyzw + mad r2.z, r20.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r17.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r17.y, r0.z, l(0.500000) +else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r17.xy, l(0,1.000000,0,0) +endif +mul r20.xyzw, r17.yxyy, cb0[213].ywzx +mad r20.y, r20.y, l(0.500000), r20.x +mul r1.xy, r17.yxyy, cb0[213].wyww +mad r20.x, r1.y, l(0.375000), r1.x +add r19.xyzw, r19.xyzw, r20.wyzx +mul r20.xyzw, r17.yxyy, cb0[214].ywzx +mad r20.y, r20.y, l(0.500000), r20.x +mul r1.xy, r17.yxyy, cb0[214].wyww +mad r20.x, r1.y, l(0.375000), r1.x +add r18.xyzw, r18.xyzw, r20.wyzx +mul r20.xyzw, r17.yxyy, cb0[215].ywzx +mad r20.y, r20.y, l(0.500000), r20.x +mul r1.xy, r17.yxyy, cb0[215].wyww +mad r20.x, r1.y, l(0.375000), r1.x +add r17.xyzw, r20.wyzx, r21.xyzw +ge r1.xy, r5.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r1.y, r1.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r20.xyzw, r5.xyxx, t16.xyzw, s1, l(0.000000) + lt r21.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r20.xyzw| + or r1.xy, r21.zwzz, r21.xyxx + or r0.z, r1.y, r1.x + if_nz r0.z + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.y, r0.z + mov r2.z, l(0) + loop + ge r3.w, l(4.600000), r1.y + breakc_nz r3.w + iadd r3.w, r2.z, l(1) + mul r5.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r1.xy, r5.xyxx + mov r2.z, r3.w + continue + endloop + mul r20.xyzw, r1.xxxx, r20.xyzw + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb7[3].x, cb7[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r1.x, r0.z, l(0.00390625000) + mov r1.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xy, r1.xyxx, t15.xyzw, s1, l(0.000000) + mad r1.xy, r1.xyxx, cb7[2].xyxx, cb7[2].zwzz + mul r21.x, r1.x, l(3.54490781) + mul r21.yzw, r1.yyyy, r20.yyzw + mul r0.z, r20.x, l(0.406976730) + exp r0.z, r0.z + mul r20.xyzw, r0.zzzz, r21.xyzw + mov r21.xyzw, r20.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r2.z + breakc_nz r1.x + mul r22.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r22.xyzw, r21.xyzw + dp2 r1.y, r22.yxyy, r21.xyxx + dp2 r3.w, r22.zxzz, r21.xzxx + dp2 r5.x, r22.wxww, r21.xwxx + iadd r5.y, r0.z, l(1) + mov r21.xy, r1.xyxx + mov r21.z, r3.w + mov r21.w, r5.x + mov r0.z, r5.y + continue + endloop + mul r20.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r21.xyzw, r19.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r20.xyzw, r21.xyzw + dp2 r1.x, r20.yxyy, r21.xyxx + dp2 r1.y, r20.zxzz, r21.xzxx + dp2 r2.z, r20.wxww, r21.xwxx + mul r21.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r3.w, r20.xyzw, r21.xyzw + dp2 r5.x, r20.yxyy, r21.xyxx + dp2 r5.y, r20.zxzz, r21.xzxx + dp2 r5.w, r20.wxww, r21.xwxx + mul r21.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.w, r20.xyzw, r21.xyzw + dp2 r8.w, r20.yxyy, r21.xyxx + dp2 r9.w, r20.zxzz, r21.xzxx + dp2 r10.w, r20.wxww, r21.xwxx + mul r19.w, r0.z, l(0.886226952) + mul r19.x, r2.z, l(-1.02332675) + mul r19.yz, r1.xxyx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r18.w, r3.w, l(0.886226952) + mul r18.xyz, r5.wxyw, l(-1.02332675, -1.02332675, 1.02332675, 0.000000) + mul r17.w, r7.w, l(0.886226952) + mul r17.x, r10.w, l(-1.02332675) + mul r17.y, r8.w, l(-1.02332675) + mul r17.z, r9.w, l(1.02332675) + endif +endif +mul r5.xyw, r16.xxxx, r19.xyxz +dp3 r0.z, r5.xywx, r4.xyzx +add r0.z, r19.w, r0.z +max r19.x, r0.z, l(0.000000) +mul r5.xyw, r16.yyyy, r18.xyxz +dp3 r0.z, r5.xywx, r4.xyzx +add r0.z, r18.w, r0.z +max r19.y, r0.z, l(0.000000) +mul r5.xyw, r16.zzzz, r17.xyxz +dp3 r0.z, r5.xywx, r4.xyzx +add r0.z, r17.w, r0.z +max r19.z, r0.z, l(0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.x, r12.w, l(0.001000) +log r1.x, r1.x +mad r1.x, -r1.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.x +mul r1.xy, r2.xyxx, cb1[0].wwww +round_ni r1.xy, r1.xyxx +add r2.z, |r2.w|, -cb1[2].y +round_ni r2.z, r2.z +add r3.w, l(-1.000000), cb1[1].x +max r5.x, r2.z, l(0.000000) +min r3.w, r3.w, r5.x +ge r2.z, r3.w, r2.z +mad r1.x, r1.y, cb1[0].x, r1.x +ftoi r1.x, r1.x +iadd r1.x, r1.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx +ftoi r1.y, r3.w +iadd r1.y, r1.y, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r1.y, l(0), t0.xxxx +and r1.x, r1.y, r1.x +and r1.x, r1.x, r2.z +mul r5.xyw, r19.xyxz, cb0[111].xxxx +dp3 r1.y, r5.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r6.w, l(1.000000) +mov r4.w, l(1.000000) +mov r5.xyw, l(0,0,0,0) +mov r2.z, l(1.000000) +mov r3.w, r1.x +mov r7.w, l(0) +loop + lt r8.w, l(0.010000), r2.z + ine r9.w, r3.w, l(0) + and r9.w, r8.w, r9.w + if_nz r9.w + firstbit_lo r9.w, r3.w + ishl r10.w, l(1), r9.w + xor r3.w, r3.w, r10.w + ishl r9.w, r9.w, l(3) + dp4 r16.x, cb1[r9.w + 6].xyzw, r6.xyzw + dp4 r16.y, cb1[r9.w + 7].xyzw, r6.xyzw + dp4 r16.z, cb1[r9.w + 8].xyzw, r6.xyzw + ge r17.xyz, cb1[r9.w + 5].xyzx, |r16.xyzx| + and r10.w, r17.y, r17.x + and r10.w, r17.z, r10.w + if_nz r10.w + mul r10.w, l(0.100000), cb1[r9.w + 5].x + mul r17.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r18.xyz, -|r16.xyzx|, cb1[r9.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb1[r9.w + 9].xyzx + eq r11.w, l(1.000000), cb1[r9.w + 10].x + if_nz r11.w + dp3 r20.x, cb1[r9.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb1[r9.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb1[r9.w + 8].xyzx, r15.xyzx + add r21.xyz, -r16.xyzx, cb1[r9.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r16.xyzx, -cb1[r9.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r11.w, r21.y, r21.x + min r11.w, r21.z, r11.w + mad r16.xyz, r20.xyzx, r11.wwww, r16.xyzx + else + mov r16.xyz, r15.xyzx + endif + dp3 r11.w, r16.xyzx, r16.xyzx + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r21.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r11.w, r16.xyzx, r20.xyzx + div r16.xyz, r16.xyzx, r11.wwww + lt r11.w, r16.z, l(0.000000) + add r16.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r16.zw, r16.zzzw, r20.xxxy + movc r16.xy, r11.wwww, r16.zwzz, r16.xyxx + dp4 r11.w, cb1[r9.w + 4].xyzw, r4.xyzw + max r11.w, r11.w, l(0.000000) + max r11.w, r11.w, l(0.000100) + min r12.w, r18.z, r18.y + min r12.w, r12.w, r18.x + add r13.x, r17.y, r17.x + mad r13.x, r17.z, r17.z, r13.x + mad r10.w, r10.w, r10.w, -r13.x + mul r10.w, r10.w, cb1[r9.w + 9].x + mul r10.w, r10.w, cb1[r9.w + 9].x + add r13.x, l(1.000000), -cb1[r9.w + 10].y + mul r10.w, r10.w, r13.x + mul r10.w, r10.w, l(100.000000) + mad_sat r10.w, r12.w, cb1[r9.w + 10].y, r10.w + mul r12.w, r10.w, cb1[r9.w + 10].w + mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r16.xy, r16.xyxx, cb1[1].wwww, cb1[2].wwww + mov r16.z, cb1[r9.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s3, r0.z + mul r16.xyz, r16.xyzx, cb1[r9.w + 9].wwww + div r13.x, r1.y, r11.w + min r13.x, |r13.x|, l(1.000000) + mad r13.x, r13.x, l(2.000000), r1.y + add r11.w, r11.w, l(2.000000) + div r11.w, r13.x, r11.w + add r11.w, r11.w, l(-1.000000) + mad r11.w, r11.w, cb0[112].w, l(1.000000) + mul r16.xyz, r11.wwww, r16.xyzx + mul r16.xyz, r12.wwww, r16.xyzx + mad r5.xyw, r16.xyxz, r2.zzzz, r5.xyxw + mad r9.w, -r10.w, cb1[r9.w + 10].w, l(1.000000) + mul r2.z, r2.z, r9.w + endif + mov r7.w, l(-1) + continue + else + mov r7.w, r8.w + break + endif + mov r7.w, r8.w +endloop +if_nz r7.w + dp3 r1.x, r15.xyzx, r15.xyzx + rsq r1.x, r1.x + mul r15.xyz, r1.xxxx, r15.xyzx + lt r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r17.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r16.xyz, -r16.xyzx, r17.xyzx + itof r16.xyz, r16.xyzx + dp3 r1.x, r15.xyzx, r16.xyzx + div r15.xyz, r15.xyzx, r1.xxxx + lt r1.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r16.xxxy + movc r15.xy, r1.xxxx, r15.zwzz, r15.xyxx + mov r4.w, l(1.000000) + dp4 r1.x, cb1[3].xyzw, r4.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r4.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r4.xy, r4.xyxx, cb1[1].wwww, cb1[2].wwww + mov r4.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r4.xyz, r4.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.y, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.y + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r4.xyz, r0.zzzz, r4.xyzx + mad r5.xyw, r4.xyxz, r2.zzzz, r5.xyxw +endif +mul r4.xyz, r5.xywx, cb0[112].zzzz +mul r4.xyz, r4.xyzx, cb0[111].yyyy +if_nz r1.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r1.xyw, v1.xyxx, t2.xywz, s1, cb0[108].x + add r2.z, -r0.z, l(1.000000) + mul r5.xyw, r2.zzzz, r4.xyxz + mad r4.xyz, r1.xywx, r0.zzzz, r5.xywx +endif +mul r1.xyw, r3.xyxz, r19.xyxz +mul r1.xyw, r1.xyxw, cb0[111].xxxx +add r0.z, -r1.z, l(1.000000) +div r0.z, r0.z, r1.z +mul r3.xyz, r0.zzzz, r11.xyzx +mad r3.xyz, r3.xyzx, r13.yzwy, r13.yzwy +mul r3.xyz, r3.xyzx, r4.xyzx +mul r3.xyz, r12.xyzx, r3.xyzx +mad r1.xyz, r1.xywx, r14.xyzx, r3.xyzx +add r1.xyz, r1.xyzx, r9.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r6.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r5.z, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.z, r0.z, l(-1.442695) +exp r2.z, r2.z +add r2.z, -r2.z, l(1.000000) +div r0.z, r2.z, r0.z +mad r2.z, r6.y, cb0[156].w, cb0[158].w +mul r2.z, r2.z, l(1.442695) +exp r2.z, r2.z +mul r0.z, r0.z, r2.z +mul r0.z, r0.z, -r1.w +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r10.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.z +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r10.xyzx, -r8.xyzx + add r2.z, r6.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.w + mul r0.x, r0.x, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z + mul r4.z, r0.x, r3.w + mad r4.w, r4.z, r2.z, cb0[44].y + mad r2.z, -r4.z, r2.z, r2.z + mul r4.z, r2.z, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.z, r2.z, cb0[162].x + max r2.z, r2.z, l(-127.000000) + add r5.x, r4.w, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.y, l(5.960464478E-08), |r4.z| + exp r5.w, -r4.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r5.y, r5.w, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r5.y, l(5.960464478E-08), |r2.z| + exp r5.w, -r2.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r2.z + mad r2.z, -r2.z, l(0.240226507), l(0.693147182) + movc r2.z, r5.y, r5.w, r2.z + mul r2.z, r2.z, r4.w + mad r2.z, r5.x, r4.z, r2.z + mad r0.x, -r0.x, r3.w, l(1.000000) + mul r0.x, r5.z, r0.x + mul r0.x, r0.x, r2.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r5.zzzz, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy + mul r2.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r2.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r2.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r2.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r2.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r2.xyzw, r0.yyyy, r2.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r2.xyz, r4.xyzx, r2.wwww, r2.xyzx + mul r0.x, r0.x, r2.w +else + add r0.y, r6.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r5.z, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r5.zzzz, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r2.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r3.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r2.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r1.xyz = scene color, r4.xyz = transmittance, r0.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r0.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad r0.xyz, r1.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +endif +// === End Fog Modification === +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r7.xyzx, r7.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r6.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t27.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0_original_backup.asm new file mode 100644 index 000000000..51b72d1d2 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0_original_backup.asm @@ -0,0 +1,1576 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 16:53:39 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[15], dynamicIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB7[4], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2darray (float,float,float,float) t10 +dcl_resource_texture2darray (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture3d (float,float,float,float) t27 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 38 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t24.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t25.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t26.xyzw +mul r1.w, r1.w, l(3.000000) +round_ne r1.w, r1.w +mul r2.w, r2.w, l(3.000000) +round_ne r2.w, r2.w +mad r1.w, r1.w, l(4.000000), r2.w +ftoi r1.w, r1.w +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r2.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r4.y, -r2.w, l(1.000000) +lt r2.w, r4.y, l(0.000000) +ge r5.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r5.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r5.xy, r5.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r5.xy, r5.xyxx, r5.zwzz +movc r4.xz, r2.wwww, r5.xxyx, r2.xxyx +dp3 r2.x, r4.xyzx, r4.xyzx +rsq r2.x, r2.x +mul r4.xyz, r2.xxxx, r4.xyzx +utof r2.xy, r0.xyxx +mul r5.xy, v0.xyxx, cb0[82].zwzz +mad r5.zw, r5.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r6.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r6.xy, r6.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r2.w, r6.xyxx, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.wwww, cb0[25].xyzw +mad r6.xyzw, cb0[24].xyzw, r5.zzzz, r6.xyzw +mad r6.xyzw, cb0[26].xyzw, r2.wwww, r6.xyzw +add r6.xyzw, r6.xyzw, cb0[27].xyzw +div r6.xyz, r6.xyzx, r6.wwww +mul r2.w, r6.y, cb0[1].z +mad r2.w, cb0[0].z, r6.x, r2.w +mad r2.w, cb0[2].z, r6.z, r2.w +add r2.w, r2.w, cb0[3].z +eq r5.z, l(0.000000), cb0[86].w +add r7.xyz, -r6.xyzx, cb0[44].xyzx +mov r8.x, cb0[0].z +mov r8.y, cb0[1].z +mov r8.z, cb0[2].z +movc r9.xyz, r5.zzzz, r7.xyzx, r8.xyzx +dp3 r5.z, r9.xyzx, r9.xyzx +max r5.w, r5.z, l(9.999999939E-09) +rsq r5.w, r5.w +mul r10.xyz, r5.wwww, r9.xyzx +mul r5.z, r5.w, r5.z +lt r7.w, l(0.000488281250), cb0[234].x +if_nz r7.w + sample_b_indexable(texture2d)(float,float,float,float) r11.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x +else + mov r11.xy, l(1.000000,1.000000,0,0) +endif +min r8.w, r11.y, r11.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r9.w, r11.y, l(-1.000000) +mad r12.x, r1.z, r9.w, l(1.000000) +add r12.y, -r1.z, l(1.000000) +movc r11.yz, r7.wwww, r12.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r2.z, r11.y +add r7.w, -r1.z, r2.z +mad r1.z, r8.w, r7.w, r1.z +add r2.z, -r1.z, r2.z +mad r12.w, r11.x, r2.z, r1.z +add r1.z, -r11.z, l(1.000000) +mad r1.z, r8.w, r1.z, r11.z +add r2.z, -r1.z, l(1.000000) +mad r1.z, r11.x, r2.z, r1.z +mul r11.xyz, r1.zzzz, r3.xyzx +mul r13.xyz, r1.xxxx, r11.xyzx +mad r3.xyz, r3.xyzx, r1.zzzz, -r13.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r11.xyz, r11.xyzx, r1.xxxx, r1.zzzz +dp3 r1.x, r4.xyzx, r10.xyzx +max r13.x, r1.x, l(0.000000) +mul r14.y, r12.w, r12.w +mul r15.x, r13.x, r13.x +mul r15.z, r13.x, r15.x +mul r1.x, r14.y, r14.y +mul r14.z, r14.y, r1.x +mov r13.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r16.x, l(3.327070, 1.000000, 0.000000, 0.000000), r13.xyxx +dp2 r16.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r13.xzxx +mov r14.x, l(1.000000) +dp2 r1.z, r16.xyxx, r14.xyxx +mov r15.yw, l(0,9.044010,0,1.000000) +dp3 r16.x, l(3.596850, -1.367720, 1.000000, 0.000000), r15.xzwx +dp3 r16.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r15.xyzx +mov r17.x, l(5.565890) +mov r17.yz, r15.xxzx +dp3 r16.z, l(1.000000, 19.788601, -20.212299, 0.000000), r17.xyzx +dp3 r2.z, r16.xyzx, r14.xyzx +div r1.z, r1.z, r2.z +dp2 r16.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r13.xwxx +mov r15.x, l(1.296780) +mov r15.y, r13.x +dp2 r16.y, l(1.000000, -0.755907, 0.000000, 0.000000), r15.xyxx +dp2 r2.z, r16.xyxx, r14.xyxx +dp3 r16.x, l(2.923380, 59.418800, 1.000000, 0.000000), r15.yzwy +mov r15.xw, l(20.322500,0,0,121.563004) +dp3 r16.y, l(1.000000, -27.030199, 222.591995, 0.000000), r15.xyzx +dp3 r16.z, l(626.130005, 316.627014, 1.000000, 0.000000), r15.yzwy +dp3 r7.w, r16.xyzx, r14.xyzx +div r2.z, r2.z, r7.w +mad r13.yzw, r11.xxyz, r1.zzzz, r2.zzzz +add r1.z, r1.z, r2.z +ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t7.xzyw +lt r0.z, l(0.001000), r14.x +if_nz r0.z + dp3 r0.z, -r10.xyzx, r4.xyzx + add r0.z, r0.z, r0.z + mad r15.xyz, r4.xyzx, -r0.zzzz, -r10.xyzx + dp3 r0.z, -cb3[0].xyzx, r15.xyzx + mad r16.xyz, cb3[0].xyzx, r0.zzzz, r15.xyzx + lt r0.z, r0.z, cb3[4].z + dp3 r2.z, r16.xyzx, r16.xyzx + max r2.z, r2.z, l(0.0000610351562) + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb3[4].yyyy + mad r16.xyz, -cb3[0].xyzx, cb3[4].zzzz, r16.xyzx + dp3 r2.z, r16.xyzx, r16.xyzx + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + movc r15.xyz, r0.zzzz, r16.xyzx, r15.xyzx + mad r16.xyz, r9.xyzx, r5.wwww, r15.xyzx + dp3 r0.z, r16.xyzx, r16.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r16.xyz, r0.zzzz, r16.xyzx + dp3 r0.z, r15.xyzx, r4.xyzx + mov_sat r12.y, r0.z + dp3_sat r2.z, r4.xyzx, r16.xyzx + min r12.z, r13.x, l(1.000000) + mad r7.w, r2.z, r1.x, -r2.z + mad r2.z, r7.w, r2.z, l(1.000000) + dp3_sat r7.w, r10.xyzx, r16.xyzx + add r7.w, -r7.w, l(1.000000) + mul r8.w, r7.w, r7.w + mul r8.w, r8.w, r8.w + mul r9.w, r7.w, r8.w + add r10.w, -r12.w, l(1.000000) + mad r11.w, -r10.w, l(0.383026), l(-0.0761947036) + mad r11.w, r10.w, r11.w, l(1.049970) + mad r10.w, r10.w, r11.w, l(0.409255) + min r10.w, r10.w, l(0.999000) + add r11.w, -r10.w, l(1.000000) + add r15.xyz, -r11.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r11.xyzx + ult r14.w, l(0), r1.w + uge r15.w, l(15), r1.w + and r14.w, r14.w, r15.w + if_nz r14.w + iadd r15.w, r1.w, l(-1) + umin r15.w, r15.w, l(14) + mad r16.x, r0.z, l(0.500000), l(0.500000) + mul r16.y, r3.w, cb5[r15.w + 0].w + utof r16.z, r15.w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t10.xyzw, s1, l(0.000000) + endif + movc r16.xyz, r14.wwww, r16.xyzx, r12.yyyy + mad r0.z, -r8.w, r7.w, l(1.000000) + mad r17.xyz, r11.xyzx, r0.zzzz, r9.wwww + mul r0.z, r2.z, r2.z + div r0.z, r1.x, r0.z + mad r18.xy, -r12.zyzz, r1.xxxx, r12.zyzz + mad r18.xy, r18.xyxx, r12.zyzz, r1.xxxx + sqrt r18.xy, r18.xyxx + mul r18.xy, r12.yzyy, r18.xyxx + add r1.x, r18.y, r18.x + add r1.x, r1.x, l(0.000100) + div r1.x, l(0.500000), r1.x + mul r0.z, r0.z, r1.x + mul r17.xyz, r0.zzzz, r17.xyzx + min r17.xyz, r17.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r18.xyxx, t9.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r1.x, r18.zwzz, t9.xyzw, s1, l(0.000000) + mul r0.z, r0.z, r1.x + mul r0.z, r10.w, r0.z + div r0.z, r0.z, r11.w + mul r18.xyz, r15.xyzx, r15.xyzx + mul r18.xyz, r0.zzzz, r18.xyzx + mad r15.xyz, -r15.xyzx, r11.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r15.xyz, r18.xyzx, r15.xyzx + add r15.xyz, r15.xyzx, r17.xyzx + mul r15.xyz, r15.xyzx, cb3[4].xxxx + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r15.xyz, r15.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r16.xyz, r3.xyzx, r16.xyzx + mad r15.xyz, r15.xyzx, r12.yyyy, r16.xyzx + mul r15.xyz, r15.xyzx, cb3[1].xyzx + mov r14.z, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r16.xyz, r14.xzxx, t8.xyzw, s1, cb0[108].x + add r0.z, -r14.x, l(1.000000) + mad r14.xzw, r15.xxyz, r16.xxyz, -r15.xxyz + mad r14.xzw, r0.zzzz, r14.xxzw, r15.xxyz + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r5.xyxx, t12.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r14.xzw, r0.zzzz, r14.xxzw +else + mov r14.xzw, l(0,0,0,0) +endif +mul r12.yz, r2.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r12.yz, r12.yyzy +mad r0.z, r12.z, cb2[1].y, r12.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r1.x, -cb0[85].y, cb2[2].w, |r2.w| +round_ni r1.x, r1.x +add r2.z, l(-1.000000), cb2[1].w +max r7.w, r1.x, l(0.000000) +min r2.z, r2.z, r7.w +mul r7.w, r2.z, l(8.000000) +ftoi r7.w, r7.w +ge r1.x, r2.z, r1.x +iadd r2.z, r7.w, cb0[110].y +dp3 r7.w, -r10.xyzx, r4.xyzx +add r7.w, r7.w, r7.w +mad r15.xyz, r4.xyzx, -r7.wwww, -r10.xyzx +min r12.x, r13.x, l(1.000000) +add r7.w, -r12.w, l(1.000000) +mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) +mad r8.w, r7.w, r8.w, l(1.049970) +mad r7.w, r7.w, r8.w, l(0.409255) +min r7.w, r7.w, l(0.999000) +add r8.w, -r7.w, l(1.000000) +add r16.xyz, -r11.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r11.xyzx +ult r9.w, l(0), r1.w +uge r10.w, l(15), r1.w +and r9.w, r9.w, r10.w +iadd r1.w, r1.w, l(-1) +umin r1.w, r1.w, l(14) +mul r17.y, r3.w, cb5[r1.w + 0].w +utof r17.z, r1.w +mad r12.yz, r12.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r1.w, r12.yzyy, t9.yzwx, s1, l(0.000000) +mad r18.xyz, -r16.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r19.w, l(1.000000) +mov r20.y, l(1.000000) +mov r21.z, r12.w +mov r22.xyz, l(0,0,0,0) +mov r3.w, l(1.000000) +mov r10.w, l(0) +loop + ilt r11.w, l(7), r10.w + breakc_nz r11.w + iadd r11.w, r0.z, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx + iadd r12.y, r2.z, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.y, r12.y, l(0), t0.xxxx + and r11.w, r11.w, r12.y + and r11.w, r1.x, r11.w + ishl r12.y, r10.w, l(5) + mov r23.xyz, l(0,0,0,0) + mov r12.z, r3.w + mov r15.w, r11.w + loop + breakc_z r15.w + firstbit_lo r16.w, r15.w + ishl r18.w, l(1), r16.w + xor r18.w, r15.w, r18.w + iadd r16.w, r12.y, r16.w + bfi r24.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 3, 5, 6) + bfi r20.z, l(29), l(3), r16.w, l(7) + ftou r20.w, cb3[r24.z + 6].w + ieq r20.w, r20.w, l(1) + if_nz r20.w + add r19.xyz, r6.xyzx, -cb3[r24.x + 6].xyzx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.z + 6].xzyx + and r26.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.w + 6].yxzy + ushr r27.xyz, cb3[r24.z + 6].xzyx, l(16, 16, 16, 0) + ushr r28.xyz, cb3[r24.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyz, r27.xyzx + f16tof32 r28.xyw, r28.yxyz + mov r29.xz, r25.xxzx + mov r29.yw, r27.xxxz + dp4 r20.w, r19.xyzw, r29.xyzw + mov r27.x, r25.y + mov r27.z, r26.y + mov r27.w, r28.x + dp4 r21.w, r19.xyzw, r27.xyzw + mov r28.xz, r26.xxzx + dp4 r19.x, r19.xyzw, r28.xyzw + max r19.y, |r20.w|, |r21.w| + max r19.x, |r19.x|, r19.y + mad r19.y, cb3[r20.z + 6].x, l(0.500000), l(0.500000) + add r19.x, -r19.y, r19.x + mad r19.y, -cb3[r20.z + 6].x, l(0.500000), l(0.500000) + div_sat r19.x, r19.x, r19.y + add r19.x, -r19.x, l(1.000000) + mul r19.x, r19.x, r19.x + else + mov r19.x, l(1.000000) + endif + lt r19.y, l(0.500000), cb3[r24.y + 6].z + lt r19.z, r19.x, l(0.001000) + or r19.z, r19.y, r19.z + if_nz r19.z + mov r15.w, r18.w + continue + endif + ishl r19.z, r16.w, l(3) + bfi r16.w, l(29), l(3), r16.w, l(2) + lt r20.w, cb3[r19.z + 6].w, l(1.500000) + if_nz r20.w + mad r20.w, cb3[r16.w + 6].y, l(0.500000), l(0.500000) + add r25.x, r20.w, -|cb3[r16.w + 6].x| + add r25.y, -r25.x, cb3[r16.w + 6].y + add r20.w, -|r25.x|, l(1.000000) + add r20.w, -|r25.y|, r20.w + max r20.w, r20.w, l(0.000488281250) + ge r21.w, cb3[r16.w + 6].x, l(0.000000) + movc r25.z, r21.w, r20.w, -r20.w + dp3 r20.w, r25.xyzx, r25.xyzx + rsq r20.w, r20.w + mul r25.xyz, r20.wwww, r25.xyzx + add r26.xyz, -r6.xyzx, cb3[r24.x + 6].xyzx + dp3 r20.w, r26.xyzx, r26.xyzx + rsq r21.w, r20.w + mul r27.xyz, r21.wwww, r26.xyzx + ftoi r22.w, cb3[r20.z + 6].w + mul r28.xyz, r25.xyzx, cb3[r16.w + 6].zzzz + mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r30.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + ftou r23.w, cb3[r19.z + 6].w + and r23.w, r23.w, l(1) + ieq r24.z, r23.w, l(0) + not r24.z, r24.z + lt r25.w, l(0.000000), cb3[r16.w + 6].z + and r24.z, r24.z, r25.w + dp3 r25.w, r29.xyzx, r29.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r30.xyzx, r30.xyzx + sqrt r26.w, r26.w + dp3 r27.w, r4.xyzx, r29.xyzx + div r27.w, r27.w, r25.w + dp3 r28.w, r4.xyzx, r30.xyzx + div r28.w, r28.w, r26.w + add r27.w, r27.w, r28.w + mul_sat r31.x, r27.w, l(0.500000) + dp3 r27.w, r29.xyzx, r30.xyzx + mad r25.w, r25.w, r26.w, r27.w + mad r25.w, r25.w, l(0.500000), l(1.000000) + div r31.y, l(1.000000, 1.000000, 1.000000, 1.000000), r25.w + dp3_sat r20.x, r4.xyzx, r27.xyzx + movc r21.xy, r24.zzzz, r31.xyxx, r20.xyxx + lt r20.x, cb3[r24.w + 6].w, l(0.000000) + if_nz r20.x + mul r20.x, cb3[r24.x + 6].w, cb3[r24.x + 6].w + mul r20.x, r20.x, r20.w + mad r20.x, -r20.x, r20.x, l(1.000000) + max r20.x, r20.x, l(0.000000) + add r20.w, r20.w, l(1.000000) + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r20.w + and r25.w, r24.z, l(0x3f800000) + add r26.w, -r20.w, r21.y + mad r20.w, r25.w, r26.w, r20.w + mul r20.x, r20.x, r20.x + mul r20.x, r20.x, r20.w + else + mul r30.xyz, r26.xyzx, cb3[r24.x + 6].wwww + dp3 r20.w, r30.xyzx, r30.xyzx + min r20.w, r20.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + log r20.w, r20.w + mul r20.w, r20.w, cb3[r24.w + 6].w + exp r20.w, r20.w + mul r20.x, r20.w, r21.y + endif + dp3 r20.w, r27.xyzx, -r25.xyzx + add r20.w, r20.w, -cb3[r16.w + 6].z + mul_sat r20.w, r20.w, cb3[r16.w + 6].w + mul r20.w, r20.w, r20.w + movc r20.w, r23.w, l(1.000000), r20.w + mul r20.x, r20.w, r20.x + not r20.w, r24.z + ige r21.y, r22.w, l(0) + and r20.w, r20.w, r21.y + if_nz r20.w + if_z r23.w + ishl r20.w, r22.w, l(2) + mul r25.xyz, r6.yyyy, cb6[r20.w + 33].xywx + mad r25.xyz, cb6[r20.w + 32].xywx, r6.xxxx, r25.xyzx + mad r25.xyz, cb6[r20.w + 34].xywx, r6.zzzz, r25.xyzx + add r25.xyz, r25.xyzx, cb6[r20.w + 35].xywx + div_sat r25.xy, r25.xyxx, r25.zzzz + mad r25.xy, r25.xyxx, cb6[r22.w + 0].zwzz, cb6[r22.w + 0].xyxx + else + ishl r20.w, r22.w, l(2) + dp3 r30.x, -r26.xyzx, cb6[r20.w + 32].xyzx + dp3 r30.y, -r26.xyzx, cb6[r20.w + 33].xyzx + dp3 r30.z, -r26.xyzx, cb6[r20.w + 34].xyzx + lt r20.w, |r30.x|, |r30.y| + and r20.w, r20.w, l(1) + dp2 r21.y, |r30.xyxx|, icb[r20.w + 0].xyxx + lt r21.y, r21.y, |r30.z| + movc r20.w, r21.y, l(2), r20.w + dp3 r21.y, r30.xyzx, icb[r20.w + 0].xyzx + lt r21.y, r21.y, l(0.000000) + bfi r20.w, l(31), l(1), r20.w, r21.y + ushr r21.y, r20.w, l(1) + dp3 r21.y, r30.xyzx, icb[r21.y + 0].xyzx + div r25.z, l(0.000244140625), cb6[r22.w + 0].w + add r25.z, -r25.z, l(0.500000) + utof r25.w, r20.w + ult r26.x, r20.w, l(2) + and r26.x, r26.x, l(2) + dp2 r26.x, r30.xzxx, icb[r26.x + 0].xzxx + mul r26.x, r26.x, icb[r20.w + 4].z + div r26.x, r26.x, |r21.y| + mad r25.w, r26.x, r25.z, r25.w + add r25.w, r25.w, l(0.500000) + mul_sat r26.x, r25.w, l(0.166666672) + iadd r25.w, l(-1), icb[r20.w + 4].y + dp2 r25.w, r30.yzyy, icb[r25.w + 0].xyxx + mul r20.w, r25.w, icb[r20.w + 4].w + div r20.w, r20.w, |r21.y| + mad_sat r26.y, -r20.w, r25.z, l(0.500000) + mad r25.xy, r26.xyxx, cb6[r22.w + 0].zwzz, cb6[r22.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r20.w, r25.xyxx, t13.yzwx, s1, l(0.000000) + mul r20.x, r20.w, r20.x + endif + lt r20.w, l(0.000000), r20.x + if_nz r20.w + if_z r23.w + ftoi r21.y, cb3[r24.y + 6].x + else + add r25.xyz, r6.xyzx, -cb3[r24.x + 6].xyzx + lt r26.xyz, |r25.yzzy|, |r25.xxyx| + and r22.w, r26.y, r26.x + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ushr r23.w, cb3[r16.w + 6].w, l(24) + ubfe r26.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r16.w + 6].wwww + movc r23.w, r25.x, r23.w, r26.x + and r25.x, l(255), cb3[r16.w + 6].w + movc r25.x, r25.y, r26.y, r25.x + ubfe r25.y, l(8), l(8), cb3[r24.y + 6].x + and r25.w, l(255), cb3[r24.y + 6].x + movc r25.y, r25.z, r25.y, r25.w + movc r25.x, r26.z, r25.x, r25.y + movc r22.w, r22.w, r23.w, r25.x + ilt r23.w, r22.w, l(80) + movc r21.y, r23.w, r22.w, l(-1) + endif + ishl r22.w, r21.y, l(2) + mad r25.xyz, r27.xyzx, cb4[r21.y + 288].xxxx, r6.xyzx + mul r23.w, l(5.000000), cb4[r21.y + 288].y + mad r25.xyz, r4.xyzx, r23.wwww, r25.xyzx + mul r26.xyzw, r25.yyyy, cb4[r22.w + 65].xyzw + mad r26.xyzw, cb4[r22.w + 64].xyzw, r25.xxxx, r26.xyzw + mad r25.xyzw, cb4[r22.w + 66].xyzw, r25.zzzz, r26.xyzw + add r25.xyzw, r25.xyzw, cb4[r22.w + 67].xyzw + div r25.xyz, r25.xyzx, r25.wwww + ge r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ge r30.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r31.xy, -cb4[r21.y + 344].xyxx, cb4[r21.y + 344].zwzz + mad r25.xy, r25.xyxx, r31.xyxx, cb4[r21.y + 344].xyxx + mad r31.xy, r25.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r31.xy, r31.xyxx + mad r25.xy, r25.xyxx, cb4[400].zwzz, -r31.xyxx + add r32.xyzw, r25.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r33.xyzw, r32.xxzz, r32.xxzz + add r31.zw, -r25.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r32.xz, r25.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r34.xy, r25.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r35.xy, r31.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r34.xy, -r34.xyxx, r34.xyxx, r32.ywyy + add r34.xy, r34.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r34.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r33.xz, r33.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r25.xy, r33.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r25.xyxx + mul r36.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r25.xy, -r32.xzxx, r32.xzxx, r31.zwzz + add r25.xy, r25.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r37.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xy, r32.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r36.z, r37.x + mov r36.w, r25.x + mov r35.z, r34.x + mov r35.w, r33.x + add r32.xyzw, r35.zwxz, r36.zwxz + mov r37.z, r36.y + mov r37.w, r25.y + mov r34.z, r35.y + mov r34.w, r33.z + add r25.xyw, r34.zyzw, r37.zyzw + div r33.xyz, r35.xzwx, r32.zwyz + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.yxzy, cb4[400].xxxx + div r34.xyz, r34.zywz, r25.xywx + add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r34.xyz, r34.xyzx, cb4[400].yyyy + mov r33.w, r34.x + mad r35.xyzw, r31.xyxy, cb4[400].xyxy, r33.ywxw + mad r31.zw, r31.xxxy, cb4[400].xxxy, r33.zzzw + mov r34.w, r33.y + mov r33.yw, r34.yyyz + mad r36.xyzw, r31.xyxy, cb4[400].xyxy, r33.xyzy + mad r34.xyzw, r31.xyxy, cb4[400].xyxy, r34.wywz + mad r33.xyzw, r31.xyxy, cb4[400].xyxy, r33.xwzw + mul r37.xyzw, r25.xxxy, r32.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.w, r35.xyxx, t6.xxxx, s4, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r35.zwzz, t6.xxxx, s4, r25.z + mul r23.w, r23.w, r37.y + mad r22.w, r37.x, r22.w, r23.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r31.zwzz, t6.xxxx, s4, r25.z + mad r22.w, r37.z, r23.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r34.xyxx, t6.xxxx, s4, r25.z + mad r22.w, r37.w, r23.w, r22.w + mul r31.xyzw, r25.yyww, r32.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r36.xyxx, t6.xxxx, s4, r25.z + mad r22.w, r31.x, r23.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r36.zwzz, t6.xxxx, s4, r25.z + mad r22.w, r31.y, r23.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r34.zwzz, t6.xxxx, s4, r25.z + mad r22.w, r31.z, r23.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r33.xyxx, t6.xxxx, s4, r25.z + mad r22.w, r31.w, r23.w, r22.w + ige r23.w, r21.y, l(0) + or r26.xyz, r26.xyzx, r30.xyzx + or r25.x, r26.y, r26.x + or r25.x, r26.z, r25.x + and r25.y, r25.z, l(0x7fffffff) + ult r25.y, l(0x7f800000), r25.y + or r25.x, r25.y, r25.x + mul r25.y, r25.w, r32.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.z, r33.zwzz, t6.xxxx, s4, r25.z + mad r22.w, r25.y, r25.z, r22.w + add r22.w, r22.w, l(-1.000000) + mad r21.y, cb4[r21.y + 288].w, r22.w, l(1.000000) + movc r21.y, r25.x, l(1.000000), r21.y + movc r21.y, r23.w, r21.y, l(1.000000) + else + mov r21.y, l(1.000000) + endif + if_nz r24.z + dp3 r22.w, r15.xyzx, r28.xyzx + mul_sat r23.w, r21.w, cb3[r16.w + 6].z + mad r23.w, r23.w, l(0.500000), r14.y + min r23.w, r23.w, l(1.000000) + div r23.w, r14.y, r23.w + mad r25.xyz, r15.xyzx, r22.wwww, -r28.xyzx + dp3 r24.z, r29.xyzx, r25.xyzx + mul r22.w, r22.w, r22.w + mad r22.w, cb3[r16.w + 6].z, cb3[r16.w + 6].z, -r22.w + div_sat r22.w, r24.z, r22.w + mad r25.xyz, r28.xyzx, r22.wwww, r29.xyzx + dp3 r22.w, r25.xyzx, r25.xyzx + rsq r22.w, r22.w + mul r27.xyz, r22.wwww, r25.xyzx + else + mov r23.w, l(1.000000) + endif + if_nz r20.w + mul_sat r20.w, r21.w, cb3[r20.z + 6].y + mad r25.xyz, r9.xyzx, r5.wwww, r27.xyzx + dp3 r21.w, r25.xyzx, r25.xyzx + max r21.w, r21.w, l(0.0000610351562) + rsq r21.w, r21.w + mul r25.xyz, r21.wwww, r25.xyzx + dp3_sat r21.w, r4.xyzx, r25.xyzx + dp3_sat r22.w, r10.xyzx, r25.xyzx + lt r24.z, l(0.000000), r20.w + mul r20.w, r20.w, r20.w + mad r25.x, r22.w, l(3.600000), l(0.400000) + div r20.w, r20.w, r25.x + mad r20.w, r12.w, r12.w, r20.w + min r20.w, r20.w, l(1.000000) + movc r20.w, r24.z, r20.w, r14.y + mul r20.w, r20.w, r20.w + mad r24.z, r21.w, r20.w, -r21.w + mad r21.w, r24.z, r21.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + mul r24.z, r22.w, r22.w + mul r24.z, r24.z, r24.z + mul r25.x, r22.w, r24.z + if_nz r9.w + dp3 r25.y, r4.xyzx, r27.xyzx + mad r17.x, r25.y, l(0.500000), l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r25.yzw, r17.xyzx, t10.wxyz, s1, l(0.000000) + endif + movc r25.yzw, r9.wwww, r25.yyzw, r21.xxxx + mad r17.x, -r24.z, r22.w, l(1.000000) + mad r26.xyz, r11.xyzx, r17.xxxx, r25.xxxx + mul r17.x, r21.w, r21.w + div r17.x, r20.w, r17.x + mul r17.x, r23.w, r17.x + mad r21.w, -r12.x, r20.w, r12.x + mad r21.w, r21.w, r12.x, r20.w + sqrt r21.w, r21.w + mad r22.w, -r21.x, r20.w, r21.x + mad r20.w, r22.w, r21.x, r20.w + sqrt r20.w, r20.w + mul r20.w, r12.x, r20.w + mad r20.w, r21.x, r21.w, r20.w + add r20.w, r20.w, l(0.000100) + div r20.w, l(0.500000), r20.w + mul r17.x, r17.x, r20.w + mul r26.xyz, r17.xxxx, r26.xyzx + min r26.xyz, r26.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r27.xy, r21.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r17.x, r27.xyxx, t9.xyzw, s1, l(0.000000) + mul r17.x, r1.w, r17.x + mul r17.x, r7.w, r17.x + div r17.x, r17.x, r8.w + mul r27.xyz, r16.xyzx, r17.xxxx + div r27.xyz, r27.xyzx, r18.xyzx + add r26.xyz, r26.xyzx, r27.xyzx + mul r26.xyz, r26.xyzx, cb3[r20.z + 6].zzzz + max r26.xyz, r26.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r26.xyz, r26.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r25.xyz, r3.xyzx, r25.yzwy + mad r25.xyz, r26.xyzx, r21.xxxx, r25.xyzx + mul r26.xyz, r20.xxxx, cb3[r19.z + 6].xyzx + mul r21.xyw, r21.yyyy, r26.xyxz + mul r21.xyw, r19.xxxx, r21.xyxw + mul r21.xyw, r21.xyxw, r25.xyxz + else + mov r21.xyw, l(0,0,0,0) + endif + else + if_z r19.y + mad r17.x, cb3[r16.w + 6].y, l(0.500000), l(0.500000) + add r25.x, r17.x, -|cb3[r16.w + 6].x| + add r25.y, -r25.x, cb3[r16.w + 6].y + add r17.x, -|r25.x|, l(1.000000) + add r17.x, -|r25.y|, r17.x + max r17.x, r17.x, l(0.000488281250) + ge r19.x, cb3[r16.w + 6].x, l(0.000000) + movc r25.z, r19.x, r17.x, -r17.x + dp3 r17.x, r25.xyzx, r25.xyzx + rsq r17.x, r17.x + mul r25.xyz, r17.xxxx, r25.xyzx + add r26.xyz, -r6.xyzx, cb3[r24.x + 6].xyzx + dp3 r17.x, r26.xyzx, r26.xyzx + rsq r19.x, r17.x + mul r27.xyz, r19.xxxx, r26.xyzx + ftoi r19.x, cb3[r20.z + 6].w + mul r20.xzw, r25.xxyz, cb3[r16.w + 6].zzzz + mad r28.xyz, -r20.xzwx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r20.xzw, r20.xxzw, l(0.500000, 0.000000, 0.500000, 0.500000), r26.xxyz + ftou r19.y, cb3[r19.z + 6].w + and r19.y, r19.y, l(1) + ieq r19.z, r19.y, l(0) + not r19.z, r19.z + lt r22.w, l(0.000000), cb3[r16.w + 6].z + and r19.z, r19.z, r22.w + dp3 r22.w, r28.xyzx, r28.xyzx + sqrt r22.w, r22.w + dp3 r23.w, r20.xzwx, r20.xzwx + sqrt r23.w, r23.w + dp3 r20.x, r28.xyzx, r20.xzwx + mad r20.x, r22.w, r23.w, r20.x + mad r20.x, r20.x, l(0.500000), l(1.000000) + div r20.x, l(1.000000, 1.000000, 1.000000, 1.000000), r20.x + movc r20.x, r19.z, r20.x, l(1.000000) + lt r20.z, cb3[r24.w + 6].w, l(0.000000) + if_nz r20.z + mul r20.z, cb3[r24.x + 6].w, cb3[r24.x + 6].w + mul r20.z, r17.x, r20.z + mad r20.z, -r20.z, r20.z, l(1.000000) + max r20.z, r20.z, l(0.000000) + add r17.x, r17.x, l(1.000000) + div r17.x, l(1.000000, 1.000000, 1.000000, 1.000000), r17.x + and r20.w, r19.z, l(0x3f800000) + add r22.w, -r17.x, r20.x + mad r17.x, r20.w, r22.w, r17.x + mul r20.z, r20.z, r20.z + mul r17.x, r17.x, r20.z + else + mul r28.xyz, r26.xyzx, cb3[r24.x + 6].wwww + dp3 r20.z, r28.xyzx, r28.xyzx + min r20.z, r20.z, l(1.000000) + add r20.z, -r20.z, l(1.000000) + log r20.z, r20.z + mul r20.z, r20.z, cb3[r24.w + 6].w + exp r20.z, r20.z + mul r17.x, r20.z, r20.x + endif + dp3 r20.x, r27.xyzx, -r25.xyzx + add r20.x, r20.x, -cb3[r16.w + 6].z + mul_sat r20.x, r20.x, cb3[r16.w + 6].w + mul r20.x, r20.x, r20.x + movc r20.x, r19.y, l(1.000000), r20.x + mul r17.x, r17.x, r20.x + not r19.z, r19.z + ige r20.x, r19.x, l(0) + and r19.z, r19.z, r20.x + if_nz r19.z + if_z r19.y + ishl r19.z, r19.x, l(2) + mul r20.xzw, r6.yyyy, cb6[r19.z + 33].xxyw + mad r20.xzw, cb6[r19.z + 32].xxyw, r6.xxxx, r20.xxzw + mad r20.xzw, cb6[r19.z + 34].xxyw, r6.zzzz, r20.xxzw + add r20.xzw, r20.xxzw, cb6[r19.z + 35].xxyw + div_sat r20.xz, r20.xxzx, r20.wwww + mad r20.xz, r20.xxzx, cb6[r19.x + 0].zzwz, cb6[r19.x + 0].xxyx + else + ishl r19.z, r19.x, l(2) + dp3 r25.x, -r26.xyzx, cb6[r19.z + 32].xyzx + dp3 r25.y, -r26.xyzx, cb6[r19.z + 33].xyzx + dp3 r25.z, -r26.xyzx, cb6[r19.z + 34].xyzx + lt r19.z, |r25.x|, |r25.y| + and r19.z, r19.z, l(1) + dp2 r20.w, |r25.xyxx|, icb[r19.z + 0].xyxx + lt r20.w, r20.w, |r25.z| + movc r19.z, r20.w, l(2), r19.z + dp3 r20.w, r25.xyzx, icb[r19.z + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r19.z, l(31), l(1), r19.z, r20.w + ushr r20.w, r19.z, l(1) + dp3 r20.w, r25.xyzx, icb[r20.w + 0].xyzx + div r22.w, l(0.000244140625), cb6[r19.x + 0].w + add r22.w, -r22.w, l(0.500000) + utof r23.w, r19.z + ult r24.z, r19.z, l(2) + and r24.z, r24.z, l(2) + dp2 r24.z, r25.xzxx, icb[r24.z + 0].xzxx + mul r24.z, r24.z, icb[r19.z + 4].z + div r24.z, r24.z, |r20.w| + mad r23.w, r24.z, r22.w, r23.w + add r23.w, r23.w, l(0.500000) + mul_sat r26.x, r23.w, l(0.166666672) + iadd r23.w, l(-1), icb[r19.z + 4].y + dp2 r23.w, r25.yzyy, icb[r23.w + 0].xyxx + mul r19.z, r23.w, icb[r19.z + 4].w + div r19.z, r19.z, |r20.w| + mad_sat r26.y, -r19.z, r22.w, l(0.500000) + mad r20.xz, r26.xxyx, cb6[r19.x + 0].zzwz, cb6[r19.x + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.x, r20.xzxx, t13.xyzw, s1, l(0.000000) + mul r17.x, r17.x, r19.x + endif + lt r17.x, l(0.000000), r17.x + if_nz r17.x + if_z r19.y + ftoi r17.x, cb3[r24.y + 6].x + else + add r19.xyz, r6.xyzx, -cb3[r24.x + 6].xyzx + lt r20.xzw, |r19.yyzz|, |r19.xxxy| + and r20.x, r20.z, r20.x + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ushr r20.z, cb3[r16.w + 6].w, l(24) + ubfe r24.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r16.w + 6].wwww + movc r19.x, r19.x, r20.z, r24.x + and r16.w, l(255), cb3[r16.w + 6].w + movc r16.w, r19.y, r24.z, r16.w + ubfe r19.y, l(8), l(8), cb3[r24.y + 6].x + and r20.z, l(255), cb3[r24.y + 6].x + movc r19.y, r19.z, r19.y, r20.z + movc r16.w, r20.w, r16.w, r19.y + movc r16.w, r20.x, r19.x, r16.w + ilt r19.x, r16.w, l(80) + movc r17.x, r19.x, r16.w, l(-1) + endif + ishl r16.w, r17.x, l(2) + mad r19.xyz, r27.xyzx, cb4[r17.x + 288].xxxx, r6.xyzx + mul r20.x, l(5.000000), cb4[r17.x + 288].y + mad r19.xyz, r4.xyzx, r20.xxxx, r19.xyzx + mul r24.xyzw, r19.yyyy, cb4[r16.w + 65].xyzw + mad r24.xyzw, cb4[r16.w + 64].xyzw, r19.xxxx, r24.xyzw + mad r24.xyzw, cb4[r16.w + 66].xyzw, r19.zzzz, r24.xyzw + add r24.xyzw, r24.xyzw, cb4[r16.w + 67].xyzw + div r19.xyz, r24.xyzx, r24.wwww + ge r20.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxyz + ge r24.xyz, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r25.xy, -cb4[r17.x + 344].xyxx, cb4[r17.x + 344].zwzz + mad r19.xy, r19.xyxx, r25.xyxx, cb4[r17.x + 344].xyxx + mad r25.xy, r19.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r19.xy, r19.xyxx, cb4[400].zwzz, -r25.xyxx + add r26.xyzw, r19.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r19.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r19.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r19.xyxx + mul r30.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xy, -r26.xzxx, r26.xzxx, r25.zwzz + add r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r30.z, r31.x + mov r30.w, r19.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r19.y + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r29.w, r28.x + mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw + mad r19.xy, r25.xyxx, cb4[400].xyxx, r29.zwzz + mov r28.w, r29.y + mov r29.yw, r28.yyyz + mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy + mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz + mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw + mul r29.xyzw, r26.zwyz, r27.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r30.xyxx, t6.xxxx, s4, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.w, r30.zwzz, t6.xxxx, s4, r19.z + mul r22.w, r22.w, r29.y + mad r16.w, r29.x, r16.w, r22.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r19.xyxx, t6.xxxx, s4, r19.z + mad r16.w, r29.z, r19.x, r16.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r28.xyxx, t6.xxxx, s4, r19.z + mad r16.w, r29.w, r19.x, r16.w + mul r29.xyzw, r26.xyzw, r27.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r31.xyxx, t6.xxxx, s4, r19.z + mad r16.w, r29.x, r19.x, r16.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r31.zwzz, t6.xxxx, s4, r19.z + mad r16.w, r29.y, r19.x, r16.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r28.zwzz, t6.xxxx, s4, r19.z + mad r16.w, r29.z, r19.x, r16.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r25.xyxx, t6.xxxx, s4, r19.z + mad r16.w, r29.w, r19.x, r16.w + ige r19.x, r17.x, l(0) + or r20.xzw, r20.xxzw, r24.xxyz + or r19.y, r20.z, r20.x + or r19.y, r20.w, r19.y + and r20.x, r19.z, l(0x7fffffff) + ult r20.x, l(0x7f800000), r20.x + or r19.y, r19.y, r20.x + mul r20.x, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r25.zwzz, t6.xxxx, s4, r19.z + mad r16.w, r20.x, r19.z, r16.w + add r16.w, r16.w, l(-1.000000) + mad r16.w, cb4[r17.x + 288].w, r16.w, l(1.000000) + movc r16.w, r19.y, l(1.000000), r16.w + movc r16.w, r19.x, r16.w, l(1.000000) + else + mov r16.w, l(1.000000) + endif + else + mov r16.w, l(1.000000) + endif + mul r12.z, r12.z, r16.w + mov r21.xyw, l(0,0,0,0) + endif + add r23.xyz, r21.xywx, r23.xyzx + mov r15.w, r18.w + endloop + mov r3.w, r12.z + add r22.xyz, r22.xyzx, r23.xyzx + iadd r10.w, r10.w, l(1) +endloop +mad r9.xyz, r22.xyzx, r3.wwww, r14.xzwx +ne r1.xw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +if_nz r1.x + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + add r1.x, r0.z, r13.x + mad r2.z, r12.w, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.x, |r1.x| + mul r1.x, r1.x, r2.z + exp r1.x, r1.x + add r1.x, r0.z, r1.x + add r1.x, r1.x, l(-1.000000) + mov_sat r12.xyz, r1.xxxx + mad r14.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r12.xyz, r1.yyyy + mov r14.xyz, r1.yyyy +endif +if_nz r9.w + mov r17.w, l(0.500000) + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r17.ywzy, t11.xyzw, s1, l(0.000000) +endif +movc r16.xyz, r9.wwww, r16.xyzx, l(1.000000,1.000000,1.000000,0) +mad r17.xyz, r4.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r6.xyzx +round_z r0.z, cb0[212].x +mad r1.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r2.xyxx +dp2 r0.z, r1.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r17.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r17.xyzx +mad r18.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r18.xyz, r17.xzyx, -r18.xyzx +max r0.z, |r18.y|, |r18.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.x, |r18.z|, l(-208.000000) +mul_sat r1.x, r1.x, l(0.031250) +max r0.z, r0.z, r1.x +ne r1.x, l(0.000000), cb0[210].w +lt r1.y, r0.z, l(1.000000) +and r1.x, r1.y, r1.x +if_nz r1.x + mad r18.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r18.xyz, r17.xzyx, -r18.xyzx + max r1.x, |r18.y|, |r18.x| + add r1.x, r1.x, l(-29.000000) + add r1.y, |r18.z|, l(-13.000000) + mul_sat r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + max r1.x, r1.y, r1.x + lt r1.y, r1.x, l(1.000000) + if_nz r1.y + mad r18.xyz, r17.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r18.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r18.xyzx, t17.yzwx, s2, l(0.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.z, l(0.500000), cb0[211].y + mad r3.w, -cb0[211].y, l(0.500000), l(1.000000) + max r2.z, r2.z, r18.y + min r2.z, r3.w, r2.z + mul r18.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t18.xyzw, s1, l(0.000000) + mad r2.z, r20.w, r1.y, r0.z + add r21.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t18.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.yyyy, r21.xyzx + mov r21.w, r19.y + mul r21.xyzw, r1.yyyy, r21.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.xxxx, r18.xyzx + mov r18.w, r19.x + mul r18.xyzw, r1.yyyy, r18.xyzw + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r20.xyzx + mul r19.xyzw, r1.yyyy, r19.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r2.z, r0.z + endif + mad r20.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r20.xyz, r17.xzyx, -r20.xyzx + max r1.y, |r20.y|, |r20.x| + add r1.y, r1.y, l(-116.000000) + mul_sat r1.y, r1.y, l(0.125000) + add r3.w, |r20.z|, l(-52.000000) + mul_sat r3.w, r3.w, l(0.125000) + max r1.y, r1.y, r3.w + lt r3.w, r1.y, l(1.000000) + if_nz r3.w + mad r20.xyz, r17.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r22.xyz, r20.xyzx, cb0[211].xyzx + round_ni r22.xyz, r22.xyzx + mad r20.xyz, r20.xyzx, cb0[211].xyzx, -r22.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t19.yzwx, s2, l(0.000000) + add r3.w, -r1.y, l(1.000000) + mul r1.x, r1.x, r3.w + mul r3.w, l(0.500000), cb0[211].y + mad r5.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.w, r3.w, r20.y + min r3.w, r5.w, r3.w + mul r20.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t20.xyzw, s1, l(0.000000) + mad r2.z, r23.w, r1.x, r2.z + add r24.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r24.xyz, r24.xyzx, t20.xyzw, s1, l(0.000000) + mad r24.xyz, r24.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r24.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r1.xxxx, r21.xyzw + add r20.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t20.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r20.xyzx + mov r20.w, r22.x + mad r18.xyzw, r20.xyzw, r1.xxxx, r18.xyzw + mad r20.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r20.xyzx + mad r19.xyzw, r22.xyzw, r1.xxxx, r19.xyzw + endif + lt r1.x, l(0.000000), r1.y + if_nz r1.x + mad r17.xyz, r17.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r17.xyzx, cb0[211].xyzx + mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r20.xyzx + mad r20.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r17.xyz, r22.xyzx, r17.xyzx + min r17.xyz, r20.xyzx, r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r17.xyzx, t21.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.y + max r1.y, r22.y, r17.y + min r1.y, r20.y, r1.y + mul r17.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t22.xyzw, s1, l(0.000000) + add r22.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t22.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r23.yyyy, r22.xyzx + mov r22.w, r23.y + mad r21.xyzw, r22.xyzw, r1.xxxx, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t22.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r23.xxxx, r17.xyzx + mov r17.w, r23.x + mad r18.xyzw, r17.xyzw, r1.xxxx, r18.xyzw + mad r17.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r23.wwww, r17.xyzx + mad r19.xyzw, r23.xyzw, r1.xxxx, r19.xyzw + mad r2.z, r20.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r17.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + mul r17.y, r0.z, l(0.500000) +else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r17.xy, l(0,1.000000,0,0) +endif +mul r20.xyzw, r17.yxyy, cb0[213].ywzx +mad r20.y, r20.y, l(0.500000), r20.x +mul r1.xy, r17.yxyy, cb0[213].wyww +mad r20.x, r1.y, l(0.375000), r1.x +add r19.xyzw, r19.xyzw, r20.wyzx +mul r20.xyzw, r17.yxyy, cb0[214].ywzx +mad r20.y, r20.y, l(0.500000), r20.x +mul r1.xy, r17.yxyy, cb0[214].wyww +mad r20.x, r1.y, l(0.375000), r1.x +add r18.xyzw, r18.xyzw, r20.wyzx +mul r20.xyzw, r17.yxyy, cb0[215].ywzx +mad r20.y, r20.y, l(0.500000), r20.x +mul r1.xy, r17.yxyy, cb0[215].wyww +mad r20.x, r1.y, l(0.375000), r1.x +add r17.xyzw, r20.wyzx, r21.xyzw +ge r1.xy, r5.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r1.y, r1.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r20.xyzw, r5.xyxx, t16.xyzw, s1, l(0.000000) + lt r21.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r20.xyzw| + or r1.xy, r21.zwzz, r21.xyxx + or r0.z, r1.y, r1.x + if_nz r0.z + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mov r1.x, l(1.000000) + mov r1.y, r0.z + mov r2.z, l(0) + loop + ge r3.w, l(4.600000), r1.y + breakc_nz r3.w + iadd r3.w, r2.z, l(1) + mul r5.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r1.xy, r5.xyxx + mov r2.z, r3.w + continue + endloop + mul r20.xyzw, r1.xxxx, r20.xyzw + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb7[3].x, cb7[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r1.x, r0.z, l(0.00390625000) + mov r1.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r1.xy, r1.xyxx, t15.xyzw, s1, l(0.000000) + mad r1.xy, r1.xyxx, cb7[2].xyxx, cb7[2].zwzz + mul r21.x, r1.x, l(3.54490781) + mul r21.yzw, r1.yyyy, r20.yyzw + mul r0.z, r20.x, l(0.406976730) + exp r0.z, r0.z + mul r20.xyzw, r0.zzzz, r21.xyzw + mov r21.xyzw, r20.xyzw + mov r0.z, l(0) + loop + uge r1.x, r0.z, r2.z + breakc_nz r1.x + mul r22.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r22.xyzw, r21.xyzw + dp2 r1.y, r22.yxyy, r21.xyxx + dp2 r3.w, r22.zxzz, r21.xzxx + dp2 r5.x, r22.wxww, r21.xwxx + iadd r5.y, r0.z, l(1) + mov r21.xy, r1.xyxx + mov r21.z, r3.w + mov r21.w, r5.x + mov r0.z, r5.y + continue + endloop + mul r20.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r21.xyzw, r19.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r20.xyzw, r21.xyzw + dp2 r1.x, r20.yxyy, r21.xyxx + dp2 r1.y, r20.zxzz, r21.xzxx + dp2 r2.z, r20.wxww, r21.xwxx + mul r21.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r3.w, r20.xyzw, r21.xyzw + dp2 r5.x, r20.yxyy, r21.xyxx + dp2 r5.y, r20.zxzz, r21.xzxx + dp2 r5.w, r20.wxww, r21.xwxx + mul r21.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.w, r20.xyzw, r21.xyzw + dp2 r8.w, r20.yxyy, r21.xyxx + dp2 r9.w, r20.zxzz, r21.xzxx + dp2 r10.w, r20.wxww, r21.xwxx + mul r19.w, r0.z, l(0.886226952) + mul r19.x, r2.z, l(-1.02332675) + mul r19.yz, r1.xxyx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r18.w, r3.w, l(0.886226952) + mul r18.xyz, r5.wxyw, l(-1.02332675, -1.02332675, 1.02332675, 0.000000) + mul r17.w, r7.w, l(0.886226952) + mul r17.x, r10.w, l(-1.02332675) + mul r17.y, r8.w, l(-1.02332675) + mul r17.z, r9.w, l(1.02332675) + endif +endif +mul r5.xyw, r16.xxxx, r19.xyxz +dp3 r0.z, r5.xywx, r4.xyzx +add r0.z, r19.w, r0.z +max r19.x, r0.z, l(0.000000) +mul r5.xyw, r16.yyyy, r18.xyxz +dp3 r0.z, r5.xywx, r4.xyzx +add r0.z, r18.w, r0.z +max r19.y, r0.z, l(0.000000) +mul r5.xyw, r16.zzzz, r17.xyxz +dp3 r0.z, r5.xywx, r4.xyzx +add r0.z, r17.w, r0.z +max r19.z, r0.z, l(0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.x, r12.w, l(0.001000) +log r1.x, r1.x +mad r1.x, -r1.x, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.x +mul r1.xy, r2.xyxx, cb1[0].wwww +round_ni r1.xy, r1.xyxx +add r2.z, |r2.w|, -cb1[2].y +round_ni r2.z, r2.z +add r3.w, l(-1.000000), cb1[1].x +max r5.x, r2.z, l(0.000000) +min r3.w, r3.w, r5.x +ge r2.z, r3.w, r2.z +mad r1.x, r1.y, cb1[0].x, r1.x +ftoi r1.x, r1.x +iadd r1.x, r1.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx +ftoi r1.y, r3.w +iadd r1.y, r1.y, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r1.y, l(0), t0.xxxx +and r1.x, r1.y, r1.x +and r1.x, r1.x, r2.z +mul r5.xyw, r19.xyxz, cb0[111].xxxx +dp3 r1.y, r5.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r6.w, l(1.000000) +mov r4.w, l(1.000000) +mov r5.xyw, l(0,0,0,0) +mov r2.z, l(1.000000) +mov r3.w, r1.x +mov r7.w, l(0) +loop + lt r8.w, l(0.010000), r2.z + ine r9.w, r3.w, l(0) + and r9.w, r8.w, r9.w + if_nz r9.w + firstbit_lo r9.w, r3.w + ishl r10.w, l(1), r9.w + xor r3.w, r3.w, r10.w + ishl r9.w, r9.w, l(3) + dp4 r16.x, cb1[r9.w + 6].xyzw, r6.xyzw + dp4 r16.y, cb1[r9.w + 7].xyzw, r6.xyzw + dp4 r16.z, cb1[r9.w + 8].xyzw, r6.xyzw + ge r17.xyz, cb1[r9.w + 5].xyzx, |r16.xyzx| + and r10.w, r17.y, r17.x + and r10.w, r17.z, r10.w + if_nz r10.w + mul r10.w, l(0.100000), cb1[r9.w + 5].x + mul r17.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r18.xyz, -|r16.xyzx|, cb1[r9.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb1[r9.w + 9].xyzx + eq r11.w, l(1.000000), cb1[r9.w + 10].x + if_nz r11.w + dp3 r20.x, cb1[r9.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb1[r9.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb1[r9.w + 8].xyzx, r15.xyzx + add r21.xyz, -r16.xyzx, cb1[r9.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r16.xyzx, -cb1[r9.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r11.w, r21.y, r21.x + min r11.w, r21.z, r11.w + mad r16.xyz, r20.xyzx, r11.wwww, r16.xyzx + else + mov r16.xyz, r15.xyzx + endif + dp3 r11.w, r16.xyzx, r16.xyzx + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r21.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r11.w, r16.xyzx, r20.xyzx + div r16.xyz, r16.xyzx, r11.wwww + lt r11.w, r16.z, l(0.000000) + add r16.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r16.zw, r16.zzzw, r20.xxxy + movc r16.xy, r11.wwww, r16.zwzz, r16.xyxx + dp4 r11.w, cb1[r9.w + 4].xyzw, r4.xyzw + max r11.w, r11.w, l(0.000000) + max r11.w, r11.w, l(0.000100) + min r12.w, r18.z, r18.y + min r12.w, r12.w, r18.x + add r13.x, r17.y, r17.x + mad r13.x, r17.z, r17.z, r13.x + mad r10.w, r10.w, r10.w, -r13.x + mul r10.w, r10.w, cb1[r9.w + 9].x + mul r10.w, r10.w, cb1[r9.w + 9].x + add r13.x, l(1.000000), -cb1[r9.w + 10].y + mul r10.w, r10.w, r13.x + mul r10.w, r10.w, l(100.000000) + mad_sat r10.w, r12.w, cb1[r9.w + 10].y, r10.w + mul r12.w, r10.w, cb1[r9.w + 10].w + mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r16.xy, r16.xyxx, cb1[1].wwww, cb1[2].wwww + mov r16.z, cb1[r9.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s3, r0.z + mul r16.xyz, r16.xyzx, cb1[r9.w + 9].wwww + div r13.x, r1.y, r11.w + min r13.x, |r13.x|, l(1.000000) + mad r13.x, r13.x, l(2.000000), r1.y + add r11.w, r11.w, l(2.000000) + div r11.w, r13.x, r11.w + add r11.w, r11.w, l(-1.000000) + mad r11.w, r11.w, cb0[112].w, l(1.000000) + mul r16.xyz, r11.wwww, r16.xyzx + mul r16.xyz, r12.wwww, r16.xyzx + mad r5.xyw, r16.xyxz, r2.zzzz, r5.xyxw + mad r9.w, -r10.w, cb1[r9.w + 10].w, l(1.000000) + mul r2.z, r2.z, r9.w + endif + mov r7.w, l(-1) + continue + else + mov r7.w, r8.w + break + endif + mov r7.w, r8.w +endloop +if_nz r7.w + dp3 r1.x, r15.xyzx, r15.xyzx + rsq r1.x, r1.x + mul r15.xyz, r1.xxxx, r15.xyzx + lt r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r17.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r16.xyz, -r16.xyzx, r17.xyzx + itof r16.xyz, r16.xyzx + dp3 r1.x, r15.xyzx, r16.xyzx + div r15.xyz, r15.xyzx, r1.xxxx + lt r1.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r16.xxxy + movc r15.xy, r1.xxxx, r15.zwzz, r15.xyxx + mov r4.w, l(1.000000) + dp4 r1.x, cb1[3].xyzw, r4.xyzw + max r1.x, r1.x, l(0.000000) + max r1.x, r1.x, l(0.000100) + mad r4.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r4.xy, r4.xyxx, cb1[1].wwww, cb1[2].wwww + mov r4.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r4.xyz, r4.xyzx, t5.xyzw, s3, r0.z + div r0.z, r1.y, r1.x + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.y + add r1.x, r1.x, l(2.000000) + div r0.z, r0.z, r1.x + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r4.xyz, r0.zzzz, r4.xyzx + mad r5.xyw, r4.xyxz, r2.zzzz, r5.xyxw +endif +mul r4.xyz, r5.xywx, cb0[112].zzzz +mul r4.xyz, r4.xyzx, cb0[111].yyyy +if_nz r1.w + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r1.xyw, v1.xyxx, t2.xywz, s1, cb0[108].x + add r2.z, -r0.z, l(1.000000) + mul r5.xyw, r2.zzzz, r4.xyxz + mad r4.xyz, r1.xywx, r0.zzzz, r5.xywx +endif +mul r1.xyw, r3.xyxz, r19.xyxz +mul r1.xyw, r1.xyxw, cb0[111].xxxx +add r0.z, -r1.z, l(1.000000) +div r0.z, r0.z, r1.z +mul r3.xyz, r0.zzzz, r11.xyzx +mad r3.xyz, r3.xyzx, r13.yzwy, r13.yzwy +mul r3.xyz, r3.xyzx, r4.xyzx +mul r3.xyz, r12.xyzx, r3.xyzx +mad r1.xyz, r1.xywx, r14.xyzx, r3.xyzx +add r1.xyz, r1.xyzx, r9.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r6.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r5.z, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.z, r0.z, l(-1.442695) +exp r2.z, r2.z +add r2.z, -r2.z, l(1.000000) +div r0.z, r2.z, r0.z +mad r2.z, r6.y, cb0[156].w, cb0[158].w +mul r2.z, r2.z, l(1.442695) +exp r2.z, r2.z +mul r0.z, r0.z, r2.z +mul r0.z, r0.z, -r1.w +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r10.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.z +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r10.xyzx, -r8.xyzx + add r2.z, r6.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.w + mul r0.x, r0.x, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z + mul r4.z, r0.x, r3.w + mad r4.w, r4.z, r2.z, cb0[44].y + mad r2.z, -r4.z, r2.z, r2.z + mul r4.z, r2.z, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.z, r2.z, cb0[162].x + max r2.z, r2.z, l(-127.000000) + add r5.x, r4.w, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.y, l(5.960464478E-08), |r4.z| + exp r5.w, -r4.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r5.y, r5.w, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r5.y, l(5.960464478E-08), |r2.z| + exp r5.w, -r2.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r2.z + mad r2.z, -r2.z, l(0.240226507), l(0.693147182) + movc r2.z, r5.y, r5.w, r2.z + mul r2.z, r2.z, r4.w + mad r2.z, r5.x, r4.z, r2.z + mad r0.x, -r0.x, r3.w, l(1.000000) + mul r0.x, r5.z, r0.x + mul r0.x, r0.x, r2.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r5.zzzz, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy + mul r2.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r2.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r2.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r2.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r2.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r2.xyzw, r0.yyyy, r2.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r2.xyz, r4.xyzx, r2.wwww, r2.xyzx + mul r0.x, r0.x, r2.w +else + add r0.y, r6.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r5.z, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r5.zzzz, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r2.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r3.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r2.xyzx +mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r7.xyzx, r7.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r6.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t27.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x99725481.cso b/src/games/endfield/deferred-lighting/0x99725481.cso new file mode 100644 index 0000000000000000000000000000000000000000..7e0350bf93fd088c81f2947e77f926c35e6d5d3a GIT binary patch literal 60512 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm new file mode 100644 index 000000000..8dceaeed0 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm @@ -0,0 +1,1979 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 23:51:02 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[5], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB7[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_sampler s5, mode_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture2d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture3d (float,float,float,float) t23 +dcl_resource_texture3d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture2d (float,float,float,float) t27 +dcl_resource_texture2d (float,float,float,float) t28 +dcl_resource_texture3d (float,float,float,float) t29 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 39 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t26.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t27.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r2.xyw, r1.wwww, r3.xyxz +utof r4.xy, r0.xyxx +mul r4.zw, v0.xxxy, cb0[82].zzzw +mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r5.zw, r5.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.yyyy, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw +mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r3.w, r5.y, cb0[1].z +mad r3.w, cb0[0].z, r5.x, r3.w +mad r3.w, cb0[2].z, r5.z, r3.w +add r3.w, r3.w, cb0[3].z +eq r6.x, l(0.000000), cb0[86].w +add r6.yzw, -r5.xxyz, cb0[44].xxyz +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r8.xyz, r6.xxxx, r6.yzwy, r7.xyzx +dp3 r6.x, r8.xyzx, r8.xyzx +max r7.w, r6.x, l(9.999999939E-09) +rsq r7.w, r7.w +mul r9.xyz, r7.wwww, r8.xyzx +mul r6.x, r6.x, r7.w +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r10.xy, v1.xyxx, t25.xyzw, s1, cb0[108].x +else + mov r10.xy, l(1.000000,1.000000,0,0) +endif +lt r10.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy +if_nz r10.z + add r9.w, |r2.y|, |r2.x| + add r9.w, |r2.w|, r9.w + div r9.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w + mul r11.xyz, |r2.xywx|, r9.wwww + mul r12.xyz, r5.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r9.w, r12.xyzx, t10.yzwx, s2, l(0.000000) + mul r12.xyzw, r11.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) + add r11.xyw, r12.zwzz, r12.xxxy + mad r11.xyz, r11.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r11.xywx + mad r10.z, r9.w, l(2.000000), l(-1.000000) + mul r11.xyz, r10.zzzz, r11.xyzx + mov r10.z, |r2.y| + add r10.z, r10.z, l(-0.700000) + mul_sat r10.z, r10.z, l(4.000000) + mad r11.w, r10.z, l(-2.000000), l(3.000000) + mul r10.z, r10.z, r10.z + mul r10.z, r10.z, r11.w + add r11.w, -cb0[229].z, cb0[229].y + mad r10.z, r10.z, r11.w, cb0[229].z + mul r11.xyz, r10.zzzz, r11.xyzx +else + mov r11.xyz, l(0,0,0,0) + mov r9.w, l(0) +endif +mad r10.z, -r3.y, r1.w, l(-0.200000) +if_nz r10.w + mul r12.xyz, r2.xywx, cb0[233].zzzz + mul r13.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r12.xyz, r12.xyzx, cb0[225].xxxx, r13.xyzx + max r10.w, -r2.y, l(0.000000) + min r10.w, r10.w, l(0.900000) + add r10.w, -r10.w, l(1.000000) + mul_sat r11.w, r10.z, l(-10.000000) + mad r12.w, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.w + max r11.w, r11.w, l(0.100000) + min r11.w, r11.w, l(1.000000) + mul r10.w, r10.w, r11.w + mad r12.xyz, r12.xyzx, r10.wwww, r5.xyzx + add r11.xyz, r11.xyzx, r12.xyzx + mul r12.xyz, r11.yyyy, cb5[1].xyzx + mad r11.xyw, cb5[0].xyxz, r11.xxxx, r12.xyxz + mad r11.xyz, cb5[2].xyzx, r11.zzzz, r11.xywx + add r11.xyz, r11.xyzx, cb5[3].xyzx + mad r12.x, r11.x, l(0.500000), cb5[4].x + mad r10.w, r11.y, l(0.500000), l(0.500000) + add r12.z, -r10.w, cb5[4].y + add r11.xy, r12.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r10.w, r11.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r10.w, r11.xyxx, t9.xxxx, s5, r10.w +else + mov r10.w, l(1.000000) +endif +mov_sat r11.x, r2.y +add r11.y, l(1.000000), -cb0[230].w +mad r11.x, r11.x, r11.y, cb0[230].w +add r11.yz, r5.xxzx, -cb0[44].xxzx +max r11.y, |r11.z|, |r11.y| +mul r11.z, r10.w, r11.x +mul r11.w, l(0.0500000119), cb0[222].w +mad r12.x, -cb0[222].w, l(0.700000), r11.y +div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul_sat r11.w, r11.w, r12.x +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mad r10.w, -r11.x, r10.w, l(1.000000) +mad r10.w, r11.w, r10.w, r11.z +ge r11.z, r1.z, l(0.045000) +and r11.z, r11.z, l(0x3f800000) +mul r11.z, r10.w, r11.z +deriv_rty_coarse r12.xyz, r5.xyzx +deriv_rtx_coarse r13.xyz, r5.zxyz +mul r14.xyz, r12.xyzx, r13.xyzx +mad r12.xyz, r12.zxyz, r13.yzxy, -r14.xyzx +dp3 r11.w, r12.xyzx, r12.xyzx +max r11.w, r11.w, l(1.175494351E-38) +rsq r11.w, r11.w +mul r12.yzw, r11.wwww, r12.xxzy +mov_sat r13.x, r12.y +add r13.y, r13.x, l(-0.988000) +mul_sat r13.y, r13.y, l(1000.012878) +mad r13.z, r13.y, l(-2.000000), l(3.000000) +mul r13.y, r13.y, r13.y +mul r13.y, r13.y, r13.z +add r13.z, |r3.w|, l(-15.000000) +mul_sat r13.z, r13.z, l(0.015000) +add r13.z, -r13.z, l(1.000000) +lt r13.w, l(0.000488281250), cb0[223].y +mad r14.x, cb0[223].z, l(0.300000), l(0.687000) +add r13.x, r13.x, -r14.x +mul_sat r13.x, r13.x, l(-1000.012878) +mad r14.x, r13.x, l(-2.000000), l(3.000000) +mul r13.x, r13.x, r13.x +mul r13.x, r13.x, r14.x +mad r11.w, r12.x, r11.w, l(0.500000) +mul_sat r11.w, r11.w, l(2.500000) +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mul r11.w, r11.w, r13.x +lt r11.w, l(0.000488281250), r11.w +and r11.w, r11.w, r13.w +if_nz r11.w + mul r13.xw, |r12.zzzw|, |r12.zzzw| + add r11.w, r13.w, r13.x + div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w + mul r13.xw, r11.wwww, r13.xxxw + mul r14.xyz, r12.ywzy, l(0.000000, 1.000000, 0.000000, 0.000000) + mad r14.xyz, r12.zywz, l(1.000000, 0.000000, 0.000000, 0.000000), -r14.xyzx + dp2 r11.w, r14.xyxx, r14.xyxx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + mul r15.xyz, r12.ywzy, r14.xyzx + mad r15.xyz, r14.zxyz, r12.wzyw, -r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + add r16.xyz, r5.xyzx, r5.xyzx + round_ni r16.xyz, r16.xyzx + add r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + add r14.zw, r16.yyyy, r16.xxxz + dp2 r11.w, r14.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + lt r14.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.wwwz + lt r16.xy, r12.wzww, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r14.zw, r14.zzzw, -r16.xxxy + itof r14.zw, r14.zzzw + mul r16.xy, r5.xzxx, r14.zwzz + mul r12.x, r9.w, r11.w + add r14.z, -r11.w, l(1.000000) + mad r14.z, r14.z, l(0.700000), l(0.300000) + mul r17.xy, r12.xxxx, l(3.000000, 6.000000, 0.000000, 0.000000) + mad r12.x, -cb0[223].x, r14.z, r17.x + frc r18.x, r12.x + mad r12.x, cb0[223].x, l(-0.300000), r17.y + frc r18.y, r12.x + mul r11.w, r11.w, l(5.000000) + round_ni r11.w, r11.w + add r17.x, r11.w, l(1.000000) + mul r17.y, r5.y, r17.x + mov r5.w, l(0.100000) + mul r14.zw, r5.yyyw, r17.xxxy + frc r14.zw, r14.zzzw + add r17.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + add r17.xy, r14.zwzz, -r17.xyxx + add r17.xy, r17.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) + mul_sat r17.xy, r17.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) + mad r17.zw, r17.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) + mul r17.xy, r17.xyxx, r17.xyxx + mul r17.xy, r17.xyxx, r17.zwzz + add r17.zw, -r14.zzzw, r18.xxxy + max r17.xy, r17.zwzz, r17.xyxx + add r18.zw, -r18.xxxy, r14.zzzw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) + mul r18.zw, r18.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) + max r18.zw, r18.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r18.zw, r18.zzzw, r18.zzzw + mul r18.zw, r18.zzzw, r19.xxxy + add r17.zw, r17.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + max r17.zw, r17.zzzw, r18.zzzw + ge r14.zw, r14.zzzw, r18.xxxy + and r14.zw, r14.zzzw, l(0, 0, 0x3f800000, 0x3f800000) + add r17.zw, -r17.xxxy, r17.zzzw + mad r14.zw, r14.zzzw, r17.zzzw, r17.xxxy + mad r11.w, r14.z, r14.z, l(-0.400000) + mul_sat r11.w, r11.w, l(1.66666663) + mad r12.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.x + mad r12.x, r14.w, l(2.000000), l(-1.000000) + mul r14.z, r11.w, l(0.010000) + mul r17.x, r12.x, r14.z + mad r17.x, r9.w, l(0.100000), r17.x + mul r14.z, r11.w, r14.z + mad r14.z, r14.z, r12.x, r9.w + mul r17.y, r9.w, r14.z + mov r16.z, r5.y + mad r17.zw, r16.yyyz, cb0[224].xxxy, r17.xxxy + sample_b_indexable(texture2d)(float,float,float,float) r18.xyzw, r17.zwzz, t11.xyzw, s2, cb0[108].x + mov r16.w, -r16.x + mad r16.xy, r16.wzww, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t11.xyzw, s2, cb0[108].x + mul r16.xyzw, r13.wwww, r16.xyzw + mad r16.xyzw, r18.xyzw, r13.xxxx, r16.xyzw + mad r13.xw, r16.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r9.w, r11.w, l(2.000000), l(-1.000000) + mad_sat r9.w, r9.w, l(0.800000), r14.w + mad r14.z, -r16.w, l(0.500000), l(1.000000) + mad r9.w, r9.w, r14.z, l(-0.700000) + mul_sat r9.w, r9.w, l(3.33333325) + mad r14.z, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r14.z + mul r12.x, r12.x, r16.w + mad_sat r11.w, r12.x, l(0.500000), r11.w + mad r11.w, r11.w, l(0.500000), l(0.100000) + max r9.w, r9.w, r11.w + add r11.w, -r9.w, l(1.000000) + max r11.w, r11.w, l(0.000000) + mul r12.x, r11.w, r11.w + mul r12.x, r12.x, r12.x + mul r11.w, r11.w, r12.x + ge r11.w, r16.z, r11.w + and r11.w, r11.w, l(0x3f800000) + mad r9.w, r9.w, l(0.700000), l(0.200000018) + mad r9.w, r11.w, r9.w, l(0.100000) + mul r9.w, r16.z, r9.w + mul r9.w, r9.w, cb0[223].y + mul r9.w, r9.w, l(0.330000) + mul r11.w, r11.z, cb0[222].x + mul r11.w, r13.z, r11.w + mul r9.w, r9.w, r11.w + dp2 r11.w, r13.xwxx, r13.xwxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r11.w, r11.w, l(0.000488281250) + mul_sat r12.x, r9.w, l(10.000000) + mad r14.z, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.x, r12.x, r14.z + mul r12.x, r12.x, cb0[223].y + mul r16.xy, r12.xxxx, r13.xwxx + add r12.x, l(-1.500000), cb0[223].y + mul_sat r12.x, r12.x, l(0.666666687) + mad r13.x, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.x, r12.x, r13.x + mul r13.x, r12.x, l(-0.200000) + mad r11.w, -r12.x, l(-0.200000), r11.w + mad r16.z, r9.w, r11.w, r13.x + dp3 r11.w, r16.xyzx, r16.xyzx + max r11.w, r11.w, l(1.175494351E-38) + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + mov r17.x, r14.y + mov r17.y, r15.x + mov r17.z, r12.z + dp3 r17.x, r17.xyzx, r16.xyzx + mov r15.w, r12.y + dp2 r17.y, r15.ywyy, r16.yzyy + mov r12.y, r14.x + mov r12.z, r15.z + dp3 r17.z, r12.yzwy, r16.xyzx + mad r12.xyz, -r3.xyzx, r1.wwww, r17.xyzx + mad r12.xyz, r9.wwww, r12.xyzx, r2.xywx + mul r9.w, r9.w, cb0[223].y + mul r9.w, r9.w, l(0.330000) +else + mov r12.xyz, r2.xywx + mov r9.w, l(0) +endif +lt r13.xw, l(0.000488281250, 0.000000, 0.000000, 0.000488281250), cb0[227].yyyw +or r11.w, r13.w, r13.x +lt r13.x, l(0.000488281250), r13.y +and r11.w, r11.w, r13.x +if_nz r11.w + mul r14.xyz, r2.ywxy, l(1.000000, 0.000000, 0.000000, 0.000000) + mad r14.xyz, r2.xywx, l(0.000000, 0.000000, 1.000000, 0.000000), -r14.xyzx + dp2 r11.w, r14.xzxx, r14.xzxx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + mul r15.xyz, r2.ywxy, r14.xyzx + mad r15.xyz, r14.zxyz, r2.wxyw, -r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xzyx + mul r13.xw, -r5.xxxz, cb0[228].xxxy + frc r14.yw, r13.xxxw + round_ni r13.xw, r13.xxxw + dp2 r11.w, r13.xwxx, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + add r13.x, r11.w, cb0[227].x + frc r13.x, r13.x + mul r13.w, cb0[228].z, cb0[228].z + mul r13.x, r13.w, r13.x + round_ni r13.x, r13.x + div r13.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z + mad r16.xy, -r5.xzxx, cb0[228].xyxx, cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r16.xyxx, t12.zwxy, s2, cb0[108].x + mad r17.xy, -r5.xzxx, cb0[228].xyxx, -cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r17.xyxx, t12.xyzw, s2, cb0[108].x + mul r16.xyzw, r16.xyzw, cb0[227].wwww + mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww + ge r11.w, l(0.500000), r11.w + and r11.w, r11.w, l(0x3f800000) + add r17.xy, -r14.ywyy, r14.wyww + mad r14.yw, r11.wwww, r17.xxxy, r14.yyyw + div r11.w, r13.x, cb0[228].z + ge r17.x, r11.w, -r11.w + frc r11.w, |r11.w| + movc r11.w, r17.x, r11.w, -r11.w + mul r11.w, r11.w, cb0[228].z + mul r17.x, r11.w, r13.w + add r17.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz + mul r11.w, r13.w, r13.x + round_ni r11.w, r11.w + add r11.w, -r11.w, r17.w + mul r17.y, r11.w, r13.w + mad r13.xw, r14.yyyw, r13.wwww, r17.xxxy + frc r13.xw, r13.xxxw + sample_b_indexable(texture2d)(float,float,float,float) r13.xw, r13.xwxx, t12.xzwy, s1, cb0[108].x + mul r13.xw, r13.xxxw, cb0[227].yyyy + mad r13.xw, r13.xxxw, l(2.000000, 0.000000, 0.000000, 2.000000), -cb0[227].yyyy + add r14.yw, r16.zzzw, r16.xxxy + add r16.xy, r13.xwxx, r14.ywyy + dp2 r11.w, r16.xyxx, r16.xyxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r16.z, r11.w, l(0.000488281250) + dp3 r11.w, r16.xyzx, r16.xyzx + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + mov r15.w, r2.x + dp2 r18.x, r15.xwxx, r16.yzyy + mov r19.x, r14.z + mov r19.y, r15.z + mov r19.z, r2.y + dp3 r18.y, r19.xyzx, r16.xyzx + mov r15.x, r14.x + mov r15.z, r2.w + dp3 r18.z, r15.xyzx, r16.xyzx + mul r11.z, r11.z, cb0[222].x + mul r11.z, r13.y, r11.z + max r11.w, l(0.000488281250), cb0[228].w + mov_sat r17.z, r17.z + add r13.x, -r11.w, r17.z + add r11.w, r2.z, -r11.w + div r13.x, l(1.000000, 1.000000, 1.000000, 1.000000), r13.x + mul_sat r11.w, r11.w, r13.x + mad r13.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r13.x + mul r11.z, r11.w, r11.z + mul r11.z, r13.z, r11.z + mad r3.xyz, -r3.xyzx, r1.wwww, r18.xyzx + mad r12.xyz, r11.zzzz, r3.xyzx, r2.xywx +endif +min r1.w, r10.y, r10.x +mul r3.x, r11.x, cb0[230].z +mad r3.y, -cb0[230].z, r11.x, l(1.000000) +mad r3.x, r10.w, r3.y, r3.x +mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r3.z, r11.y, -cb0[222].w +div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y +mul_sat r3.y, r3.y, r3.z +mad r3.z, r3.y, l(-2.000000), l(3.000000) +mul r3.y, r3.y, r3.y +mul r3.y, r3.y, r3.z +add r3.z, -r3.x, cb0[230].y +mad r3.x, r3.y, r3.z, r3.x +add r3.x, -r3.x, l(1.000000) +mul r3.y, r3.x, r10.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r3.z, -r2.z, l(1.000000) +mad_sat r10.w, r3.z, cb0[222].z, cb0[222].y +mad_sat r10.w, r9.w, cb0[224].z, r10.w +add r11.x, -r10.w, l(1.000000) +mad r10.w, r1.x, r11.x, r10.w +mul_sat r10.z, r10.z, l(3.33333325) +mad r11.x, r10.z, l(-2.000000), l(3.000000) +mul r10.z, r10.z, r10.z +mad r10.z, -r11.x, r10.z, l(1.000000) +mul r11.x, r10.w, cb0[222].x +add r11.y, -r1.x, l(1.000000) +mul r11.x, r11.y, r11.x +mul r11.x, r10.z, r11.x +mad r11.x, r11.x, l(-0.750000), l(1.000000) +mad r10.w, r10.w, l(-0.299999952), l(0.900000) +sqrt r11.y, r3.z +add r10.w, r10.w, r11.y +add_sat r10.w, r10.w, l(-0.600000) +max r10.w, r3.z, r10.w +min r10.w, r10.w, l(0.990000) +add_sat r11.y, l(2.000000), -cb0[222].x +mul r11.y, r11.y, cb0[222].x +mul r10.z, r10.z, r11.y +mad r3.x, -r10.x, r3.x, l(1.000000) +mul r3.x, r3.x, r10.z +add r10.x, -r3.z, r10.w +mad r3.x, r3.x, r10.x, r3.z +add r3.x, -r3.x, l(1.000000) +mul_sat r3.z, r9.w, l(20.000000) +mad r9.w, r3.z, l(-2.000000), l(3.000000) +mul r3.z, r3.z, r3.z +mul r3.z, r3.z, r9.w +mad r3.z, r3.z, l(-0.900000), l(1.000000) +mul r9.w, r3.z, r3.x +add r10.x, r10.y, l(-1.000000) +mad r10.x, r1.z, r10.x, l(1.000000) +add r10.y, -r1.z, l(1.000000) +movc r10.xy, r8.wwww, r10.xyxx, l(1.000000,1.000000,0,0) +min r1.z, r9.w, r10.x +mad r3.x, r3.x, r3.z, -r1.z +mad r1.z, r1.w, r3.x, r1.z +add r2.z, -r1.z, r2.z +mad r13.w, r3.y, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r10.xzw, r0.xyzz, t28.xwyz +min r1.z, r11.x, r10.y +add r2.z, -r1.z, r11.x +mad r1.z, r1.w, r2.z, r1.z +add r1.w, -r1.z, l(1.000000) +mad r1.z, r3.y, r1.w, r1.z +mul r3.xyz, r1.zzzz, r10.xzwx +mul r11.xyz, r1.xxxx, r3.xyzx +mad r10.xyz, r10.xzwx, r1.zzzz, -r11.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz +dp3 r2.z, r12.xyzx, r9.xyzx +max r11.x, r2.z, l(0.000000) +mul r3.y, r13.w, r13.w +mul r14.x, r11.x, r11.x +mul r14.z, r11.x, r14.x +mul r2.z, r3.y, r3.y +mul r3.z, r3.y, r2.z +mov r11.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r15.x, l(3.327070, 1.000000, 0.000000, 0.000000), r11.xyxx +dp2 r15.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r11.xzxx +mov r3.x, l(1.000000) +dp2 r8.w, r15.xyxx, r3.xyxx +mov r14.yw, l(0,9.044010,0,1.000000) +dp3 r15.x, l(3.596850, -1.367720, 1.000000, 0.000000), r14.xzwx +dp3 r15.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r14.xyzx +mov r16.x, l(5.565890) +mov r16.yz, r14.xxzx +dp3 r15.z, l(1.000000, 19.788601, -20.212299, 0.000000), r16.xyzx +dp3 r9.w, r15.xyzx, r3.xyzx +div r8.w, r8.w, r9.w +dp2 r15.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r11.xwxx +mov r14.x, l(1.296780) +mov r14.y, r11.x +dp2 r15.y, l(1.000000, -0.755907, 0.000000, 0.000000), r14.xyxx +dp2 r9.w, r15.xyxx, r3.xyxx +dp3 r15.x, l(2.923380, 59.418800, 1.000000, 0.000000), r14.yzwy +mov r14.xw, l(20.322500,0,0,121.563004) +dp3 r15.y, l(1.000000, -27.030199, 222.591995, 0.000000), r14.xyzx +dp3 r15.z, l(626.130005, 316.627014, 1.000000, 0.000000), r14.yzwy +dp3 r3.x, r15.xyzx, r3.xyzx +div r3.x, r9.w, r3.x +mad r11.yzw, r1.xxzw, r8.wwww, r3.xxxx +add r3.x, r3.x, r8.w +ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t7.xyzw +lt r0.z, l(0.001000), r14.x +if_nz r0.z + dp3 r0.z, -r9.xyzx, r12.xyzx + add r0.z, r0.z, r0.z + mad r15.xyz, r12.xyzx, -r0.zzzz, -r9.xyzx + dp3 r0.z, -cb3[0].xyzx, r15.xyzx + mad r16.xyz, cb3[0].xyzx, r0.zzzz, r15.xyzx + lt r0.z, r0.z, cb3[4].z + dp3 r3.z, r16.xyzx, r16.xyzx + max r3.z, r3.z, l(0.0000610351562) + rsq r3.z, r3.z + mul r16.xyz, r3.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb3[4].yyyy + mad r16.xyz, -cb3[0].xyzx, cb3[4].zzzz, r16.xyzx + dp3 r3.z, r16.xyzx, r16.xyzx + rsq r3.z, r3.z + mul r16.xyz, r3.zzzz, r16.xyzx + movc r15.xyz, r0.zzzz, r16.xyzx, r15.xyzx + mad r16.xyz, r8.xyzx, r7.wwww, r15.xyzx + dp3 r0.z, r16.xyzx, r16.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r16.xyz, r0.zzzz, r16.xyzx + dp3_sat r13.y, r15.xyzx, r12.xyzx + dp3_sat r0.z, r12.xyzx, r16.xyzx + min r13.z, r11.x, l(1.000000) + mad r3.z, r0.z, r2.z, -r0.z + mad r0.z, r3.z, r0.z, l(1.000000) + dp3_sat r3.z, r9.xyzx, r16.xyzx + add r3.z, -r3.z, l(1.000000) + mul r8.w, r3.z, r3.z + mul r8.w, r8.w, r8.w + mul r9.w, r3.z, r8.w + add r10.w, -r13.w, l(1.000000) + mad r14.z, -r10.w, l(0.383026), l(-0.0761947036) + mad r14.z, r10.w, r14.z, l(1.049970) + mad r10.w, r10.w, r14.z, l(0.409255) + min r10.w, r10.w, l(0.999000) + add r14.z, -r10.w, l(1.000000) + add r16.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx + mad r3.z, -r8.w, r3.z, l(1.000000) + mad r17.xyz, r1.xzwx, r3.zzzz, r9.wwww + mul r0.z, r0.z, r0.z + div r0.z, r2.z, r0.z + mad r18.xy, -r13.zyzz, r2.zzzz, r13.zyzz + mad r18.xy, r18.xyxx, r13.zyzz, r2.zzzz + sqrt r18.xy, r18.xyxx + mul r18.xy, r13.yzyy, r18.xyxx + add r2.z, r18.y, r18.x + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.z, r0.z, r2.z + mul r17.xyz, r0.zzzz, r17.xyzx + min r17.xyz, r17.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.xyzw, r13.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r18.xyxx, t13.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r18.zwzz, t13.yzxw, s1, l(0.000000) + mul r0.z, r0.z, r2.z + mul r0.z, r10.w, r0.z + div r0.z, r0.z, r14.z + mul r18.xyz, r16.xyzx, r16.xyzx + mul r18.xyz, r0.zzzz, r18.xyzx + mad r16.xyz, -r16.xyzx, r14.zzzz, l(1.000000, 1.000000, 1.000000, 0.000000) + div r16.xyz, r18.xyzx, r16.xyzx + add r16.xyz, r16.xyzx, r17.xyzx + mul r16.xyz, r16.xyzx, cb3[4].xxxx + max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r16.xyz, r16.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + dp3_sat r0.z, r15.xyzx, r2.xywx + mul r15.xyz, r0.zzzz, r10.xyzx + mad r15.xyz, r16.xyzx, r13.yyyy, r15.xyzx + mul r15.xyz, r15.xyzx, cb3[1].xyzx + mov r14.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r14.yzw, r14.xyxx, t8.wxyz, s1, cb0[108].x + add r0.z, -r14.x, l(1.000000) + mad r14.xyz, r15.xyzx, r14.yzwy, -r15.xyzx + mad r14.xyz, r0.zzzz, r14.xyzx, r15.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t14.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r14.xyz, r0.zzzz, r14.xyzx +else + mov r14.xyz, l(0,0,0,0) +endif +mul r13.yz, r4.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r13.yz, r13.yyzy +mad r0.z, r13.z, cb2[1].y, r13.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r2.z, -cb0[85].y, cb2[2].w, |r3.w| +round_ni r2.z, r2.z +add r3.z, l(-1.000000), cb2[1].w +max r8.w, r2.z, l(0.000000) +min r3.z, r3.z, r8.w +mul r8.w, r3.z, l(8.000000) +ftoi r8.w, r8.w +ge r2.z, r3.z, r2.z +iadd r3.z, r8.w, cb0[110].y +dp3 r8.w, -r9.xyzx, r12.xyzx +add r8.w, r8.w, r8.w +mad r15.xyz, r12.xyzx, -r8.wwww, -r9.xyzx +min r13.x, r11.x, l(1.000000) +add r8.w, -r13.w, l(1.000000) +mad r9.w, -r8.w, l(0.383026), l(-0.0761947036) +mad r9.w, r8.w, r9.w, l(1.049970) +mad r8.w, r8.w, r9.w, l(0.409255) +min r8.w, r8.w, l(0.999000) +add r9.w, -r8.w, l(1.000000) +add r16.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx +mad r13.yz, r13.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r10.w, r13.yzyy, t13.yzwx, s1, l(0.000000) +mad r17.xyz, -r16.xyzx, r9.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r18.w, l(1.000000) +mov r19.y, l(1.000000) +mov r20.z, r13.w +mov r21.xyz, l(0,0,0,0) +mov r11.x, l(1.000000) +mov r13.y, l(0) +loop + ilt r13.z, l(7), r13.y + breakc_nz r13.z + iadd r13.z, r0.z, r13.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.z, r13.z, l(0), t0.xxxx + iadd r14.w, r3.z, r13.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.w, r14.w, l(0), t0.xxxx + and r13.z, r13.z, r14.w + and r13.z, r2.z, r13.z + ishl r14.w, r13.y, l(5) + mov r22.xyz, l(0,0,0,0) + mov r15.w, r11.x + mov r16.w, r13.z + loop + breakc_z r16.w + firstbit_lo r17.w, r16.w + ishl r19.z, l(1), r17.w + xor r19.z, r16.w, r19.z + iadd r17.w, r14.w, r17.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r17.wwww, l(1, 3, 5, 6) + bfi r19.w, l(29), l(3), r17.w, l(7) + ftou r20.w, cb3[r23.z + 6].w + ieq r20.w, r20.w, l(1) + if_nz r20.w + add r18.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.w + 6].yxzy + ushr r26.xyz, cb3[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb3[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r20.w, r18.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r21.w, r18.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r18.x, r18.xyzw, r27.xyzw + max r18.y, |r20.w|, |r21.w| + max r18.x, |r18.x|, r18.y + mad r18.y, cb3[r19.w + 6].x, l(0.500000), l(0.500000) + add r18.x, -r18.y, r18.x + mad r18.y, -cb3[r19.w + 6].x, l(0.500000), l(0.500000) + div_sat r18.x, r18.x, r18.y + add r18.x, -r18.x, l(1.000000) + mul r18.x, r18.x, r18.x + else + mov r18.x, l(1.000000) + endif + lt r18.y, l(0.500000), cb3[r23.y + 6].z + lt r18.z, r18.x, l(0.001000) + or r18.z, r18.y, r18.z + if_nz r18.z + mov r16.w, r19.z + continue + endif + ishl r18.z, r17.w, l(3) + bfi r17.w, l(29), l(3), r17.w, l(2) + lt r20.w, cb3[r18.z + 6].w, l(1.500000) + if_nz r20.w + mad r20.w, cb3[r17.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r20.w, -|cb3[r17.w + 6].x| + add r24.y, -r24.x, cb3[r17.w + 6].y + add r20.w, -|r24.x|, l(1.000000) + add r20.w, -|r24.y|, r20.w + ge r21.w, cb3[r17.w + 6].x, l(0.000000) + max r22.w, r20.w, l(0.000488281250) + movc r24.z, r21.w, r22.w, -r22.w + dp3 r22.w, r24.xyzx, r24.xyzx + rsq r22.w, r22.w + mul r25.xyz, r22.wwww, r24.xyzx + add r26.xyz, -r5.xyzx, cb3[r23.x + 6].xyzx + dp3 r22.w, r26.xyzx, r26.xyzx + rsq r23.z, r22.w + mul r27.xyz, r23.zzzz, r26.xyzx + dp3_sat r19.x, r12.xyzx, r27.xyzx + ftoi r24.z, cb3[r19.w + 6].w + mul r28.xyz, r25.xyzx, cb3[r17.w + 6].zzzz + mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r30.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + ftou r25.w, cb3[r18.z + 6].w + and r25.w, r25.w, l(1) + ieq r26.w, r25.w, l(0) + not r26.w, r26.w + lt r27.w, l(0.000000), cb3[r17.w + 6].z + and r26.w, r26.w, r27.w + dp3 r27.w, r29.xyzx, r29.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r30.xyzx, r30.xyzx + sqrt r28.w, r28.w + dp3 r29.w, r12.xyzx, r29.xyzx + div r29.w, r29.w, r27.w + dp3 r30.w, r12.xyzx, r30.xyzx + div r30.w, r30.w, r28.w + add r29.w, r29.w, r30.w + mul_sat r31.x, r29.w, l(0.500000) + dp3 r29.w, r29.xyzx, r30.xyzx + mad r27.w, r27.w, r28.w, r29.w + mad r27.w, r27.w, l(0.500000), l(1.000000) + div r31.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w + movc r20.xy, r26.wwww, r31.xyxx, r19.xyxx + lt r27.w, cb3[r23.w + 6].w, l(0.000000) + if_nz r27.w + mul r27.w, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r27.w, r22.w, r27.w + mad r27.w, -r27.w, r27.w, l(1.000000) + max r27.w, r27.w, l(0.000000) + add r22.w, r22.w, l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + and r28.w, r26.w, l(0x3f800000) + add r29.w, r20.y, -r22.w + mad r22.w, r28.w, r29.w, r22.w + mul r27.w, r27.w, r27.w + mul r22.w, r22.w, r27.w + else + mul r30.xyz, r26.xyzx, cb3[r23.x + 6].wwww + dp3 r27.w, r30.xyzx, r30.xyzx + min r27.w, r27.w, l(1.000000) + add r27.w, -r27.w, l(1.000000) + log r27.w, r27.w + mul r27.w, r27.w, cb3[r23.w + 6].w + exp r27.w, r27.w + mul r22.w, r20.y, r27.w + endif + dp3 r20.y, r27.xyzx, -r25.xyzx + add r20.y, r20.y, -cb3[r17.w + 6].z + mul_sat r20.y, r20.y, cb3[r17.w + 6].w + mul r20.y, r20.y, r20.y + movc r20.y, r25.w, l(1.000000), r20.y + mul r20.y, r20.y, r22.w + not r22.w, r26.w + ige r25.x, r24.z, l(0) + and r22.w, r22.w, r25.x + if_nz r22.w + if_z r25.w + ishl r22.w, r24.z, l(2) + mul r25.xyz, r5.yyyy, cb6[r22.w + 33].xywx + mad r25.xyz, cb6[r22.w + 32].xywx, r5.xxxx, r25.xyzx + mad r25.xyz, cb6[r22.w + 34].xywx, r5.zzzz, r25.xyzx + add r25.xyz, r25.xyzx, cb6[r22.w + 35].xywx + div_sat r25.xy, r25.xyxx, r25.zzzz + mad r25.xy, r25.xyxx, cb6[r24.z + 0].zwzz, cb6[r24.z + 0].xyxx + else + ishl r22.w, r24.z, l(2) + dp3 r30.x, -r26.xyzx, cb6[r22.w + 32].xyzx + dp3 r30.y, -r26.xyzx, cb6[r22.w + 33].xyzx + dp3 r30.z, -r26.xyzx, cb6[r22.w + 34].xyzx + lt r22.w, |r30.x|, |r30.y| + and r22.w, r22.w, l(1) + dp2 r25.z, |r30.xyxx|, icb[r22.w + 0].xyxx + lt r25.z, r25.z, |r30.z| + movc r22.w, r25.z, l(2), r22.w + dp3 r25.z, r30.xyzx, icb[r22.w + 0].xyzx + lt r25.z, r25.z, l(0.000000) + bfi r22.w, l(31), l(1), r22.w, r25.z + ushr r25.z, r22.w, l(1) + dp3 r25.z, r30.xyzx, icb[r25.z + 0].xyzx + div r27.w, l(0.000244140625), cb6[r24.z + 0].w + add r27.w, -r27.w, l(0.500000) + utof r28.w, r22.w + ult r29.w, r22.w, l(2) + and r29.w, r29.w, l(2) + dp2 r29.w, r30.xzxx, icb[r29.w + 0].xzxx + mul r29.w, r29.w, icb[r22.w + 4].z + div r29.w, r29.w, |r25.z| + mad r28.w, r29.w, r27.w, r28.w + add r28.w, r28.w, l(0.500000) + mul_sat r31.x, r28.w, l(0.166666672) + iadd r28.w, l(-1), icb[r22.w + 4].y + dp2 r28.w, r30.yzyy, icb[r28.w + 0].xyxx + mul r22.w, r28.w, icb[r22.w + 4].w + div r22.w, r22.w, |r25.z| + mad_sat r31.y, -r22.w, r27.w, l(0.500000) + mad r25.xy, r31.xyxx, cb6[r24.z + 0].zwzz, cb6[r24.z + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r22.w, r25.xyxx, t15.yzwx, s1, l(0.000000) + mul r20.y, r20.y, r22.w + endif + lt r22.w, l(0.000000), r20.y + if_nz r22.w + if_z r25.w + ftoi r24.z, cb3[r23.y + 6].x + else + add r25.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + lt r30.xyz, |r25.yzzy|, |r25.xxyx| + and r25.w, r30.y, r30.x + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ushr r27.w, cb3[r17.w + 6].w, l(24) + ubfe r30.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r17.w + 6].wwww + movc r25.x, r25.x, r27.w, r30.x + and r27.w, l(255), cb3[r17.w + 6].w + movc r25.y, r25.y, r30.y, r27.w + ubfe r27.w, l(8), l(8), cb3[r23.y + 6].x + and r28.w, l(255), cb3[r23.y + 6].x + movc r25.z, r25.z, r27.w, r28.w + movc r25.y, r30.z, r25.y, r25.z + movc r25.x, r25.w, r25.x, r25.y + ilt r25.y, r25.x, l(80) + movc r24.z, r25.y, r25.x, l(-1) + endif + ishl r25.x, r24.z, l(2) + mad r25.yzw, r27.xxyz, cb4[r24.z + 288].xxxx, r5.xxyz + mul r27.w, l(5.000000), cb4[r24.z + 288].y + mad r25.yzw, r12.xxyz, r27.wwww, r25.yyzw + mul r30.xyzw, r25.zzzz, cb4[r25.x + 65].xyzw + mad r30.xyzw, cb4[r25.x + 64].xyzw, r25.yyyy, r30.xyzw + mad r30.xyzw, cb4[r25.x + 66].xyzw, r25.wwww, r30.xyzw + add r25.xyzw, r30.xyzw, cb4[r25.x + 67].xyzw + div r25.xyz, r25.xyzx, r25.wwww + ge r30.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ge r31.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r32.xy, -cb4[r24.z + 344].xyxx, cb4[r24.z + 344].zwzz + mad r25.xy, r25.xyxx, r32.xyxx, cb4[r24.z + 344].xyxx + mad r32.xy, r25.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r32.xy, r32.xyxx + mad r25.xy, r25.xyxx, cb4[400].zwzz, -r32.xyxx + add r33.xyzw, r25.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r34.xyzw, r33.xxzz, r33.xxzz + add r32.zw, -r25.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r33.xz, r25.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r35.xy, r25.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r36.xy, r32.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r35.xy, -r35.xyxx, r35.xyxx, r33.ywyy + add r35.xy, r35.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r35.xy, r35.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r34.xz, r34.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r25.xy, r34.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r25.xyxx + mul r37.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r25.xy, -r33.xzxx, r33.xzxx, r32.zwzz + add r25.xy, r25.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r38.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xy, r33.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r37.z, r38.x + mov r37.w, r25.x + mov r36.z, r35.x + mov r36.w, r34.x + add r33.xyzw, r36.zwxz, r37.zwxz + mov r38.z, r37.y + mov r38.w, r25.y + mov r35.z, r36.y + mov r35.w, r34.z + add r25.xyw, r35.zyzw, r38.zyzw + div r34.xyz, r36.xzwx, r33.zwyz + add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r34.xyz, r34.yxzy, cb4[400].xxxx + div r35.xyz, r35.zywz, r25.xywx + add r35.xyz, r35.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r35.xyz, r35.xyzx, cb4[400].yyyy + mov r34.w, r35.x + mad r36.xyzw, r32.xyxy, cb4[400].xyxy, r34.ywxw + mad r32.zw, r32.xxxy, cb4[400].xxxy, r34.zzzw + mov r35.w, r34.y + mov r34.yw, r35.yyyz + mad r37.xyzw, r32.xyxy, cb4[400].xyxy, r34.xyzy + mad r35.xyzw, r32.xyxy, cb4[400].xyxy, r35.wywz + mad r34.xyzw, r32.xyxy, cb4[400].xyxy, r34.xwzw + mul r38.xyzw, r25.xxxy, r33.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r36.xyxx, t6.xxxx, s4, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r27.w, r36.zwzz, t6.xxxx, s4, r25.z + mul r27.w, r27.w, r38.y + mad r25.x, r38.x, r25.x, r27.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r27.w, r32.zwzz, t6.xxxx, s4, r25.z + mad r25.x, r38.z, r27.w, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r27.w, r35.xyxx, t6.xxxx, s4, r25.z + mad r25.x, r38.w, r27.w, r25.x + mul r32.xyzw, r25.yyww, r33.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.y, r37.xyxx, t6.xxxx, s4, r25.z + mad r25.x, r32.x, r25.y, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.y, r37.zwzz, t6.xxxx, s4, r25.z + mad r25.x, r32.y, r25.y, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.y, r35.zwzz, t6.xxxx, s4, r25.z + mad r25.x, r32.z, r25.y, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.y, r34.xyxx, t6.xxxx, s4, r25.z + mad r25.x, r32.w, r25.y, r25.x + ige r25.y, r24.z, l(0) + or r30.xyz, r30.xyzx, r31.xyzx + or r27.w, r30.y, r30.x + or r27.w, r30.z, r27.w + and r28.w, r25.z, l(0x7fffffff) + ult r28.w, l(0x7f800000), r28.w + or r27.w, r27.w, r28.w + mul r25.w, r25.w, r33.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.z, r34.zwzz, t6.xxxx, s4, r25.z + mad r25.x, r25.w, r25.z, r25.x + add r25.x, r25.x, l(-1.000000) + mad r24.z, cb4[r24.z + 288].w, r25.x, l(1.000000) + movc r24.z, r27.w, l(1.000000), r24.z + movc r24.z, r25.y, r24.z, l(1.000000) + else + mov r24.z, l(1.000000) + endif + if_nz r26.w + dp3 r25.x, r15.xyzx, r28.xyzx + mul_sat r25.y, r23.z, cb3[r17.w + 6].z + mad r25.y, r25.y, l(0.500000), r3.y + min r25.y, r25.y, l(1.000000) + div r25.y, r3.y, r25.y + mad r30.xyz, r15.xyzx, r25.xxxx, -r28.xyzx + dp3 r25.z, r29.xyzx, r30.xyzx + mul r25.x, r25.x, r25.x + mad r25.x, cb3[r17.w + 6].z, cb3[r17.w + 6].z, -r25.x + div_sat r25.x, r25.z, r25.x + mad r25.xzw, r28.xxyz, r25.xxxx, r29.xxyz + dp3 r27.w, r25.xzwx, r25.xzwx + rsq r27.w, r27.w + mul r27.xyz, r25.xzwx, r27.wwww + else + mov r25.y, l(1.000000) + endif + if_nz r22.w + mul_sat r22.w, r23.z, cb3[r19.w + 6].y + mad r25.xzw, r8.xxyz, r7.wwww, r27.xxyz + dp3 r23.z, r25.xzwx, r25.xzwx + max r23.z, r23.z, l(0.0000610351562) + rsq r23.z, r23.z + mul r25.xzw, r23.zzzz, r25.xxzw + max r20.w, r20.w, l(5.960464478E-08) + movc r24.w, r21.w, r20.w, -r20.w + dp3 r20.w, r24.xywx, r24.xywx + rsq r20.w, r20.w + mul r24.xyw, r20.wwww, r24.xyxw + mul r24.xyw, r24.xyxw, cb3[r17.w + 6].zzzz + mad r27.xyz, -r24.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r24.xyw, r24.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r26.xyxz + dp3 r20.w, r12.xyzx, r27.xyzx + dp3 r21.w, r27.xyzx, r27.xyzx + sqrt r21.w, r21.w + div r20.w, r20.w, r21.w + dp3 r21.w, r12.xyzx, r24.xywx + dp3 r23.z, r24.xywx, r24.xywx + sqrt r23.z, r23.z + div r21.w, r21.w, r23.z + add r20.w, r20.w, r21.w + mul_sat r20.w, r20.w, l(0.500000) + movc r19.x, r26.w, r20.w, r19.x + dp3_sat r20.w, r12.xyzx, r25.xzwx + dp3_sat r21.w, r9.xyzx, r25.xzwx + lt r23.z, l(0.000000), r22.w + mul r22.w, r22.w, r22.w + mad r24.x, r21.w, l(3.600000), l(0.400000) + div r22.w, r22.w, r24.x + mad r22.w, r13.w, r13.w, r22.w + min r22.w, r22.w, l(1.000000) + movc r22.w, r23.z, r22.w, r3.y + mul r22.w, r22.w, r22.w + mad r23.z, r20.w, r22.w, -r20.w + mad r20.w, r23.z, r20.w, l(1.000000) + add r21.w, -r21.w, l(1.000000) + mul r23.z, r21.w, r21.w + mul r23.z, r23.z, r23.z + mul r24.x, r21.w, r23.z + mad r21.w, -r23.z, r21.w, l(1.000000) + mad r24.xyw, r1.xzxw, r21.wwww, r24.xxxx + mul r20.w, r20.w, r20.w + div r20.w, r22.w, r20.w + mul r20.w, r25.y, r20.w + mad r21.w, -r13.x, r22.w, r13.x + mad r21.w, r21.w, r13.x, r22.w + sqrt r21.w, r21.w + mad r23.z, -r20.x, r22.w, r20.x + mad r22.w, r23.z, r20.x, r22.w + sqrt r22.w, r22.w + mul r22.w, r13.x, r22.w + mad r21.w, r20.x, r21.w, r22.w + add r21.w, r21.w, l(0.000100) + div r21.w, l(0.500000), r21.w + mul r20.w, r20.w, r21.w + mul r24.xyw, r20.wwww, r24.xyxw + min r24.xyw, r24.xyxw, l(2048.000000, 2048.000000, 0.000000, 2048.000000) + mad r25.xy, r20.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r20.w, r25.xyxx, t13.yzwx, s1, l(0.000000) + mul r20.w, r10.w, r20.w + mul r20.w, r8.w, r20.w + div r20.w, r20.w, r9.w + mul r25.xyz, r16.xyzx, r20.wwww + div r25.xyz, r25.xyzx, r17.xyzx + add r24.xyw, r24.xyxw, r25.xyxz + mul r24.xyw, r24.xyxw, cb3[r19.w + 6].zzzz + max r24.xyw, r24.xyxw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r24.xyw, r24.xyxw, l(1000.000000, 1000.000000, 0.000000, 1000.000000) + mul r25.xyz, r10.xyzx, r19.xxxx + mad r24.xyw, r24.xyxw, r20.xxxx, r25.xyxz + mul r20.xyw, r20.yyyy, cb3[r18.z + 6].xyxz + mul r20.xyw, r24.zzzz, r20.xyxw + mul r20.xyw, r18.xxxx, r20.xyxw + mul r20.xyw, r20.xyxw, r24.xyxw + else + mov r20.xyw, l(0,0,0,0) + endif + else + if_z r18.y + mad r18.x, cb3[r17.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r18.x, -|cb3[r17.w + 6].x| + add r24.y, -r24.x, cb3[r17.w + 6].y + add r18.x, -|r24.x|, l(1.000000) + add r18.x, -|r24.y|, r18.x + max r18.x, r18.x, l(0.000488281250) + ge r18.y, cb3[r17.w + 6].x, l(0.000000) + movc r24.z, r18.y, r18.x, -r18.x + dp3 r18.x, r24.xyzx, r24.xyzx + rsq r18.x, r18.x + mul r24.xyz, r18.xxxx, r24.xyzx + add r25.xyz, -r5.xyzx, cb3[r23.x + 6].xyzx + dp3 r18.x, r25.xyzx, r25.xyzx + rsq r18.y, r18.x + mul r26.xyz, r18.yyyy, r25.xyzx + ftoi r18.y, cb3[r19.w + 6].w + mul r27.xyz, r24.xyzx, cb3[r17.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r27.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r18.z, cb3[r18.z + 6].w + and r18.z, r18.z, l(1) + ieq r19.x, r18.z, l(0) + not r19.x, r19.x + lt r19.w, l(0.000000), cb3[r17.w + 6].z + and r19.x, r19.w, r19.x + dp3 r19.w, r28.xyzx, r28.xyzx + sqrt r19.w, r19.w + dp3 r21.w, r27.xyzx, r27.xyzx + sqrt r21.w, r21.w + dp3 r22.w, r28.xyzx, r27.xyzx + mad r19.w, r19.w, r21.w, r22.w + mad r19.w, r19.w, l(0.500000), l(1.000000) + div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w + movc r19.w, r19.x, r19.w, l(1.000000) + lt r21.w, cb3[r23.w + 6].w, l(0.000000) + if_nz r21.w + mul r21.w, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r21.w, r18.x, r21.w + mad r21.w, -r21.w, r21.w, l(1.000000) + max r21.w, r21.w, l(0.000000) + add r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + and r22.w, r19.x, l(0x3f800000) + add r23.z, -r18.x, r19.w + mad r18.x, r22.w, r23.z, r18.x + mul r21.w, r21.w, r21.w + mul r18.x, r18.x, r21.w + else + mul r27.xyz, r25.xyzx, cb3[r23.x + 6].wwww + dp3 r21.w, r27.xyzx, r27.xyzx + min r21.w, r21.w, l(1.000000) + add r21.w, -r21.w, l(1.000000) + log r21.w, r21.w + mul r21.w, r21.w, cb3[r23.w + 6].w + exp r21.w, r21.w + mul r18.x, r19.w, r21.w + endif + dp3 r19.w, r26.xyzx, -r24.xyzx + add r19.w, r19.w, -cb3[r17.w + 6].z + mul_sat r19.w, r19.w, cb3[r17.w + 6].w + mul r19.w, r19.w, r19.w + movc r19.w, r18.z, l(1.000000), r19.w + mul r18.x, r18.x, r19.w + not r19.x, r19.x + ige r19.w, r18.y, l(0) + and r19.x, r19.w, r19.x + if_nz r19.x + if_z r18.z + ishl r19.x, r18.y, l(2) + mul r24.xyz, r5.yyyy, cb6[r19.x + 33].xywx + mad r24.xyz, cb6[r19.x + 32].xywx, r5.xxxx, r24.xyzx + mad r24.xyz, cb6[r19.x + 34].xywx, r5.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb6[r19.x + 35].xywx + div_sat r19.xw, r24.xxxy, r24.zzzz + mad r19.xw, r19.xxxw, cb6[r18.y + 0].zzzw, cb6[r18.y + 0].xxxy + else + ishl r21.w, r18.y, l(2) + dp3 r24.x, -r25.xyzx, cb6[r21.w + 32].xyzx + dp3 r24.y, -r25.xyzx, cb6[r21.w + 33].xyzx + dp3 r24.z, -r25.xyzx, cb6[r21.w + 34].xyzx + lt r21.w, |r24.x|, |r24.y| + and r21.w, r21.w, l(1) + dp2 r22.w, |r24.xyxx|, icb[r21.w + 0].xyxx + lt r22.w, r22.w, |r24.z| + movc r21.w, r22.w, l(2), r21.w + dp3 r22.w, r24.xyzx, icb[r21.w + 0].xyzx + lt r22.w, r22.w, l(0.000000) + bfi r21.w, l(31), l(1), r21.w, r22.w + ushr r22.w, r21.w, l(1) + dp3 r22.w, r24.xyzx, icb[r22.w + 0].xyzx + div r23.z, l(0.000244140625), cb6[r18.y + 0].w + add r23.z, -r23.z, l(0.500000) + utof r23.w, r21.w + ult r24.w, r21.w, l(2) + and r24.w, r24.w, l(2) + dp2 r24.x, r24.xzxx, icb[r24.w + 0].xzxx + mul r24.x, r24.x, icb[r21.w + 4].z + div r24.x, r24.x, |r22.w| + mad r23.w, r24.x, r23.z, r23.w + add r23.w, r23.w, l(0.500000) + mul_sat r25.x, r23.w, l(0.166666672) + iadd r23.w, l(-1), icb[r21.w + 4].y + dp2 r23.w, r24.yzyy, icb[r23.w + 0].xyxx + mul r21.w, r23.w, icb[r21.w + 4].w + div r21.w, r21.w, |r22.w| + mad_sat r25.y, -r21.w, r23.z, l(0.500000) + mad r19.xw, r25.xxxy, cb6[r18.y + 0].zzzw, cb6[r18.y + 0].xxxy + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r19.xwxx, t15.yxzw, s1, l(0.000000) + mul r18.x, r18.y, r18.x + endif + lt r18.x, l(0.000000), r18.x + if_nz r18.x + if_z r18.z + ftoi r18.x, cb3[r23.y + 6].x + else + add r23.xzw, r5.xxyz, -cb3[r23.x + 6].xxyz + lt r24.xyz, |r23.zwwz|, |r23.xxzx| + and r18.y, r24.y, r24.x + lt r23.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xxzw + ushr r18.z, cb3[r17.w + 6].w, l(24) + ubfe r19.xw, l(8, 0, 0, 8), l(16, 0, 0, 8), cb3[r17.w + 6].wwww + movc r18.z, r23.x, r18.z, r19.x + and r17.w, l(255), cb3[r17.w + 6].w + movc r17.w, r23.z, r19.w, r17.w + ubfe r19.x, l(8), l(8), cb3[r23.y + 6].x + and r19.w, l(255), cb3[r23.y + 6].x + movc r19.x, r23.w, r19.x, r19.w + movc r17.w, r24.z, r17.w, r19.x + movc r17.w, r18.y, r18.z, r17.w + ilt r18.y, r17.w, l(80) + movc r18.x, r18.y, r17.w, l(-1) + endif + ishl r17.w, r18.x, l(2) + mad r23.xyz, r26.xyzx, cb4[r18.x + 288].xxxx, r5.xyzx + mul r18.y, l(5.000000), cb4[r18.x + 288].y + mad r23.xyz, r2.xywx, r18.yyyy, r23.xyzx + mul r24.xyzw, r23.yyyy, cb4[r17.w + 65].xyzw + mad r24.xyzw, cb4[r17.w + 64].xyzw, r23.xxxx, r24.xyzw + mad r23.xyzw, cb4[r17.w + 66].xyzw, r23.zzzz, r24.xyzw + add r23.xyzw, r23.xyzw, cb4[r17.w + 67].xyzw + div r23.xyz, r23.xyzx, r23.wwww + ge r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + ge r25.xyz, r23.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r18.yz, -cb4[r18.x + 344].xxyx, cb4[r18.x + 344].zzwz + mad r18.yz, r23.xxyx, r18.yyzy, cb4[r18.x + 344].xxyx + mad r19.xw, r18.yyyz, cb4[400].zzzw, l(0.500000, 0.000000, 0.000000, 0.500000) + round_ni r19.xw, r19.xxxw + mad r18.yz, r18.yyzy, cb4[400].zzwz, -r19.xxwx + add r26.xyzw, r18.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r23.xy, -r18.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r26.xz, r18.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r18.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r23.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r18.yz, r27.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r18.yyzy + mul r30.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r18.yz, -r26.xxzx, r26.xxzx, r23.xxyx + add r18.yz, r18.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r31.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r18.yz, r26.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r30.z, r31.x + mov r30.w, r18.y + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r18.z + mov r28.z, r29.y + mov r28.w, r27.z + add r23.xyw, r28.zyzw, r31.zyzw + div r27.xyz, r29.xzwx, r26.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r23.xywx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r27.w, r28.x + mad r29.xyzw, r19.xwxw, cb4[400].xyxy, r27.ywxw + mad r18.yz, r19.xxwx, cb4[400].xxyx, r27.zzwz + mov r28.w, r27.y + mov r27.yw, r28.yyyz + mad r30.xyzw, r19.xwxw, cb4[400].xyxy, r27.xyzy + mad r28.xyzw, r19.xwxw, cb4[400].xyxy, r28.wywz + mad r27.xyzw, r19.xwxw, cb4[400].xyxy, r27.xwzw + mul r31.xyzw, r23.xxxy, r26.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r29.xyxx, t6.xxxx, s4, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r29.zwzz, t6.xxxx, s4, r23.z + mul r19.x, r19.x, r31.y + mad r17.w, r31.x, r17.w, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r18.yzyy, t6.xxxx, s4, r23.z + mad r17.w, r31.z, r18.y, r17.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r28.xyxx, t6.xxxx, s4, r23.z + mad r17.w, r31.w, r18.y, r17.w + mul r29.xyzw, r23.yyww, r26.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r30.xyxx, t6.xxxx, s4, r23.z + mad r17.w, r29.x, r18.y, r17.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r30.zwzz, t6.xxxx, s4, r23.z + mad r17.w, r29.y, r18.y, r17.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r28.zwzz, t6.xxxx, s4, r23.z + mad r17.w, r29.z, r18.y, r17.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r27.xyxx, t6.xxxx, s4, r23.z + mad r17.w, r29.w, r18.y, r17.w + ige r18.y, r18.x, l(0) + or r24.xyz, r24.xyzx, r25.xyzx + or r18.z, r24.y, r24.x + or r18.z, r24.z, r18.z + and r19.x, r23.z, l(0x7fffffff) + ult r19.x, l(0x7f800000), r19.x + or r18.z, r18.z, r19.x + mul r19.x, r23.w, r26.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.w, r27.zwzz, t6.xxxx, s4, r23.z + mad r17.w, r19.x, r19.w, r17.w + add r17.w, r17.w, l(-1.000000) + mad r17.w, cb4[r18.x + 288].w, r17.w, l(1.000000) + movc r17.w, r18.z, l(1.000000), r17.w + movc r17.w, r18.y, r17.w, l(1.000000) + else + mov r17.w, l(1.000000) + endif + else + mov r17.w, l(1.000000) + endif + mul r15.w, r15.w, r17.w + mov r20.xyw, l(0,0,0,0) + endif + add r22.xyz, r20.xywx, r22.xyzx + mov r16.w, r19.z + endloop + mov r11.x, r15.w + add r21.xyz, r21.xyzx, r22.xyzx + iadd r13.y, r13.y, l(1) +endloop +mad r8.xyz, r21.xyzx, r11.xxxx, r14.xyzx +ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r3.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + dp3 r2.z, r2.xywx, r9.xyzx + max r2.z, r2.z, l(0.000000) + add r2.z, r0.z, r2.z + mad r3.y, r13.w, l(-16.000000), l(-1.000000) + exp r3.y, r3.y + log r2.z, |r2.z| + mul r2.z, r2.z, r3.y + exp r2.z, r2.z + add r2.z, r0.z, r2.z + add r2.z, r2.z, l(-1.000000) + mov_sat r13.xyz, r2.zzzz + mad r14.xyz, r10.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r10.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r10.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r13.xyz, r1.yyyy + mov r14.xyz, r1.yyyy +endif +mad r16.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r17.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx +dp2 r0.z, r17.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r16.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r16.xyzx +mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r17.xyz, r16.xzyx, -r17.xyzx +max r0.z, |r17.y|, |r17.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.y, |r17.z|, l(-208.000000) +mul_sat r1.y, r1.y, l(0.031250) +max r0.z, r0.z, r1.y +ne r1.y, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.y, r1.y, r2.z +if_nz r1.y + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r16.xzyx, -r17.xyzx + max r1.y, |r17.y|, |r17.x| + add r1.y, r1.y, l(-29.000000) + mul_sat r1.y, r1.y, l(0.500000) + add r2.z, |r17.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.y, r1.y, r2.z + lt r2.z, r1.y, l(1.000000) + if_nz r2.z + mad r17.xyz, r16.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t19.yzwx, s2, l(0.000000) + add r2.z, -r1.y, l(1.000000) + mul r3.y, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.y, r3.y, r17.y + min r3.y, r7.w, r3.y + mul r17.w, r3.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.y, r19.w, r2.z, r0.z + add r20.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t20.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mul r20.xyzw, r2.zzzz, r20.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t20.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r2.zzzz, r17.xyzw + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r2.zzzz, r18.xyzw + else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r3.y, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r16.xzyx, -r19.xyzx + max r2.z, |r19.y|, |r19.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r7.w, |r19.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r2.z, r2.z, r7.w + lt r7.w, r2.z, l(1.000000) + if_nz r7.w + mad r19.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r21.xyz, r19.xyzx, cb0[211].xyzx + round_ni r21.xyz, r21.xyzx + mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r19.xyzx, t21.yzwx, s2, l(0.000000) + add r7.w, -r2.z, l(1.000000) + mul r1.y, r1.y, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r19.y + min r7.w, r8.w, r7.w + mul r19.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyzw, r19.xwzx, t22.xyzw, s1, l(0.000000) + mad r3.y, r22.w, r1.y, r3.y + add r23.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r23.xyzx, t22.xyzw, s1, l(0.000000) + mad r23.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r21.yyyy, r23.xyzx + mov r23.w, r21.y + mad r20.xyzw, r23.xyzw, r1.yyyy, r20.xyzw + add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.xxxx, r19.xyzx + mov r19.w, r21.x + mad r17.xyzw, r19.xyzw, r1.yyyy, r17.xyzw + mad r19.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r19.xyzx + mad r18.xyzw, r21.xyzw, r1.yyyy, r18.xyzw + endif + lt r1.y, l(0.000000), r2.z + if_nz r1.y + mad r16.xyz, r16.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r16.xyzx, cb0[211].xyzx + mul r21.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r19.xyzx + mad r19.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r16.xyz, r21.xyzx, r16.xyzx + min r16.xyz, r19.xyzx, r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r16.xyzx, t23.yzwx, s2, l(0.000000) + add r1.y, -r0.z, l(1.000000) + mul r1.y, r1.y, r2.z + max r2.z, r21.y, r16.y + min r2.z, r19.y, r2.z + mul r16.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t24.xyzw, s1, l(0.000000) + add r21.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t24.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r22.yyyy, r21.xyzx + mov r21.w, r22.y + mad r20.xyzw, r21.xyzw, r1.yyyy, r20.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t24.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r22.xxxx, r16.xyzx + mov r16.w, r22.x + mad r17.xyzw, r16.xyzw, r1.yyyy, r17.xyzw + mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r16.xyzx + mad r18.xyzw, r22.xyzw, r1.yyyy, r18.xyzw + mad r3.y, r19.w, r1.y, r3.y + endif + mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) + add r16.x, -r0.z, r1.y + add r0.z, r0.z, r1.y + mul r16.y, r0.z, l(0.500000) +else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r16.xy, l(0,1.000000,0,0) +endif +mul r19.xyzw, r16.yxyy, cb0[213].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r16.zw, r16.yyyx, cb0[213].wwwy +mad r19.x, r16.w, l(0.375000), r16.z +add r18.xyzw, r18.xyzw, r19.wyzx +mul r19.xyzw, r16.yxyy, cb0[214].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r16.zw, r16.yyyx, cb0[214].wwwy +mad r19.x, r16.w, l(0.375000), r16.z +add r17.xyzw, r17.xyzw, r19.wyzx +mul r19.xyzw, r16.yxyy, cb0[215].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r16.xy, r16.yxyy, cb0[215].wyww +mad r19.x, r16.y, l(0.375000), r16.x +add r16.xyzw, r19.wyzx, r20.xyzw +ge r19.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r19.y, r19.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r19.xyzw, r4.zwzz, t18.xyzw, s1, l(0.000000) + lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r19.xyzw| + or r4.zw, r20.zzzw, r20.xxxy + or r0.z, r4.w, r4.z + if_nz r0.z + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mov r4.z, l(1.000000) + mov r4.w, r0.z + mov r1.y, l(0) + loop + ge r2.z, l(4.600000), r4.w + breakc_nz r2.z + iadd r2.z, r1.y, l(1) + mul r20.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r4.zw, r20.xxxy + mov r1.y, r2.z + continue + endloop + mul r19.xyzw, r4.zzzz, r19.xyzw + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb7[3].x, cb7[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r20.x, r0.z, l(0.00390625000) + mov r20.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r20.xyxx, t17.zwxy, s1, l(0.000000) + mad r4.zw, r4.zzzw, cb7[2].xxxy, cb7[2].zzzw + mul r20.x, r4.z, l(3.54490781) + mul r20.yzw, r4.wwww, r19.yyzw + mul r0.z, r19.x, l(0.406976730) + exp r0.z, r0.z + mul r19.xyzw, r0.zzzz, r20.xyzw + mov r20.xyzw, r19.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.y + breakc_nz r2.z + mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r21.xyzw, r20.xyzw + dp2 r3.y, r21.yxyy, r20.xyxx + dp2 r4.z, r21.zxzz, r20.xzxx + dp2 r4.w, r21.wxww, r20.xwxx + iadd r7.w, r0.z, l(1) + mov r20.x, r2.z + mov r20.y, r3.y + mov r20.zw, r4.zzzw + mov r0.z, r7.w + continue + endloop + mul r19.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r19.xyzw, r20.xyzw + dp2 r1.y, r19.yxyy, r20.xyxx + dp2 r2.z, r19.zxzz, r20.xzxx + dp2 r3.y, r19.wxww, r20.xwxx + mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.z, r19.xyzw, r20.xyzw + dp2 r4.w, r19.yxyy, r20.xyxx + dp2 r7.w, r19.zxzz, r20.xzxx + dp2 r8.w, r19.wxww, r20.xwxx + mul r20.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r19.xyzw, r20.xyzw + dp2 r10.w, r19.yxyy, r20.xyxx + dp2 r11.x, r19.zxzz, r20.xzxx + dp2 r14.w, r19.wxww, r20.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r3.y, l(-1.02332675) + mul r18.y, r1.y, l(-1.02332675) + mul r18.z, r2.z, l(1.02332675) + mul r17.x, r8.w, l(-1.02332675) + mul r17.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r17.z, r7.w, l(1.02332675) + mul r16.w, r9.w, l(0.886226952) + mul r16.x, r14.w, l(-1.02332675) + mul r16.y, r10.w, l(-1.02332675) + mul r16.z, r11.x, l(1.02332675) + endif +endif +dp3 r0.z, r18.xyzx, r2.xywx +add r0.z, r18.w, r0.z +max r18.x, r0.z, l(0.000000) +dp3 r0.z, r17.xyzx, r2.xywx +add r0.z, r17.w, r0.z +max r18.y, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r2.xywx +add r0.z, r16.w, r0.z +max r18.z, r0.z, l(0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.y, r13.w, l(0.001000) +log r1.y, r1.y +mad r1.y, -r1.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.y +mul r2.xy, r4.xyxx, cb1[0].wwww +round_ni r2.xy, r2.xyxx +add r1.y, |r3.w|, -cb1[2].y +round_ni r1.y, r1.y +add r2.z, l(-1.000000), cb1[1].x +max r2.w, r1.y, l(0.000000) +min r2.z, r2.z, r2.w +ge r1.y, r2.z, r1.y +mad r2.x, r2.y, cb1[0].x, r2.x +ftoi r2.xy, r2.xzxx +iadd r2.xy, r2.xyxx, cb0[110].zwzz +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.x, r2.x, l(0), t0.xxxx +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.y, r2.y, l(0), t0.xxxx +and r2.x, r2.y, r2.x +and r1.y, r1.y, r2.x +mul r2.xyz, r18.xyzx, cb0[111].xxxx +dp3 r2.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r12.w, l(1.000000) +mov r2.yzw, l(0,0,0,0) +mov r3.y, l(1.000000) +mov r4.z, r1.y +mov r4.w, l(0) +loop + lt r7.w, l(0.010000), r3.y + ine r8.w, r4.z, l(0) + and r8.w, r7.w, r8.w + if_nz r8.w + firstbit_lo r8.w, r4.z + ishl r9.w, l(1), r8.w + xor r4.z, r4.z, r9.w + ishl r8.w, r8.w, l(3) + dp4 r16.x, cb1[r8.w + 6].xyzw, r5.xyzw + dp4 r16.y, cb1[r8.w + 7].xyzw, r5.xyzw + dp4 r16.z, cb1[r8.w + 8].xyzw, r5.xyzw + ge r17.xyz, cb1[r8.w + 5].xyzx, |r16.xyzx| + and r9.w, r17.y, r17.x + and r9.w, r17.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb1[r8.w + 5].x + mul r17.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r19.xyz, -|r16.xyzx|, cb1[r8.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb1[r8.w + 9].xyzx + eq r10.w, l(1.000000), cb1[r8.w + 10].x + if_nz r10.w + dp3 r20.x, cb1[r8.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb1[r8.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb1[r8.w + 8].xyzx, r15.xyzx + add r21.xyz, -r16.xyzx, cb1[r8.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r16.xyzx, -cb1[r8.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r10.w, r21.y, r21.x + min r10.w, r21.z, r10.w + mad r16.xyz, r20.xyzx, r10.wwww, r16.xyzx + else + mov r16.xyz, r15.xyzx + endif + dp3 r10.w, r16.xyzx, r16.xyzx + rsq r10.w, r10.w + mul r16.xyz, r10.wwww, r16.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r21.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r10.w, r16.xyzx, r20.xyzx + div r16.xyz, r16.xyzx, r10.wwww + lt r10.w, r16.z, l(0.000000) + add r16.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r16.zw, r16.zzzw, r20.xxxy + movc r16.xy, r10.wwww, r16.zwzz, r16.xyxx + dp4 r10.w, cb1[r8.w + 4].xyzw, r12.xyzw + max r10.w, r10.w, l(0.000000) + max r10.w, r10.w, l(0.000100) + min r11.x, r19.z, r19.y + min r11.x, r11.x, r19.x + add r13.w, r17.y, r17.x + mad r13.w, r17.z, r17.z, r13.w + mad r9.w, r9.w, r9.w, -r13.w + mul r9.w, r9.w, cb1[r8.w + 9].x + mul r9.w, r9.w, cb1[r8.w + 9].x + add r13.w, l(1.000000), -cb1[r8.w + 10].y + mul r9.w, r9.w, r13.w + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r11.x, cb1[r8.w + 10].y, r9.w + mul r11.x, r9.w, cb1[r8.w + 10].w + mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r16.xy, r16.xyxx, cb1[1].wwww, cb1[2].wwww + mov r16.z, cb1[r8.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s3, r0.z + mul r16.xyz, r16.xyzx, cb1[r8.w + 9].wwww + div r13.w, r2.x, r10.w + min r13.w, |r13.w|, l(1.000000) + mad r13.w, r13.w, l(2.000000), r2.x + add r10.w, r10.w, l(2.000000) + div r10.w, r13.w, r10.w + add r10.w, r10.w, l(-1.000000) + mad r10.w, r10.w, cb0[112].w, l(1.000000) + mul r16.xyz, r10.wwww, r16.xyzx + mul r16.xyz, r11.xxxx, r16.xyzx + mad r2.yzw, r16.xxyz, r3.yyyy, r2.yyzw + mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) + mul r3.y, r3.y, r8.w + endif + mov r4.w, l(-1) + continue + else + mov r4.w, r7.w + break + endif + mov r4.w, r7.w +endloop +if_nz r4.w + dp3 r1.y, r15.xyzx, r15.xyzx + rsq r1.y, r1.y + mul r15.xyz, r1.yyyy, r15.xyzx + lt r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r17.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r16.xyz, -r16.xyzx, r17.xyzx + itof r16.xyz, r16.xyzx + dp3 r1.y, r15.xyzx, r16.xyzx + div r15.xyz, r15.xyzx, r1.yyyy + lt r1.y, r15.z, l(0.000000) + add r4.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r4.zw, r4.zzzw, r16.xxxy + movc r4.zw, r1.yyyy, r4.zzzw, r15.xxxy + mov r12.w, l(1.000000) + dp4 r1.y, cb1[3].xyzw, r12.xyzw + max r1.y, r1.y, l(0.000000) + max r1.y, r1.y, l(0.000100) + mad r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r12.xy, r4.zwzz, cb1[1].wwww, cb1[2].wwww + mov r12.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r12.xyz, r12.xyzx, t5.xyzw, s3, r0.z + div r0.z, r2.x, r1.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.x + add r1.y, r1.y, l(2.000000) + div r0.z, r0.z, r1.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r2.yzw, r12.xxyz, r3.yyyy, r2.yyzw +endif +mul r2.xyz, r2.yzwy, cb0[112].zzzz +mul r2.xyz, r2.xyzx, cb0[111].yyyy +if_nz r3.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r12.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.y, -r0.z, l(1.000000) + mul r15.xyz, r1.yyyy, r2.xyzx + mad r2.xyz, r12.xyzx, r0.zzzz, r15.xyzx +endif +mul r10.xyz, r10.xyzx, r18.xyzx +mul r10.xyz, r10.xyzx, cb0[111].xxxx +add r0.z, -r3.x, l(1.000000) +div r0.z, r0.z, r3.x +mul r1.xyz, r0.zzzz, r1.xzwx +mad r1.xyz, r1.xyzx, r11.yzwy, r11.yzwy +mul r1.xyz, r1.xyzx, r2.xyzx +mul r1.xyz, r13.xyzx, r1.xyzx +mad r1.xyz, r10.xyzx, r14.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r8.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.x, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r5.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r9.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r9.xyzx, -r7.xyzx + add r2.w, r5.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.x + mul r4.z, r0.x, r3.z + mad r4.w, r4.z, r2.w, cb0[44].y + mad r2.w, -r4.z, r2.w, r2.w + mul r4.z, r2.w, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.w, r4.w, -cb0[159].x + mul r5.w, r5.w, cb0[159].z + max r5.w, r5.w, l(-127.000000) + exp r5.w, -r5.w + mul r5.w, r5.w, cb0[159].y + lt r7.x, l(5.960464478E-08), |r4.z| + exp r7.y, -r4.z + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r7.x, r7.y, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r7.x, l(5.960464478E-08), |r2.w| + exp r7.y, -r2.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r7.x, r7.y, r2.w + mul r2.w, r2.w, r4.w + mad r2.w, r5.w, r4.z, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r6.x, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r6.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r3.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t16.xyzw, s1, l(0.000000) + add r0.y, |r3.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.x, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r1.xyz = scene color, r4.xyz = transmittance, r0.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r0.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad r0.xyz, r1.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +endif +// === End Fog Modification === +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r6.yzwy, r6.yzwy +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t29.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x99725481.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x99725481.ps_5_0_original_backup.asm new file mode 100644 index 000000000..4e6b98014 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x99725481.ps_5_0_original_backup.asm @@ -0,0 +1,1959 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 23:51:02 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[5], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB7[4], 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_comparison +dcl_sampler s5, mode_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture2d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture3d (float,float,float,float) t23 +dcl_resource_texture3d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture2d (float,float,float,float) t27 +dcl_resource_texture2d (float,float,float,float) t28 +dcl_resource_texture3d (float,float,float,float) t29 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 39 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t26.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t27.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r2.xyw, r1.wwww, r3.xyxz +utof r4.xy, r0.xyxx +mul r4.zw, v0.xxxy, cb0[82].zzzw +mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r5.zw, r5.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.yyyy, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw +mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r3.w, r5.y, cb0[1].z +mad r3.w, cb0[0].z, r5.x, r3.w +mad r3.w, cb0[2].z, r5.z, r3.w +add r3.w, r3.w, cb0[3].z +eq r6.x, l(0.000000), cb0[86].w +add r6.yzw, -r5.xxyz, cb0[44].xxyz +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r8.xyz, r6.xxxx, r6.yzwy, r7.xyzx +dp3 r6.x, r8.xyzx, r8.xyzx +max r7.w, r6.x, l(9.999999939E-09) +rsq r7.w, r7.w +mul r9.xyz, r7.wwww, r8.xyzx +mul r6.x, r6.x, r7.w +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r10.xy, v1.xyxx, t25.xyzw, s1, cb0[108].x +else + mov r10.xy, l(1.000000,1.000000,0,0) +endif +lt r10.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy +if_nz r10.z + add r9.w, |r2.y|, |r2.x| + add r9.w, |r2.w|, r9.w + div r9.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w + mul r11.xyz, |r2.xywx|, r9.wwww + mul r12.xyz, r5.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r9.w, r12.xyzx, t10.yzwx, s2, l(0.000000) + mul r12.xyzw, r11.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) + add r11.xyw, r12.zwzz, r12.xxxy + mad r11.xyz, r11.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r11.xywx + mad r10.z, r9.w, l(2.000000), l(-1.000000) + mul r11.xyz, r10.zzzz, r11.xyzx + mov r10.z, |r2.y| + add r10.z, r10.z, l(-0.700000) + mul_sat r10.z, r10.z, l(4.000000) + mad r11.w, r10.z, l(-2.000000), l(3.000000) + mul r10.z, r10.z, r10.z + mul r10.z, r10.z, r11.w + add r11.w, -cb0[229].z, cb0[229].y + mad r10.z, r10.z, r11.w, cb0[229].z + mul r11.xyz, r10.zzzz, r11.xyzx +else + mov r11.xyz, l(0,0,0,0) + mov r9.w, l(0) +endif +mad r10.z, -r3.y, r1.w, l(-0.200000) +if_nz r10.w + mul r12.xyz, r2.xywx, cb0[233].zzzz + mul r13.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r12.xyz, r12.xyzx, cb0[225].xxxx, r13.xyzx + max r10.w, -r2.y, l(0.000000) + min r10.w, r10.w, l(0.900000) + add r10.w, -r10.w, l(1.000000) + mul_sat r11.w, r10.z, l(-10.000000) + mad r12.w, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.w + max r11.w, r11.w, l(0.100000) + min r11.w, r11.w, l(1.000000) + mul r10.w, r10.w, r11.w + mad r12.xyz, r12.xyzx, r10.wwww, r5.xyzx + add r11.xyz, r11.xyzx, r12.xyzx + mul r12.xyz, r11.yyyy, cb5[1].xyzx + mad r11.xyw, cb5[0].xyxz, r11.xxxx, r12.xyxz + mad r11.xyz, cb5[2].xyzx, r11.zzzz, r11.xywx + add r11.xyz, r11.xyzx, cb5[3].xyzx + mad r12.x, r11.x, l(0.500000), cb5[4].x + mad r10.w, r11.y, l(0.500000), l(0.500000) + add r12.z, -r10.w, cb5[4].y + add r11.xy, r12.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r10.w, r11.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r10.w, r11.xyxx, t9.xxxx, s5, r10.w +else + mov r10.w, l(1.000000) +endif +mov_sat r11.x, r2.y +add r11.y, l(1.000000), -cb0[230].w +mad r11.x, r11.x, r11.y, cb0[230].w +add r11.yz, r5.xxzx, -cb0[44].xxzx +max r11.y, |r11.z|, |r11.y| +mul r11.z, r10.w, r11.x +mul r11.w, l(0.0500000119), cb0[222].w +mad r12.x, -cb0[222].w, l(0.700000), r11.y +div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul_sat r11.w, r11.w, r12.x +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mad r10.w, -r11.x, r10.w, l(1.000000) +mad r10.w, r11.w, r10.w, r11.z +ge r11.z, r1.z, l(0.045000) +and r11.z, r11.z, l(0x3f800000) +mul r11.z, r10.w, r11.z +deriv_rty_coarse r12.xyz, r5.xyzx +deriv_rtx_coarse r13.xyz, r5.zxyz +mul r14.xyz, r12.xyzx, r13.xyzx +mad r12.xyz, r12.zxyz, r13.yzxy, -r14.xyzx +dp3 r11.w, r12.xyzx, r12.xyzx +max r11.w, r11.w, l(1.175494351E-38) +rsq r11.w, r11.w +mul r12.yzw, r11.wwww, r12.xxzy +mov_sat r13.x, r12.y +add r13.y, r13.x, l(-0.988000) +mul_sat r13.y, r13.y, l(1000.012878) +mad r13.z, r13.y, l(-2.000000), l(3.000000) +mul r13.y, r13.y, r13.y +mul r13.y, r13.y, r13.z +add r13.z, |r3.w|, l(-15.000000) +mul_sat r13.z, r13.z, l(0.015000) +add r13.z, -r13.z, l(1.000000) +lt r13.w, l(0.000488281250), cb0[223].y +mad r14.x, cb0[223].z, l(0.300000), l(0.687000) +add r13.x, r13.x, -r14.x +mul_sat r13.x, r13.x, l(-1000.012878) +mad r14.x, r13.x, l(-2.000000), l(3.000000) +mul r13.x, r13.x, r13.x +mul r13.x, r13.x, r14.x +mad r11.w, r12.x, r11.w, l(0.500000) +mul_sat r11.w, r11.w, l(2.500000) +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mul r11.w, r11.w, r13.x +lt r11.w, l(0.000488281250), r11.w +and r11.w, r11.w, r13.w +if_nz r11.w + mul r13.xw, |r12.zzzw|, |r12.zzzw| + add r11.w, r13.w, r13.x + div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w + mul r13.xw, r11.wwww, r13.xxxw + mul r14.xyz, r12.ywzy, l(0.000000, 1.000000, 0.000000, 0.000000) + mad r14.xyz, r12.zywz, l(1.000000, 0.000000, 0.000000, 0.000000), -r14.xyzx + dp2 r11.w, r14.xyxx, r14.xyxx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + mul r15.xyz, r12.ywzy, r14.xyzx + mad r15.xyz, r14.zxyz, r12.wzyw, -r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + add r16.xyz, r5.xyzx, r5.xyzx + round_ni r16.xyz, r16.xyzx + add r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + add r14.zw, r16.yyyy, r16.xxxz + dp2 r11.w, r14.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + lt r14.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.wwwz + lt r16.xy, r12.wzww, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r14.zw, r14.zzzw, -r16.xxxy + itof r14.zw, r14.zzzw + mul r16.xy, r5.xzxx, r14.zwzz + mul r12.x, r9.w, r11.w + add r14.z, -r11.w, l(1.000000) + mad r14.z, r14.z, l(0.700000), l(0.300000) + mul r17.xy, r12.xxxx, l(3.000000, 6.000000, 0.000000, 0.000000) + mad r12.x, -cb0[223].x, r14.z, r17.x + frc r18.x, r12.x + mad r12.x, cb0[223].x, l(-0.300000), r17.y + frc r18.y, r12.x + mul r11.w, r11.w, l(5.000000) + round_ni r11.w, r11.w + add r17.x, r11.w, l(1.000000) + mul r17.y, r5.y, r17.x + mov r5.w, l(0.100000) + mul r14.zw, r5.yyyw, r17.xxxy + frc r14.zw, r14.zzzw + add r17.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + add r17.xy, r14.zwzz, -r17.xyxx + add r17.xy, r17.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) + mul_sat r17.xy, r17.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) + mad r17.zw, r17.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) + mul r17.xy, r17.xyxx, r17.xyxx + mul r17.xy, r17.xyxx, r17.zwzz + add r17.zw, -r14.zzzw, r18.xxxy + max r17.xy, r17.zwzz, r17.xyxx + add r18.zw, -r18.xxxy, r14.zzzw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) + mul r18.zw, r18.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) + max r18.zw, r18.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r18.zw, r18.zzzw, r18.zzzw + mul r18.zw, r18.zzzw, r19.xxxy + add r17.zw, r17.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + max r17.zw, r17.zzzw, r18.zzzw + ge r14.zw, r14.zzzw, r18.xxxy + and r14.zw, r14.zzzw, l(0, 0, 0x3f800000, 0x3f800000) + add r17.zw, -r17.xxxy, r17.zzzw + mad r14.zw, r14.zzzw, r17.zzzw, r17.xxxy + mad r11.w, r14.z, r14.z, l(-0.400000) + mul_sat r11.w, r11.w, l(1.66666663) + mad r12.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.x + mad r12.x, r14.w, l(2.000000), l(-1.000000) + mul r14.z, r11.w, l(0.010000) + mul r17.x, r12.x, r14.z + mad r17.x, r9.w, l(0.100000), r17.x + mul r14.z, r11.w, r14.z + mad r14.z, r14.z, r12.x, r9.w + mul r17.y, r9.w, r14.z + mov r16.z, r5.y + mad r17.zw, r16.yyyz, cb0[224].xxxy, r17.xxxy + sample_b_indexable(texture2d)(float,float,float,float) r18.xyzw, r17.zwzz, t11.xyzw, s2, cb0[108].x + mov r16.w, -r16.x + mad r16.xy, r16.wzww, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t11.xyzw, s2, cb0[108].x + mul r16.xyzw, r13.wwww, r16.xyzw + mad r16.xyzw, r18.xyzw, r13.xxxx, r16.xyzw + mad r13.xw, r16.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r9.w, r11.w, l(2.000000), l(-1.000000) + mad_sat r9.w, r9.w, l(0.800000), r14.w + mad r14.z, -r16.w, l(0.500000), l(1.000000) + mad r9.w, r9.w, r14.z, l(-0.700000) + mul_sat r9.w, r9.w, l(3.33333325) + mad r14.z, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r14.z + mul r12.x, r12.x, r16.w + mad_sat r11.w, r12.x, l(0.500000), r11.w + mad r11.w, r11.w, l(0.500000), l(0.100000) + max r9.w, r9.w, r11.w + add r11.w, -r9.w, l(1.000000) + max r11.w, r11.w, l(0.000000) + mul r12.x, r11.w, r11.w + mul r12.x, r12.x, r12.x + mul r11.w, r11.w, r12.x + ge r11.w, r16.z, r11.w + and r11.w, r11.w, l(0x3f800000) + mad r9.w, r9.w, l(0.700000), l(0.200000018) + mad r9.w, r11.w, r9.w, l(0.100000) + mul r9.w, r16.z, r9.w + mul r9.w, r9.w, cb0[223].y + mul r9.w, r9.w, l(0.330000) + mul r11.w, r11.z, cb0[222].x + mul r11.w, r13.z, r11.w + mul r9.w, r9.w, r11.w + dp2 r11.w, r13.xwxx, r13.xwxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r11.w, r11.w, l(0.000488281250) + mul_sat r12.x, r9.w, l(10.000000) + mad r14.z, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.x, r12.x, r14.z + mul r12.x, r12.x, cb0[223].y + mul r16.xy, r12.xxxx, r13.xwxx + add r12.x, l(-1.500000), cb0[223].y + mul_sat r12.x, r12.x, l(0.666666687) + mad r13.x, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.x, r12.x, r13.x + mul r13.x, r12.x, l(-0.200000) + mad r11.w, -r12.x, l(-0.200000), r11.w + mad r16.z, r9.w, r11.w, r13.x + dp3 r11.w, r16.xyzx, r16.xyzx + max r11.w, r11.w, l(1.175494351E-38) + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + mov r17.x, r14.y + mov r17.y, r15.x + mov r17.z, r12.z + dp3 r17.x, r17.xyzx, r16.xyzx + mov r15.w, r12.y + dp2 r17.y, r15.ywyy, r16.yzyy + mov r12.y, r14.x + mov r12.z, r15.z + dp3 r17.z, r12.yzwy, r16.xyzx + mad r12.xyz, -r3.xyzx, r1.wwww, r17.xyzx + mad r12.xyz, r9.wwww, r12.xyzx, r2.xywx + mul r9.w, r9.w, cb0[223].y + mul r9.w, r9.w, l(0.330000) +else + mov r12.xyz, r2.xywx + mov r9.w, l(0) +endif +lt r13.xw, l(0.000488281250, 0.000000, 0.000000, 0.000488281250), cb0[227].yyyw +or r11.w, r13.w, r13.x +lt r13.x, l(0.000488281250), r13.y +and r11.w, r11.w, r13.x +if_nz r11.w + mul r14.xyz, r2.ywxy, l(1.000000, 0.000000, 0.000000, 0.000000) + mad r14.xyz, r2.xywx, l(0.000000, 0.000000, 1.000000, 0.000000), -r14.xyzx + dp2 r11.w, r14.xzxx, r14.xzxx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + mul r15.xyz, r2.ywxy, r14.xyzx + mad r15.xyz, r14.zxyz, r2.wxyw, -r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xzyx + mul r13.xw, -r5.xxxz, cb0[228].xxxy + frc r14.yw, r13.xxxw + round_ni r13.xw, r13.xxxw + dp2 r11.w, r13.xwxx, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + add r13.x, r11.w, cb0[227].x + frc r13.x, r13.x + mul r13.w, cb0[228].z, cb0[228].z + mul r13.x, r13.w, r13.x + round_ni r13.x, r13.x + div r13.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z + mad r16.xy, -r5.xzxx, cb0[228].xyxx, cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r16.xyxx, t12.zwxy, s2, cb0[108].x + mad r17.xy, -r5.xzxx, cb0[228].xyxx, -cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r17.xyxx, t12.xyzw, s2, cb0[108].x + mul r16.xyzw, r16.xyzw, cb0[227].wwww + mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww + ge r11.w, l(0.500000), r11.w + and r11.w, r11.w, l(0x3f800000) + add r17.xy, -r14.ywyy, r14.wyww + mad r14.yw, r11.wwww, r17.xxxy, r14.yyyw + div r11.w, r13.x, cb0[228].z + ge r17.x, r11.w, -r11.w + frc r11.w, |r11.w| + movc r11.w, r17.x, r11.w, -r11.w + mul r11.w, r11.w, cb0[228].z + mul r17.x, r11.w, r13.w + add r17.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz + mul r11.w, r13.w, r13.x + round_ni r11.w, r11.w + add r11.w, -r11.w, r17.w + mul r17.y, r11.w, r13.w + mad r13.xw, r14.yyyw, r13.wwww, r17.xxxy + frc r13.xw, r13.xxxw + sample_b_indexable(texture2d)(float,float,float,float) r13.xw, r13.xwxx, t12.xzwy, s1, cb0[108].x + mul r13.xw, r13.xxxw, cb0[227].yyyy + mad r13.xw, r13.xxxw, l(2.000000, 0.000000, 0.000000, 2.000000), -cb0[227].yyyy + add r14.yw, r16.zzzw, r16.xxxy + add r16.xy, r13.xwxx, r14.ywyy + dp2 r11.w, r16.xyxx, r16.xyxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r16.z, r11.w, l(0.000488281250) + dp3 r11.w, r16.xyzx, r16.xyzx + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + mov r15.w, r2.x + dp2 r18.x, r15.xwxx, r16.yzyy + mov r19.x, r14.z + mov r19.y, r15.z + mov r19.z, r2.y + dp3 r18.y, r19.xyzx, r16.xyzx + mov r15.x, r14.x + mov r15.z, r2.w + dp3 r18.z, r15.xyzx, r16.xyzx + mul r11.z, r11.z, cb0[222].x + mul r11.z, r13.y, r11.z + max r11.w, l(0.000488281250), cb0[228].w + mov_sat r17.z, r17.z + add r13.x, -r11.w, r17.z + add r11.w, r2.z, -r11.w + div r13.x, l(1.000000, 1.000000, 1.000000, 1.000000), r13.x + mul_sat r11.w, r11.w, r13.x + mad r13.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r13.x + mul r11.z, r11.w, r11.z + mul r11.z, r13.z, r11.z + mad r3.xyz, -r3.xyzx, r1.wwww, r18.xyzx + mad r12.xyz, r11.zzzz, r3.xyzx, r2.xywx +endif +min r1.w, r10.y, r10.x +mul r3.x, r11.x, cb0[230].z +mad r3.y, -cb0[230].z, r11.x, l(1.000000) +mad r3.x, r10.w, r3.y, r3.x +mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r3.z, r11.y, -cb0[222].w +div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y +mul_sat r3.y, r3.y, r3.z +mad r3.z, r3.y, l(-2.000000), l(3.000000) +mul r3.y, r3.y, r3.y +mul r3.y, r3.y, r3.z +add r3.z, -r3.x, cb0[230].y +mad r3.x, r3.y, r3.z, r3.x +add r3.x, -r3.x, l(1.000000) +mul r3.y, r3.x, r10.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r3.z, -r2.z, l(1.000000) +mad_sat r10.w, r3.z, cb0[222].z, cb0[222].y +mad_sat r10.w, r9.w, cb0[224].z, r10.w +add r11.x, -r10.w, l(1.000000) +mad r10.w, r1.x, r11.x, r10.w +mul_sat r10.z, r10.z, l(3.33333325) +mad r11.x, r10.z, l(-2.000000), l(3.000000) +mul r10.z, r10.z, r10.z +mad r10.z, -r11.x, r10.z, l(1.000000) +mul r11.x, r10.w, cb0[222].x +add r11.y, -r1.x, l(1.000000) +mul r11.x, r11.y, r11.x +mul r11.x, r10.z, r11.x +mad r11.x, r11.x, l(-0.750000), l(1.000000) +mad r10.w, r10.w, l(-0.299999952), l(0.900000) +sqrt r11.y, r3.z +add r10.w, r10.w, r11.y +add_sat r10.w, r10.w, l(-0.600000) +max r10.w, r3.z, r10.w +min r10.w, r10.w, l(0.990000) +add_sat r11.y, l(2.000000), -cb0[222].x +mul r11.y, r11.y, cb0[222].x +mul r10.z, r10.z, r11.y +mad r3.x, -r10.x, r3.x, l(1.000000) +mul r3.x, r3.x, r10.z +add r10.x, -r3.z, r10.w +mad r3.x, r3.x, r10.x, r3.z +add r3.x, -r3.x, l(1.000000) +mul_sat r3.z, r9.w, l(20.000000) +mad r9.w, r3.z, l(-2.000000), l(3.000000) +mul r3.z, r3.z, r3.z +mul r3.z, r3.z, r9.w +mad r3.z, r3.z, l(-0.900000), l(1.000000) +mul r9.w, r3.z, r3.x +add r10.x, r10.y, l(-1.000000) +mad r10.x, r1.z, r10.x, l(1.000000) +add r10.y, -r1.z, l(1.000000) +movc r10.xy, r8.wwww, r10.xyxx, l(1.000000,1.000000,0,0) +min r1.z, r9.w, r10.x +mad r3.x, r3.x, r3.z, -r1.z +mad r1.z, r1.w, r3.x, r1.z +add r2.z, -r1.z, r2.z +mad r13.w, r3.y, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r10.xzw, r0.xyzz, t28.xwyz +min r1.z, r11.x, r10.y +add r2.z, -r1.z, r11.x +mad r1.z, r1.w, r2.z, r1.z +add r1.w, -r1.z, l(1.000000) +mad r1.z, r3.y, r1.w, r1.z +mul r3.xyz, r1.zzzz, r10.xzwx +mul r11.xyz, r1.xxxx, r3.xyzx +mad r10.xyz, r10.xzwx, r1.zzzz, -r11.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz +dp3 r2.z, r12.xyzx, r9.xyzx +max r11.x, r2.z, l(0.000000) +mul r3.y, r13.w, r13.w +mul r14.x, r11.x, r11.x +mul r14.z, r11.x, r14.x +mul r2.z, r3.y, r3.y +mul r3.z, r3.y, r2.z +mov r11.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r15.x, l(3.327070, 1.000000, 0.000000, 0.000000), r11.xyxx +dp2 r15.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r11.xzxx +mov r3.x, l(1.000000) +dp2 r8.w, r15.xyxx, r3.xyxx +mov r14.yw, l(0,9.044010,0,1.000000) +dp3 r15.x, l(3.596850, -1.367720, 1.000000, 0.000000), r14.xzwx +dp3 r15.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r14.xyzx +mov r16.x, l(5.565890) +mov r16.yz, r14.xxzx +dp3 r15.z, l(1.000000, 19.788601, -20.212299, 0.000000), r16.xyzx +dp3 r9.w, r15.xyzx, r3.xyzx +div r8.w, r8.w, r9.w +dp2 r15.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r11.xwxx +mov r14.x, l(1.296780) +mov r14.y, r11.x +dp2 r15.y, l(1.000000, -0.755907, 0.000000, 0.000000), r14.xyxx +dp2 r9.w, r15.xyxx, r3.xyxx +dp3 r15.x, l(2.923380, 59.418800, 1.000000, 0.000000), r14.yzwy +mov r14.xw, l(20.322500,0,0,121.563004) +dp3 r15.y, l(1.000000, -27.030199, 222.591995, 0.000000), r14.xyzx +dp3 r15.z, l(626.130005, 316.627014, 1.000000, 0.000000), r14.yzwy +dp3 r3.x, r15.xyzx, r3.xyzx +div r3.x, r9.w, r3.x +mad r11.yzw, r1.xxzw, r8.wwww, r3.xxxx +add r3.x, r3.x, r8.w +ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t7.xyzw +lt r0.z, l(0.001000), r14.x +if_nz r0.z + dp3 r0.z, -r9.xyzx, r12.xyzx + add r0.z, r0.z, r0.z + mad r15.xyz, r12.xyzx, -r0.zzzz, -r9.xyzx + dp3 r0.z, -cb3[0].xyzx, r15.xyzx + mad r16.xyz, cb3[0].xyzx, r0.zzzz, r15.xyzx + lt r0.z, r0.z, cb3[4].z + dp3 r3.z, r16.xyzx, r16.xyzx + max r3.z, r3.z, l(0.0000610351562) + rsq r3.z, r3.z + mul r16.xyz, r3.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb3[4].yyyy + mad r16.xyz, -cb3[0].xyzx, cb3[4].zzzz, r16.xyzx + dp3 r3.z, r16.xyzx, r16.xyzx + rsq r3.z, r3.z + mul r16.xyz, r3.zzzz, r16.xyzx + movc r15.xyz, r0.zzzz, r16.xyzx, r15.xyzx + mad r16.xyz, r8.xyzx, r7.wwww, r15.xyzx + dp3 r0.z, r16.xyzx, r16.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r16.xyz, r0.zzzz, r16.xyzx + dp3_sat r13.y, r15.xyzx, r12.xyzx + dp3_sat r0.z, r12.xyzx, r16.xyzx + min r13.z, r11.x, l(1.000000) + mad r3.z, r0.z, r2.z, -r0.z + mad r0.z, r3.z, r0.z, l(1.000000) + dp3_sat r3.z, r9.xyzx, r16.xyzx + add r3.z, -r3.z, l(1.000000) + mul r8.w, r3.z, r3.z + mul r8.w, r8.w, r8.w + mul r9.w, r3.z, r8.w + add r10.w, -r13.w, l(1.000000) + mad r14.z, -r10.w, l(0.383026), l(-0.0761947036) + mad r14.z, r10.w, r14.z, l(1.049970) + mad r10.w, r10.w, r14.z, l(0.409255) + min r10.w, r10.w, l(0.999000) + add r14.z, -r10.w, l(1.000000) + add r16.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx + mad r3.z, -r8.w, r3.z, l(1.000000) + mad r17.xyz, r1.xzwx, r3.zzzz, r9.wwww + mul r0.z, r0.z, r0.z + div r0.z, r2.z, r0.z + mad r18.xy, -r13.zyzz, r2.zzzz, r13.zyzz + mad r18.xy, r18.xyxx, r13.zyzz, r2.zzzz + sqrt r18.xy, r18.xyxx + mul r18.xy, r13.yzyy, r18.xyxx + add r2.z, r18.y, r18.x + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.z, r0.z, r2.z + mul r17.xyz, r0.zzzz, r17.xyzx + min r17.xyz, r17.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.xyzw, r13.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r18.xyxx, t13.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r18.zwzz, t13.yzxw, s1, l(0.000000) + mul r0.z, r0.z, r2.z + mul r0.z, r10.w, r0.z + div r0.z, r0.z, r14.z + mul r18.xyz, r16.xyzx, r16.xyzx + mul r18.xyz, r0.zzzz, r18.xyzx + mad r16.xyz, -r16.xyzx, r14.zzzz, l(1.000000, 1.000000, 1.000000, 0.000000) + div r16.xyz, r18.xyzx, r16.xyzx + add r16.xyz, r16.xyzx, r17.xyzx + mul r16.xyz, r16.xyzx, cb3[4].xxxx + max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r16.xyz, r16.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + dp3_sat r0.z, r15.xyzx, r2.xywx + mul r15.xyz, r0.zzzz, r10.xyzx + mad r15.xyz, r16.xyzx, r13.yyyy, r15.xyzx + mul r15.xyz, r15.xyzx, cb3[1].xyzx + mov r14.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r14.yzw, r14.xyxx, t8.wxyz, s1, cb0[108].x + add r0.z, -r14.x, l(1.000000) + mad r14.xyz, r15.xyzx, r14.yzwy, -r15.xyzx + mad r14.xyz, r0.zzzz, r14.xyzx, r15.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t14.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r14.xyz, r0.zzzz, r14.xyzx +else + mov r14.xyz, l(0,0,0,0) +endif +mul r13.yz, r4.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r13.yz, r13.yyzy +mad r0.z, r13.z, cb2[1].y, r13.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r2.z, -cb0[85].y, cb2[2].w, |r3.w| +round_ni r2.z, r2.z +add r3.z, l(-1.000000), cb2[1].w +max r8.w, r2.z, l(0.000000) +min r3.z, r3.z, r8.w +mul r8.w, r3.z, l(8.000000) +ftoi r8.w, r8.w +ge r2.z, r3.z, r2.z +iadd r3.z, r8.w, cb0[110].y +dp3 r8.w, -r9.xyzx, r12.xyzx +add r8.w, r8.w, r8.w +mad r15.xyz, r12.xyzx, -r8.wwww, -r9.xyzx +min r13.x, r11.x, l(1.000000) +add r8.w, -r13.w, l(1.000000) +mad r9.w, -r8.w, l(0.383026), l(-0.0761947036) +mad r9.w, r8.w, r9.w, l(1.049970) +mad r8.w, r8.w, r9.w, l(0.409255) +min r8.w, r8.w, l(0.999000) +add r9.w, -r8.w, l(1.000000) +add r16.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx +mad r13.yz, r13.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r10.w, r13.yzyy, t13.yzwx, s1, l(0.000000) +mad r17.xyz, -r16.xyzx, r9.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r18.w, l(1.000000) +mov r19.y, l(1.000000) +mov r20.z, r13.w +mov r21.xyz, l(0,0,0,0) +mov r11.x, l(1.000000) +mov r13.y, l(0) +loop + ilt r13.z, l(7), r13.y + breakc_nz r13.z + iadd r13.z, r0.z, r13.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.z, r13.z, l(0), t0.xxxx + iadd r14.w, r3.z, r13.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.w, r14.w, l(0), t0.xxxx + and r13.z, r13.z, r14.w + and r13.z, r2.z, r13.z + ishl r14.w, r13.y, l(5) + mov r22.xyz, l(0,0,0,0) + mov r15.w, r11.x + mov r16.w, r13.z + loop + breakc_z r16.w + firstbit_lo r17.w, r16.w + ishl r19.z, l(1), r17.w + xor r19.z, r16.w, r19.z + iadd r17.w, r14.w, r17.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r17.wwww, l(1, 3, 5, 6) + bfi r19.w, l(29), l(3), r17.w, l(7) + ftou r20.w, cb3[r23.z + 6].w + ieq r20.w, r20.w, l(1) + if_nz r20.w + add r18.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.w + 6].yxzy + ushr r26.xyz, cb3[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb3[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r20.w, r18.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r21.w, r18.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r18.x, r18.xyzw, r27.xyzw + max r18.y, |r20.w|, |r21.w| + max r18.x, |r18.x|, r18.y + mad r18.y, cb3[r19.w + 6].x, l(0.500000), l(0.500000) + add r18.x, -r18.y, r18.x + mad r18.y, -cb3[r19.w + 6].x, l(0.500000), l(0.500000) + div_sat r18.x, r18.x, r18.y + add r18.x, -r18.x, l(1.000000) + mul r18.x, r18.x, r18.x + else + mov r18.x, l(1.000000) + endif + lt r18.y, l(0.500000), cb3[r23.y + 6].z + lt r18.z, r18.x, l(0.001000) + or r18.z, r18.y, r18.z + if_nz r18.z + mov r16.w, r19.z + continue + endif + ishl r18.z, r17.w, l(3) + bfi r17.w, l(29), l(3), r17.w, l(2) + lt r20.w, cb3[r18.z + 6].w, l(1.500000) + if_nz r20.w + mad r20.w, cb3[r17.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r20.w, -|cb3[r17.w + 6].x| + add r24.y, -r24.x, cb3[r17.w + 6].y + add r20.w, -|r24.x|, l(1.000000) + add r20.w, -|r24.y|, r20.w + ge r21.w, cb3[r17.w + 6].x, l(0.000000) + max r22.w, r20.w, l(0.000488281250) + movc r24.z, r21.w, r22.w, -r22.w + dp3 r22.w, r24.xyzx, r24.xyzx + rsq r22.w, r22.w + mul r25.xyz, r22.wwww, r24.xyzx + add r26.xyz, -r5.xyzx, cb3[r23.x + 6].xyzx + dp3 r22.w, r26.xyzx, r26.xyzx + rsq r23.z, r22.w + mul r27.xyz, r23.zzzz, r26.xyzx + dp3_sat r19.x, r12.xyzx, r27.xyzx + ftoi r24.z, cb3[r19.w + 6].w + mul r28.xyz, r25.xyzx, cb3[r17.w + 6].zzzz + mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r30.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + ftou r25.w, cb3[r18.z + 6].w + and r25.w, r25.w, l(1) + ieq r26.w, r25.w, l(0) + not r26.w, r26.w + lt r27.w, l(0.000000), cb3[r17.w + 6].z + and r26.w, r26.w, r27.w + dp3 r27.w, r29.xyzx, r29.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r30.xyzx, r30.xyzx + sqrt r28.w, r28.w + dp3 r29.w, r12.xyzx, r29.xyzx + div r29.w, r29.w, r27.w + dp3 r30.w, r12.xyzx, r30.xyzx + div r30.w, r30.w, r28.w + add r29.w, r29.w, r30.w + mul_sat r31.x, r29.w, l(0.500000) + dp3 r29.w, r29.xyzx, r30.xyzx + mad r27.w, r27.w, r28.w, r29.w + mad r27.w, r27.w, l(0.500000), l(1.000000) + div r31.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w + movc r20.xy, r26.wwww, r31.xyxx, r19.xyxx + lt r27.w, cb3[r23.w + 6].w, l(0.000000) + if_nz r27.w + mul r27.w, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r27.w, r22.w, r27.w + mad r27.w, -r27.w, r27.w, l(1.000000) + max r27.w, r27.w, l(0.000000) + add r22.w, r22.w, l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + and r28.w, r26.w, l(0x3f800000) + add r29.w, r20.y, -r22.w + mad r22.w, r28.w, r29.w, r22.w + mul r27.w, r27.w, r27.w + mul r22.w, r22.w, r27.w + else + mul r30.xyz, r26.xyzx, cb3[r23.x + 6].wwww + dp3 r27.w, r30.xyzx, r30.xyzx + min r27.w, r27.w, l(1.000000) + add r27.w, -r27.w, l(1.000000) + log r27.w, r27.w + mul r27.w, r27.w, cb3[r23.w + 6].w + exp r27.w, r27.w + mul r22.w, r20.y, r27.w + endif + dp3 r20.y, r27.xyzx, -r25.xyzx + add r20.y, r20.y, -cb3[r17.w + 6].z + mul_sat r20.y, r20.y, cb3[r17.w + 6].w + mul r20.y, r20.y, r20.y + movc r20.y, r25.w, l(1.000000), r20.y + mul r20.y, r20.y, r22.w + not r22.w, r26.w + ige r25.x, r24.z, l(0) + and r22.w, r22.w, r25.x + if_nz r22.w + if_z r25.w + ishl r22.w, r24.z, l(2) + mul r25.xyz, r5.yyyy, cb6[r22.w + 33].xywx + mad r25.xyz, cb6[r22.w + 32].xywx, r5.xxxx, r25.xyzx + mad r25.xyz, cb6[r22.w + 34].xywx, r5.zzzz, r25.xyzx + add r25.xyz, r25.xyzx, cb6[r22.w + 35].xywx + div_sat r25.xy, r25.xyxx, r25.zzzz + mad r25.xy, r25.xyxx, cb6[r24.z + 0].zwzz, cb6[r24.z + 0].xyxx + else + ishl r22.w, r24.z, l(2) + dp3 r30.x, -r26.xyzx, cb6[r22.w + 32].xyzx + dp3 r30.y, -r26.xyzx, cb6[r22.w + 33].xyzx + dp3 r30.z, -r26.xyzx, cb6[r22.w + 34].xyzx + lt r22.w, |r30.x|, |r30.y| + and r22.w, r22.w, l(1) + dp2 r25.z, |r30.xyxx|, icb[r22.w + 0].xyxx + lt r25.z, r25.z, |r30.z| + movc r22.w, r25.z, l(2), r22.w + dp3 r25.z, r30.xyzx, icb[r22.w + 0].xyzx + lt r25.z, r25.z, l(0.000000) + bfi r22.w, l(31), l(1), r22.w, r25.z + ushr r25.z, r22.w, l(1) + dp3 r25.z, r30.xyzx, icb[r25.z + 0].xyzx + div r27.w, l(0.000244140625), cb6[r24.z + 0].w + add r27.w, -r27.w, l(0.500000) + utof r28.w, r22.w + ult r29.w, r22.w, l(2) + and r29.w, r29.w, l(2) + dp2 r29.w, r30.xzxx, icb[r29.w + 0].xzxx + mul r29.w, r29.w, icb[r22.w + 4].z + div r29.w, r29.w, |r25.z| + mad r28.w, r29.w, r27.w, r28.w + add r28.w, r28.w, l(0.500000) + mul_sat r31.x, r28.w, l(0.166666672) + iadd r28.w, l(-1), icb[r22.w + 4].y + dp2 r28.w, r30.yzyy, icb[r28.w + 0].xyxx + mul r22.w, r28.w, icb[r22.w + 4].w + div r22.w, r22.w, |r25.z| + mad_sat r31.y, -r22.w, r27.w, l(0.500000) + mad r25.xy, r31.xyxx, cb6[r24.z + 0].zwzz, cb6[r24.z + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r22.w, r25.xyxx, t15.yzwx, s1, l(0.000000) + mul r20.y, r20.y, r22.w + endif + lt r22.w, l(0.000000), r20.y + if_nz r22.w + if_z r25.w + ftoi r24.z, cb3[r23.y + 6].x + else + add r25.xyz, r5.xyzx, -cb3[r23.x + 6].xyzx + lt r30.xyz, |r25.yzzy|, |r25.xxyx| + and r25.w, r30.y, r30.x + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ushr r27.w, cb3[r17.w + 6].w, l(24) + ubfe r30.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r17.w + 6].wwww + movc r25.x, r25.x, r27.w, r30.x + and r27.w, l(255), cb3[r17.w + 6].w + movc r25.y, r25.y, r30.y, r27.w + ubfe r27.w, l(8), l(8), cb3[r23.y + 6].x + and r28.w, l(255), cb3[r23.y + 6].x + movc r25.z, r25.z, r27.w, r28.w + movc r25.y, r30.z, r25.y, r25.z + movc r25.x, r25.w, r25.x, r25.y + ilt r25.y, r25.x, l(80) + movc r24.z, r25.y, r25.x, l(-1) + endif + ishl r25.x, r24.z, l(2) + mad r25.yzw, r27.xxyz, cb4[r24.z + 288].xxxx, r5.xxyz + mul r27.w, l(5.000000), cb4[r24.z + 288].y + mad r25.yzw, r12.xxyz, r27.wwww, r25.yyzw + mul r30.xyzw, r25.zzzz, cb4[r25.x + 65].xyzw + mad r30.xyzw, cb4[r25.x + 64].xyzw, r25.yyyy, r30.xyzw + mad r30.xyzw, cb4[r25.x + 66].xyzw, r25.wwww, r30.xyzw + add r25.xyzw, r30.xyzw, cb4[r25.x + 67].xyzw + div r25.xyz, r25.xyzx, r25.wwww + ge r30.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ge r31.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r32.xy, -cb4[r24.z + 344].xyxx, cb4[r24.z + 344].zwzz + mad r25.xy, r25.xyxx, r32.xyxx, cb4[r24.z + 344].xyxx + mad r32.xy, r25.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r32.xy, r32.xyxx + mad r25.xy, r25.xyxx, cb4[400].zwzz, -r32.xyxx + add r33.xyzw, r25.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r34.xyzw, r33.xxzz, r33.xxzz + add r32.zw, -r25.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r33.xz, r25.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r35.xy, r25.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r36.xy, r32.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r35.xy, -r35.xyxx, r35.xyxx, r33.ywyy + add r35.xy, r35.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r35.xy, r35.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r34.xz, r34.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r25.xy, r34.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r25.xyxx + mul r37.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r25.xy, -r33.xzxx, r33.xzxx, r32.zwzz + add r25.xy, r25.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r38.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xy, r33.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r37.z, r38.x + mov r37.w, r25.x + mov r36.z, r35.x + mov r36.w, r34.x + add r33.xyzw, r36.zwxz, r37.zwxz + mov r38.z, r37.y + mov r38.w, r25.y + mov r35.z, r36.y + mov r35.w, r34.z + add r25.xyw, r35.zyzw, r38.zyzw + div r34.xyz, r36.xzwx, r33.zwyz + add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r34.xyz, r34.yxzy, cb4[400].xxxx + div r35.xyz, r35.zywz, r25.xywx + add r35.xyz, r35.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r35.xyz, r35.xyzx, cb4[400].yyyy + mov r34.w, r35.x + mad r36.xyzw, r32.xyxy, cb4[400].xyxy, r34.ywxw + mad r32.zw, r32.xxxy, cb4[400].xxxy, r34.zzzw + mov r35.w, r34.y + mov r34.yw, r35.yyyz + mad r37.xyzw, r32.xyxy, cb4[400].xyxy, r34.xyzy + mad r35.xyzw, r32.xyxy, cb4[400].xyxy, r35.wywz + mad r34.xyzw, r32.xyxy, cb4[400].xyxy, r34.xwzw + mul r38.xyzw, r25.xxxy, r33.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r36.xyxx, t6.xxxx, s4, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r27.w, r36.zwzz, t6.xxxx, s4, r25.z + mul r27.w, r27.w, r38.y + mad r25.x, r38.x, r25.x, r27.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r27.w, r32.zwzz, t6.xxxx, s4, r25.z + mad r25.x, r38.z, r27.w, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r27.w, r35.xyxx, t6.xxxx, s4, r25.z + mad r25.x, r38.w, r27.w, r25.x + mul r32.xyzw, r25.yyww, r33.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.y, r37.xyxx, t6.xxxx, s4, r25.z + mad r25.x, r32.x, r25.y, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.y, r37.zwzz, t6.xxxx, s4, r25.z + mad r25.x, r32.y, r25.y, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.y, r35.zwzz, t6.xxxx, s4, r25.z + mad r25.x, r32.z, r25.y, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.y, r34.xyxx, t6.xxxx, s4, r25.z + mad r25.x, r32.w, r25.y, r25.x + ige r25.y, r24.z, l(0) + or r30.xyz, r30.xyzx, r31.xyzx + or r27.w, r30.y, r30.x + or r27.w, r30.z, r27.w + and r28.w, r25.z, l(0x7fffffff) + ult r28.w, l(0x7f800000), r28.w + or r27.w, r27.w, r28.w + mul r25.w, r25.w, r33.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.z, r34.zwzz, t6.xxxx, s4, r25.z + mad r25.x, r25.w, r25.z, r25.x + add r25.x, r25.x, l(-1.000000) + mad r24.z, cb4[r24.z + 288].w, r25.x, l(1.000000) + movc r24.z, r27.w, l(1.000000), r24.z + movc r24.z, r25.y, r24.z, l(1.000000) + else + mov r24.z, l(1.000000) + endif + if_nz r26.w + dp3 r25.x, r15.xyzx, r28.xyzx + mul_sat r25.y, r23.z, cb3[r17.w + 6].z + mad r25.y, r25.y, l(0.500000), r3.y + min r25.y, r25.y, l(1.000000) + div r25.y, r3.y, r25.y + mad r30.xyz, r15.xyzx, r25.xxxx, -r28.xyzx + dp3 r25.z, r29.xyzx, r30.xyzx + mul r25.x, r25.x, r25.x + mad r25.x, cb3[r17.w + 6].z, cb3[r17.w + 6].z, -r25.x + div_sat r25.x, r25.z, r25.x + mad r25.xzw, r28.xxyz, r25.xxxx, r29.xxyz + dp3 r27.w, r25.xzwx, r25.xzwx + rsq r27.w, r27.w + mul r27.xyz, r25.xzwx, r27.wwww + else + mov r25.y, l(1.000000) + endif + if_nz r22.w + mul_sat r22.w, r23.z, cb3[r19.w + 6].y + mad r25.xzw, r8.xxyz, r7.wwww, r27.xxyz + dp3 r23.z, r25.xzwx, r25.xzwx + max r23.z, r23.z, l(0.0000610351562) + rsq r23.z, r23.z + mul r25.xzw, r23.zzzz, r25.xxzw + max r20.w, r20.w, l(5.960464478E-08) + movc r24.w, r21.w, r20.w, -r20.w + dp3 r20.w, r24.xywx, r24.xywx + rsq r20.w, r20.w + mul r24.xyw, r20.wwww, r24.xyxw + mul r24.xyw, r24.xyxw, cb3[r17.w + 6].zzzz + mad r27.xyz, -r24.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r24.xyw, r24.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r26.xyxz + dp3 r20.w, r12.xyzx, r27.xyzx + dp3 r21.w, r27.xyzx, r27.xyzx + sqrt r21.w, r21.w + div r20.w, r20.w, r21.w + dp3 r21.w, r12.xyzx, r24.xywx + dp3 r23.z, r24.xywx, r24.xywx + sqrt r23.z, r23.z + div r21.w, r21.w, r23.z + add r20.w, r20.w, r21.w + mul_sat r20.w, r20.w, l(0.500000) + movc r19.x, r26.w, r20.w, r19.x + dp3_sat r20.w, r12.xyzx, r25.xzwx + dp3_sat r21.w, r9.xyzx, r25.xzwx + lt r23.z, l(0.000000), r22.w + mul r22.w, r22.w, r22.w + mad r24.x, r21.w, l(3.600000), l(0.400000) + div r22.w, r22.w, r24.x + mad r22.w, r13.w, r13.w, r22.w + min r22.w, r22.w, l(1.000000) + movc r22.w, r23.z, r22.w, r3.y + mul r22.w, r22.w, r22.w + mad r23.z, r20.w, r22.w, -r20.w + mad r20.w, r23.z, r20.w, l(1.000000) + add r21.w, -r21.w, l(1.000000) + mul r23.z, r21.w, r21.w + mul r23.z, r23.z, r23.z + mul r24.x, r21.w, r23.z + mad r21.w, -r23.z, r21.w, l(1.000000) + mad r24.xyw, r1.xzxw, r21.wwww, r24.xxxx + mul r20.w, r20.w, r20.w + div r20.w, r22.w, r20.w + mul r20.w, r25.y, r20.w + mad r21.w, -r13.x, r22.w, r13.x + mad r21.w, r21.w, r13.x, r22.w + sqrt r21.w, r21.w + mad r23.z, -r20.x, r22.w, r20.x + mad r22.w, r23.z, r20.x, r22.w + sqrt r22.w, r22.w + mul r22.w, r13.x, r22.w + mad r21.w, r20.x, r21.w, r22.w + add r21.w, r21.w, l(0.000100) + div r21.w, l(0.500000), r21.w + mul r20.w, r20.w, r21.w + mul r24.xyw, r20.wwww, r24.xyxw + min r24.xyw, r24.xyxw, l(2048.000000, 2048.000000, 0.000000, 2048.000000) + mad r25.xy, r20.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r20.w, r25.xyxx, t13.yzwx, s1, l(0.000000) + mul r20.w, r10.w, r20.w + mul r20.w, r8.w, r20.w + div r20.w, r20.w, r9.w + mul r25.xyz, r16.xyzx, r20.wwww + div r25.xyz, r25.xyzx, r17.xyzx + add r24.xyw, r24.xyxw, r25.xyxz + mul r24.xyw, r24.xyxw, cb3[r19.w + 6].zzzz + max r24.xyw, r24.xyxw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r24.xyw, r24.xyxw, l(1000.000000, 1000.000000, 0.000000, 1000.000000) + mul r25.xyz, r10.xyzx, r19.xxxx + mad r24.xyw, r24.xyxw, r20.xxxx, r25.xyxz + mul r20.xyw, r20.yyyy, cb3[r18.z + 6].xyxz + mul r20.xyw, r24.zzzz, r20.xyxw + mul r20.xyw, r18.xxxx, r20.xyxw + mul r20.xyw, r20.xyxw, r24.xyxw + else + mov r20.xyw, l(0,0,0,0) + endif + else + if_z r18.y + mad r18.x, cb3[r17.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r18.x, -|cb3[r17.w + 6].x| + add r24.y, -r24.x, cb3[r17.w + 6].y + add r18.x, -|r24.x|, l(1.000000) + add r18.x, -|r24.y|, r18.x + max r18.x, r18.x, l(0.000488281250) + ge r18.y, cb3[r17.w + 6].x, l(0.000000) + movc r24.z, r18.y, r18.x, -r18.x + dp3 r18.x, r24.xyzx, r24.xyzx + rsq r18.x, r18.x + mul r24.xyz, r18.xxxx, r24.xyzx + add r25.xyz, -r5.xyzx, cb3[r23.x + 6].xyzx + dp3 r18.x, r25.xyzx, r25.xyzx + rsq r18.y, r18.x + mul r26.xyz, r18.yyyy, r25.xyzx + ftoi r18.y, cb3[r19.w + 6].w + mul r27.xyz, r24.xyzx, cb3[r17.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r27.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r18.z, cb3[r18.z + 6].w + and r18.z, r18.z, l(1) + ieq r19.x, r18.z, l(0) + not r19.x, r19.x + lt r19.w, l(0.000000), cb3[r17.w + 6].z + and r19.x, r19.w, r19.x + dp3 r19.w, r28.xyzx, r28.xyzx + sqrt r19.w, r19.w + dp3 r21.w, r27.xyzx, r27.xyzx + sqrt r21.w, r21.w + dp3 r22.w, r28.xyzx, r27.xyzx + mad r19.w, r19.w, r21.w, r22.w + mad r19.w, r19.w, l(0.500000), l(1.000000) + div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w + movc r19.w, r19.x, r19.w, l(1.000000) + lt r21.w, cb3[r23.w + 6].w, l(0.000000) + if_nz r21.w + mul r21.w, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r21.w, r18.x, r21.w + mad r21.w, -r21.w, r21.w, l(1.000000) + max r21.w, r21.w, l(0.000000) + add r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + and r22.w, r19.x, l(0x3f800000) + add r23.z, -r18.x, r19.w + mad r18.x, r22.w, r23.z, r18.x + mul r21.w, r21.w, r21.w + mul r18.x, r18.x, r21.w + else + mul r27.xyz, r25.xyzx, cb3[r23.x + 6].wwww + dp3 r21.w, r27.xyzx, r27.xyzx + min r21.w, r21.w, l(1.000000) + add r21.w, -r21.w, l(1.000000) + log r21.w, r21.w + mul r21.w, r21.w, cb3[r23.w + 6].w + exp r21.w, r21.w + mul r18.x, r19.w, r21.w + endif + dp3 r19.w, r26.xyzx, -r24.xyzx + add r19.w, r19.w, -cb3[r17.w + 6].z + mul_sat r19.w, r19.w, cb3[r17.w + 6].w + mul r19.w, r19.w, r19.w + movc r19.w, r18.z, l(1.000000), r19.w + mul r18.x, r18.x, r19.w + not r19.x, r19.x + ige r19.w, r18.y, l(0) + and r19.x, r19.w, r19.x + if_nz r19.x + if_z r18.z + ishl r19.x, r18.y, l(2) + mul r24.xyz, r5.yyyy, cb6[r19.x + 33].xywx + mad r24.xyz, cb6[r19.x + 32].xywx, r5.xxxx, r24.xyzx + mad r24.xyz, cb6[r19.x + 34].xywx, r5.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb6[r19.x + 35].xywx + div_sat r19.xw, r24.xxxy, r24.zzzz + mad r19.xw, r19.xxxw, cb6[r18.y + 0].zzzw, cb6[r18.y + 0].xxxy + else + ishl r21.w, r18.y, l(2) + dp3 r24.x, -r25.xyzx, cb6[r21.w + 32].xyzx + dp3 r24.y, -r25.xyzx, cb6[r21.w + 33].xyzx + dp3 r24.z, -r25.xyzx, cb6[r21.w + 34].xyzx + lt r21.w, |r24.x|, |r24.y| + and r21.w, r21.w, l(1) + dp2 r22.w, |r24.xyxx|, icb[r21.w + 0].xyxx + lt r22.w, r22.w, |r24.z| + movc r21.w, r22.w, l(2), r21.w + dp3 r22.w, r24.xyzx, icb[r21.w + 0].xyzx + lt r22.w, r22.w, l(0.000000) + bfi r21.w, l(31), l(1), r21.w, r22.w + ushr r22.w, r21.w, l(1) + dp3 r22.w, r24.xyzx, icb[r22.w + 0].xyzx + div r23.z, l(0.000244140625), cb6[r18.y + 0].w + add r23.z, -r23.z, l(0.500000) + utof r23.w, r21.w + ult r24.w, r21.w, l(2) + and r24.w, r24.w, l(2) + dp2 r24.x, r24.xzxx, icb[r24.w + 0].xzxx + mul r24.x, r24.x, icb[r21.w + 4].z + div r24.x, r24.x, |r22.w| + mad r23.w, r24.x, r23.z, r23.w + add r23.w, r23.w, l(0.500000) + mul_sat r25.x, r23.w, l(0.166666672) + iadd r23.w, l(-1), icb[r21.w + 4].y + dp2 r23.w, r24.yzyy, icb[r23.w + 0].xyxx + mul r21.w, r23.w, icb[r21.w + 4].w + div r21.w, r21.w, |r22.w| + mad_sat r25.y, -r21.w, r23.z, l(0.500000) + mad r19.xw, r25.xxxy, cb6[r18.y + 0].zzzw, cb6[r18.y + 0].xxxy + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r19.xwxx, t15.yxzw, s1, l(0.000000) + mul r18.x, r18.y, r18.x + endif + lt r18.x, l(0.000000), r18.x + if_nz r18.x + if_z r18.z + ftoi r18.x, cb3[r23.y + 6].x + else + add r23.xzw, r5.xxyz, -cb3[r23.x + 6].xxyz + lt r24.xyz, |r23.zwwz|, |r23.xxzx| + and r18.y, r24.y, r24.x + lt r23.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xxzw + ushr r18.z, cb3[r17.w + 6].w, l(24) + ubfe r19.xw, l(8, 0, 0, 8), l(16, 0, 0, 8), cb3[r17.w + 6].wwww + movc r18.z, r23.x, r18.z, r19.x + and r17.w, l(255), cb3[r17.w + 6].w + movc r17.w, r23.z, r19.w, r17.w + ubfe r19.x, l(8), l(8), cb3[r23.y + 6].x + and r19.w, l(255), cb3[r23.y + 6].x + movc r19.x, r23.w, r19.x, r19.w + movc r17.w, r24.z, r17.w, r19.x + movc r17.w, r18.y, r18.z, r17.w + ilt r18.y, r17.w, l(80) + movc r18.x, r18.y, r17.w, l(-1) + endif + ishl r17.w, r18.x, l(2) + mad r23.xyz, r26.xyzx, cb4[r18.x + 288].xxxx, r5.xyzx + mul r18.y, l(5.000000), cb4[r18.x + 288].y + mad r23.xyz, r2.xywx, r18.yyyy, r23.xyzx + mul r24.xyzw, r23.yyyy, cb4[r17.w + 65].xyzw + mad r24.xyzw, cb4[r17.w + 64].xyzw, r23.xxxx, r24.xyzw + mad r23.xyzw, cb4[r17.w + 66].xyzw, r23.zzzz, r24.xyzw + add r23.xyzw, r23.xyzw, cb4[r17.w + 67].xyzw + div r23.xyz, r23.xyzx, r23.wwww + ge r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + ge r25.xyz, r23.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r18.yz, -cb4[r18.x + 344].xxyx, cb4[r18.x + 344].zzwz + mad r18.yz, r23.xxyx, r18.yyzy, cb4[r18.x + 344].xxyx + mad r19.xw, r18.yyyz, cb4[400].zzzw, l(0.500000, 0.000000, 0.000000, 0.500000) + round_ni r19.xw, r19.xxxw + mad r18.yz, r18.yyzy, cb4[400].zzwz, -r19.xxwx + add r26.xyzw, r18.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r23.xy, -r18.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r26.xz, r18.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r18.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r23.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r18.yz, r27.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r18.yyzy + mul r30.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r18.yz, -r26.xxzx, r26.xxzx, r23.xxyx + add r18.yz, r18.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r31.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r18.yz, r26.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r30.z, r31.x + mov r30.w, r18.y + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r18.z + mov r28.z, r29.y + mov r28.w, r27.z + add r23.xyw, r28.zyzw, r31.zyzw + div r27.xyz, r29.xzwx, r26.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r23.xywx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r27.w, r28.x + mad r29.xyzw, r19.xwxw, cb4[400].xyxy, r27.ywxw + mad r18.yz, r19.xxwx, cb4[400].xxyx, r27.zzwz + mov r28.w, r27.y + mov r27.yw, r28.yyyz + mad r30.xyzw, r19.xwxw, cb4[400].xyxy, r27.xyzy + mad r28.xyzw, r19.xwxw, cb4[400].xyxy, r28.wywz + mad r27.xyzw, r19.xwxw, cb4[400].xyxy, r27.xwzw + mul r31.xyzw, r23.xxxy, r26.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r29.xyxx, t6.xxxx, s4, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r29.zwzz, t6.xxxx, s4, r23.z + mul r19.x, r19.x, r31.y + mad r17.w, r31.x, r17.w, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r18.yzyy, t6.xxxx, s4, r23.z + mad r17.w, r31.z, r18.y, r17.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r28.xyxx, t6.xxxx, s4, r23.z + mad r17.w, r31.w, r18.y, r17.w + mul r29.xyzw, r23.yyww, r26.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r30.xyxx, t6.xxxx, s4, r23.z + mad r17.w, r29.x, r18.y, r17.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r30.zwzz, t6.xxxx, s4, r23.z + mad r17.w, r29.y, r18.y, r17.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r28.zwzz, t6.xxxx, s4, r23.z + mad r17.w, r29.z, r18.y, r17.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r27.xyxx, t6.xxxx, s4, r23.z + mad r17.w, r29.w, r18.y, r17.w + ige r18.y, r18.x, l(0) + or r24.xyz, r24.xyzx, r25.xyzx + or r18.z, r24.y, r24.x + or r18.z, r24.z, r18.z + and r19.x, r23.z, l(0x7fffffff) + ult r19.x, l(0x7f800000), r19.x + or r18.z, r18.z, r19.x + mul r19.x, r23.w, r26.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.w, r27.zwzz, t6.xxxx, s4, r23.z + mad r17.w, r19.x, r19.w, r17.w + add r17.w, r17.w, l(-1.000000) + mad r17.w, cb4[r18.x + 288].w, r17.w, l(1.000000) + movc r17.w, r18.z, l(1.000000), r17.w + movc r17.w, r18.y, r17.w, l(1.000000) + else + mov r17.w, l(1.000000) + endif + else + mov r17.w, l(1.000000) + endif + mul r15.w, r15.w, r17.w + mov r20.xyw, l(0,0,0,0) + endif + add r22.xyz, r20.xywx, r22.xyzx + mov r16.w, r19.z + endloop + mov r11.x, r15.w + add r21.xyz, r21.xyzx, r22.xyzx + iadd r13.y, r13.y, l(1) +endloop +mad r8.xyz, r21.xyzx, r11.xxxx, r14.xyzx +ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r3.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + dp3 r2.z, r2.xywx, r9.xyzx + max r2.z, r2.z, l(0.000000) + add r2.z, r0.z, r2.z + mad r3.y, r13.w, l(-16.000000), l(-1.000000) + exp r3.y, r3.y + log r2.z, |r2.z| + mul r2.z, r2.z, r3.y + exp r2.z, r2.z + add r2.z, r0.z, r2.z + add r2.z, r2.z, l(-1.000000) + mov_sat r13.xyz, r2.zzzz + mad r14.xyz, r10.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r10.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r10.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r13.xyz, r1.yyyy + mov r14.xyz, r1.yyyy +endif +mad r16.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r17.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx +dp2 r0.z, r17.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r16.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r16.xyzx +mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r17.xyz, r16.xzyx, -r17.xyzx +max r0.z, |r17.y|, |r17.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.y, |r17.z|, l(-208.000000) +mul_sat r1.y, r1.y, l(0.031250) +max r0.z, r0.z, r1.y +ne r1.y, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.y, r1.y, r2.z +if_nz r1.y + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r16.xzyx, -r17.xyzx + max r1.y, |r17.y|, |r17.x| + add r1.y, r1.y, l(-29.000000) + mul_sat r1.y, r1.y, l(0.500000) + add r2.z, |r17.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.y, r1.y, r2.z + lt r2.z, r1.y, l(1.000000) + if_nz r2.z + mad r17.xyz, r16.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t19.yzwx, s2, l(0.000000) + add r2.z, -r1.y, l(1.000000) + mul r3.y, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.y, r3.y, r17.y + min r3.y, r7.w, r3.y + mul r17.w, r3.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.y, r19.w, r2.z, r0.z + add r20.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t20.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mul r20.xyzw, r2.zzzz, r20.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t20.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r2.zzzz, r17.xyzw + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r2.zzzz, r18.xyzw + else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r3.y, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r16.xzyx, -r19.xyzx + max r2.z, |r19.y|, |r19.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r7.w, |r19.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r2.z, r2.z, r7.w + lt r7.w, r2.z, l(1.000000) + if_nz r7.w + mad r19.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r21.xyz, r19.xyzx, cb0[211].xyzx + round_ni r21.xyz, r21.xyzx + mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r19.xyzx, t21.yzwx, s2, l(0.000000) + add r7.w, -r2.z, l(1.000000) + mul r1.y, r1.y, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r19.y + min r7.w, r8.w, r7.w + mul r19.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyzw, r19.xwzx, t22.xyzw, s1, l(0.000000) + mad r3.y, r22.w, r1.y, r3.y + add r23.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r23.xyzx, t22.xyzw, s1, l(0.000000) + mad r23.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r21.yyyy, r23.xyzx + mov r23.w, r21.y + mad r20.xyzw, r23.xyzw, r1.yyyy, r20.xyzw + add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.xxxx, r19.xyzx + mov r19.w, r21.x + mad r17.xyzw, r19.xyzw, r1.yyyy, r17.xyzw + mad r19.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r19.xyzx + mad r18.xyzw, r21.xyzw, r1.yyyy, r18.xyzw + endif + lt r1.y, l(0.000000), r2.z + if_nz r1.y + mad r16.xyz, r16.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r16.xyzx, cb0[211].xyzx + mul r21.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r19.xyzx + mad r19.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r16.xyz, r21.xyzx, r16.xyzx + min r16.xyz, r19.xyzx, r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r16.xyzx, t23.yzwx, s2, l(0.000000) + add r1.y, -r0.z, l(1.000000) + mul r1.y, r1.y, r2.z + max r2.z, r21.y, r16.y + min r2.z, r19.y, r2.z + mul r16.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t24.xyzw, s1, l(0.000000) + add r21.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t24.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r22.yyyy, r21.xyzx + mov r21.w, r22.y + mad r20.xyzw, r21.xyzw, r1.yyyy, r20.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t24.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r22.xxxx, r16.xyzx + mov r16.w, r22.x + mad r17.xyzw, r16.xyzw, r1.yyyy, r17.xyzw + mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r16.xyzx + mad r18.xyzw, r22.xyzw, r1.yyyy, r18.xyzw + mad r3.y, r19.w, r1.y, r3.y + endif + mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) + add r16.x, -r0.z, r1.y + add r0.z, r0.z, r1.y + mul r16.y, r0.z, l(0.500000) +else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r16.xy, l(0,1.000000,0,0) +endif +mul r19.xyzw, r16.yxyy, cb0[213].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r16.zw, r16.yyyx, cb0[213].wwwy +mad r19.x, r16.w, l(0.375000), r16.z +add r18.xyzw, r18.xyzw, r19.wyzx +mul r19.xyzw, r16.yxyy, cb0[214].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r16.zw, r16.yyyx, cb0[214].wwwy +mad r19.x, r16.w, l(0.375000), r16.z +add r17.xyzw, r17.xyzw, r19.wyzx +mul r19.xyzw, r16.yxyy, cb0[215].ywzx +mad r19.y, r19.y, l(0.500000), r19.x +mul r16.xy, r16.yxyy, cb0[215].wyww +mad r19.x, r16.y, l(0.375000), r16.x +add r16.xyzw, r19.wyzx, r20.xyzw +ge r19.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r19.y, r19.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r19.xyzw, r4.zwzz, t18.xyzw, s1, l(0.000000) + lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r19.xyzw| + or r4.zw, r20.zzzw, r20.xxxy + or r0.z, r4.w, r4.z + if_nz r0.z + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mov r4.z, l(1.000000) + mov r4.w, r0.z + mov r1.y, l(0) + loop + ge r2.z, l(4.600000), r4.w + breakc_nz r2.z + iadd r2.z, r1.y, l(1) + mul r20.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r4.zw, r20.xxxy + mov r1.y, r2.z + continue + endloop + mul r19.xyzw, r4.zzzz, r19.xyzw + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb7[3].x, cb7[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r20.x, r0.z, l(0.00390625000) + mov r20.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r20.xyxx, t17.zwxy, s1, l(0.000000) + mad r4.zw, r4.zzzw, cb7[2].xxxy, cb7[2].zzzw + mul r20.x, r4.z, l(3.54490781) + mul r20.yzw, r4.wwww, r19.yyzw + mul r0.z, r19.x, l(0.406976730) + exp r0.z, r0.z + mul r19.xyzw, r0.zzzz, r20.xyzw + mov r20.xyzw, r19.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.y + breakc_nz r2.z + mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r21.xyzw, r20.xyzw + dp2 r3.y, r21.yxyy, r20.xyxx + dp2 r4.z, r21.zxzz, r20.xzxx + dp2 r4.w, r21.wxww, r20.xwxx + iadd r7.w, r0.z, l(1) + mov r20.x, r2.z + mov r20.y, r3.y + mov r20.zw, r4.zzzw + mov r0.z, r7.w + continue + endloop + mul r19.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r19.xyzw, r20.xyzw + dp2 r1.y, r19.yxyy, r20.xyxx + dp2 r2.z, r19.zxzz, r20.xzxx + dp2 r3.y, r19.wxww, r20.xwxx + mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.z, r19.xyzw, r20.xyzw + dp2 r4.w, r19.yxyy, r20.xyxx + dp2 r7.w, r19.zxzz, r20.xzxx + dp2 r8.w, r19.wxww, r20.xwxx + mul r20.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r19.xyzw, r20.xyzw + dp2 r10.w, r19.yxyy, r20.xyxx + dp2 r11.x, r19.zxzz, r20.xzxx + dp2 r14.w, r19.wxww, r20.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r3.y, l(-1.02332675) + mul r18.y, r1.y, l(-1.02332675) + mul r18.z, r2.z, l(1.02332675) + mul r17.x, r8.w, l(-1.02332675) + mul r17.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r17.z, r7.w, l(1.02332675) + mul r16.w, r9.w, l(0.886226952) + mul r16.x, r14.w, l(-1.02332675) + mul r16.y, r10.w, l(-1.02332675) + mul r16.z, r11.x, l(1.02332675) + endif +endif +dp3 r0.z, r18.xyzx, r2.xywx +add r0.z, r18.w, r0.z +max r18.x, r0.z, l(0.000000) +dp3 r0.z, r17.xyzx, r2.xywx +add r0.z, r17.w, r0.z +max r18.y, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r2.xywx +add r0.z, r16.w, r0.z +max r18.z, r0.z, l(0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.y, r13.w, l(0.001000) +log r1.y, r1.y +mad r1.y, -r1.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.y +mul r2.xy, r4.xyxx, cb1[0].wwww +round_ni r2.xy, r2.xyxx +add r1.y, |r3.w|, -cb1[2].y +round_ni r1.y, r1.y +add r2.z, l(-1.000000), cb1[1].x +max r2.w, r1.y, l(0.000000) +min r2.z, r2.z, r2.w +ge r1.y, r2.z, r1.y +mad r2.x, r2.y, cb1[0].x, r2.x +ftoi r2.xy, r2.xzxx +iadd r2.xy, r2.xyxx, cb0[110].zwzz +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.x, r2.x, l(0), t0.xxxx +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.y, r2.y, l(0), t0.xxxx +and r2.x, r2.y, r2.x +and r1.y, r1.y, r2.x +mul r2.xyz, r18.xyzx, cb0[111].xxxx +dp3 r2.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r12.w, l(1.000000) +mov r2.yzw, l(0,0,0,0) +mov r3.y, l(1.000000) +mov r4.z, r1.y +mov r4.w, l(0) +loop + lt r7.w, l(0.010000), r3.y + ine r8.w, r4.z, l(0) + and r8.w, r7.w, r8.w + if_nz r8.w + firstbit_lo r8.w, r4.z + ishl r9.w, l(1), r8.w + xor r4.z, r4.z, r9.w + ishl r8.w, r8.w, l(3) + dp4 r16.x, cb1[r8.w + 6].xyzw, r5.xyzw + dp4 r16.y, cb1[r8.w + 7].xyzw, r5.xyzw + dp4 r16.z, cb1[r8.w + 8].xyzw, r5.xyzw + ge r17.xyz, cb1[r8.w + 5].xyzx, |r16.xyzx| + and r9.w, r17.y, r17.x + and r9.w, r17.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb1[r8.w + 5].x + mul r17.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r19.xyz, -|r16.xyzx|, cb1[r8.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb1[r8.w + 9].xyzx + eq r10.w, l(1.000000), cb1[r8.w + 10].x + if_nz r10.w + dp3 r20.x, cb1[r8.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb1[r8.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb1[r8.w + 8].xyzx, r15.xyzx + add r21.xyz, -r16.xyzx, cb1[r8.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r16.xyzx, -cb1[r8.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r10.w, r21.y, r21.x + min r10.w, r21.z, r10.w + mad r16.xyz, r20.xyzx, r10.wwww, r16.xyzx + else + mov r16.xyz, r15.xyzx + endif + dp3 r10.w, r16.xyzx, r16.xyzx + rsq r10.w, r10.w + mul r16.xyz, r10.wwww, r16.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r21.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r10.w, r16.xyzx, r20.xyzx + div r16.xyz, r16.xyzx, r10.wwww + lt r10.w, r16.z, l(0.000000) + add r16.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r16.zw, r16.zzzw, r20.xxxy + movc r16.xy, r10.wwww, r16.zwzz, r16.xyxx + dp4 r10.w, cb1[r8.w + 4].xyzw, r12.xyzw + max r10.w, r10.w, l(0.000000) + max r10.w, r10.w, l(0.000100) + min r11.x, r19.z, r19.y + min r11.x, r11.x, r19.x + add r13.w, r17.y, r17.x + mad r13.w, r17.z, r17.z, r13.w + mad r9.w, r9.w, r9.w, -r13.w + mul r9.w, r9.w, cb1[r8.w + 9].x + mul r9.w, r9.w, cb1[r8.w + 9].x + add r13.w, l(1.000000), -cb1[r8.w + 10].y + mul r9.w, r9.w, r13.w + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r11.x, cb1[r8.w + 10].y, r9.w + mul r11.x, r9.w, cb1[r8.w + 10].w + mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r16.xy, r16.xyxx, cb1[1].wwww, cb1[2].wwww + mov r16.z, cb1[r8.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s3, r0.z + mul r16.xyz, r16.xyzx, cb1[r8.w + 9].wwww + div r13.w, r2.x, r10.w + min r13.w, |r13.w|, l(1.000000) + mad r13.w, r13.w, l(2.000000), r2.x + add r10.w, r10.w, l(2.000000) + div r10.w, r13.w, r10.w + add r10.w, r10.w, l(-1.000000) + mad r10.w, r10.w, cb0[112].w, l(1.000000) + mul r16.xyz, r10.wwww, r16.xyzx + mul r16.xyz, r11.xxxx, r16.xyzx + mad r2.yzw, r16.xxyz, r3.yyyy, r2.yyzw + mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) + mul r3.y, r3.y, r8.w + endif + mov r4.w, l(-1) + continue + else + mov r4.w, r7.w + break + endif + mov r4.w, r7.w +endloop +if_nz r4.w + dp3 r1.y, r15.xyzx, r15.xyzx + rsq r1.y, r1.y + mul r15.xyz, r1.yyyy, r15.xyzx + lt r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r17.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r16.xyz, -r16.xyzx, r17.xyzx + itof r16.xyz, r16.xyzx + dp3 r1.y, r15.xyzx, r16.xyzx + div r15.xyz, r15.xyzx, r1.yyyy + lt r1.y, r15.z, l(0.000000) + add r4.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r4.zw, r4.zzzw, r16.xxxy + movc r4.zw, r1.yyyy, r4.zzzw, r15.xxxy + mov r12.w, l(1.000000) + dp4 r1.y, cb1[3].xyzw, r12.xyzw + max r1.y, r1.y, l(0.000000) + max r1.y, r1.y, l(0.000100) + mad r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r12.xy, r4.zwzz, cb1[1].wwww, cb1[2].wwww + mov r12.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r12.xyz, r12.xyzx, t5.xyzw, s3, r0.z + div r0.z, r2.x, r1.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.x + add r1.y, r1.y, l(2.000000) + div r0.z, r0.z, r1.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r2.yzw, r12.xxyz, r3.yyyy, r2.yyzw +endif +mul r2.xyz, r2.yzwy, cb0[112].zzzz +mul r2.xyz, r2.xyzx, cb0[111].yyyy +if_nz r3.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r12.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.y, -r0.z, l(1.000000) + mul r15.xyz, r1.yyyy, r2.xyzx + mad r2.xyz, r12.xyzx, r0.zzzz, r15.xyzx +endif +mul r10.xyz, r10.xyzx, r18.xyzx +mul r10.xyz, r10.xyzx, cb0[111].xxxx +add r0.z, -r3.x, l(1.000000) +div r0.z, r0.z, r3.x +mul r1.xyz, r0.zzzz, r1.xzwx +mad r1.xyz, r1.xyzx, r11.yzwy, r11.yzwy +mul r1.xyz, r1.xyzx, r2.xyzx +mul r1.xyz, r13.xyzx, r1.xyzx +mad r1.xyz, r10.xyzx, r14.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r8.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.x, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r5.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r9.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r9.xyzx, -r7.xyzx + add r2.w, r5.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.x + mul r4.z, r0.x, r3.z + mad r4.w, r4.z, r2.w, cb0[44].y + mad r2.w, -r4.z, r2.w, r2.w + mul r4.z, r2.w, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.w, r4.w, -cb0[159].x + mul r5.w, r5.w, cb0[159].z + max r5.w, r5.w, l(-127.000000) + exp r5.w, -r5.w + mul r5.w, r5.w, cb0[159].y + lt r7.x, l(5.960464478E-08), |r4.z| + exp r7.y, -r4.z + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r7.x, r7.y, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r7.x, l(5.960464478E-08), |r2.w| + exp r7.y, -r2.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r7.x, r7.y, r2.w + mul r2.w, r2.w, r4.w + mad r2.w, r5.w, r4.z, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r6.x, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r6.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r3.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t16.xyzw, s1, l(0.000000) + add r0.y, |r3.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.x, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r6.yzwy, r6.yzwy +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t29.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xB094C87E.cso b/src/games/endfield/deferred-lighting/0xB094C87E.cso new file mode 100644 index 0000000000000000000000000000000000000000..3c2003b6e07817bd04bd0cfe7d3dc125edb0ca73 GIT binary patch literal 51188 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0.asm new file mode 100644 index 000000000..3a226f730 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0.asm @@ -0,0 +1,1681 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 16:31:32 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[5], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB7[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_sampler s5, mode_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 37 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t24.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t25.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t26.xyzw +mul r1.xyzw, r1.xwyz, l(1023.000000, 3.000000, 1023.000000, 1023.000000) +ftou r1.xyw, r1.xyxw +ubfe r4.x, l(7), l(3), r1.x +bfi r4.yz, l(0, 3, 3, 0), l(0, 2, 2, 0), r1.xxwx, l(0, 0, 0, 0) +bfi r1.x, l(2), l(0), r1.y, r4.y +utof r1.x, r1.x +mul r1.y, r1.x, l(0.0322580636) +round_ne r1.z, r1.z +ftou r1.z, r1.z +ubfe r4.y, l(7), l(3), r1.z +utof r4.xy, r4.xyxx +mul r4.y, r4.y, l(0.00787401572) +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.w, l(1.000000) +lt r4.w, r5.y, l(0.000000) +ge r6.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r6.xy, r6.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r6.xy, r6.xyxx, r6.zwzz +movc r5.xz, r4.wwww, r6.xxyx, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r6.xyz, r2.xxxx, r5.xyzx +and r1.z, r1.z, l(7) +utof r1.z, r1.z +mad r1.z, r1.z, l(0.107142866), l(0.500000) +utof r5.xz, r0.xxyx +mul r7.xy, v0.xyxx, cb0[82].zwzz +mad r7.zw, r7.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r8.xy, r5.xzxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r8.xy, r8.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r2.y, r8.xyxx, t1.yxzw, s0, l(0.000000) +mul r8.xyzw, -r7.wwww, cb0[25].xyzw +mad r8.xyzw, cb0[24].xyzw, r7.zzzz, r8.xyzw +mad r8.xyzw, cb0[26].xyzw, r2.yyyy, r8.xyzw +add r8.xyzw, r8.xyzw, cb0[27].xyzw +div r8.xyz, r8.xyzx, r8.wwww +mul r2.y, r8.y, cb0[1].z +mad r2.y, cb0[0].z, r8.x, r2.y +mad r2.y, cb0[2].z, r8.z, r2.y +add r2.y, r2.y, cb0[3].z +eq r4.w, l(0.000000), cb0[86].w +add r9.xyz, -r8.xyzx, cb0[44].xyzx +mov r10.x, cb0[0].z +mov r10.y, cb0[1].z +mov r10.z, cb0[2].z +movc r9.xyz, r4.wwww, r9.xyzx, r10.xyzx +dp3 r4.w, r9.xyzx, r9.xyzx +max r5.w, r4.w, l(9.999999939E-09) +rsq r5.w, r5.w +mul r11.xyz, r5.wwww, r9.xyzx +mul r4.w, r4.w, r5.w +lt r7.z, l(0.000488281250), cb0[234].x +if_nz r7.z + sample_b_indexable(texture2d)(float,float,float,float) r7.z, v1.xyxx, t23.yzxw, s1, cb0[108].x +else + mov r7.z, l(1.000000) +endif +lt r12.xy, l(0.500000, 0.500000, 0.000000, 0.000000), cb0[226].xyxx +if_nz r12.x + add r7.w, |r6.y|, |r6.x| + add r7.w, |r6.z|, r7.w + div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w + mul r12.xzw, |r6.xxyz|, r7.wwww + mul r13.xyzw, r12.xxzz, l(0.000000, 1.000000, 0.707106, 0.000000) + add r13.xyz, r13.zwzz, r13.xxyx + mad r12.xzw, r12.wwww, l(1.000000, 0.000000, 0.000000, 0.000000), r13.xxyz + mul r13.xyz, r8.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r7.w, r13.xyzx, t10.yzwx, s2, l(0.000000) + mad r7.w, r7.w, l(2.000000), l(-1.000000) + mul r12.xzw, r7.wwww, r12.xxzw + mov r7.w, |r6.y| + add r7.w, r7.w, l(-0.700000) + mul_sat r7.w, r7.w, l(4.000000) + mad r9.w, r7.w, l(-2.000000), l(3.000000) + mul r7.w, r7.w, r7.w + mul r7.w, r7.w, r9.w + add r9.w, -cb0[229].z, cb0[229].y + mad r7.w, r7.w, r9.w, cb0[229].z + mul r12.xzw, r7.wwww, r12.xxzw +else + mov r12.xzw, l(0,0,0,0) +endif +if_nz r12.y + mul r13.xyz, r6.xyzx, cb0[233].zzzz + mul r14.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r13.xyz, r13.xyzx, cb0[225].xxxx, r14.xyzx + max r7.w, -r6.y, l(0.000000) + min r7.w, r7.w, l(0.900000) + add r7.w, -r7.w, l(1.000000) + mad r2.x, -r5.y, r2.x, l(-0.200000) + mul_sat r2.x, r2.x, l(-10.000000) + mad r5.y, r2.x, l(-2.000000), l(3.000000) + mul r2.x, r2.x, r2.x + mul r2.x, r2.x, r5.y + max r2.x, r2.x, l(0.100000) + min r2.x, r2.x, l(1.000000) + mul r2.x, r2.x, r7.w + mad r13.xyz, r13.xyzx, r2.xxxx, r8.xyzx + add r12.xyz, r12.xzwx, r13.xyzx + mul r13.xyz, r12.yyyy, cb5[1].xyzx + mad r12.xyw, cb5[0].xyxz, r12.xxxx, r13.xyxz + mad r12.xyz, cb5[2].xyzx, r12.zzzz, r12.xywx + add r12.xyz, r12.xyzx, cb5[3].xyzx + mad r13.x, r12.x, l(0.500000), cb5[4].x + mad r2.x, r12.y, l(0.500000), l(0.500000) + add r13.z, -r2.x, cb5[4].y + add r12.xy, r13.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r2.x, r12.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r12.xyxx, t9.xxxx, s5, r2.x +else + mov r2.x, l(1.000000) +endif +mov_sat r5.y, r6.y +add r7.w, l(1.000000), -cb0[230].w +mad r5.y, r5.y, r7.w, cb0[230].w +add r12.xy, r8.xzxx, -cb0[44].xzxx +max r7.w, |r12.y|, |r12.x| +mul r9.w, r5.y, cb0[230].z +mul r10.w, r2.x, r5.y +mul r11.w, l(0.0500000119), cb0[222].w +mad r12.x, -cb0[222].w, l(0.700000), r7.w +div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul_sat r11.w, r11.w, r12.x +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mad r2.x, -r5.y, r2.x, l(1.000000) +mad r2.x, r11.w, r2.x, r10.w +mad r5.y, -cb0[230].z, r5.y, l(1.000000) +mad r2.x, r2.x, r5.y, r9.w +mad r5.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r7.w, r7.w, -cb0[222].w +div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y +mul_sat r5.y, r5.y, r7.w +mad r7.w, r5.y, l(-2.000000), l(3.000000) +mul r5.y, r5.y, r5.y +mul r5.y, r5.y, r7.w +add r7.w, -r2.x, cb0[230].y +mad r2.x, r5.y, r7.w, r2.x +add r2.x, -r2.x, l(1.000000) +mad r2.x, -r7.z, r2.x, l(1.000000) +mad_sat r5.y, r2.z, l(0.300000), l(0.250000) +mul r5.y, r5.y, cb0[222].x +mul r5.y, r2.x, r5.y +mad r5.y, r5.y, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r5.yyyy +min r5.y, r2.z, l(0.300000) +mul r2.x, r2.x, cb0[222].x +mul r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 3.000000) +add r5.y, -r2.z, r5.y +mad r12.w, r2.x, r5.y, r2.z +mul r2.x, r1.z, l(0.080000) +dp3 r2.z, r6.xyzx, r11.xyzx +max r5.y, r2.z, l(0.000000) +mad r13.xyzw, r12.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r7.z, r13.x, r13.x +mul r7.w, r5.y, l(-9.280000) +exp r7.w, r7.w +min r7.z, r7.w, r7.z +mad r7.z, r7.z, r13.x, r13.y +mad r7.zw, r7.zzzz, l(0.000000, 0.000000, -1.040000, 1.040000), r13.zzzw +ld_indexable(texture2d)(float,float,float,float) r13.x, r0.xyzz, t7.xyzw +lt r0.z, l(0.001000), r13.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r7.xyxx, t12.yzxw, s1, l(0.000000) + dp3 r9.w, -r11.xyzx, r6.xyzx + add r9.w, r9.w, r9.w + mad r14.xyz, r6.xyzx, -r9.wwww, -r11.xyzx + dp3 r9.w, -cb3[0].xyzx, r14.xyzx + mad r15.xyz, cb3[0].xyzx, r9.wwww, r14.xyzx + lt r9.w, r9.w, cb3[4].z + dp3 r10.w, r15.xyzx, r15.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb3[4].yyyy + mad r15.xyz, -cb3[0].xyzx, cb3[4].zzzz, r15.xyzx + dp3 r10.w, r15.xyzx, r15.xyzx + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + movc r14.xyz, r9.wwww, r15.xyzx, r14.xyzx + mad r15.xyz, r9.xyzx, r5.wwww, r14.xyzx + dp3 r9.w, r15.xyzx, r15.xyzx + max r9.w, r9.w, l(0.0000610351562) + rsq r9.w, r9.w + mul r15.xyz, r9.wwww, r15.xyzx + dp3 r9.w, r6.xyzx, r14.xyzx + mov_sat r12.y, r9.w + dp3_sat r10.w, r6.xyzx, r15.xyzx + dp3 r11.w, r11.xyzx, r14.xyzx + min r12.z, r5.y, l(1.000000) + mul r13.z, r12.w, r12.w + mul r13.z, r13.z, r13.z + mad r13.w, r10.w, r13.z, -r10.w + mad r10.w, r13.w, r10.w, l(1.000000) + dp3_sat r13.w, r11.xyzx, r15.xyzx + add r13.w, -r13.w, l(1.000000) + mul r14.x, r13.w, r13.w + mul r14.x, r14.x, r14.x + mul r14.y, r13.w, r14.x + add r14.z, -r12.w, l(1.000000) + mad r14.w, -r14.z, l(0.383026), l(-0.0761947036) + mad r14.w, r14.z, r14.w, l(1.049970) + mad r14.z, r14.z, r14.w, l(0.409255) + min r14.z, r14.z, l(0.999000) + add r14.w, -r14.z, l(1.000000) + mad r15.x, -r1.z, l(0.080000), l(1.000000) + mad r15.x, r15.x, l(0.0476190485), r2.x + mov_sat r15.y, -r11.w + mul r15.y, r15.y, r15.y + mad r15.y, r15.y, l(-0.640000), l(1.000000) + mul r15.y, r15.y, r15.y + mad r13.w, -r14.x, r13.w, l(1.000000) + mad r13.w, r2.x, r13.w, r14.y + mul r10.w, r10.w, r10.w + div r10.w, r13.z, r10.w + mad r14.xy, -r12.zyzz, r13.zzzz, r12.zyzz + mad r14.xy, r14.xyxx, r12.zyzz, r13.zzzz + sqrt r14.xy, r14.xyxx + mul r14.xy, r12.yzyy, r14.xyxx + add r13.z, r14.y, r14.x + add r13.z, r13.z, l(0.000100) + div r13.z, l(0.500000), r13.z + mul r10.w, r10.w, r13.z + mul r10.w, r10.w, r13.w + min r10.w, r10.w, l(2048.000000) + mad r16.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r12.z, r16.xyxx, t11.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r13.z, r16.zwzz, t11.yzxw, s1, l(0.000000) + mul r12.z, r12.z, r13.z + mul r12.z, r14.z, r12.z + div r12.z, r12.z, r14.w + mul r13.z, r15.x, r15.x + mul r12.z, r12.z, r13.z + mad r13.z, -r15.x, r14.w, l(1.000000) + div r12.z, r12.z, r13.z + add r10.w, r10.w, r12.z + add_sat r12.z, r2.z, l(0.200000) + mov_sat r13.z, r11.w + add r13.z, r13.z, l(0.500000) + min r13.z, r13.z, l(1.000000) + mul r13.w, r12.z, r13.z + add_sat r11.w, r11.w, l(1.000000) + mad r12.z, -r12.z, r13.z, l(1.000000) + mad r11.w, r11.w, r12.z, r13.w + mul r10.w, r10.w, r11.w + mul r10.w, r4.y, r10.w + mul r14.xyz, r4.yyyy, r3.xyzx + ubfe r1.w, l(7), l(3), r1.w + utof r1.w, r1.w + mul r1.w, r1.w, l(0.00787401572) + mul r10.w, r10.w, cb3[4].x + max r10.w, r10.w, l(0.000000) + min r10.w, r10.w, l(1000.000000) + mul r10.w, r12.y, r10.w + mad r14.xyz, r14.xyzx, r1.wwww, r10.wwww + max r1.w, r3.y, r3.x + max r1.w, r3.z, r1.w + max r1.w, r1.w, l(0.010000) + div r15.xzw, r3.xxyz, r1.wwww + mul r1.w, r4.x, l(0.00393700786) + mul r15.xzw, r1.wwww, r15.xxzw + add_sat r1.w, -r9.w, l(0.500000) + ne r10.w, r15.y, l(0.360000) + div r11.w, l(0.360000), r15.y + movc r10.w, r10.w, r11.w, l(1.000000) + mul r1.w, r1.w, r10.w + mad_sat r9.w, r1.x, l(0.0322580636), r9.w + add r9.w, -r12.y, r9.w + mul r16.xyz, r3.xyzx, r9.wwww + mad r15.xyz, r15.xzwx, r1.wwww, r16.xyzx + mad r14.xyz, r15.xyzx, r4.yyyy, r14.xyzx + mul r14.xyz, r14.xyzx, cb3[1].xyzx + mov r13.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r13.yzw, r13.xyxx, t8.wxyz, s1, cb0[108].x + add r1.w, -r13.x, l(1.000000) + mad r13.xyz, r14.xyzx, r13.yzwy, -r14.xyzx + mad r13.xyz, r1.wwww, r13.xyzx, r14.xyzx + max r1.w, r4.y, r0.z + add r1.w, -r0.z, r1.w + mad r0.z, r1.y, r1.w, r0.z + mul r13.xyz, r0.zzzz, r13.xyzx +else + mov r13.xyz, l(0,0,0,0) +endif +mul r1.yw, r5.xxxz, l(0.000000, 0.031250, 0.000000, 0.031250) +round_ni r1.yw, r1.yyyw +mad r0.z, r1.w, cb2[1].y, r1.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r1.y, -cb0[85].y, cb2[2].w, |r2.y| +round_ni r1.y, r1.y +add r1.w, l(-1.000000), cb2[1].w +max r9.w, r1.y, l(0.000000) +min r1.w, r1.w, r9.w +mul r9.w, r1.w, l(8.000000) +ftoi r9.w, r9.w +ge r1.y, r1.w, r1.y +iadd r1.w, r9.w, cb0[110].y +mul r9.w, r12.w, r12.w +dp3 r10.w, -r11.xyzx, r6.xyzx +add r10.w, r10.w, r10.w +mad r14.xyz, r6.xyzx, -r10.wwww, -r11.xyzx +min r12.x, r5.y, l(1.000000) +add r10.w, -r12.w, l(1.000000) +mad r11.w, -r10.w, l(0.383026), l(-0.0761947036) +mad r11.w, r10.w, r11.w, l(1.049970) +mad r10.w, r10.w, r11.w, l(0.409255) +min r10.w, r10.w, l(0.999000) +add r11.w, -r10.w, l(1.000000) +mad r1.z, -r1.z, l(0.080000), l(1.000000) +mad r1.z, r1.z, l(0.0476190485), r2.x +mad r12.yz, r12.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r12.y, r12.yzyy, t11.yxzw, s1, l(0.000000) +mad r12.z, -r1.z, r11.w, l(1.000000) +add_sat r2.z, r2.z, l(0.200000) +max r13.w, r3.y, r3.x +max r13.w, r3.z, r13.w +max r13.w, r13.w, l(0.010000) +div r15.xyz, r3.xyzx, r13.wwww +mul r13.w, r4.x, l(0.00393700786) +mul r16.xyz, r13.wwww, r15.xyzx +mul r17.xyz, r4.yyyy, r3.xyzx +mul r1.z, r1.z, r1.z +mov r18.w, l(1.000000) +mov r19.y, l(1.000000) +mov r20.z, r12.w +mov r21.xyz, l(0,0,0,0) +mov r13.w, l(1.000000) +mov r14.w, l(0) +loop + ilt r15.w, l(7), r14.w + breakc_nz r15.w + iadd r15.w, r0.z, r14.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t0.xxxx + iadd r16.w, r1.w, r14.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t0.xxxx + and r15.w, r15.w, r16.w + and r15.w, r1.y, r15.w + ishl r16.w, r14.w, l(5) + mov r22.xyz, l(0,0,0,0) + mov r17.w, r13.w + mov r19.z, r15.w + loop + breakc_z r19.z + firstbit_lo r19.w, r19.z + ishl r20.w, l(1), r19.w + xor r20.w, r19.z, r20.w + iadd r19.w, r16.w, r19.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r19.wwww, l(1, 3, 5, 6) + bfi r21.w, l(29), l(3), r19.w, l(7) + ftou r22.w, cb3[r23.z + 6].w + ieq r22.w, r22.w, l(1) + if_nz r22.w + add r18.xyz, r8.xyzx, -cb3[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.w + 6].yxzy + ushr r26.xyz, cb3[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb3[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r22.w, r18.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r23.z, r18.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r18.x, r18.xyzw, r27.xyzw + max r18.y, |r22.w|, |r23.z| + max r18.x, |r18.x|, r18.y + mad r18.y, cb3[r21.w + 6].x, l(0.500000), l(0.500000) + add r18.x, -r18.y, r18.x + mad r18.y, -cb3[r21.w + 6].x, l(0.500000), l(0.500000) + div_sat r18.x, r18.x, r18.y + add r18.x, -r18.x, l(1.000000) + mul r18.x, r18.x, r18.x + else + mov r18.x, l(1.000000) + endif + lt r18.y, l(0.500000), cb3[r23.y + 6].z + lt r18.z, r18.x, l(0.001000) + or r18.z, r18.y, r18.z + if_nz r18.z + mov r19.z, r20.w + continue + endif + ishl r18.z, r19.w, l(3) + bfi r19.w, l(29), l(3), r19.w, l(2) + lt r22.w, cb3[r18.z + 6].w, l(1.500000) + if_nz r22.w + mad r22.w, cb3[r19.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r22.w, -|cb3[r19.w + 6].x| + add r24.y, -r24.x, cb3[r19.w + 6].y + add r22.w, -|r24.x|, l(1.000000) + add r22.w, -|r24.y|, r22.w + max r22.w, r22.w, l(0.000488281250) + ge r23.z, cb3[r19.w + 6].x, l(0.000000) + movc r24.z, r23.z, r22.w, -r22.w + dp3 r22.w, r24.xyzx, r24.xyzx + rsq r22.w, r22.w + mul r24.xyz, r22.wwww, r24.xyzx + add r25.xyz, -r8.xyzx, cb3[r23.x + 6].xyzx + dp3 r22.w, r25.xyzx, r25.xyzx + rsq r23.z, r22.w + mul r26.xyz, r23.zzzz, r25.xyzx + ftoi r24.w, cb3[r21.w + 6].w + mul r27.xyz, r24.xyzx, cb3[r19.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r25.w, cb3[r18.z + 6].w + and r25.w, r25.w, l(1) + ieq r26.w, r25.w, l(0) + not r26.w, r26.w + lt r27.w, l(0.000000), cb3[r19.w + 6].z + and r26.w, r26.w, r27.w + dp3 r27.w, r28.xyzx, r28.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r29.xyzx, r29.xyzx + sqrt r28.w, r28.w + dp3 r29.w, r6.xyzx, r28.xyzx + div r29.w, r29.w, r27.w + dp3 r30.x, r6.xyzx, r29.xyzx + div r30.x, r30.x, r28.w + add r29.w, r29.w, r30.x + mul_sat r30.x, r29.w, l(0.500000) + dp3 r29.x, r28.xyzx, r29.xyzx + mad r27.w, r27.w, r28.w, r29.x + mad r27.w, r27.w, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w + dp3_sat r19.x, r6.xyzx, r26.xyzx + movc r20.xy, r26.wwww, r30.xyxx, r19.xyxx + lt r19.x, cb3[r23.w + 6].w, l(0.000000) + if_nz r19.x + mul r19.x, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r19.x, r19.x, r22.w + mad r19.x, -r19.x, r19.x, l(1.000000) + max r19.x, r19.x, l(0.000000) + add r22.w, r22.w, l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + and r27.w, r26.w, l(0x3f800000) + add r28.w, r20.y, -r22.w + mad r22.w, r27.w, r28.w, r22.w + mul r19.x, r19.x, r19.x + mul r19.x, r19.x, r22.w + else + mul r29.xyz, r25.xyzx, cb3[r23.x + 6].wwww + dp3 r22.w, r29.xyzx, r29.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb3[r23.w + 6].w + exp r22.w, r22.w + mul r19.x, r20.y, r22.w + endif + dp3 r20.y, r26.xyzx, -r24.xyzx + add r20.y, r20.y, -cb3[r19.w + 6].z + mul_sat r20.y, r20.y, cb3[r19.w + 6].w + mul r20.y, r20.y, r20.y + movc r20.y, r25.w, l(1.000000), r20.y + mul r19.x, r19.x, r20.y + not r20.y, r26.w + ige r22.w, r24.w, l(0) + and r20.y, r20.y, r22.w + if_nz r20.y + if_z r25.w + ishl r20.y, r24.w, l(2) + mul r24.xyz, r8.yyyy, cb6[r20.y + 33].xywx + mad r24.xyz, cb6[r20.y + 32].xywx, r8.xxxx, r24.xyzx + mad r24.xyz, cb6[r20.y + 34].xywx, r8.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb6[r20.y + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb6[r24.w + 0].zwzz, cb6[r24.w + 0].xyxx + else + ishl r20.y, r24.w, l(2) + dp3 r29.x, -r25.xyzx, cb6[r20.y + 32].xyzx + dp3 r29.y, -r25.xyzx, cb6[r20.y + 33].xyzx + dp3 r29.z, -r25.xyzx, cb6[r20.y + 34].xyzx + lt r20.y, |r29.x|, |r29.y| + and r20.y, r20.y, l(1) + dp2 r22.w, |r29.xyxx|, icb[r20.y + 0].xyxx + lt r22.w, r22.w, |r29.z| + movc r20.y, r22.w, l(2), r20.y + dp3 r22.w, r29.xyzx, icb[r20.y + 0].xyzx + lt r22.w, r22.w, l(0.000000) + bfi r20.y, l(31), l(1), r20.y, r22.w + ushr r22.w, r20.y, l(1) + dp3 r22.w, r29.xyzx, icb[r22.w + 0].xyzx + div r24.z, l(0.000244140625), cb6[r24.w + 0].w + add r24.z, -r24.z, l(0.500000) + utof r25.x, r20.y + ult r25.y, r20.y, l(2) + and r25.y, r25.y, l(2) + dp2 r25.y, r29.xzxx, icb[r25.y + 0].xzxx + mul r25.y, r25.y, icb[r20.y + 4].z + div r25.y, r25.y, |r22.w| + mad r25.x, r25.y, r24.z, r25.x + add r25.x, r25.x, l(0.500000) + mul_sat r25.x, r25.x, l(0.166666672) + iadd r25.z, l(-1), icb[r20.y + 4].y + dp2 r25.z, r29.yzyy, icb[r25.z + 0].xyxx + mul r20.y, r25.z, icb[r20.y + 4].w + div r20.y, r20.y, |r22.w| + mad_sat r25.y, -r20.y, r24.z, l(0.500000) + mad r24.xy, r25.xyxx, cb6[r24.w + 0].zwzz, cb6[r24.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r20.y, r24.xyxx, t13.yxzw, s1, l(0.000000) + mul r19.x, r19.x, r20.y + endif + lt r20.y, l(0.000000), r19.x + if_nz r20.y + if_z r25.w + ftoi r22.w, cb3[r23.y + 6].x + else + add r24.xyz, r8.xyzx, -cb3[r23.x + 6].xyzx + lt r25.xyz, |r24.yzzy|, |r24.xxyx| + and r24.w, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r25.x, cb3[r19.w + 6].w, l(24) + ubfe r25.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb3[r19.w + 6].wwww + movc r24.x, r24.x, r25.x, r25.y + and r25.x, l(255), cb3[r19.w + 6].w + movc r24.y, r24.y, r25.w, r25.x + ubfe r25.x, l(8), l(8), cb3[r23.y + 6].x + and r25.y, l(255), cb3[r23.y + 6].x + movc r24.z, r24.z, r25.x, r25.y + movc r24.y, r25.z, r24.y, r24.z + movc r24.x, r24.w, r24.x, r24.y + ilt r24.y, r24.x, l(80) + movc r22.w, r24.y, r24.x, l(-1) + endif + ishl r24.x, r22.w, l(2) + mad r24.yzw, r26.xxyz, cb4[r22.w + 288].xxxx, r8.xxyz + mul r25.x, l(5.000000), cb4[r22.w + 288].y + mad r24.yzw, r6.xxyz, r25.xxxx, r24.yyzw + mul r25.xyzw, r24.zzzz, cb4[r24.x + 65].xyzw + mad r25.xyzw, cb4[r24.x + 64].xyzw, r24.yyyy, r25.xyzw + mad r25.xyzw, cb4[r24.x + 66].xyzw, r24.wwww, r25.xyzw + add r24.xyzw, r25.xyzw, cb4[r24.x + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r30.xy, -cb4[r22.w + 344].xyxx, cb4[r22.w + 344].zwzz + mad r24.xy, r24.xyxx, r30.xyxx, cb4[r22.w + 344].xyxx + mad r30.xy, r24.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r30.xy, r30.xyxx + mad r24.xy, r24.xyxx, cb4[400].zwzz, -r30.xyxx + add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx + mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz + add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r35.z, r36.x + mov r35.w, r24.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r24.y + mov r33.z, r34.y + mov r33.w, r32.z + add r24.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.yxzy, cb4[400].xxxx + div r33.xyz, r33.zywz, r24.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.xyzx, cb4[400].yyyy + mov r32.w, r33.x + mad r34.xyzw, r30.xyxy, cb4[400].xyxy, r32.ywxw + mad r30.zw, r30.xxxy, cb4[400].xxxy, r32.zzzw + mov r33.w, r32.y + mov r32.yw, r33.yyyz + mad r35.xyzw, r30.xyxy, cb4[400].xyxy, r32.xyzy + mad r33.xyzw, r30.xyxy, cb4[400].xyxy, r33.wywz + mad r32.xyzw, r30.xyxy, cb4[400].xyxy, r32.xwzw + mul r36.xyzw, r24.xxxy, r31.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r34.xyxx, t6.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r34.zwzz, t6.xxxx, s4, r24.z + mul r25.w, r25.w, r36.y + mad r24.x, r36.x, r24.x, r25.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r30.zwzz, t6.xxxx, s4, r24.z + mad r24.x, r36.z, r25.w, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r33.xyxx, t6.xxxx, s4, r24.z + mad r24.x, r36.w, r25.w, r24.x + mul r30.xyzw, r24.yyww, r31.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r35.xyxx, t6.xxxx, s4, r24.z + mad r24.x, r30.x, r24.y, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r35.zwzz, t6.xxxx, s4, r24.z + mad r24.x, r30.y, r24.y, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r33.zwzz, t6.xxxx, s4, r24.z + mad r24.x, r30.z, r24.y, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r32.xyxx, t6.xxxx, s4, r24.z + mad r24.x, r30.w, r24.y, r24.x + ige r24.y, r22.w, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r25.x, r25.y, r25.x + or r25.x, r25.z, r25.x + and r25.y, r24.z, l(0x7fffffff) + ult r25.y, l(0x7f800000), r25.y + or r25.x, r25.y, r25.x + mul r24.w, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r32.zwzz, t6.xxxx, s4, r24.z + mad r24.x, r24.w, r24.z, r24.x + add r24.x, r24.x, l(-1.000000) + mad r22.w, cb4[r22.w + 288].w, r24.x, l(1.000000) + movc r22.w, r25.x, l(1.000000), r22.w + movc r22.w, r24.y, r22.w, l(1.000000) + else + mov r22.w, l(1.000000) + endif + if_nz r26.w + dp3 r24.x, r14.xyzx, r27.xyzx + mul_sat r24.y, r23.z, cb3[r19.w + 6].z + mad r24.y, r24.y, l(0.500000), r9.w + min r24.y, r24.y, l(1.000000) + div r24.y, r9.w, r24.y + mad r25.xyz, r14.xyzx, r24.xxxx, -r27.xyzx + dp3 r24.z, r28.xyzx, r25.xyzx + mul r24.x, r24.x, r24.x + mad r24.x, cb3[r19.w + 6].z, cb3[r19.w + 6].z, -r24.x + div_sat r24.x, r24.z, r24.x + mad r24.xzw, r27.xxyz, r24.xxxx, r28.xxyz + dp3 r25.x, r24.xzwx, r24.xzwx + rsq r25.x, r25.x + mul r26.xyz, r24.xzwx, r25.xxxx + else + mov r24.y, l(1.000000) + endif + if_nz r20.y + mul_sat r20.y, r23.z, cb3[r21.w + 6].y + mad r24.xzw, r9.xxyz, r5.wwww, r26.xxyz + dp3 r23.z, r24.xzwx, r24.xzwx + max r23.z, r23.z, l(0.0000610351562) + rsq r23.z, r23.z + mul r24.xzw, r23.zzzz, r24.xxzw + dp3 r23.z, r6.xyzx, r26.xyzx + dp3_sat r25.x, r6.xyzx, r24.xzwx + dp3_sat r24.x, r11.xyzx, r24.xzwx + dp3 r24.z, r11.xyzx, r26.xyzx + lt r24.w, l(0.000000), r20.y + mul r20.y, r20.y, r20.y + mad r25.y, r24.x, l(3.600000), l(0.400000) + div r20.y, r20.y, r25.y + mad r20.y, r12.w, r12.w, r20.y + min r20.y, r20.y, l(1.000000) + movc r20.y, r24.w, r20.y, r9.w + mul r20.y, r20.y, r20.y + mad r24.w, r25.x, r20.y, -r25.x + mad r24.w, r24.w, r25.x, l(1.000000) + add r24.x, -r24.x, l(1.000000) + mul r25.x, r24.x, r24.x + mul r25.x, r25.x, r25.x + mul r25.y, r24.x, r25.x + mov_sat r25.z, -r24.z + mul r25.z, r25.z, r25.z + mad r25.z, r25.z, l(-0.640000), l(1.000000) + mul r25.z, r25.z, r25.z + mad r24.x, -r25.x, r24.x, l(1.000000) + mad r24.x, r2.x, r24.x, r25.y + mul r24.w, r24.w, r24.w + div r24.w, r20.y, r24.w + mul r24.y, r24.y, r24.w + mad r24.w, -r12.x, r20.y, r12.x + mad r24.w, r24.w, r12.x, r20.y + sqrt r24.w, r24.w + mad r25.x, -r20.x, r20.y, r20.x + mad r20.y, r25.x, r20.x, r20.y + sqrt r20.y, r20.y + mul r20.y, r12.x, r20.y + mad r20.y, r20.x, r24.w, r20.y + add r20.y, r20.y, l(0.000100) + div r20.y, l(0.500000), r20.y + mul r20.y, r20.y, r24.y + mul r20.y, r20.y, r24.x + min r20.y, r20.y, l(2048.000000) + mad r24.xy, r20.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r24.x, r24.xyxx, t11.xyzw, s1, l(0.000000) + mul r24.x, r12.y, r24.x + mul r24.x, r10.w, r24.x + div r24.x, r24.x, r11.w + mul r24.x, r1.z, r24.x + div r24.x, r24.x, r12.z + add r20.y, r20.y, r24.x + mov_sat r24.x, r24.z + add r24.x, r24.x, l(0.500000) + min r24.x, r24.x, l(1.000000) + mul r24.y, r2.z, r24.x + add_sat r24.z, r24.z, l(1.000000) + mad r24.x, -r2.z, r24.x, l(1.000000) + mad r24.x, r24.z, r24.x, r24.y + mul r20.y, r20.y, r24.x + mul r20.y, r4.y, r20.y + mul r20.y, r20.y, cb3[r21.w + 6].z + max r20.y, r20.y, l(0.000000) + min r20.y, r20.y, l(1000.000000) + add_sat r24.x, -r23.z, l(0.500000) + ne r24.y, r25.z, l(0.360000) + div r24.z, l(0.360000), r25.z + movc r24.y, r24.y, r24.z, l(1.000000) + mul r24.x, r24.y, r24.x + mad_sat r23.z, r1.x, l(0.0322580636), r23.z + add r23.z, -r20.x, r23.z + mul r24.yzw, r3.xxyz, r23.zzzz + mad r24.xyz, r16.xyzx, r24.xxxx, r24.yzwy + mul r24.xyz, r4.yyyy, r24.xyzx + mad r24.xyz, r20.yyyy, r20.xxxx, r24.xyzx + mad r24.xyz, r17.xyzx, r20.xxxx, r24.xyzx + mul r25.xyz, r19.xxxx, cb3[r18.z + 6].xyzx + mul r25.xyz, r22.wwww, r25.xyzx + mul r25.xyz, r18.xxxx, r25.xyzx + mul r24.xyz, r24.xyzx, r25.xyzx + else + mov r24.xyz, l(0,0,0,0) + endif + else + if_z r18.y + mad r18.x, cb3[r19.w + 6].y, l(0.500000), l(0.500000) + add r25.x, r18.x, -|cb3[r19.w + 6].x| + add r25.y, -r25.x, cb3[r19.w + 6].y + add r18.x, -|r25.x|, l(1.000000) + add r18.x, -|r25.y|, r18.x + max r18.x, r18.x, l(0.000488281250) + ge r18.y, cb3[r19.w + 6].x, l(0.000000) + movc r25.z, r18.y, r18.x, -r18.x + dp3 r18.x, r25.xyzx, r25.xyzx + rsq r18.x, r18.x + mul r25.xyz, r18.xxxx, r25.xyzx + add r26.xyz, -r8.xyzx, cb3[r23.x + 6].xyzx + dp3 r18.x, r26.xyzx, r26.xyzx + rsq r18.y, r18.x + mul r27.xyz, r18.yyyy, r26.xyzx + ftoi r18.y, cb3[r21.w + 6].w + mul r28.xyz, r25.xyzx, cb3[r19.w + 6].zzzz + mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r28.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + ftou r18.z, cb3[r18.z + 6].w + and r18.z, r18.z, l(1) + ieq r19.x, r18.z, l(0) + not r19.x, r19.x + lt r20.x, l(0.000000), cb3[r19.w + 6].z + and r19.x, r19.x, r20.x + dp3 r20.x, r29.xyzx, r29.xyzx + dp3 r20.y, r28.xyzx, r28.xyzx + sqrt r20.xy, r20.xyxx + dp3 r21.w, r29.xyzx, r28.xyzx + mad r20.x, r20.x, r20.y, r21.w + mad r20.x, r20.x, l(0.500000), l(1.000000) + div r20.x, l(1.000000, 1.000000, 1.000000, 1.000000), r20.x + movc r20.x, r19.x, r20.x, l(1.000000) + lt r20.y, cb3[r23.w + 6].w, l(0.000000) + if_nz r20.y + mul r20.y, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r20.y, r18.x, r20.y + mad r20.y, -r20.y, r20.y, l(1.000000) + max r20.y, r20.y, l(0.000000) + add r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + and r21.w, r19.x, l(0x3f800000) + add r22.w, -r18.x, r20.x + mad r18.x, r21.w, r22.w, r18.x + mul r20.y, r20.y, r20.y + mul r18.x, r18.x, r20.y + else + mul r28.xyz, r26.xyzx, cb3[r23.x + 6].wwww + dp3 r20.y, r28.xyzx, r28.xyzx + min r20.y, r20.y, l(1.000000) + add r20.y, -r20.y, l(1.000000) + log r20.y, r20.y + mul r20.y, r20.y, cb3[r23.w + 6].w + exp r20.y, r20.y + mul r18.x, r20.y, r20.x + endif + dp3 r20.x, r27.xyzx, -r25.xyzx + add r20.x, r20.x, -cb3[r19.w + 6].z + mul_sat r20.x, r20.x, cb3[r19.w + 6].w + mul r20.x, r20.x, r20.x + movc r20.x, r18.z, l(1.000000), r20.x + mul r18.x, r18.x, r20.x + not r19.x, r19.x + ige r20.x, r18.y, l(0) + and r19.x, r19.x, r20.x + if_nz r19.x + if_z r18.z + ishl r19.x, r18.y, l(2) + mul r25.xyz, r8.yyyy, cb6[r19.x + 33].xywx + mad r25.xyz, cb6[r19.x + 32].xywx, r8.xxxx, r25.xyzx + mad r25.xyz, cb6[r19.x + 34].xywx, r8.zzzz, r25.xyzx + add r25.xyz, r25.xyzx, cb6[r19.x + 35].xywx + div_sat r20.xy, r25.xyxx, r25.zzzz + mad r20.xy, r20.xyxx, cb6[r18.y + 0].zwzz, cb6[r18.y + 0].xyxx + else + ishl r19.x, r18.y, l(2) + dp3 r25.x, -r26.xyzx, cb6[r19.x + 32].xyzx + dp3 r25.y, -r26.xyzx, cb6[r19.x + 33].xyzx + dp3 r25.z, -r26.xyzx, cb6[r19.x + 34].xyzx + lt r19.x, |r25.x|, |r25.y| + and r19.x, r19.x, l(1) + dp2 r21.w, |r25.xyxx|, icb[r19.x + 0].xyxx + lt r21.w, r21.w, |r25.z| + movc r19.x, r21.w, l(2), r19.x + dp3 r21.w, r25.xyzx, icb[r19.x + 0].xyzx + lt r21.w, r21.w, l(0.000000) + bfi r19.x, l(31), l(1), r19.x, r21.w + ushr r21.w, r19.x, l(1) + dp3 r21.w, r25.xyzx, icb[r21.w + 0].xyzx + div r22.w, l(0.000244140625), cb6[r18.y + 0].w + add r22.w, -r22.w, l(0.500000) + utof r23.z, r19.x + ult r23.w, r19.x, l(2) + and r23.w, r23.w, l(2) + dp2 r23.w, r25.xzxx, icb[r23.w + 0].xzxx + mul r23.w, r23.w, icb[r19.x + 4].z + div r23.w, r23.w, |r21.w| + mad r23.z, r23.w, r22.w, r23.z + add r23.z, r23.z, l(0.500000) + mul_sat r26.x, r23.z, l(0.166666672) + iadd r23.z, l(-1), icb[r19.x + 4].y + dp2 r23.z, r25.yzyy, icb[r23.z + 0].xyxx + mul r19.x, r23.z, icb[r19.x + 4].w + div r19.x, r19.x, |r21.w| + mad_sat r26.y, -r19.x, r22.w, l(0.500000) + mad r20.xy, r26.xyxx, cb6[r18.y + 0].zwzz, cb6[r18.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r20.xyxx, t13.yxzw, s1, l(0.000000) + mul r18.x, r18.y, r18.x + endif + lt r18.x, l(0.000000), r18.x + if_nz r18.x + if_z r18.z + ftoi r18.x, cb3[r23.y + 6].x + else + add r23.xzw, r8.xxyz, -cb3[r23.x + 6].xxyz + lt r25.xyz, |r23.zwwz|, |r23.xxzx| + and r18.y, r25.y, r25.x + lt r23.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xxzw + ushr r18.z, cb3[r19.w + 6].w, l(24) + ubfe r20.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r19.w + 6].wwww + movc r18.z, r23.x, r18.z, r20.x + and r19.x, l(255), cb3[r19.w + 6].w + movc r19.x, r23.z, r20.y, r19.x + ubfe r19.w, l(8), l(8), cb3[r23.y + 6].x + and r20.x, l(255), cb3[r23.y + 6].x + movc r19.w, r23.w, r19.w, r20.x + movc r19.x, r25.z, r19.x, r19.w + movc r18.y, r18.y, r18.z, r19.x + ilt r18.z, r18.y, l(80) + movc r18.x, r18.z, r18.y, l(-1) + endif + ishl r18.y, r18.x, l(2) + mad r23.xyz, r27.xyzx, cb4[r18.x + 288].xxxx, r8.xyzx + mul r18.z, l(5.000000), cb4[r18.x + 288].y + mad r23.xyz, r6.xyzx, r18.zzzz, r23.xyzx + mul r25.xyzw, r23.yyyy, cb4[r18.y + 65].xyzw + mad r25.xyzw, cb4[r18.y + 64].xyzw, r23.xxxx, r25.xyzw + mad r23.xyzw, cb4[r18.y + 66].xyzw, r23.zzzz, r25.xyzw + add r23.xyzw, r23.xyzw, cb4[r18.y + 67].xyzw + div r23.xyz, r23.xyzx, r23.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + ge r26.xyz, r23.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r18.yz, -cb4[r18.x + 344].xxyx, cb4[r18.x + 344].zzwz + mad r18.yz, r23.xxyx, r18.yyzy, cb4[r18.x + 344].xxyx + mad r19.xw, r18.yyyz, cb4[400].zzzw, l(0.500000, 0.000000, 0.000000, 0.500000) + round_ni r19.xw, r19.xxxw + mad r18.yz, r18.yyzy, cb4[400].zzwz, -r19.xxwx + add r27.xyzw, r18.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r28.xyzw, r27.xxzz, r27.xxzz + add r20.xy, -r18.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r23.xy, r18.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r27.xz, r18.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r20.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r27.xz, -r27.xxzx, r27.xxzx, r27.yywy + add r27.xz, r27.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r30.xy, r27.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r28.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r18.yz, r28.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r18.yyzy + mul r28.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r18.yz, -r23.xxyx, r23.xxyx, r20.xxyx + add r18.yz, r18.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r31.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r18.yz, r27.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r28.z, r31.x + mov r28.w, r18.y + mov r29.z, r30.x + mov r29.w, r27.x + add r32.xyzw, r28.zwxz, r29.zwxz + mov r31.z, r28.y + mov r31.w, r18.z + mov r30.z, r29.y + mov r30.w, r27.z + add r23.xyw, r30.zyzw, r31.zyzw + div r27.xyz, r29.xzwx, r32.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.yxzy, cb4[400].xxxx + div r28.xyz, r30.zywz, r23.xywx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r27.w, r28.x + mad r29.xyzw, r19.xwxw, cb4[400].xyxy, r27.ywxw + mad r18.yz, r19.xxwx, cb4[400].xxyx, r27.zzwz + mov r28.w, r27.y + mov r27.yw, r28.yyyz + mad r30.xyzw, r19.xwxw, cb4[400].xyxy, r27.xyzy + mad r28.xyzw, r19.xwxw, cb4[400].xyxy, r28.wywz + mad r27.xyzw, r19.xwxw, cb4[400].xyxy, r27.xwzw + mul r31.xyzw, r23.xxxy, r32.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r29.xyxx, t6.xxxx, s4, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.w, r29.zwzz, t6.xxxx, s4, r23.z + mul r19.w, r19.w, r31.y + mad r19.x, r31.x, r19.x, r19.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r18.yzyy, t6.xxxx, s4, r23.z + mad r18.y, r31.z, r18.y, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.xyxx, t6.xxxx, s4, r23.z + mad r18.y, r31.w, r18.z, r18.y + mul r29.xyzw, r23.yyww, r32.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.xyxx, t6.xxxx, s4, r23.z + mad r18.y, r29.x, r18.z, r18.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.zwzz, t6.xxxx, s4, r23.z + mad r18.y, r29.y, r18.z, r18.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.zwzz, t6.xxxx, s4, r23.z + mad r18.y, r29.z, r18.z, r18.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r27.xyxx, t6.xxxx, s4, r23.z + mad r18.y, r29.w, r18.z, r18.y + ige r18.z, r18.x, l(0) + or r25.xyz, r25.xyzx, r26.xyzx + or r19.x, r25.y, r25.x + or r19.x, r25.z, r19.x + and r19.w, r23.z, l(0x7fffffff) + ult r19.w, l(0x7f800000), r19.w + or r19.x, r19.w, r19.x + mul r19.w, r23.w, r32.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r27.zwzz, t6.xxxx, s4, r23.z + mad r18.y, r19.w, r20.x, r18.y + add r18.y, r18.y, l(-1.000000) + mad r18.x, cb4[r18.x + 288].w, r18.y, l(1.000000) + movc r18.x, r19.x, l(1.000000), r18.x + movc r18.x, r18.z, r18.x, l(1.000000) + else + mov r18.x, l(1.000000) + endif + else + mov r18.x, l(1.000000) + endif + mul r17.w, r17.w, r18.x + mov r24.xyz, l(0,0,0,0) + endif + add r22.xyz, r22.xyzx, r24.xyzx + mov r19.z, r20.w + endloop + mov r13.w, r17.w + add r21.xyz, r21.xyzx, r22.xyzx + iadd r14.w, r14.w, l(1) +endloop +mad r1.xyz, r21.xyzx, r13.wwww, r13.xyzx +ne r9.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx +if_nz r9.x + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r1.w, r0.z, r5.y + mad r2.z, r12.w, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.w, |r1.w| + mul r1.w, r1.w, r2.z + exp r1.w, r1.w + add r1.w, r0.z, r1.w + add r1.w, r1.w, l(-1.000000) + mov_sat r9.xzw, r1.wwww + mad r13.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r13.xyz, r0.zzzz, r13.xyzx + mad r13.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r13.xyzx + add r13.xyz, r13.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r13.xyz, r0.zzzz, r13.xyzx + mad r13.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r13.xyzx + add r13.xyz, r13.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r13.xyz, r0.zzzz, r13.xyzx + max r13.xyz, r0.zzzz, r13.xyzx +else + mov r9.xzw, r3.wwww + mov r13.xyz, r3.wwww +endif +mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r16.xyz, r8.xzyx, -r16.xyzx +max r0.z, |r16.y|, |r16.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.w, |r16.z|, l(-208.000000) +mul_sat r1.w, r1.w, l(0.031250) +max r0.z, r0.z, r1.w +ne r1.w, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.w, r1.w, r2.z +if_nz r1.w + mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r16.xyz, r8.xzyx, -r16.xyzx + max r1.w, |r16.y|, |r16.x| + add r1.w, r1.w, l(-29.000000) + mul_sat r1.w, r1.w, l(0.500000) + add r2.z, |r16.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.w, r1.w, r2.z + lt r2.z, r1.w, l(1.000000) + if_nz r2.z + mad r16.xyz, r8.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) + add r2.z, -r1.w, l(1.000000) + mul r3.w, l(0.500000), cb0[211].y + mad r4.y, -cb0[211].y, l(0.500000), l(1.000000) + max r3.w, r3.w, r16.y + min r3.w, r4.y, r3.w + mul r16.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) + mad r3.w, r18.w, r2.z, r0.z + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mul r19.xyzw, r2.zzzz, r19.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.xxxx, r16.xyzx + mov r16.w, r17.x + mul r16.xyzw, r2.zzzz, r16.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r18.xyzx + mul r17.xyzw, r2.zzzz, r17.xyzw + else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r3.w, r0.z + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r8.xzyx, -r18.xyzx + max r2.z, |r18.y|, |r18.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r4.y, |r18.z|, l(-52.000000) + mul_sat r4.y, r4.y, l(0.125000) + max r2.z, r2.z, r4.y + lt r4.y, r2.z, l(1.000000) + if_nz r4.y + mad r18.xyz, r8.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t19.yzwx, s2, l(0.000000) + add r4.y, -r2.z, l(1.000000) + mul r1.w, r1.w, r4.y + mul r4.y, l(0.500000), cb0[211].y + mad r5.y, -cb0[211].y, l(0.500000), l(1.000000) + max r4.y, r4.y, r18.y + min r4.y, r5.y, r4.y + mul r18.w, r4.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.w, r21.w, r1.w, r3.w + add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t20.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r20.yyyy, r22.xyzx + mov r22.w, r20.y + mad r19.xyzw, r22.xyzw, r1.wwww, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t20.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r1.wwww, r16.xyzw + mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r18.xyzx + mad r17.xyzw, r20.xyzw, r1.wwww, r17.xyzw + endif + lt r1.w, l(0.000000), r2.z + if_nz r1.w + mad r18.xyz, r8.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + mul r21.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + mad r20.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r18.xyz, r21.xyzx, r18.xyzx + min r18.xyz, r20.xyzx, r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r18.xyzx, t21.yzwx, s2, l(0.000000) + add r1.w, -r0.z, l(1.000000) + mul r1.w, r1.w, r2.z + max r2.z, r21.y, r18.y + min r2.z, r20.y, r2.z + mul r18.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t22.xyzw, s1, l(0.000000) + add r21.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t22.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r22.yyyy, r21.xyzx + mov r21.w, r22.y + mad r19.xyzw, r21.xyzw, r1.wwww, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t22.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r22.xxxx, r18.xyzx + mov r18.w, r22.x + mad r16.xyzw, r18.xyzw, r1.wwww, r16.xyzw + mad r18.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r18.xyzx + mad r17.xyzw, r22.xyzw, r1.wwww, r17.xyzw + mad r3.w, r20.w, r1.w, r3.w + endif + mad_sat r1.w, r3.w, l(2.000000), l(-1.000000) + add r18.x, -r0.z, r1.w + add r0.z, r0.z, r1.w + mul r18.y, r0.z, l(0.500000) +else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xy, l(0,1.000000,0,0) +endif +mul r20.xyzw, r18.yyyx, cb0[213].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r5.yw, r18.yyyx, cb0[213].wwwy +mad r20.w, r5.w, l(0.375000), r5.y +add r17.xyzw, r17.xyzw, r20.xyzw +mul r20.xyzw, r18.yyyx, cb0[214].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r5.yw, r18.yyyx, cb0[214].wwwy +mad r20.w, r5.w, l(0.375000), r5.y +add r16.xyzw, r16.xyzw, r20.xyzw +mul r20.xyzw, r18.yyyx, cb0[215].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r5.yw, r18.yyyx, cb0[215].wwwy +mad r20.w, r5.w, l(0.375000), r5.y +add r18.xyzw, r19.xyzw, r20.xyzw +ge r5.yw, r7.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r5.w, r5.y +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r19.xyzw, r7.xyxx, t16.xyzw, s1, l(0.000000) + lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r19.xyzw| + or r5.yw, r20.zzzw, r20.xxxy + or r0.z, r5.w, r5.y + if_nz r0.z + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mov r5.y, l(1.000000) + mov r5.w, r0.z + mov r1.w, l(0) + loop + ge r2.z, l(4.600000), r5.w + breakc_nz r2.z + iadd r2.z, r1.w, l(1) + mul r7.xy, r5.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r5.yw, r7.xxxy + mov r1.w, r2.z + continue + endloop + mul r19.xyzw, r5.yyyy, r19.xyzw + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb7[3].x, cb7[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r7.x, r0.z, l(0.00390625000) + mov r7.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r5.yw, r7.xyxx, t15.zxwy, s1, l(0.000000) + mad r5.yw, r5.yyyw, cb7[2].xxxy, cb7[2].zzzw + mul r20.x, r5.y, l(3.54490781) + mul r20.yzw, r5.wwww, r19.yyzw + mul r0.z, r19.x, l(0.406976730) + exp r0.z, r0.z + mul r19.xyzw, r0.zzzz, r20.xyzw + mov r20.xyzw, r19.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.w + breakc_nz r2.z + mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r21.xyzw, r20.xyzw + dp2 r3.w, r21.yxyy, r20.xyxx + dp2 r4.y, r21.zxzz, r20.xzxx + dp2 r5.y, r21.wxww, r20.xwxx + iadd r5.w, r0.z, l(1) + mov r20.x, r2.z + mov r20.y, r3.w + mov r20.z, r4.y + mov r20.w, r5.y + mov r0.z, r5.w + continue + endloop + mul r19.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r19.xyzw, r20.xyzw + dp2 r1.w, r19.yxyy, r20.xyxx + dp2 r2.z, r19.zxzz, r20.xzxx + dp2 r3.w, r19.wxww, r20.xwxx + mul r20.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.y, r19.xyzw, r20.xyzw + dp2 r5.y, r19.yxyy, r20.xyxx + dp2 r5.w, r19.zxzz, r20.xzxx + dp2 r7.x, r19.wxww, r20.xwxx + mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.y, r19.xyzw, r20.xyzw + dp2 r10.w, r19.yxyy, r20.xyxx + dp2 r11.w, r19.zxzz, r20.xzxx + dp2 r12.y, r19.wxww, r20.xwxx + mul r17.w, r0.z, l(0.886226952) + mul r17.x, r3.w, l(-1.02332675) + mul r17.y, r1.w, l(-1.02332675) + mul r17.z, r2.z, l(1.02332675) + mul r16.w, r4.y, l(0.886226952) + mul r16.x, r7.x, l(-1.02332675) + mul r16.yz, r5.yywy, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r18.w, r7.y, l(0.886226952) + mul r18.x, r12.y, l(-1.02332675) + mul r18.y, r10.w, l(-1.02332675) + mul r18.z, r11.w, l(1.02332675) + endif +endif +mov r6.w, l(1.000000) +dp4 r19.x, r17.xyzw, r6.xyzw +dp4 r19.y, r16.xyzw, r6.xyzw +dp4 r19.z, r18.xyzw, r6.xyzw +max r19.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.w, r12.w, l(0.001000) +log r1.w, r1.w +mad r1.w, -r1.w, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.w +mul r5.yw, r5.xxxz, cb1[0].wwww +round_ni r5.yw, r5.yyyw +add r1.w, |r2.y|, -cb1[2].y +round_ni r1.w, r1.w +add r2.z, l(-1.000000), cb1[1].x +max r3.w, r1.w, l(0.000000) +min r2.z, r2.z, r3.w +ge r1.w, r2.z, r1.w +mad r3.w, r5.w, cb1[0].x, r5.y +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +ftoi r2.z, r2.z +iadd r2.z, r2.z, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.z, r2.z, l(0), t0.xxxx +and r2.z, r2.z, r3.w +and r1.w, r1.w, r2.z +mul r12.yzw, r19.xxyz, cb0[111].xxxx +dp3 r2.z, r12.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r8.w, l(1.000000) +mov r12.yzw, l(0,0,0,0) +mov r3.w, l(1.000000) +mov r4.y, r1.w +mov r5.y, l(0) +loop + lt r5.w, l(0.010000), r3.w + ine r7.x, r4.y, l(0) + and r7.x, r5.w, r7.x + if_nz r7.x + firstbit_lo r7.x, r4.y + ishl r7.y, l(1), r7.x + xor r4.y, r4.y, r7.y + ishl r7.x, r7.x, l(3) + dp4 r20.x, cb1[r7.x + 6].xyzw, r8.xyzw + dp4 r20.y, cb1[r7.x + 7].xyzw, r8.xyzw + dp4 r20.z, cb1[r7.x + 8].xyzw, r8.xyzw + ge r21.xyz, cb1[r7.x + 5].xyzx, |r20.xyzx| + and r7.y, r21.y, r21.x + and r7.y, r21.z, r7.y + if_nz r7.y + mul r7.y, l(0.100000), cb1[r7.x + 5].x + mul r21.xyz, |r20.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r21.xy, r21.xyxx, r21.xyxx + add r22.xyz, -|r20.xyzx|, cb1[r7.x + 5].xyzx + mul r22.xyz, r22.xyzx, cb1[r7.x + 9].xyzx + eq r10.w, l(1.000000), cb1[r7.x + 10].x + if_nz r10.w + dp3 r23.x, cb1[r7.x + 6].xyzx, r14.xyzx + dp3 r23.y, cb1[r7.x + 7].xyzx, r14.xyzx + dp3 r23.z, cb1[r7.x + 8].xyzx, r14.xyzx + add r24.xyz, -r20.xyzx, cb1[r7.x + 5].xyzx + div r24.xyz, r24.xyzx, r23.xyzx + add r25.xyz, -r20.xyzx, -cb1[r7.x + 5].xyzx + div r25.xyz, r25.xyzx, r23.xyzx + lt r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + movc r24.xyz, r26.xyzx, r24.xyzx, r25.xyzx + min r10.w, r24.y, r24.x + min r10.w, r24.z, r10.w + mad r20.xyz, r23.xyzx, r10.wwww, r20.xyzx + else + mov r20.xyz, r14.xyzx + endif + dp3 r10.w, r20.xyzx, r20.xyzx + rsq r10.w, r10.w + mul r20.xyz, r10.wwww, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + lt r24.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r23.xyz, -r23.xyzx, r24.xyzx + itof r23.xyz, r23.xyzx + dp3 r10.w, r20.xyzx, r23.xyzx + div r20.xyz, r20.xyzx, r10.wwww + lt r10.w, r20.z, l(0.000000) + add r20.zw, -|r20.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.zw, r20.zzzw, r23.xxxy + movc r20.xy, r10.wwww, r20.zwzz, r20.xyxx + dp4 r10.w, cb1[r7.x + 4].xyzw, r6.xyzw + max r10.w, r10.w, l(0.000000) + max r10.w, r10.w, l(0.000100) + min r11.w, r22.z, r22.y + min r11.w, r11.w, r22.x + add r13.w, r21.y, r21.x + mad r13.w, r21.z, r21.z, r13.w + mad r7.y, r7.y, r7.y, -r13.w + mul r7.y, r7.y, cb1[r7.x + 9].x + mul r7.y, r7.y, cb1[r7.x + 9].x + add r13.w, l(1.000000), -cb1[r7.x + 10].y + mul r7.y, r7.y, r13.w + mul r7.y, r7.y, l(100.000000) + mad_sat r7.y, r11.w, cb1[r7.x + 10].y, r7.y + mul r11.w, r7.y, cb1[r7.x + 10].w + mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r20.xy, r20.xyxx, cb1[1].wwww, cb1[2].wwww + mov r20.z, cb1[r7.x + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r20.xyz, r20.xyzx, t5.xyzw, s3, r0.z + mul r20.xyz, r20.xyzx, cb1[r7.x + 9].wwww + div r13.w, r2.z, r10.w + min r13.w, |r13.w|, l(1.000000) + mad r13.w, r13.w, l(2.000000), r2.z + add r10.w, r10.w, l(2.000000) + div r10.w, r13.w, r10.w + add r10.w, r10.w, l(-1.000000) + mad r10.w, r10.w, cb0[112].w, l(1.000000) + mul r20.xyz, r10.wwww, r20.xyzx + mul r20.xyz, r11.wwww, r20.xyzx + mad r12.yzw, r20.xxyz, r3.wwww, r12.yyzw + mad r7.x, -r7.y, cb1[r7.x + 10].w, l(1.000000) + mul r3.w, r3.w, r7.x + endif + mov r5.y, l(-1) + continue + else + mov r5.y, r5.w + break + endif + mov r5.y, r5.w +endloop +if_nz r5.y + dp3 r1.w, r14.xyzx, r14.xyzx + rsq r1.w, r1.w + mul r8.xzw, r1.wwww, r14.xxyz + lt r14.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r8.xzwx + lt r20.xyz, r8.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r14.xyz, -r14.xyzx, r20.xyzx + itof r14.xyz, r14.xyzx + dp3 r1.w, r8.xzwx, r14.xyzx + div r8.xzw, r8.xxzw, r1.wwww + lt r1.w, r8.w, l(0.000000) + add r5.yw, -|r8.zzzx|, l(0.000000, 1.000000, 0.000000, 1.000000) + mul r5.yw, r5.yyyw, r14.xxxy + movc r5.yw, r1.wwww, r5.yyyw, r8.xxxz + dp4 r1.w, cb1[3].xyzw, r6.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r5.yw, r5.yyyw, l(0.000000, 0.500000, 0.000000, 0.500000), l(0.000000, 0.500000, 0.000000, 0.500000) + mad r14.xy, r5.ywyy, cb1[1].wwww, cb1[2].wwww + mov r14.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r8.xzw, r14.xyzx, t5.xwyz, s3, r0.z + div r0.z, r2.z, r1.w + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.z + add r1.w, r1.w, l(2.000000) + div r0.z, r0.z, r1.w + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r8.xzw, r0.zzzz, r8.xxzw + mad r12.yzw, r8.xxzw, r3.wwww, r12.yyzw +endif +mul r8.xzw, r12.yyzw, cb0[112].zzzz +mul r8.xzw, r8.xxzw, cb0[111].yyyy +if_nz r9.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r12.yzw, v1.xyxx, t2.wxyz, s1, cb0[108].x + add r1.w, -r0.z, l(1.000000) + mul r14.xyz, r1.wwww, r8.xzwx + mad r8.xzw, r12.yyzw, r0.zzzz, r14.xxyz +endif +mul r3.xyz, r3.xyzx, r19.xyzx +mul r3.xyz, r3.xyzx, cb0[111].xxxx +mad r0.z, r2.x, r7.z, r7.w +mul r7.xyz, r0.zzzz, r8.xzwx +mul r7.xyz, r9.xzwx, r7.xyzx +mad r3.xyz, r3.xyzx, r13.xyzx, r7.xyzx +mul r6.xyzw, r6.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r7.x, r17.xyzw, r6.xyzw +dp4 r7.y, r16.xyzw, r6.xyzw +dp4 r7.z, r18.xyzw, r6.xyzw +max r6.xyz, r7.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mul r6.xyz, r13.xyzx, r6.xyzx +mul r6.xyz, r15.xyzx, r6.xyzx +mul r0.z, r4.x, r12.x +ftou r1.w, r2.w +bfi r1.w, l(2), l(0), r1.w, r4.z +utof r1.w, r1.w +mul r1.w, r1.w, l(0.0322580636) +mad r0.z, r0.z, l(0.00787401572), r1.w +mul r2.xzw, r0.zzzz, r6.xxyz +mad r2.xzw, r2.xxzw, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r3.xxyz +add r1.xyz, r1.xyzx, r2.xzwx +mad r0.z, r8.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r4.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r8.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xzw, r0.zzzz, cb0[155].xxyz +mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r2.xzw, r2.xxzw +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.x, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r3.x +lt r3.x, l(0.000000), cb0[163].z +if_nz r3.x + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r10.xyzx + add r3.z, r8.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.w + mul r0.x, r0.x, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul r4.x, r0.x, r3.w + mad r4.y, r4.x, r3.z, cb0[44].y + mad r3.z, -r4.x, r3.z, r3.z + mul r4.x, r3.z, cb0[159].z + mul r3.z, r3.z, cb0[162].x + max r3.z, r3.z, l(-127.000000) + add r4.z, r4.y, -cb0[159].x + mul r4.z, r4.z, cb0[159].z + max r4.xz, r4.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r4.z, -r4.z + mul r4.z, r4.z, cb0[159].y + lt r5.y, l(5.960464478E-08), |r4.x| + exp r5.w, -r4.x + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r5.y, r5.w, r4.x + add r4.y, r4.y, -cb0[162].z + mul r4.y, r4.y, cb0[162].x + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[162].y + lt r5.y, l(5.960464478E-08), |r3.z| + exp r5.w, -r3.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r5.y, r5.w, r3.z + mul r3.z, r3.z, r4.y + mad r3.z, r4.z, r4.x, r3.z + mad r0.x, -r0.x, r3.w, l(1.000000) + mul r0.x, r4.w, r0.x + mul r0.x, r0.x, r3.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r4.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r5.xxxz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r2.y|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r2.y|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r8.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.y, cb0[44].y, -cb0[159].x + mul r2.y, r2.y, cb0[159].z + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.y, r0.w, r0.y + mul r0.y, r4.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r4.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xzwx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.y, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r0.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad o0.xyz, r1.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +endif +// === End Fog Modification === +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0_original_backup.asm new file mode 100644 index 000000000..07a2a0ba9 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0_original_backup.asm @@ -0,0 +1,1661 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 16:31:32 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[5], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB7[4], 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_comparison +dcl_sampler s5, mode_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture3d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 37 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t24.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t25.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t26.xyzw +mul r1.xyzw, r1.xwyz, l(1023.000000, 3.000000, 1023.000000, 1023.000000) +ftou r1.xyw, r1.xyxw +ubfe r4.x, l(7), l(3), r1.x +bfi r4.yz, l(0, 3, 3, 0), l(0, 2, 2, 0), r1.xxwx, l(0, 0, 0, 0) +bfi r1.x, l(2), l(0), r1.y, r4.y +utof r1.x, r1.x +mul r1.y, r1.x, l(0.0322580636) +round_ne r1.z, r1.z +ftou r1.z, r1.z +ubfe r4.y, l(7), l(3), r1.z +utof r4.xy, r4.xyxx +mul r4.y, r4.y, l(0.00787401572) +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.w, l(1.000000) +lt r4.w, r5.y, l(0.000000) +ge r6.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r6.xy, r6.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r6.xy, r6.xyxx, r6.zwzz +movc r5.xz, r4.wwww, r6.xxyx, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r6.xyz, r2.xxxx, r5.xyzx +and r1.z, r1.z, l(7) +utof r1.z, r1.z +mad r1.z, r1.z, l(0.107142866), l(0.500000) +utof r5.xz, r0.xxyx +mul r7.xy, v0.xyxx, cb0[82].zwzz +mad r7.zw, r7.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r8.xy, r5.xzxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r8.xy, r8.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r2.y, r8.xyxx, t1.yxzw, s0, l(0.000000) +mul r8.xyzw, -r7.wwww, cb0[25].xyzw +mad r8.xyzw, cb0[24].xyzw, r7.zzzz, r8.xyzw +mad r8.xyzw, cb0[26].xyzw, r2.yyyy, r8.xyzw +add r8.xyzw, r8.xyzw, cb0[27].xyzw +div r8.xyz, r8.xyzx, r8.wwww +mul r2.y, r8.y, cb0[1].z +mad r2.y, cb0[0].z, r8.x, r2.y +mad r2.y, cb0[2].z, r8.z, r2.y +add r2.y, r2.y, cb0[3].z +eq r4.w, l(0.000000), cb0[86].w +add r9.xyz, -r8.xyzx, cb0[44].xyzx +mov r10.x, cb0[0].z +mov r10.y, cb0[1].z +mov r10.z, cb0[2].z +movc r9.xyz, r4.wwww, r9.xyzx, r10.xyzx +dp3 r4.w, r9.xyzx, r9.xyzx +max r5.w, r4.w, l(9.999999939E-09) +rsq r5.w, r5.w +mul r11.xyz, r5.wwww, r9.xyzx +mul r4.w, r4.w, r5.w +lt r7.z, l(0.000488281250), cb0[234].x +if_nz r7.z + sample_b_indexable(texture2d)(float,float,float,float) r7.z, v1.xyxx, t23.yzxw, s1, cb0[108].x +else + mov r7.z, l(1.000000) +endif +lt r12.xy, l(0.500000, 0.500000, 0.000000, 0.000000), cb0[226].xyxx +if_nz r12.x + add r7.w, |r6.y|, |r6.x| + add r7.w, |r6.z|, r7.w + div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w + mul r12.xzw, |r6.xxyz|, r7.wwww + mul r13.xyzw, r12.xxzz, l(0.000000, 1.000000, 0.707106, 0.000000) + add r13.xyz, r13.zwzz, r13.xxyx + mad r12.xzw, r12.wwww, l(1.000000, 0.000000, 0.000000, 0.000000), r13.xxyz + mul r13.xyz, r8.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r7.w, r13.xyzx, t10.yzwx, s2, l(0.000000) + mad r7.w, r7.w, l(2.000000), l(-1.000000) + mul r12.xzw, r7.wwww, r12.xxzw + mov r7.w, |r6.y| + add r7.w, r7.w, l(-0.700000) + mul_sat r7.w, r7.w, l(4.000000) + mad r9.w, r7.w, l(-2.000000), l(3.000000) + mul r7.w, r7.w, r7.w + mul r7.w, r7.w, r9.w + add r9.w, -cb0[229].z, cb0[229].y + mad r7.w, r7.w, r9.w, cb0[229].z + mul r12.xzw, r7.wwww, r12.xxzw +else + mov r12.xzw, l(0,0,0,0) +endif +if_nz r12.y + mul r13.xyz, r6.xyzx, cb0[233].zzzz + mul r14.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r13.xyz, r13.xyzx, cb0[225].xxxx, r14.xyzx + max r7.w, -r6.y, l(0.000000) + min r7.w, r7.w, l(0.900000) + add r7.w, -r7.w, l(1.000000) + mad r2.x, -r5.y, r2.x, l(-0.200000) + mul_sat r2.x, r2.x, l(-10.000000) + mad r5.y, r2.x, l(-2.000000), l(3.000000) + mul r2.x, r2.x, r2.x + mul r2.x, r2.x, r5.y + max r2.x, r2.x, l(0.100000) + min r2.x, r2.x, l(1.000000) + mul r2.x, r2.x, r7.w + mad r13.xyz, r13.xyzx, r2.xxxx, r8.xyzx + add r12.xyz, r12.xzwx, r13.xyzx + mul r13.xyz, r12.yyyy, cb5[1].xyzx + mad r12.xyw, cb5[0].xyxz, r12.xxxx, r13.xyxz + mad r12.xyz, cb5[2].xyzx, r12.zzzz, r12.xywx + add r12.xyz, r12.xyzx, cb5[3].xyzx + mad r13.x, r12.x, l(0.500000), cb5[4].x + mad r2.x, r12.y, l(0.500000), l(0.500000) + add r13.z, -r2.x, cb5[4].y + add r12.xy, r13.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r2.x, r12.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r12.xyxx, t9.xxxx, s5, r2.x +else + mov r2.x, l(1.000000) +endif +mov_sat r5.y, r6.y +add r7.w, l(1.000000), -cb0[230].w +mad r5.y, r5.y, r7.w, cb0[230].w +add r12.xy, r8.xzxx, -cb0[44].xzxx +max r7.w, |r12.y|, |r12.x| +mul r9.w, r5.y, cb0[230].z +mul r10.w, r2.x, r5.y +mul r11.w, l(0.0500000119), cb0[222].w +mad r12.x, -cb0[222].w, l(0.700000), r7.w +div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul_sat r11.w, r11.w, r12.x +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mad r2.x, -r5.y, r2.x, l(1.000000) +mad r2.x, r11.w, r2.x, r10.w +mad r5.y, -cb0[230].z, r5.y, l(1.000000) +mad r2.x, r2.x, r5.y, r9.w +mad r5.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r7.w, r7.w, -cb0[222].w +div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y +mul_sat r5.y, r5.y, r7.w +mad r7.w, r5.y, l(-2.000000), l(3.000000) +mul r5.y, r5.y, r5.y +mul r5.y, r5.y, r7.w +add r7.w, -r2.x, cb0[230].y +mad r2.x, r5.y, r7.w, r2.x +add r2.x, -r2.x, l(1.000000) +mad r2.x, -r7.z, r2.x, l(1.000000) +mad_sat r5.y, r2.z, l(0.300000), l(0.250000) +mul r5.y, r5.y, cb0[222].x +mul r5.y, r2.x, r5.y +mad r5.y, r5.y, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r5.yyyy +min r5.y, r2.z, l(0.300000) +mul r2.x, r2.x, cb0[222].x +mul r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 3.000000) +add r5.y, -r2.z, r5.y +mad r12.w, r2.x, r5.y, r2.z +mul r2.x, r1.z, l(0.080000) +dp3 r2.z, r6.xyzx, r11.xyzx +max r5.y, r2.z, l(0.000000) +mad r13.xyzw, r12.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r7.z, r13.x, r13.x +mul r7.w, r5.y, l(-9.280000) +exp r7.w, r7.w +min r7.z, r7.w, r7.z +mad r7.z, r7.z, r13.x, r13.y +mad r7.zw, r7.zzzz, l(0.000000, 0.000000, -1.040000, 1.040000), r13.zzzw +ld_indexable(texture2d)(float,float,float,float) r13.x, r0.xyzz, t7.xyzw +lt r0.z, l(0.001000), r13.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r7.xyxx, t12.yzxw, s1, l(0.000000) + dp3 r9.w, -r11.xyzx, r6.xyzx + add r9.w, r9.w, r9.w + mad r14.xyz, r6.xyzx, -r9.wwww, -r11.xyzx + dp3 r9.w, -cb3[0].xyzx, r14.xyzx + mad r15.xyz, cb3[0].xyzx, r9.wwww, r14.xyzx + lt r9.w, r9.w, cb3[4].z + dp3 r10.w, r15.xyzx, r15.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb3[4].yyyy + mad r15.xyz, -cb3[0].xyzx, cb3[4].zzzz, r15.xyzx + dp3 r10.w, r15.xyzx, r15.xyzx + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + movc r14.xyz, r9.wwww, r15.xyzx, r14.xyzx + mad r15.xyz, r9.xyzx, r5.wwww, r14.xyzx + dp3 r9.w, r15.xyzx, r15.xyzx + max r9.w, r9.w, l(0.0000610351562) + rsq r9.w, r9.w + mul r15.xyz, r9.wwww, r15.xyzx + dp3 r9.w, r6.xyzx, r14.xyzx + mov_sat r12.y, r9.w + dp3_sat r10.w, r6.xyzx, r15.xyzx + dp3 r11.w, r11.xyzx, r14.xyzx + min r12.z, r5.y, l(1.000000) + mul r13.z, r12.w, r12.w + mul r13.z, r13.z, r13.z + mad r13.w, r10.w, r13.z, -r10.w + mad r10.w, r13.w, r10.w, l(1.000000) + dp3_sat r13.w, r11.xyzx, r15.xyzx + add r13.w, -r13.w, l(1.000000) + mul r14.x, r13.w, r13.w + mul r14.x, r14.x, r14.x + mul r14.y, r13.w, r14.x + add r14.z, -r12.w, l(1.000000) + mad r14.w, -r14.z, l(0.383026), l(-0.0761947036) + mad r14.w, r14.z, r14.w, l(1.049970) + mad r14.z, r14.z, r14.w, l(0.409255) + min r14.z, r14.z, l(0.999000) + add r14.w, -r14.z, l(1.000000) + mad r15.x, -r1.z, l(0.080000), l(1.000000) + mad r15.x, r15.x, l(0.0476190485), r2.x + mov_sat r15.y, -r11.w + mul r15.y, r15.y, r15.y + mad r15.y, r15.y, l(-0.640000), l(1.000000) + mul r15.y, r15.y, r15.y + mad r13.w, -r14.x, r13.w, l(1.000000) + mad r13.w, r2.x, r13.w, r14.y + mul r10.w, r10.w, r10.w + div r10.w, r13.z, r10.w + mad r14.xy, -r12.zyzz, r13.zzzz, r12.zyzz + mad r14.xy, r14.xyxx, r12.zyzz, r13.zzzz + sqrt r14.xy, r14.xyxx + mul r14.xy, r12.yzyy, r14.xyxx + add r13.z, r14.y, r14.x + add r13.z, r13.z, l(0.000100) + div r13.z, l(0.500000), r13.z + mul r10.w, r10.w, r13.z + mul r10.w, r10.w, r13.w + min r10.w, r10.w, l(2048.000000) + mad r16.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r12.z, r16.xyxx, t11.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r13.z, r16.zwzz, t11.yzxw, s1, l(0.000000) + mul r12.z, r12.z, r13.z + mul r12.z, r14.z, r12.z + div r12.z, r12.z, r14.w + mul r13.z, r15.x, r15.x + mul r12.z, r12.z, r13.z + mad r13.z, -r15.x, r14.w, l(1.000000) + div r12.z, r12.z, r13.z + add r10.w, r10.w, r12.z + add_sat r12.z, r2.z, l(0.200000) + mov_sat r13.z, r11.w + add r13.z, r13.z, l(0.500000) + min r13.z, r13.z, l(1.000000) + mul r13.w, r12.z, r13.z + add_sat r11.w, r11.w, l(1.000000) + mad r12.z, -r12.z, r13.z, l(1.000000) + mad r11.w, r11.w, r12.z, r13.w + mul r10.w, r10.w, r11.w + mul r10.w, r4.y, r10.w + mul r14.xyz, r4.yyyy, r3.xyzx + ubfe r1.w, l(7), l(3), r1.w + utof r1.w, r1.w + mul r1.w, r1.w, l(0.00787401572) + mul r10.w, r10.w, cb3[4].x + max r10.w, r10.w, l(0.000000) + min r10.w, r10.w, l(1000.000000) + mul r10.w, r12.y, r10.w + mad r14.xyz, r14.xyzx, r1.wwww, r10.wwww + max r1.w, r3.y, r3.x + max r1.w, r3.z, r1.w + max r1.w, r1.w, l(0.010000) + div r15.xzw, r3.xxyz, r1.wwww + mul r1.w, r4.x, l(0.00393700786) + mul r15.xzw, r1.wwww, r15.xxzw + add_sat r1.w, -r9.w, l(0.500000) + ne r10.w, r15.y, l(0.360000) + div r11.w, l(0.360000), r15.y + movc r10.w, r10.w, r11.w, l(1.000000) + mul r1.w, r1.w, r10.w + mad_sat r9.w, r1.x, l(0.0322580636), r9.w + add r9.w, -r12.y, r9.w + mul r16.xyz, r3.xyzx, r9.wwww + mad r15.xyz, r15.xzwx, r1.wwww, r16.xyzx + mad r14.xyz, r15.xyzx, r4.yyyy, r14.xyzx + mul r14.xyz, r14.xyzx, cb3[1].xyzx + mov r13.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r13.yzw, r13.xyxx, t8.wxyz, s1, cb0[108].x + add r1.w, -r13.x, l(1.000000) + mad r13.xyz, r14.xyzx, r13.yzwy, -r14.xyzx + mad r13.xyz, r1.wwww, r13.xyzx, r14.xyzx + max r1.w, r4.y, r0.z + add r1.w, -r0.z, r1.w + mad r0.z, r1.y, r1.w, r0.z + mul r13.xyz, r0.zzzz, r13.xyzx +else + mov r13.xyz, l(0,0,0,0) +endif +mul r1.yw, r5.xxxz, l(0.000000, 0.031250, 0.000000, 0.031250) +round_ni r1.yw, r1.yyyw +mad r0.z, r1.w, cb2[1].y, r1.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r1.y, -cb0[85].y, cb2[2].w, |r2.y| +round_ni r1.y, r1.y +add r1.w, l(-1.000000), cb2[1].w +max r9.w, r1.y, l(0.000000) +min r1.w, r1.w, r9.w +mul r9.w, r1.w, l(8.000000) +ftoi r9.w, r9.w +ge r1.y, r1.w, r1.y +iadd r1.w, r9.w, cb0[110].y +mul r9.w, r12.w, r12.w +dp3 r10.w, -r11.xyzx, r6.xyzx +add r10.w, r10.w, r10.w +mad r14.xyz, r6.xyzx, -r10.wwww, -r11.xyzx +min r12.x, r5.y, l(1.000000) +add r10.w, -r12.w, l(1.000000) +mad r11.w, -r10.w, l(0.383026), l(-0.0761947036) +mad r11.w, r10.w, r11.w, l(1.049970) +mad r10.w, r10.w, r11.w, l(0.409255) +min r10.w, r10.w, l(0.999000) +add r11.w, -r10.w, l(1.000000) +mad r1.z, -r1.z, l(0.080000), l(1.000000) +mad r1.z, r1.z, l(0.0476190485), r2.x +mad r12.yz, r12.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r12.y, r12.yzyy, t11.yxzw, s1, l(0.000000) +mad r12.z, -r1.z, r11.w, l(1.000000) +add_sat r2.z, r2.z, l(0.200000) +max r13.w, r3.y, r3.x +max r13.w, r3.z, r13.w +max r13.w, r13.w, l(0.010000) +div r15.xyz, r3.xyzx, r13.wwww +mul r13.w, r4.x, l(0.00393700786) +mul r16.xyz, r13.wwww, r15.xyzx +mul r17.xyz, r4.yyyy, r3.xyzx +mul r1.z, r1.z, r1.z +mov r18.w, l(1.000000) +mov r19.y, l(1.000000) +mov r20.z, r12.w +mov r21.xyz, l(0,0,0,0) +mov r13.w, l(1.000000) +mov r14.w, l(0) +loop + ilt r15.w, l(7), r14.w + breakc_nz r15.w + iadd r15.w, r0.z, r14.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t0.xxxx + iadd r16.w, r1.w, r14.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t0.xxxx + and r15.w, r15.w, r16.w + and r15.w, r1.y, r15.w + ishl r16.w, r14.w, l(5) + mov r22.xyz, l(0,0,0,0) + mov r17.w, r13.w + mov r19.z, r15.w + loop + breakc_z r19.z + firstbit_lo r19.w, r19.z + ishl r20.w, l(1), r19.w + xor r20.w, r19.z, r20.w + iadd r19.w, r16.w, r19.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r19.wwww, l(1, 3, 5, 6) + bfi r21.w, l(29), l(3), r19.w, l(7) + ftou r22.w, cb3[r23.z + 6].w + ieq r22.w, r22.w, l(1) + if_nz r22.w + add r18.xyz, r8.xyzx, -cb3[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.w + 6].yxzy + ushr r26.xyz, cb3[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb3[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r22.w, r18.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r23.z, r18.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r18.x, r18.xyzw, r27.xyzw + max r18.y, |r22.w|, |r23.z| + max r18.x, |r18.x|, r18.y + mad r18.y, cb3[r21.w + 6].x, l(0.500000), l(0.500000) + add r18.x, -r18.y, r18.x + mad r18.y, -cb3[r21.w + 6].x, l(0.500000), l(0.500000) + div_sat r18.x, r18.x, r18.y + add r18.x, -r18.x, l(1.000000) + mul r18.x, r18.x, r18.x + else + mov r18.x, l(1.000000) + endif + lt r18.y, l(0.500000), cb3[r23.y + 6].z + lt r18.z, r18.x, l(0.001000) + or r18.z, r18.y, r18.z + if_nz r18.z + mov r19.z, r20.w + continue + endif + ishl r18.z, r19.w, l(3) + bfi r19.w, l(29), l(3), r19.w, l(2) + lt r22.w, cb3[r18.z + 6].w, l(1.500000) + if_nz r22.w + mad r22.w, cb3[r19.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r22.w, -|cb3[r19.w + 6].x| + add r24.y, -r24.x, cb3[r19.w + 6].y + add r22.w, -|r24.x|, l(1.000000) + add r22.w, -|r24.y|, r22.w + max r22.w, r22.w, l(0.000488281250) + ge r23.z, cb3[r19.w + 6].x, l(0.000000) + movc r24.z, r23.z, r22.w, -r22.w + dp3 r22.w, r24.xyzx, r24.xyzx + rsq r22.w, r22.w + mul r24.xyz, r22.wwww, r24.xyzx + add r25.xyz, -r8.xyzx, cb3[r23.x + 6].xyzx + dp3 r22.w, r25.xyzx, r25.xyzx + rsq r23.z, r22.w + mul r26.xyz, r23.zzzz, r25.xyzx + ftoi r24.w, cb3[r21.w + 6].w + mul r27.xyz, r24.xyzx, cb3[r19.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r25.w, cb3[r18.z + 6].w + and r25.w, r25.w, l(1) + ieq r26.w, r25.w, l(0) + not r26.w, r26.w + lt r27.w, l(0.000000), cb3[r19.w + 6].z + and r26.w, r26.w, r27.w + dp3 r27.w, r28.xyzx, r28.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r29.xyzx, r29.xyzx + sqrt r28.w, r28.w + dp3 r29.w, r6.xyzx, r28.xyzx + div r29.w, r29.w, r27.w + dp3 r30.x, r6.xyzx, r29.xyzx + div r30.x, r30.x, r28.w + add r29.w, r29.w, r30.x + mul_sat r30.x, r29.w, l(0.500000) + dp3 r29.x, r28.xyzx, r29.xyzx + mad r27.w, r27.w, r28.w, r29.x + mad r27.w, r27.w, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w + dp3_sat r19.x, r6.xyzx, r26.xyzx + movc r20.xy, r26.wwww, r30.xyxx, r19.xyxx + lt r19.x, cb3[r23.w + 6].w, l(0.000000) + if_nz r19.x + mul r19.x, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r19.x, r19.x, r22.w + mad r19.x, -r19.x, r19.x, l(1.000000) + max r19.x, r19.x, l(0.000000) + add r22.w, r22.w, l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + and r27.w, r26.w, l(0x3f800000) + add r28.w, r20.y, -r22.w + mad r22.w, r27.w, r28.w, r22.w + mul r19.x, r19.x, r19.x + mul r19.x, r19.x, r22.w + else + mul r29.xyz, r25.xyzx, cb3[r23.x + 6].wwww + dp3 r22.w, r29.xyzx, r29.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb3[r23.w + 6].w + exp r22.w, r22.w + mul r19.x, r20.y, r22.w + endif + dp3 r20.y, r26.xyzx, -r24.xyzx + add r20.y, r20.y, -cb3[r19.w + 6].z + mul_sat r20.y, r20.y, cb3[r19.w + 6].w + mul r20.y, r20.y, r20.y + movc r20.y, r25.w, l(1.000000), r20.y + mul r19.x, r19.x, r20.y + not r20.y, r26.w + ige r22.w, r24.w, l(0) + and r20.y, r20.y, r22.w + if_nz r20.y + if_z r25.w + ishl r20.y, r24.w, l(2) + mul r24.xyz, r8.yyyy, cb6[r20.y + 33].xywx + mad r24.xyz, cb6[r20.y + 32].xywx, r8.xxxx, r24.xyzx + mad r24.xyz, cb6[r20.y + 34].xywx, r8.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb6[r20.y + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb6[r24.w + 0].zwzz, cb6[r24.w + 0].xyxx + else + ishl r20.y, r24.w, l(2) + dp3 r29.x, -r25.xyzx, cb6[r20.y + 32].xyzx + dp3 r29.y, -r25.xyzx, cb6[r20.y + 33].xyzx + dp3 r29.z, -r25.xyzx, cb6[r20.y + 34].xyzx + lt r20.y, |r29.x|, |r29.y| + and r20.y, r20.y, l(1) + dp2 r22.w, |r29.xyxx|, icb[r20.y + 0].xyxx + lt r22.w, r22.w, |r29.z| + movc r20.y, r22.w, l(2), r20.y + dp3 r22.w, r29.xyzx, icb[r20.y + 0].xyzx + lt r22.w, r22.w, l(0.000000) + bfi r20.y, l(31), l(1), r20.y, r22.w + ushr r22.w, r20.y, l(1) + dp3 r22.w, r29.xyzx, icb[r22.w + 0].xyzx + div r24.z, l(0.000244140625), cb6[r24.w + 0].w + add r24.z, -r24.z, l(0.500000) + utof r25.x, r20.y + ult r25.y, r20.y, l(2) + and r25.y, r25.y, l(2) + dp2 r25.y, r29.xzxx, icb[r25.y + 0].xzxx + mul r25.y, r25.y, icb[r20.y + 4].z + div r25.y, r25.y, |r22.w| + mad r25.x, r25.y, r24.z, r25.x + add r25.x, r25.x, l(0.500000) + mul_sat r25.x, r25.x, l(0.166666672) + iadd r25.z, l(-1), icb[r20.y + 4].y + dp2 r25.z, r29.yzyy, icb[r25.z + 0].xyxx + mul r20.y, r25.z, icb[r20.y + 4].w + div r20.y, r20.y, |r22.w| + mad_sat r25.y, -r20.y, r24.z, l(0.500000) + mad r24.xy, r25.xyxx, cb6[r24.w + 0].zwzz, cb6[r24.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r20.y, r24.xyxx, t13.yxzw, s1, l(0.000000) + mul r19.x, r19.x, r20.y + endif + lt r20.y, l(0.000000), r19.x + if_nz r20.y + if_z r25.w + ftoi r22.w, cb3[r23.y + 6].x + else + add r24.xyz, r8.xyzx, -cb3[r23.x + 6].xyzx + lt r25.xyz, |r24.yzzy|, |r24.xxyx| + and r24.w, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r25.x, cb3[r19.w + 6].w, l(24) + ubfe r25.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb3[r19.w + 6].wwww + movc r24.x, r24.x, r25.x, r25.y + and r25.x, l(255), cb3[r19.w + 6].w + movc r24.y, r24.y, r25.w, r25.x + ubfe r25.x, l(8), l(8), cb3[r23.y + 6].x + and r25.y, l(255), cb3[r23.y + 6].x + movc r24.z, r24.z, r25.x, r25.y + movc r24.y, r25.z, r24.y, r24.z + movc r24.x, r24.w, r24.x, r24.y + ilt r24.y, r24.x, l(80) + movc r22.w, r24.y, r24.x, l(-1) + endif + ishl r24.x, r22.w, l(2) + mad r24.yzw, r26.xxyz, cb4[r22.w + 288].xxxx, r8.xxyz + mul r25.x, l(5.000000), cb4[r22.w + 288].y + mad r24.yzw, r6.xxyz, r25.xxxx, r24.yyzw + mul r25.xyzw, r24.zzzz, cb4[r24.x + 65].xyzw + mad r25.xyzw, cb4[r24.x + 64].xyzw, r24.yyyy, r25.xyzw + mad r25.xyzw, cb4[r24.x + 66].xyzw, r24.wwww, r25.xyzw + add r24.xyzw, r25.xyzw, cb4[r24.x + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r30.xy, -cb4[r22.w + 344].xyxx, cb4[r22.w + 344].zwzz + mad r24.xy, r24.xyxx, r30.xyxx, cb4[r22.w + 344].xyxx + mad r30.xy, r24.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r30.xy, r30.xyxx + mad r24.xy, r24.xyxx, cb4[400].zwzz, -r30.xyxx + add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx + mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz + add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r35.z, r36.x + mov r35.w, r24.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r24.y + mov r33.z, r34.y + mov r33.w, r32.z + add r24.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.yxzy, cb4[400].xxxx + div r33.xyz, r33.zywz, r24.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.xyzx, cb4[400].yyyy + mov r32.w, r33.x + mad r34.xyzw, r30.xyxy, cb4[400].xyxy, r32.ywxw + mad r30.zw, r30.xxxy, cb4[400].xxxy, r32.zzzw + mov r33.w, r32.y + mov r32.yw, r33.yyyz + mad r35.xyzw, r30.xyxy, cb4[400].xyxy, r32.xyzy + mad r33.xyzw, r30.xyxy, cb4[400].xyxy, r33.wywz + mad r32.xyzw, r30.xyxy, cb4[400].xyxy, r32.xwzw + mul r36.xyzw, r24.xxxy, r31.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r34.xyxx, t6.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r34.zwzz, t6.xxxx, s4, r24.z + mul r25.w, r25.w, r36.y + mad r24.x, r36.x, r24.x, r25.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r30.zwzz, t6.xxxx, s4, r24.z + mad r24.x, r36.z, r25.w, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r33.xyxx, t6.xxxx, s4, r24.z + mad r24.x, r36.w, r25.w, r24.x + mul r30.xyzw, r24.yyww, r31.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r35.xyxx, t6.xxxx, s4, r24.z + mad r24.x, r30.x, r24.y, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r35.zwzz, t6.xxxx, s4, r24.z + mad r24.x, r30.y, r24.y, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r33.zwzz, t6.xxxx, s4, r24.z + mad r24.x, r30.z, r24.y, r24.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r32.xyxx, t6.xxxx, s4, r24.z + mad r24.x, r30.w, r24.y, r24.x + ige r24.y, r22.w, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r25.x, r25.y, r25.x + or r25.x, r25.z, r25.x + and r25.y, r24.z, l(0x7fffffff) + ult r25.y, l(0x7f800000), r25.y + or r25.x, r25.y, r25.x + mul r24.w, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r32.zwzz, t6.xxxx, s4, r24.z + mad r24.x, r24.w, r24.z, r24.x + add r24.x, r24.x, l(-1.000000) + mad r22.w, cb4[r22.w + 288].w, r24.x, l(1.000000) + movc r22.w, r25.x, l(1.000000), r22.w + movc r22.w, r24.y, r22.w, l(1.000000) + else + mov r22.w, l(1.000000) + endif + if_nz r26.w + dp3 r24.x, r14.xyzx, r27.xyzx + mul_sat r24.y, r23.z, cb3[r19.w + 6].z + mad r24.y, r24.y, l(0.500000), r9.w + min r24.y, r24.y, l(1.000000) + div r24.y, r9.w, r24.y + mad r25.xyz, r14.xyzx, r24.xxxx, -r27.xyzx + dp3 r24.z, r28.xyzx, r25.xyzx + mul r24.x, r24.x, r24.x + mad r24.x, cb3[r19.w + 6].z, cb3[r19.w + 6].z, -r24.x + div_sat r24.x, r24.z, r24.x + mad r24.xzw, r27.xxyz, r24.xxxx, r28.xxyz + dp3 r25.x, r24.xzwx, r24.xzwx + rsq r25.x, r25.x + mul r26.xyz, r24.xzwx, r25.xxxx + else + mov r24.y, l(1.000000) + endif + if_nz r20.y + mul_sat r20.y, r23.z, cb3[r21.w + 6].y + mad r24.xzw, r9.xxyz, r5.wwww, r26.xxyz + dp3 r23.z, r24.xzwx, r24.xzwx + max r23.z, r23.z, l(0.0000610351562) + rsq r23.z, r23.z + mul r24.xzw, r23.zzzz, r24.xxzw + dp3 r23.z, r6.xyzx, r26.xyzx + dp3_sat r25.x, r6.xyzx, r24.xzwx + dp3_sat r24.x, r11.xyzx, r24.xzwx + dp3 r24.z, r11.xyzx, r26.xyzx + lt r24.w, l(0.000000), r20.y + mul r20.y, r20.y, r20.y + mad r25.y, r24.x, l(3.600000), l(0.400000) + div r20.y, r20.y, r25.y + mad r20.y, r12.w, r12.w, r20.y + min r20.y, r20.y, l(1.000000) + movc r20.y, r24.w, r20.y, r9.w + mul r20.y, r20.y, r20.y + mad r24.w, r25.x, r20.y, -r25.x + mad r24.w, r24.w, r25.x, l(1.000000) + add r24.x, -r24.x, l(1.000000) + mul r25.x, r24.x, r24.x + mul r25.x, r25.x, r25.x + mul r25.y, r24.x, r25.x + mov_sat r25.z, -r24.z + mul r25.z, r25.z, r25.z + mad r25.z, r25.z, l(-0.640000), l(1.000000) + mul r25.z, r25.z, r25.z + mad r24.x, -r25.x, r24.x, l(1.000000) + mad r24.x, r2.x, r24.x, r25.y + mul r24.w, r24.w, r24.w + div r24.w, r20.y, r24.w + mul r24.y, r24.y, r24.w + mad r24.w, -r12.x, r20.y, r12.x + mad r24.w, r24.w, r12.x, r20.y + sqrt r24.w, r24.w + mad r25.x, -r20.x, r20.y, r20.x + mad r20.y, r25.x, r20.x, r20.y + sqrt r20.y, r20.y + mul r20.y, r12.x, r20.y + mad r20.y, r20.x, r24.w, r20.y + add r20.y, r20.y, l(0.000100) + div r20.y, l(0.500000), r20.y + mul r20.y, r20.y, r24.y + mul r20.y, r20.y, r24.x + min r20.y, r20.y, l(2048.000000) + mad r24.xy, r20.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r24.x, r24.xyxx, t11.xyzw, s1, l(0.000000) + mul r24.x, r12.y, r24.x + mul r24.x, r10.w, r24.x + div r24.x, r24.x, r11.w + mul r24.x, r1.z, r24.x + div r24.x, r24.x, r12.z + add r20.y, r20.y, r24.x + mov_sat r24.x, r24.z + add r24.x, r24.x, l(0.500000) + min r24.x, r24.x, l(1.000000) + mul r24.y, r2.z, r24.x + add_sat r24.z, r24.z, l(1.000000) + mad r24.x, -r2.z, r24.x, l(1.000000) + mad r24.x, r24.z, r24.x, r24.y + mul r20.y, r20.y, r24.x + mul r20.y, r4.y, r20.y + mul r20.y, r20.y, cb3[r21.w + 6].z + max r20.y, r20.y, l(0.000000) + min r20.y, r20.y, l(1000.000000) + add_sat r24.x, -r23.z, l(0.500000) + ne r24.y, r25.z, l(0.360000) + div r24.z, l(0.360000), r25.z + movc r24.y, r24.y, r24.z, l(1.000000) + mul r24.x, r24.y, r24.x + mad_sat r23.z, r1.x, l(0.0322580636), r23.z + add r23.z, -r20.x, r23.z + mul r24.yzw, r3.xxyz, r23.zzzz + mad r24.xyz, r16.xyzx, r24.xxxx, r24.yzwy + mul r24.xyz, r4.yyyy, r24.xyzx + mad r24.xyz, r20.yyyy, r20.xxxx, r24.xyzx + mad r24.xyz, r17.xyzx, r20.xxxx, r24.xyzx + mul r25.xyz, r19.xxxx, cb3[r18.z + 6].xyzx + mul r25.xyz, r22.wwww, r25.xyzx + mul r25.xyz, r18.xxxx, r25.xyzx + mul r24.xyz, r24.xyzx, r25.xyzx + else + mov r24.xyz, l(0,0,0,0) + endif + else + if_z r18.y + mad r18.x, cb3[r19.w + 6].y, l(0.500000), l(0.500000) + add r25.x, r18.x, -|cb3[r19.w + 6].x| + add r25.y, -r25.x, cb3[r19.w + 6].y + add r18.x, -|r25.x|, l(1.000000) + add r18.x, -|r25.y|, r18.x + max r18.x, r18.x, l(0.000488281250) + ge r18.y, cb3[r19.w + 6].x, l(0.000000) + movc r25.z, r18.y, r18.x, -r18.x + dp3 r18.x, r25.xyzx, r25.xyzx + rsq r18.x, r18.x + mul r25.xyz, r18.xxxx, r25.xyzx + add r26.xyz, -r8.xyzx, cb3[r23.x + 6].xyzx + dp3 r18.x, r26.xyzx, r26.xyzx + rsq r18.y, r18.x + mul r27.xyz, r18.yyyy, r26.xyzx + ftoi r18.y, cb3[r21.w + 6].w + mul r28.xyz, r25.xyzx, cb3[r19.w + 6].zzzz + mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r28.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + ftou r18.z, cb3[r18.z + 6].w + and r18.z, r18.z, l(1) + ieq r19.x, r18.z, l(0) + not r19.x, r19.x + lt r20.x, l(0.000000), cb3[r19.w + 6].z + and r19.x, r19.x, r20.x + dp3 r20.x, r29.xyzx, r29.xyzx + dp3 r20.y, r28.xyzx, r28.xyzx + sqrt r20.xy, r20.xyxx + dp3 r21.w, r29.xyzx, r28.xyzx + mad r20.x, r20.x, r20.y, r21.w + mad r20.x, r20.x, l(0.500000), l(1.000000) + div r20.x, l(1.000000, 1.000000, 1.000000, 1.000000), r20.x + movc r20.x, r19.x, r20.x, l(1.000000) + lt r20.y, cb3[r23.w + 6].w, l(0.000000) + if_nz r20.y + mul r20.y, cb3[r23.x + 6].w, cb3[r23.x + 6].w + mul r20.y, r18.x, r20.y + mad r20.y, -r20.y, r20.y, l(1.000000) + max r20.y, r20.y, l(0.000000) + add r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + and r21.w, r19.x, l(0x3f800000) + add r22.w, -r18.x, r20.x + mad r18.x, r21.w, r22.w, r18.x + mul r20.y, r20.y, r20.y + mul r18.x, r18.x, r20.y + else + mul r28.xyz, r26.xyzx, cb3[r23.x + 6].wwww + dp3 r20.y, r28.xyzx, r28.xyzx + min r20.y, r20.y, l(1.000000) + add r20.y, -r20.y, l(1.000000) + log r20.y, r20.y + mul r20.y, r20.y, cb3[r23.w + 6].w + exp r20.y, r20.y + mul r18.x, r20.y, r20.x + endif + dp3 r20.x, r27.xyzx, -r25.xyzx + add r20.x, r20.x, -cb3[r19.w + 6].z + mul_sat r20.x, r20.x, cb3[r19.w + 6].w + mul r20.x, r20.x, r20.x + movc r20.x, r18.z, l(1.000000), r20.x + mul r18.x, r18.x, r20.x + not r19.x, r19.x + ige r20.x, r18.y, l(0) + and r19.x, r19.x, r20.x + if_nz r19.x + if_z r18.z + ishl r19.x, r18.y, l(2) + mul r25.xyz, r8.yyyy, cb6[r19.x + 33].xywx + mad r25.xyz, cb6[r19.x + 32].xywx, r8.xxxx, r25.xyzx + mad r25.xyz, cb6[r19.x + 34].xywx, r8.zzzz, r25.xyzx + add r25.xyz, r25.xyzx, cb6[r19.x + 35].xywx + div_sat r20.xy, r25.xyxx, r25.zzzz + mad r20.xy, r20.xyxx, cb6[r18.y + 0].zwzz, cb6[r18.y + 0].xyxx + else + ishl r19.x, r18.y, l(2) + dp3 r25.x, -r26.xyzx, cb6[r19.x + 32].xyzx + dp3 r25.y, -r26.xyzx, cb6[r19.x + 33].xyzx + dp3 r25.z, -r26.xyzx, cb6[r19.x + 34].xyzx + lt r19.x, |r25.x|, |r25.y| + and r19.x, r19.x, l(1) + dp2 r21.w, |r25.xyxx|, icb[r19.x + 0].xyxx + lt r21.w, r21.w, |r25.z| + movc r19.x, r21.w, l(2), r19.x + dp3 r21.w, r25.xyzx, icb[r19.x + 0].xyzx + lt r21.w, r21.w, l(0.000000) + bfi r19.x, l(31), l(1), r19.x, r21.w + ushr r21.w, r19.x, l(1) + dp3 r21.w, r25.xyzx, icb[r21.w + 0].xyzx + div r22.w, l(0.000244140625), cb6[r18.y + 0].w + add r22.w, -r22.w, l(0.500000) + utof r23.z, r19.x + ult r23.w, r19.x, l(2) + and r23.w, r23.w, l(2) + dp2 r23.w, r25.xzxx, icb[r23.w + 0].xzxx + mul r23.w, r23.w, icb[r19.x + 4].z + div r23.w, r23.w, |r21.w| + mad r23.z, r23.w, r22.w, r23.z + add r23.z, r23.z, l(0.500000) + mul_sat r26.x, r23.z, l(0.166666672) + iadd r23.z, l(-1), icb[r19.x + 4].y + dp2 r23.z, r25.yzyy, icb[r23.z + 0].xyxx + mul r19.x, r23.z, icb[r19.x + 4].w + div r19.x, r19.x, |r21.w| + mad_sat r26.y, -r19.x, r22.w, l(0.500000) + mad r20.xy, r26.xyxx, cb6[r18.y + 0].zwzz, cb6[r18.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r20.xyxx, t13.yxzw, s1, l(0.000000) + mul r18.x, r18.y, r18.x + endif + lt r18.x, l(0.000000), r18.x + if_nz r18.x + if_z r18.z + ftoi r18.x, cb3[r23.y + 6].x + else + add r23.xzw, r8.xxyz, -cb3[r23.x + 6].xxyz + lt r25.xyz, |r23.zwwz|, |r23.xxzx| + and r18.y, r25.y, r25.x + lt r23.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xxzw + ushr r18.z, cb3[r19.w + 6].w, l(24) + ubfe r20.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r19.w + 6].wwww + movc r18.z, r23.x, r18.z, r20.x + and r19.x, l(255), cb3[r19.w + 6].w + movc r19.x, r23.z, r20.y, r19.x + ubfe r19.w, l(8), l(8), cb3[r23.y + 6].x + and r20.x, l(255), cb3[r23.y + 6].x + movc r19.w, r23.w, r19.w, r20.x + movc r19.x, r25.z, r19.x, r19.w + movc r18.y, r18.y, r18.z, r19.x + ilt r18.z, r18.y, l(80) + movc r18.x, r18.z, r18.y, l(-1) + endif + ishl r18.y, r18.x, l(2) + mad r23.xyz, r27.xyzx, cb4[r18.x + 288].xxxx, r8.xyzx + mul r18.z, l(5.000000), cb4[r18.x + 288].y + mad r23.xyz, r6.xyzx, r18.zzzz, r23.xyzx + mul r25.xyzw, r23.yyyy, cb4[r18.y + 65].xyzw + mad r25.xyzw, cb4[r18.y + 64].xyzw, r23.xxxx, r25.xyzw + mad r23.xyzw, cb4[r18.y + 66].xyzw, r23.zzzz, r25.xyzw + add r23.xyzw, r23.xyzw, cb4[r18.y + 67].xyzw + div r23.xyz, r23.xyzx, r23.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + ge r26.xyz, r23.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r18.yz, -cb4[r18.x + 344].xxyx, cb4[r18.x + 344].zzwz + mad r18.yz, r23.xxyx, r18.yyzy, cb4[r18.x + 344].xxyx + mad r19.xw, r18.yyyz, cb4[400].zzzw, l(0.500000, 0.000000, 0.000000, 0.500000) + round_ni r19.xw, r19.xxxw + mad r18.yz, r18.yyzy, cb4[400].zzwz, -r19.xxwx + add r27.xyzw, r18.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r28.xyzw, r27.xxzz, r27.xxzz + add r20.xy, -r18.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r23.xy, r18.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r27.xz, r18.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r20.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r27.xz, -r27.xxzx, r27.xxzx, r27.yywy + add r27.xz, r27.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r30.xy, r27.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r28.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r18.yz, r28.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r18.yyzy + mul r28.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r18.yz, -r23.xxyx, r23.xxyx, r20.xxyx + add r18.yz, r18.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r31.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r18.yz, r27.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r28.z, r31.x + mov r28.w, r18.y + mov r29.z, r30.x + mov r29.w, r27.x + add r32.xyzw, r28.zwxz, r29.zwxz + mov r31.z, r28.y + mov r31.w, r18.z + mov r30.z, r29.y + mov r30.w, r27.z + add r23.xyw, r30.zyzw, r31.zyzw + div r27.xyz, r29.xzwx, r32.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.yxzy, cb4[400].xxxx + div r28.xyz, r30.zywz, r23.xywx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r27.w, r28.x + mad r29.xyzw, r19.xwxw, cb4[400].xyxy, r27.ywxw + mad r18.yz, r19.xxwx, cb4[400].xxyx, r27.zzwz + mov r28.w, r27.y + mov r27.yw, r28.yyyz + mad r30.xyzw, r19.xwxw, cb4[400].xyxy, r27.xyzy + mad r28.xyzw, r19.xwxw, cb4[400].xyxy, r28.wywz + mad r27.xyzw, r19.xwxw, cb4[400].xyxy, r27.xwzw + mul r31.xyzw, r23.xxxy, r32.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r29.xyxx, t6.xxxx, s4, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.w, r29.zwzz, t6.xxxx, s4, r23.z + mul r19.w, r19.w, r31.y + mad r19.x, r31.x, r19.x, r19.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r18.yzyy, t6.xxxx, s4, r23.z + mad r18.y, r31.z, r18.y, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.xyxx, t6.xxxx, s4, r23.z + mad r18.y, r31.w, r18.z, r18.y + mul r29.xyzw, r23.yyww, r32.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.xyxx, t6.xxxx, s4, r23.z + mad r18.y, r29.x, r18.z, r18.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.zwzz, t6.xxxx, s4, r23.z + mad r18.y, r29.y, r18.z, r18.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.zwzz, t6.xxxx, s4, r23.z + mad r18.y, r29.z, r18.z, r18.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r27.xyxx, t6.xxxx, s4, r23.z + mad r18.y, r29.w, r18.z, r18.y + ige r18.z, r18.x, l(0) + or r25.xyz, r25.xyzx, r26.xyzx + or r19.x, r25.y, r25.x + or r19.x, r25.z, r19.x + and r19.w, r23.z, l(0x7fffffff) + ult r19.w, l(0x7f800000), r19.w + or r19.x, r19.w, r19.x + mul r19.w, r23.w, r32.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r27.zwzz, t6.xxxx, s4, r23.z + mad r18.y, r19.w, r20.x, r18.y + add r18.y, r18.y, l(-1.000000) + mad r18.x, cb4[r18.x + 288].w, r18.y, l(1.000000) + movc r18.x, r19.x, l(1.000000), r18.x + movc r18.x, r18.z, r18.x, l(1.000000) + else + mov r18.x, l(1.000000) + endif + else + mov r18.x, l(1.000000) + endif + mul r17.w, r17.w, r18.x + mov r24.xyz, l(0,0,0,0) + endif + add r22.xyz, r22.xyzx, r24.xyzx + mov r19.z, r20.w + endloop + mov r13.w, r17.w + add r21.xyz, r21.xyzx, r22.xyzx + iadd r14.w, r14.w, l(1) +endloop +mad r1.xyz, r21.xyzx, r13.wwww, r13.xyzx +ne r9.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx +if_nz r9.x + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r1.w, r0.z, r5.y + mad r2.z, r12.w, l(-16.000000), l(-1.000000) + exp r2.z, r2.z + log r1.w, |r1.w| + mul r1.w, r1.w, r2.z + exp r1.w, r1.w + add r1.w, r0.z, r1.w + add r1.w, r1.w, l(-1.000000) + mov_sat r9.xzw, r1.wwww + mad r13.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r13.xyz, r0.zzzz, r13.xyzx + mad r13.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r13.xyzx + add r13.xyz, r13.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r13.xyz, r0.zzzz, r13.xyzx + mad r13.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r13.xyzx + add r13.xyz, r13.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r13.xyz, r0.zzzz, r13.xyzx + max r13.xyz, r0.zzzz, r13.xyzx +else + mov r9.xzw, r3.wwww + mov r13.xyz, r3.wwww +endif +mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r16.xyz, r8.xzyx, -r16.xyzx +max r0.z, |r16.y|, |r16.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.w, |r16.z|, l(-208.000000) +mul_sat r1.w, r1.w, l(0.031250) +max r0.z, r0.z, r1.w +ne r1.w, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.w, r1.w, r2.z +if_nz r1.w + mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r16.xyz, r8.xzyx, -r16.xyzx + max r1.w, |r16.y|, |r16.x| + add r1.w, r1.w, l(-29.000000) + mul_sat r1.w, r1.w, l(0.500000) + add r2.z, |r16.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.w, r1.w, r2.z + lt r2.z, r1.w, l(1.000000) + if_nz r2.z + mad r16.xyz, r8.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) + add r2.z, -r1.w, l(1.000000) + mul r3.w, l(0.500000), cb0[211].y + mad r4.y, -cb0[211].y, l(0.500000), l(1.000000) + max r3.w, r3.w, r16.y + min r3.w, r4.y, r3.w + mul r16.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) + mad r3.w, r18.w, r2.z, r0.z + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mul r19.xyzw, r2.zzzz, r19.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.xxxx, r16.xyzx + mov r16.w, r17.x + mul r16.xyzw, r2.zzzz, r16.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r18.xyzx + mul r17.xyzw, r2.zzzz, r17.xyzw + else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r3.w, r0.z + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r8.xzyx, -r18.xyzx + max r2.z, |r18.y|, |r18.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r4.y, |r18.z|, l(-52.000000) + mul_sat r4.y, r4.y, l(0.125000) + max r2.z, r2.z, r4.y + lt r4.y, r2.z, l(1.000000) + if_nz r4.y + mad r18.xyz, r8.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t19.yzwx, s2, l(0.000000) + add r4.y, -r2.z, l(1.000000) + mul r1.w, r1.w, r4.y + mul r4.y, l(0.500000), cb0[211].y + mad r5.y, -cb0[211].y, l(0.500000), l(1.000000) + max r4.y, r4.y, r18.y + min r4.y, r5.y, r4.y + mul r18.w, r4.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.w, r21.w, r1.w, r3.w + add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t20.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r20.yyyy, r22.xyzx + mov r22.w, r20.y + mad r19.xyzw, r22.xyzw, r1.wwww, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t20.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r1.wwww, r16.xyzw + mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r18.xyzx + mad r17.xyzw, r20.xyzw, r1.wwww, r17.xyzw + endif + lt r1.w, l(0.000000), r2.z + if_nz r1.w + mad r18.xyz, r8.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + mul r21.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + mad r20.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r18.xyz, r21.xyzx, r18.xyzx + min r18.xyz, r20.xyzx, r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r18.xyzx, t21.yzwx, s2, l(0.000000) + add r1.w, -r0.z, l(1.000000) + mul r1.w, r1.w, r2.z + max r2.z, r21.y, r18.y + min r2.z, r20.y, r2.z + mul r18.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t22.xyzw, s1, l(0.000000) + add r21.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t22.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r22.yyyy, r21.xyzx + mov r21.w, r22.y + mad r19.xyzw, r21.xyzw, r1.wwww, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t22.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r22.xxxx, r18.xyzx + mov r18.w, r22.x + mad r16.xyzw, r18.xyzw, r1.wwww, r16.xyzw + mad r18.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r18.xyzx + mad r17.xyzw, r22.xyzw, r1.wwww, r17.xyzw + mad r3.w, r20.w, r1.w, r3.w + endif + mad_sat r1.w, r3.w, l(2.000000), l(-1.000000) + add r18.x, -r0.z, r1.w + add r0.z, r0.z, r1.w + mul r18.y, r0.z, l(0.500000) +else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xy, l(0,1.000000,0,0) +endif +mul r20.xyzw, r18.yyyx, cb0[213].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r5.yw, r18.yyyx, cb0[213].wwwy +mad r20.w, r5.w, l(0.375000), r5.y +add r17.xyzw, r17.xyzw, r20.xyzw +mul r20.xyzw, r18.yyyx, cb0[214].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r5.yw, r18.yyyx, cb0[214].wwwy +mad r20.w, r5.w, l(0.375000), r5.y +add r16.xyzw, r16.xyzw, r20.xyzw +mul r20.xyzw, r18.yyyx, cb0[215].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r5.yw, r18.yyyx, cb0[215].wwwy +mad r20.w, r5.w, l(0.375000), r5.y +add r18.xyzw, r19.xyzw, r20.xyzw +ge r5.yw, r7.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r5.w, r5.y +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r19.xyzw, r7.xyxx, t16.xyzw, s1, l(0.000000) + lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r19.xyzw| + or r5.yw, r20.zzzw, r20.xxxy + or r0.z, r5.w, r5.y + if_nz r0.z + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mov r5.y, l(1.000000) + mov r5.w, r0.z + mov r1.w, l(0) + loop + ge r2.z, l(4.600000), r5.w + breakc_nz r2.z + iadd r2.z, r1.w, l(1) + mul r7.xy, r5.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r5.yw, r7.xxxy + mov r1.w, r2.z + continue + endloop + mul r19.xyzw, r5.yyyy, r19.xyzw + dp3 r0.z, r19.yzwy, r19.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb7[3].x, cb7[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r7.x, r0.z, l(0.00390625000) + mov r7.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r5.yw, r7.xyxx, t15.zxwy, s1, l(0.000000) + mad r5.yw, r5.yyyw, cb7[2].xxxy, cb7[2].zzzw + mul r20.x, r5.y, l(3.54490781) + mul r20.yzw, r5.wwww, r19.yyzw + mul r0.z, r19.x, l(0.406976730) + exp r0.z, r0.z + mul r19.xyzw, r0.zzzz, r20.xyzw + mov r20.xyzw, r19.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.w + breakc_nz r2.z + mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r21.xyzw, r20.xyzw + dp2 r3.w, r21.yxyy, r20.xyxx + dp2 r4.y, r21.zxzz, r20.xzxx + dp2 r5.y, r21.wxww, r20.xwxx + iadd r5.w, r0.z, l(1) + mov r20.x, r2.z + mov r20.y, r3.w + mov r20.z, r4.y + mov r20.w, r5.y + mov r0.z, r5.w + continue + endloop + mul r19.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r19.xyzw, r20.xyzw + dp2 r1.w, r19.yxyy, r20.xyxx + dp2 r2.z, r19.zxzz, r20.xzxx + dp2 r3.w, r19.wxww, r20.xwxx + mul r20.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.y, r19.xyzw, r20.xyzw + dp2 r5.y, r19.yxyy, r20.xyxx + dp2 r5.w, r19.zxzz, r20.xzxx + dp2 r7.x, r19.wxww, r20.xwxx + mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.y, r19.xyzw, r20.xyzw + dp2 r10.w, r19.yxyy, r20.xyxx + dp2 r11.w, r19.zxzz, r20.xzxx + dp2 r12.y, r19.wxww, r20.xwxx + mul r17.w, r0.z, l(0.886226952) + mul r17.x, r3.w, l(-1.02332675) + mul r17.y, r1.w, l(-1.02332675) + mul r17.z, r2.z, l(1.02332675) + mul r16.w, r4.y, l(0.886226952) + mul r16.x, r7.x, l(-1.02332675) + mul r16.yz, r5.yywy, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r18.w, r7.y, l(0.886226952) + mul r18.x, r12.y, l(-1.02332675) + mul r18.y, r10.w, l(-1.02332675) + mul r18.z, r11.w, l(1.02332675) + endif +endif +mov r6.w, l(1.000000) +dp4 r19.x, r17.xyzw, r6.xyzw +dp4 r19.y, r16.xyzw, r6.xyzw +dp4 r19.z, r18.xyzw, r6.xyzw +max r19.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.w, r12.w, l(0.001000) +log r1.w, r1.w +mad r1.w, -r1.w, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.w +mul r5.yw, r5.xxxz, cb1[0].wwww +round_ni r5.yw, r5.yyyw +add r1.w, |r2.y|, -cb1[2].y +round_ni r1.w, r1.w +add r2.z, l(-1.000000), cb1[1].x +max r3.w, r1.w, l(0.000000) +min r2.z, r2.z, r3.w +ge r1.w, r2.z, r1.w +mad r3.w, r5.w, cb1[0].x, r5.y +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +ftoi r2.z, r2.z +iadd r2.z, r2.z, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.z, r2.z, l(0), t0.xxxx +and r2.z, r2.z, r3.w +and r1.w, r1.w, r2.z +mul r12.yzw, r19.xxyz, cb0[111].xxxx +dp3 r2.z, r12.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r8.w, l(1.000000) +mov r12.yzw, l(0,0,0,0) +mov r3.w, l(1.000000) +mov r4.y, r1.w +mov r5.y, l(0) +loop + lt r5.w, l(0.010000), r3.w + ine r7.x, r4.y, l(0) + and r7.x, r5.w, r7.x + if_nz r7.x + firstbit_lo r7.x, r4.y + ishl r7.y, l(1), r7.x + xor r4.y, r4.y, r7.y + ishl r7.x, r7.x, l(3) + dp4 r20.x, cb1[r7.x + 6].xyzw, r8.xyzw + dp4 r20.y, cb1[r7.x + 7].xyzw, r8.xyzw + dp4 r20.z, cb1[r7.x + 8].xyzw, r8.xyzw + ge r21.xyz, cb1[r7.x + 5].xyzx, |r20.xyzx| + and r7.y, r21.y, r21.x + and r7.y, r21.z, r7.y + if_nz r7.y + mul r7.y, l(0.100000), cb1[r7.x + 5].x + mul r21.xyz, |r20.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r21.xy, r21.xyxx, r21.xyxx + add r22.xyz, -|r20.xyzx|, cb1[r7.x + 5].xyzx + mul r22.xyz, r22.xyzx, cb1[r7.x + 9].xyzx + eq r10.w, l(1.000000), cb1[r7.x + 10].x + if_nz r10.w + dp3 r23.x, cb1[r7.x + 6].xyzx, r14.xyzx + dp3 r23.y, cb1[r7.x + 7].xyzx, r14.xyzx + dp3 r23.z, cb1[r7.x + 8].xyzx, r14.xyzx + add r24.xyz, -r20.xyzx, cb1[r7.x + 5].xyzx + div r24.xyz, r24.xyzx, r23.xyzx + add r25.xyz, -r20.xyzx, -cb1[r7.x + 5].xyzx + div r25.xyz, r25.xyzx, r23.xyzx + lt r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + movc r24.xyz, r26.xyzx, r24.xyzx, r25.xyzx + min r10.w, r24.y, r24.x + min r10.w, r24.z, r10.w + mad r20.xyz, r23.xyzx, r10.wwww, r20.xyzx + else + mov r20.xyz, r14.xyzx + endif + dp3 r10.w, r20.xyzx, r20.xyzx + rsq r10.w, r10.w + mul r20.xyz, r10.wwww, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + lt r24.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r23.xyz, -r23.xyzx, r24.xyzx + itof r23.xyz, r23.xyzx + dp3 r10.w, r20.xyzx, r23.xyzx + div r20.xyz, r20.xyzx, r10.wwww + lt r10.w, r20.z, l(0.000000) + add r20.zw, -|r20.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.zw, r20.zzzw, r23.xxxy + movc r20.xy, r10.wwww, r20.zwzz, r20.xyxx + dp4 r10.w, cb1[r7.x + 4].xyzw, r6.xyzw + max r10.w, r10.w, l(0.000000) + max r10.w, r10.w, l(0.000100) + min r11.w, r22.z, r22.y + min r11.w, r11.w, r22.x + add r13.w, r21.y, r21.x + mad r13.w, r21.z, r21.z, r13.w + mad r7.y, r7.y, r7.y, -r13.w + mul r7.y, r7.y, cb1[r7.x + 9].x + mul r7.y, r7.y, cb1[r7.x + 9].x + add r13.w, l(1.000000), -cb1[r7.x + 10].y + mul r7.y, r7.y, r13.w + mul r7.y, r7.y, l(100.000000) + mad_sat r7.y, r11.w, cb1[r7.x + 10].y, r7.y + mul r11.w, r7.y, cb1[r7.x + 10].w + mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r20.xy, r20.xyxx, cb1[1].wwww, cb1[2].wwww + mov r20.z, cb1[r7.x + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r20.xyz, r20.xyzx, t5.xyzw, s3, r0.z + mul r20.xyz, r20.xyzx, cb1[r7.x + 9].wwww + div r13.w, r2.z, r10.w + min r13.w, |r13.w|, l(1.000000) + mad r13.w, r13.w, l(2.000000), r2.z + add r10.w, r10.w, l(2.000000) + div r10.w, r13.w, r10.w + add r10.w, r10.w, l(-1.000000) + mad r10.w, r10.w, cb0[112].w, l(1.000000) + mul r20.xyz, r10.wwww, r20.xyzx + mul r20.xyz, r11.wwww, r20.xyzx + mad r12.yzw, r20.xxyz, r3.wwww, r12.yyzw + mad r7.x, -r7.y, cb1[r7.x + 10].w, l(1.000000) + mul r3.w, r3.w, r7.x + endif + mov r5.y, l(-1) + continue + else + mov r5.y, r5.w + break + endif + mov r5.y, r5.w +endloop +if_nz r5.y + dp3 r1.w, r14.xyzx, r14.xyzx + rsq r1.w, r1.w + mul r8.xzw, r1.wwww, r14.xxyz + lt r14.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r8.xzwx + lt r20.xyz, r8.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r14.xyz, -r14.xyzx, r20.xyzx + itof r14.xyz, r14.xyzx + dp3 r1.w, r8.xzwx, r14.xyzx + div r8.xzw, r8.xxzw, r1.wwww + lt r1.w, r8.w, l(0.000000) + add r5.yw, -|r8.zzzx|, l(0.000000, 1.000000, 0.000000, 1.000000) + mul r5.yw, r5.yyyw, r14.xxxy + movc r5.yw, r1.wwww, r5.yyyw, r8.xxxz + dp4 r1.w, cb1[3].xyzw, r6.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r5.yw, r5.yyyw, l(0.000000, 0.500000, 0.000000, 0.500000), l(0.000000, 0.500000, 0.000000, 0.500000) + mad r14.xy, r5.ywyy, cb1[1].wwww, cb1[2].wwww + mov r14.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r8.xzw, r14.xyzx, t5.xwyz, s3, r0.z + div r0.z, r2.z, r1.w + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.z + add r1.w, r1.w, l(2.000000) + div r0.z, r0.z, r1.w + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r8.xzw, r0.zzzz, r8.xxzw + mad r12.yzw, r8.xxzw, r3.wwww, r12.yyzw +endif +mul r8.xzw, r12.yyzw, cb0[112].zzzz +mul r8.xzw, r8.xxzw, cb0[111].yyyy +if_nz r9.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r12.yzw, v1.xyxx, t2.wxyz, s1, cb0[108].x + add r1.w, -r0.z, l(1.000000) + mul r14.xyz, r1.wwww, r8.xzwx + mad r8.xzw, r12.yyzw, r0.zzzz, r14.xxyz +endif +mul r3.xyz, r3.xyzx, r19.xyzx +mul r3.xyz, r3.xyzx, cb0[111].xxxx +mad r0.z, r2.x, r7.z, r7.w +mul r7.xyz, r0.zzzz, r8.xzwx +mul r7.xyz, r9.xzwx, r7.xyzx +mad r3.xyz, r3.xyzx, r13.xyzx, r7.xyzx +mul r6.xyzw, r6.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r7.x, r17.xyzw, r6.xyzw +dp4 r7.y, r16.xyzw, r6.xyzw +dp4 r7.z, r18.xyzw, r6.xyzw +max r6.xyz, r7.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mul r6.xyz, r13.xyzx, r6.xyzx +mul r6.xyz, r15.xyzx, r6.xyzx +mul r0.z, r4.x, r12.x +ftou r1.w, r2.w +bfi r1.w, l(2), l(0), r1.w, r4.z +utof r1.w, r1.w +mul r1.w, r1.w, l(0.0322580636) +mad r0.z, r0.z, l(0.00787401572), r1.w +mul r2.xzw, r0.zzzz, r6.xxyz +mad r2.xzw, r2.xxzw, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r3.xxyz +add r1.xyz, r1.xyzx, r2.xzwx +mad r0.z, r8.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r4.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r8.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xzw, r0.zzzz, cb0[155].xxyz +mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r2.xzw, r2.xxzw +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.x, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r3.x +lt r3.x, l(0.000000), cb0[163].z +if_nz r3.x + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r10.xyzx + add r3.z, r8.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.w + mul r0.x, r0.x, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul r4.x, r0.x, r3.w + mad r4.y, r4.x, r3.z, cb0[44].y + mad r3.z, -r4.x, r3.z, r3.z + mul r4.x, r3.z, cb0[159].z + mul r3.z, r3.z, cb0[162].x + max r3.z, r3.z, l(-127.000000) + add r4.z, r4.y, -cb0[159].x + mul r4.z, r4.z, cb0[159].z + max r4.xz, r4.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r4.z, -r4.z + mul r4.z, r4.z, cb0[159].y + lt r5.y, l(5.960464478E-08), |r4.x| + exp r5.w, -r4.x + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r5.y, r5.w, r4.x + add r4.y, r4.y, -cb0[162].z + mul r4.y, r4.y, cb0[162].x + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[162].y + lt r5.y, l(5.960464478E-08), |r3.z| + exp r5.w, -r3.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r5.y, r5.w, r3.z + mul r3.z, r3.z, r4.y + mad r3.z, r4.z, r4.x, r3.z + mad r0.x, -r0.x, r3.w, l(1.000000) + mul r0.x, r4.w, r0.x + mul r0.x, r0.x, r3.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r4.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r5.xxxz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r2.y|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r2.y|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r8.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.y, cb0[44].y, -cb0[159].x + mul r2.y, r2.y, cb0[159].z + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.y, r0.w, r0.y + mul r0.y, r4.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r4.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xzwx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.y, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xC34914B1.cso b/src/games/endfield/deferred-lighting/0xC34914B1.cso new file mode 100644 index 0000000000000000000000000000000000000000..155248586e8eae5c2301dc5960e92aae5a438f5f GIT binary patch literal 58856 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0.asm new file mode 100644 index 000000000..60aae31be --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0.asm @@ -0,0 +1,1931 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 22:27:23 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy w +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyz 5 NONE float xyz +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 xyz 8 NONE float xyz +// TEXCOORD 8 x 9 NONE uint x +// SV_IsFrontFace 0 x 10 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[216], immediateIndexed +dcl_constantbuffer CB1[4093], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[14], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB13[13], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_comparison +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_resource_structured t0, 4 +dcl_resource_structured t1, 16 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_resource_texture3d (float,float,float,float) t4 +dcl_resource_texture3d (float,float,float,float) t5 +dcl_resource_texture3d (float,float,float,float) t6 +dcl_resource_texture3d (float,float,float,float) t7 +dcl_resource_texture3d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texturecube (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_input_ps_siv linear noperspective v0.xyw, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps linear v8.xyz +dcl_input_ps constant v9.x +dcl_input_ps_sgv constant v10.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 32 +add r0.xyz, -v2.xyzx, cb0[44].xyzx +mov r1.x, cb0[0].z +mov r1.y, cb0[1].z +mov r1.z, cb0[2].z +add r2.xyz, -r0.xyzx, r1.xyzx +mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +max r1.w, r0.w, l(9.999999939E-09) +rsq r1.w, r1.w +mul r2.xyz, r0.xyzx, r1.wwww +ishl r2.w, v9.x, l(4) +and r3.x, l(16), cb1[r2.w + 4].w +if_nz r3.x + iadd r3.x, l(2), cb1[r2.w + 5].x + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx +else + mov r3.xy, cb1[r2.w + 3].zxzz +endif +sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t13.xyzw, s4, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t14.xyzw, s5, cb0[108].x +add r3.z, -r5.w, l(1.000000) +mul r4.xyzw, r4.xyzw, cb5[5].xyzw +mul r6.xyz, r4.xyzx, cb5[4].zzzz +dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww +mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t15.xywz, s6, cb0[108].x +mul r7.x, r7.x, r7.z +mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r3.w, r7.xyxx, r7.xyxx +min r3.w, r3.w, l(1.000000) +add r3.w, -r3.w, l(1.000000) +sqrt r3.w, r3.w +max r3.w, r3.w, l(1.000000017E-16) +mul r7.xy, r7.xyxx, cb5[0].wwww +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, v1.xyxx, t16.xyzw, s7, cb0[108].x +add r9.xz, -r3.yyxy, v2.xxzx +mov r9.y, l(0.0000610351562) +dp3 r3.x, r9.xyzx, r9.xyzx +rsq r3.x, r3.x +mul r9.xyz, r3.xxxx, r9.xyzx +mul r10.xyz, v3.zxyz, v4.yzxy +mad r10.xyz, v3.yzxy, v4.zxyz, -r10.xyzx +mul r10.xyz, r10.xyzx, v4.wwww +mul r7.yzw, r7.yyyy, r10.xxyz +mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy +mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz +mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) +movc r6.w, v10.x, l(1.000000), r6.w +dp3 r7.x, r3.xywx, r3.xywx +max r7.x, r7.x, l(1.175494351E-38) +rsq r7.x, r7.x +mul r3.xyw, r3.xyxw, r7.xxxx +mul r7.xyz, r6.wwww, r3.xywx +dp3 r8.w, v3.xyzx, v3.xyzx +rsq r8.w, r8.w +mul r11.xyz, r8.wwww, v3.xyzx +mul r11.xyz, r6.wwww, r11.xyzx +ftou r12.xy, v0.xyxx +add r8.w, l(1.000000), -cb0[111].x +mad r8.w, cb0[198].w, r8.w, cb0[111].x +mul r8.w, r8.w, cb0[109].x +lt r9.w, cb0[187].y, l(0.500000) +if_nz r9.w + mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r13.xyz, -r13.xyzx, v2.xzyx + max r9.w, |r13.y|, |r13.x| + add r9.w, r9.w, l(-464.000000) + mul_sat r9.w, r9.w, l(0.031250) + add r10.w, |r13.z|, l(-208.000000) + mul_sat r10.w, r10.w, l(0.031250) + max r9.w, r9.w, r10.w + ne r10.w, l(0.000000), cb0[210].w + lt r11.w, r9.w, l(1.000000) + and r10.w, r10.w, r11.w + if_nz r10.w + mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r13.xyz, -r13.xyzx, v2.xzyx + max r10.w, |r13.y|, |r13.x| + add r10.w, r10.w, l(-29.000000) + mul_sat r10.w, r10.w, l(0.500000) + add r11.w, |r13.z|, l(-13.000000) + mul_sat r11.w, r11.w, l(0.500000) + max r10.w, r10.w, r11.w + lt r11.w, r10.w, l(1.000000) + if_nz r11.w + mad r13.xyz, v2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r13.xyzx, cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r14.xyw, r13.xyzx, t4.yzwx, s1, l(0.000000) + add r11.w, -r10.w, l(1.000000) + mul r15.x, l(0.500000), cb0[211].y + mad r15.y, -cb0[211].y, l(0.500000), l(1.000000) + max r13.y, r13.y, r15.x + min r13.y, r15.y, r13.y + mul r13.w, r13.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t5.xyzw, s0, l(0.000000) + mad r13.y, r15.w, r11.w, r9.w + add r16.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s0, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r14.yyyy, r16.xyzx + mov r16.w, r14.y + mul r16.xyzw, r11.wwww, r16.xyzw + add r13.xzw, r13.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t5.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r17.xyz, r14.xxxx, r13.xzwx + mov r17.w, r14.x + mul r17.xyzw, r11.wwww, r17.xyzw + mad r13.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r14.xyz, r14.wwww, r13.xzwx + mul r14.xyzw, r11.wwww, r14.xyzw + else + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r13.y, r9.w + endif + mad r13.xzw, cb0[6].xxzy, -cb0[212].zzzz, cb0[210].xxzy + add r13.xzw, -r13.xxzw, v2.xxzy + max r11.w, |r13.z|, |r13.x| + add r11.w, r11.w, l(-116.000000) + mul_sat r11.w, r11.w, l(0.125000) + add r13.x, |r13.w|, l(-52.000000) + mul_sat r13.x, r13.x, l(0.125000) + max r11.w, r11.w, r13.x + lt r13.x, r11.w, l(1.000000) + if_nz r13.x + mad r13.xzw, v2.xxyz, l(0.500000, 0.000000, 0.500000, 0.500000), l(0.500000, 0.000000, 0.500000, 0.500000) + mul r15.xyz, r13.xzwx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r15.xyz, r13.xzwx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r15.xyzx, t6.yzwx, s1, l(0.000000) + add r13.x, -r11.w, l(1.000000) + mul r10.w, r10.w, r13.x + mul r13.x, l(0.500000), cb0[211].y + mad r13.z, -cb0[211].y, l(0.500000), l(1.000000) + max r13.x, r13.x, r15.y + min r13.x, r13.z, r13.x + mul r15.w, r13.x, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r15.xwzx, t7.xyzw, s0, l(0.000000) + mad r13.y, r19.w, r10.w, r13.y + add r13.xzw, r15.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t7.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r20.xyz, r18.yyyy, r13.xzwx + mov r20.w, r18.y + mad r16.xyzw, r20.xyzw, r10.wwww, r16.xyzw + add r13.xzw, r15.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t7.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r15.xyz, r18.xxxx, r13.xzwx + mov r15.w, r18.x + mad r17.xyzw, r15.xyzw, r10.wwww, r17.xyzw + mad r13.xzw, r19.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r18.xyz, r18.wwww, r13.xzwx + mad r14.xyzw, r18.xyzw, r10.wwww, r14.xyzw + endif + lt r10.w, l(0.000000), r11.w + if_nz r10.w + mad r13.xzw, v2.xxyz, l(0.125000, 0.000000, 0.125000, 0.125000), l(0.500000, 0.000000, 0.500000, 0.500000) + mul r15.xyz, r13.xzwx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r13.xzw, r13.xxzw, cb0[211].xxyz, -r15.xxyz + mad r15.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r13.xzw, r18.xxyz, r13.xxzw + min r19.xyz, r15.xyzx, r13.xzwx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r19.xyzx, t8.yzwx, s1, l(0.000000) + add r10.w, -r9.w, l(1.000000) + mul r10.w, r10.w, r11.w + max r11.w, r18.y, r19.y + min r11.w, r15.y, r11.w + mul r19.w, r11.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r19.xwzx, t9.xyzw, s0, l(0.000000) + add r13.xzw, r19.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t9.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r18.xyz, r20.yyyy, r13.xzwx + mov r18.w, r20.y + mad r16.xyzw, r18.xyzw, r10.wwww, r16.xyzw + add r13.xzw, r19.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t9.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r18.xyz, r20.xxxx, r13.xzwx + mov r18.w, r20.x + mad r17.xyzw, r18.xyzw, r10.wwww, r17.xyzw + mad r13.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r20.xyz, r20.wwww, r13.xzwx + mad r14.xyzw, r20.xyzw, r10.wwww, r14.xyzw + mad r13.y, r15.w, r10.w, r13.y + endif + mad_sat r10.w, r13.y, l(2.000000), l(-1.000000) + add r13.x, -r9.w, r10.w + add r9.w, r9.w, r10.w + mul r13.y, r9.w, l(0.500000) + else + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r13.xy, l(0,1.000000,0,0) + endif + mul r15.xyzw, r13.yyyx, cb0[213].xyzw + mad r15.y, r15.w, l(0.500000), r15.y + mul r13.zw, r13.yyyx, cb0[213].wwwy + mad r15.w, r13.w, l(0.375000), r13.z + add r14.xyzw, r14.xyzw, r15.xyzw + mul r15.xyzw, r13.yyyx, cb0[214].xyzw + mad r15.y, r15.w, l(0.500000), r15.y + mul r13.zw, r13.yyyx, cb0[214].wwwy + mad r15.w, r13.w, l(0.375000), r13.z + add r15.xyzw, r15.xyzw, r17.xyzw + mul r17.xyzw, r13.yyyx, cb0[215].xyzw + mad r17.y, r17.w, l(0.500000), r17.y + mul r13.xy, r13.yxyy, cb0[215].wyww + mad r17.w, r13.y, l(0.375000), r13.x + add r13.xyzw, r16.xyzw, r17.xyzw + mov r7.w, l(1.000000) + dp4 r16.x, r14.xyzw, r7.xyzw + dp4 r16.y, r15.xyzw, r7.xyzw + dp4 r16.z, r13.xyzw, r7.xyzw + max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r17.xyz, r8.wwww, r16.xyzx + mul r18.xyz, r15.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) + mad r18.xyz, r14.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r18.xyzx + mad r18.xyz, r13.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r18.xyzx + dp3 r7.w, r18.xyzx, r18.xyzx + max r7.w, r7.w, l(1.175494351E-38) + rsq r7.w, r7.w + mul r18.xyz, r7.wwww, r18.xyzx + mov r18.y, |r18.y| + mov r18.w, l(1.000000) + dp4 r14.x, r14.xyzw, r18.xyzw + dp4 r14.y, r15.xyzw, r18.xyzw + dp4 r14.z, r13.xyzw, r18.xyzw + max r13.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + ge r7.w, r17.y, r17.z + and r7.w, r7.w, l(0x3f800000) + mov r14.xy, r17.zyzz + mov r14.zw, l(0,0,-1.000000,0.666666687) + mad r15.xy, r16.yzyy, r8.wwww, -r14.xyxx + mov r15.zw, l(0,0,1.000000,-1.000000) + mad r14.xyzw, r7.wwww, r15.xyzw, r14.xyzw + ge r7.w, r17.x, r14.x + and r7.w, r7.w, l(0x3f800000) + mov r15.xyz, r14.xywx + mov r15.w, r17.x + mov r14.xyw, r15.wywx + add r14.xyzw, -r15.xyzw, r14.xyzw + mad r14.xyzw, r7.wwww, r14.xyzw, r15.xyzw + min r7.w, r14.y, r14.w + add r7.w, -r7.w, r14.x + add r9.w, -r14.y, r14.w + mad r10.w, r7.w, l(6.000000), l(0.000100) + div r9.w, r9.w, r10.w + add r9.w, r9.w, r14.z + frc r9.w, |r9.w| + add r10.w, r14.x, l(0.000100) + div r7.w, r7.w, r10.w + add r15.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) + add r9.w, |r15.x|, l(-0.450000) + mul_sat r9.w, r9.w, l(-10.000001) + mad r10.w, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r10.w + mad r9.w, r9.w, l(-0.350000), l(0.700000) + mov_sat r14.x, r14.x + mul r9.w, r9.w, r14.x + min r7.w, r7.w, r9.w + add r9.w, -r7.w, l(2.000000) + div r9.w, l(2.000000), r9.w + frc r14.xyz, r15.yzwy + mad r14.xyz, r14.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) + add_sat r14.xyz, |r14.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) + add r14.xyz, r14.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) + mad r14.xyz, r7.wwww, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r14.xyz, r9.wwww, r14.xyzx + max r7.w, r13.y, r13.x + max r7.w, r13.z, r7.w + mul r8.w, r8.w, r7.w + mov r7.w, l(1.000000) +else + mov r18.xyz, l(0,0,0,0) + mov r17.xyz, l(1.000000,1.000000,1.000000,0) + mov r14.xyz, cb0[188].xyzx + mov r7.w, l(0) +endif +dp3 r13.x, v4.xyzx, r2.xyzx +dp3 r13.y, r10.xyzx, r2.xyzx +dp3 r13.z, v3.xyzx, r2.xyzx +dp3 r9.w, r13.xyzx, r13.xyzx +max r9.w, r9.w, l(1.175494351E-38) +rsq r9.w, r9.w +mul r10.xyz, r9.wwww, r13.xyzx +mad r13.xy, v1.xyxx, cb5[13].xyxx, cb5[13].zwzz +deriv_rtx_coarse r13.zw, v1.xxxy +deriv_rty_coarse r15.xy, v1.xyxx +min r9.w, l(20.000000), cb5[11].x +div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w +max r10.z, r10.z, l(0.001000) +div r10.xy, r10.xyxx, r10.zzzz +mul r10.xy, r10.xyxx, -cb5[11].yyyy +mul r15.zw, r10.wwww, r10.xxxy +add r10.z, -r10.w, l(1.000000) +add r9.w, r9.w, l(1.000000) +mul r13.zw, r13.zzzw, cb0[108].yyyy +mul r15.xy, r15.xyxx, cb0[108].yyyy +mov r16.xy, r15.zwzz +mov r16.zw, l(0,0,0,0) +mov r11.w, r10.z +mov r14.w, l(0) +mov r17.w, l(1.000000) +mov r18.w, l(0) +mov r19.x, l(0) +loop + lt r19.y, r19.x, r9.w + if_nz r19.y + add r19.yz, r13.xxyx, r16.xxyx + sample_d_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t10.yxzw, s3, r13.zwzz, r15.xyxx + lt r19.z, r11.w, r19.y + if_nz r19.z + mov r18.w, r19.y + break + endif + add r19.x, r19.x, l(1.000000) + mad r19.zw, r10.xxxy, r10.wwww, r16.xxxy + add r20.x, -r10.w, r11.w + mov r16.zw, r16.xxxy + mov r14.w, r19.y + mov r17.w, r11.w + mov r11.w, r20.x + mov r16.xy, r19.zwzz + continue + else + mov r18.w, r14.w + break + endif +endloop +add r9.w, r14.w, -r17.w +add r10.x, r14.w, -r18.w +add r10.x, r11.w, r10.x +add r10.x, -r17.w, r10.x +div r9.w, r9.w, r10.x +mad r10.xy, r15.zwzz, r9.wwww, r16.zwzz +add r10.xy, r13.xyxx, r10.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r9.w, r10.xyxx, t10.yzwx, s3, cb0[108].x +add r10.x, -v2.y, cb1[r2.w + 12].z +add r10.x, r10.x, l(0.200000) +mul_sat r10.x, r10.x, l(2.85714269) +mad r10.y, r10.x, l(-2.000000), l(3.000000) +mul r10.x, r10.x, r10.x +mul r10.x, r10.x, r10.y +mul r10.x, r10.x, cb1[r2.w + 12].y +max r10.x, r10.x, cb1[r2.w + 12].w +add r10.y, r10.x, cb1[r2.w + 12].x +lt r10.y, l(0.010000), r10.y +if_nz r10.y + add r10.y, -r5.x, l(1.000000) + mul r13.xyz, r4.xyzx, r10.yyyy + dp3 r10.z, r13.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r10.z, r10.z, l(-0.350000) + mul_sat r10.z, r10.z, l(-4.000000) + mad r10.w, r10.z, l(-2.000000), l(3.000000) + mul r10.z, r10.z, r10.z + mul r11.w, r10.z, r10.w + mul r13.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) + movc r13.xyzw, cb1[r2.w + 4].wwww, r13.xyzw, v8.xzxy + mul r15.xyzw, r13.xyzw, cb0[196].zzzz + movc r16.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy + mov r16.x, v7.x + add r19.xyz, |r16.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) + mul r20.xyz, r19.xyzx, r19.xyzx + mul r19.xyz, r19.xyzx, r20.xyzx + max r19.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp3 r13.x, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r19.xyz, r19.xyzx, r13.xxxx + sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r15.zyzz, t11.xyzw, s4, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.zwzz, t11.xyzw, s4, cb0[108].x + mul r22.xyzw, r19.zzzz, r22.xyzw + mad r21.xyzw, r21.xyzw, r19.yyyy, r22.xyzw + sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.ywyy, t11.xyzw, s4, cb0[108].x + mad r19.xyzw, r22.xyzw, r19.xxxx, r21.xyzw + add r16.yw, -r19.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) + mul r21.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) + mad_sat r13.x, cb1[r2.w + 12].x, r10.y, r21.x + add r13.x, -r16.y, r13.x + mul_sat r13.x, r13.x, l(3.33333325) + mad r14.w, r13.x, l(-2.000000), l(3.000000) + mul r13.x, r13.x, r13.x + mul r13.x, r13.x, r14.w + mul_sat r10.y, r10.y, r10.x + add r10.y, -r16.w, r10.y + mul_sat r10.y, r10.y, l(1.53846145) + mad r14.w, r10.y, l(-2.000000), l(3.000000) + mul r10.y, r10.y, r10.y + mul r10.y, r10.y, r14.w + max r10.y, r10.y, r13.x + add r13.x, r5.x, l(-0.500000) + mul_sat r13.x, r13.x, l(4.000000) + mad r14.w, r13.x, l(-2.000000), l(3.000000) + mul r13.x, r13.x, r13.x + mul r13.x, r13.x, r14.w + add r5.w, -r5.w, l(0.199999988) + mul_sat r5.w, r5.w, l(-5.00000048) + mad r14.w, r5.w, l(-2.000000), l(3.000000) + mul r5.w, r5.w, r5.w + mul r5.w, r5.w, r14.w + mad r14.w, r5.w, r11.w, r13.x + min r14.w, r14.w, l(1.000000) + max r10.x, r10.x, cb1[r2.w + 12].x + mad r16.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mul r19.xyw, r15.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) + mul r22.xyz, r15.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) + mul r23.xyz, r20.xyzx, r20.xyzx + mul r23.xyz, r23.xyzx, r23.xyzx + mul r20.xyz, r20.xyzx, r23.xyzx + dp3 r17.w, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r20.xyz, r20.xyzx, r17.wwww + round_ni r23.xyzw, r19.yxyw + mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r24.xyzw, r24.xyzw + add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r17.w, r24.xyxx, r25.xyxx + add r21.xw, r17.wwww, r24.xxxy + mul r17.w, r21.w, r21.x + add r18.w, r21.w, r21.x + frc r17.w, r17.w + frc r26.w, r18.w + add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r27.xyzw, r27.xyzw + add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r18.w, r27.xyxx, r28.xyxx + add r21.xw, r18.wwww, r27.xxxy + mul r18.w, r21.w, r21.x + add r19.y, r21.w, r21.x + frc r24.x, r18.w + frc r24.y, r19.y + mad r18.w, r17.w, l(0.399999976), l(0.600000) + mul r19.y, r18.w, l(0.250000) + mad r23.xyzw, r15.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r23.xyzw + mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.xxxy + add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r23.x, r21.x, l(1.250000) + lt r20.w, r21.w, l(0.000000) + movc r20.w, r20.w, l(1.250000), l(0.750000) + mul r23.y, r20.w, r21.w + mad r17.w, cb0[102].x, l(3.000000), r17.w + frc r17.w, r17.w + add r21.xw, r17.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r25.xy, r21.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r21.xw, r21.xxxw, r21.xxxw + mul r21.xw, r21.xxxw, r25.xxxy + mul r17.w, r21.w, r21.x + dp2 r20.w, r23.xyxx, r23.xyxx + sqrt r20.w, r20.w + mad r18.w, -r18.w, l(0.250000), r20.w + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.y + mul_sat r18.w, r18.w, r20.w + mad r20.w, r18.w, l(-2.000000), l(3.000000) + mul r18.w, r18.w, r18.w + mul r18.w, r18.w, r20.w + ge r18.w, r18.w, l(0.001000) + and r18.w, r18.w, l(0x3f800000) + mul r26.z, r17.w, r18.w + div r21.xw, r23.xxxy, r19.yyyy + max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r17.w, r26.z, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r21.xw, r17.wwww, r21.xxxw + mad r17.w, r24.x, l(0.250000), l(0.250000) + mul r26.xy, r17.wwww, r21.xwxx + dp2 r17.w, r24.zwzz, r25.zwzz + add r21.xw, r17.wwww, r24.zzzw + mul r17.w, r21.w, r21.x + add r18.w, r21.w, r21.x + frc r17.w, r17.w + frc r24.w, r18.w + dp2 r18.w, r27.zwzz, r28.zwzz + add r21.xw, r18.wwww, r27.zzzw + mul r18.w, r21.w, r21.x + add r19.y, r21.w, r21.x + frc r23.x, r18.w + frc r23.y, r19.y + mad r18.w, r17.w, l(0.399999976), l(0.600000) + mul r19.y, r18.w, l(0.250000) + mad r21.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.zzzw + add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r25.x, r21.x, l(1.250000) + lt r20.w, r21.w, l(0.000000) + movc r20.w, r20.w, l(1.250000), l(0.750000) + mul r25.y, r20.w, r21.w + mad r17.w, cb0[102].x, l(3.000000), r17.w + frc r17.w, r17.w + add r21.xw, r17.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r23.yz, r21.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) + mul r21.xw, r21.xxxw, r21.xxxw + mul r21.xw, r21.xxxw, r23.yyyz + mul r17.w, r21.w, r21.x + dp2 r20.w, r25.xyxx, r25.xyxx + sqrt r20.w, r20.w + mad r18.w, -r18.w, l(0.250000), r20.w + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.y + mul_sat r18.w, r18.w, r20.w + mad r20.w, r18.w, l(-2.000000), l(3.000000) + mul r18.w, r18.w, r18.w + mul r18.w, r18.w, r20.w + ge r18.w, r18.w, l(0.001000) + and r18.w, r18.w, l(0x3f800000) + mul r24.z, r17.w, r18.w + div r21.xw, r25.xxxy, r19.yyyy + max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r17.w, r24.z, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r21.xw, r17.wwww, r21.xxxw + mad r17.w, r23.x, l(0.250000), l(0.250000) + mul r24.xy, r17.wwww, r21.xwxx + round_ni r19.xy, r19.xwxx + mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r23.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r17.w, r21.xwxx, r23.xyxx + add r21.xw, r17.wwww, r21.xxxw + mul r17.w, r21.w, r21.x + add r18.w, r21.w, r21.x + frc r17.w, r17.w + frc r23.w, r18.w + add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r25.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r18.w, r21.xwxx, r25.xyxx + add r21.xw, r18.wwww, r21.xxxw + mul r18.w, r21.w, r21.x + add r19.w, r21.w, r21.x + frc r25.x, r18.w + frc r25.y, r19.w + mad r18.w, r17.w, l(0.399999976), l(0.600000) + mul r19.w, r18.w, l(0.250000) + mad r19.xy, r15.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r19.xyxx + mad r21.xw, r25.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx + add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r27.x, r19.x, l(1.250000) + lt r19.x, r19.y, l(0.000000) + movc r19.x, r19.x, l(1.250000), l(0.750000) + mul r27.y, r19.x, r19.y + mad r17.w, cb0[102].x, l(3.000000), r17.w + frc r17.w, r17.w + add r19.xy, r17.wwww, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.xy, r19.xyxx, r19.xyxx + mul r19.xy, r19.xyxx, r21.xwxx + mul r17.w, r19.y, r19.x + dp2 r19.x, r27.xyxx, r27.xyxx + sqrt r19.x, r19.x + mad r18.w, -r18.w, l(0.250000), r19.x + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.w + mul_sat r18.w, r18.w, r19.x + mad r19.x, r18.w, l(-2.000000), l(3.000000) + mul r18.w, r18.w, r18.w + mul r18.w, r18.w, r19.x + ge r18.w, r18.w, l(0.001000) + and r18.w, r18.w, l(0x3f800000) + mul r23.z, r17.w, r18.w + div r19.xy, r27.xyxx, r19.wwww + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r17.w, r23.z, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r19.xy, r17.wwww, r19.xyxx + mad r17.w, r25.x, l(0.250000), l(0.250000) + mul r23.xy, r17.wwww, r19.xyxx + mul r24.xyzw, r20.zzzz, r24.xyzw + mad r24.xyzw, r26.xyzw, r20.yyyy, r24.xyzw + mad r23.xyzw, r23.xyzw, r20.xxxx, r24.xyzw + round_ni r24.xyzw, r22.yxyz + mul r25.xyzw, r24.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r25.xyzw, r25.xyzw + add r26.xyzw, r25.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r17.w, r25.xyxx, r26.xyxx + add r19.xy, r17.wwww, r25.xyxx + mul r17.w, r19.y, r19.x + add r18.w, r19.y, r19.x + frc r17.w, r17.w + frc r27.w, r18.w + add r28.xyzw, r24.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r28.xyzw, r28.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r28.xyzw, r28.xyzw + add r29.xyzw, r28.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r18.w, r28.xyxx, r29.xyxx + add r19.xy, r18.wwww, r28.xyxx + mul r18.w, r19.y, r19.x + add r19.x, r19.y, r19.x + frc r25.x, r18.w + frc r25.y, r19.x + mad r18.w, r17.w, l(0.399999976), l(0.600000) + mul r19.x, r18.w, l(0.250000) + mad r24.xyzw, r15.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r24.xyzw + mad r19.yw, r25.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.xxxy + add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r24.x, r19.y, l(1.250000) + lt r15.x, r19.w, l(0.000000) + movc r15.x, r15.x, l(1.250000), l(0.750000) + mul r24.y, r15.x, r19.w + mad r15.x, cb0[102].x, l(4.345600), r17.w + frc r15.x, r15.x + add r19.yw, r15.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.yw, r19.yyyw, r19.yyyw + mul r19.yw, r19.yyyw, r21.xxxw + mul r15.x, r19.w, r19.y + dp2 r17.w, r24.xyxx, r24.xyxx + sqrt r17.w, r17.w + mad r17.w, -r18.w, l(0.250000), r17.w + div r18.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.x + mul_sat r17.w, r17.w, r18.w + mad r18.w, r17.w, l(-2.000000), l(3.000000) + mul r17.w, r17.w, r17.w + mul r17.w, r17.w, r18.w + ge r17.w, r17.w, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r27.z, r15.x, r17.w + div r19.xy, r24.xyxx, r19.xxxx + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r15.x, r27.z, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r19.xy, r15.xxxx, r19.xyxx + mad r15.x, r25.x, l(0.250000), l(0.250000) + mul r27.xy, r15.xxxx, r19.xyxx + dp2 r15.x, r25.zwzz, r26.zwzz + add r19.xy, r15.xxxx, r25.zwzz + mul r15.x, r19.y, r19.x + add r17.w, r19.y, r19.x + frc r15.x, r15.x + frc r25.w, r17.w + dp2 r17.w, r28.zwzz, r29.zwzz + add r19.xy, r17.wwww, r28.zwzz + mul r17.w, r19.y, r19.x + add r18.w, r19.y, r19.x + frc r19.x, r17.w + frc r19.y, r18.w + mad r17.w, r15.x, l(0.399999976), l(0.600000) + mul r18.w, r17.w, l(0.250000) + mad r19.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.zzzw + add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r24.x, r19.y, l(1.250000) + lt r19.y, r19.w, l(0.000000) + movc r19.y, r19.y, l(1.250000), l(0.750000) + mul r24.y, r19.y, r19.w + mad r15.x, cb0[102].x, l(4.345600), r15.x + frc r15.x, r15.x + add r19.yw, r15.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.yw, r19.yyyw, r19.yyyw + mul r19.yw, r19.yyyw, r21.xxxw + mul r15.x, r19.w, r19.y + dp2 r19.y, r24.xyxx, r24.xyxx + sqrt r19.y, r19.y + mad r17.w, -r17.w, l(0.250000), r19.y + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w + mul_sat r17.w, r17.w, r19.y + mad r19.y, r17.w, l(-2.000000), l(3.000000) + mul r17.w, r17.w, r17.w + mul r17.w, r17.w, r19.y + ge r17.w, r17.w, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r25.z, r15.x, r17.w + div r19.yw, r24.xxxy, r18.wwww + max r19.yw, r19.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) + min r19.yw, r19.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) + ge r15.x, r25.z, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r19.yw, r15.xxxx, r19.yyyw + mad r15.x, r19.x, l(0.250000), l(0.250000) + mul r25.xy, r15.xxxx, r19.ywyy + round_ni r19.xy, r22.xzxx + mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r22.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r15.x, r21.xwxx, r22.xyxx + add r21.xw, r15.xxxx, r21.xxxw + mul r15.x, r21.w, r21.x + add r17.w, r21.w, r21.x + frc r15.x, r15.x + frc r22.w, r17.w + add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r24.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r17.w, r21.xwxx, r24.xyxx + add r21.xw, r17.wwww, r21.xxxw + mul r17.w, r21.w, r21.x + add r18.w, r21.w, r21.x + frc r24.x, r17.w + frc r24.y, r18.w + mad r17.w, r15.x, l(0.399999976), l(0.600000) + mul r18.w, r17.w, l(0.250000) + mad r19.xy, r15.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r19.xyxx + mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx + add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r26.x, r19.x, l(1.250000) + lt r19.x, r19.y, l(0.000000) + movc r19.x, r19.x, l(1.250000), l(0.750000) + mul r26.y, r19.x, r19.y + mad r15.x, cb0[102].x, l(4.345600), r15.x + frc r15.x, r15.x + add r19.xy, r15.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.xy, r19.xyxx, r19.xyxx + mul r19.xy, r19.xyxx, r21.xwxx + mul r15.x, r19.y, r19.x + dp2 r19.x, r26.xyxx, r26.xyxx + sqrt r19.x, r19.x + mad r17.w, -r17.w, l(0.250000), r19.x + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w + mul_sat r17.w, r17.w, r19.x + mad r19.x, r17.w, l(-2.000000), l(3.000000) + mul r17.w, r17.w, r17.w + mul r17.w, r17.w, r19.x + ge r17.w, r17.w, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r22.z, r15.x, r17.w + div r19.xy, r26.xyxx, r18.wwww + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r15.x, r22.z, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r19.xy, r15.xxxx, r19.xyxx + mad r15.x, r24.x, l(0.250000), l(0.250000) + mul r22.xy, r15.xxxx, r19.xyxx + mul r24.xyzw, r20.zzzz, r25.xyzw + mad r24.xyzw, r27.xyzw, r20.yyyy, r24.xyzw + mad r20.xyzw, r22.xyzw, r20.xxxx, r24.xyzw + max r19.xy, r20.zwzz, r23.zwzz + mad r20.zw, -r14.wwww, r10.xxxx, l(0.000000, 0.000000, 1.000000, 1.010000) + add r15.x, r19.y, l(-0.100000) + ge r15.x, r15.x, r20.z + and r15.x, r15.x, l(0x3f800000) + mul r15.x, r15.x, r19.x + ge r2.w, cb1[r2.w + 12].x, l(0.010000) + and r2.w, r2.w, l(0x3f800000) + mul r2.w, r2.w, r15.x + lt r15.x, l(0.001000), r2.w + add r19.xy, r20.xyxx, r23.xyxx + mul r17.w, cb0[102].x, cb0[196].z + mul r20.y, r17.w, l(0.750000) + dp2 r17.w, r16.xzxx, r16.xzxx + max r17.w, r17.w, l(1.175494351E-38) + rsq r17.w, r17.w + mul r16.xz, r16.xxzx, r17.wwww + add r16.xz, |r16.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) + mul r21.xw, r16.xxxz, r16.xxxz + mul r16.xz, r16.xxzx, r21.xxwx + max r16.xz, r16.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp2 r17.w, r16.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + div r16.xz, r16.xxzx, r17.wwww + sample_b_indexable(texture2d)(float,float,float,float) r22.xyz, r15.zwzz, t12.xyzw, s4, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.yzw, r15.ywyy, t12.wxyz, s4, cb0[108].x + mul r15.yzw, r16.xxxx, r15.yyzw + mad r15.yzw, r22.xxyz, r16.zzzz, r15.yyzw + movc r16.yw, r15.xxxx, r19.xxxy, r16.yyyw + mad r15.xy, r15.yzyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mov r20.x, l(0) + mad r22.xyzw, r13.zwyw, cb0[196].zzzz, r20.xyxy + sample_b_indexable(texture2d)(float,float,float,float) r13.y, r22.xyxx, t12.xwyz, s4, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r13.z, r22.zwzz, t12.xywz, s4, cb0[108].x + mul r13.z, r16.x, r13.z + mad r13.y, r13.y, r16.z, r13.z + mad r13.yz, r15.xxyx, r13.yyyy, r16.yywy + ge r13.w, r19.z, r20.w + and r13.w, r13.w, l(0x3f800000) + max r2.w, r2.w, r13.w + add r13.w, -r15.w, l(1.000000) + mad r10.x, r14.w, r10.x, -r13.w + mul_sat r10.x, r10.x, l(9.999998) + mad r13.w, r10.x, l(-2.000000), l(3.000000) + mul r10.x, r10.x, r10.x + mul r10.x, r10.x, r13.w + max r2.w, r2.w, r10.x + mad r15.xy, -r7.zyzz, l(1.000000, 0.000000, 0.000000, 0.000000), r21.yzyy + dp2 r10.x, r15.xyxx, r15.xyxx + lt r13.w, l(0.0000610351562), r10.x + rsq r10.x, r10.x + mul r15.xy, r10.xxxx, r15.xyxx + mov r15.xy, -r15.xyxx + movc r16.z, r13.w, r15.x, l(-1.000000) + and r16.y, r13.w, r15.y + min r10.x, r3.z, l(0.050000) + add r13.w, -r3.z, r10.x + mad r13.w, r2.w, r13.w, r3.z + mad r10.z, -r10.w, r10.z, l(1.000000) + mul r10.z, r10.z, r10.y + mad r5.w, -r5.w, r11.w, l(1.000000) + mul r5.w, r5.w, r10.z + mad r5.w, r5.w, l(-0.500000), l(1.000000) + mov r16.x, l(0) + mad r3.xyw, -r3.xyxw, r6.wwww, r16.zxzy + mad r3.xyw, r13.yyyy, r3.xyxw, r7.xyxz + mul r15.xyz, r7.zxyz, r16.xyzx + mad r15.xyz, r7.yzxy, r16.yzxy, -r15.xyzx + add r15.xyz, -r3.xywx, r15.xyzx + mad r3.xyw, r13.zzzz, r15.xyxz, r3.xyxw + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz + mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mul r3.xyw, r3.xyxw, r6.wwww + mul r6.w, r11.w, r10.y + mad r6.w, -r6.w, l(0.200000), r13.w + min r10.y, r13.w, l(0.200000) + max r3.z, r6.w, r10.y + mul r6.xyz, r5.wwww, r6.xyzx + dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r6.w, r6.w, l(-0.700000) + mul_sat r6.w, r6.w, l(-2.50000024) + mad r10.y, r6.w, l(-2.000000), l(3.000000) + mul r6.w, r6.w, r6.w + mul r6.w, r6.w, r10.y + mad r6.w, r6.w, l(0.500000), l(1.000000) + mul r10.y, r13.x, r2.w + mad r13.xyz, r4.xyzx, r6.wwww, -r4.xyzx + mad r10.yzw, r10.yyyy, r13.xxyz, r4.xxyz + mul r4.xyz, r5.wwww, r10.yzwy +else + mov r3.xyw, r7.xyxz + mov r10.x, l(0.010000) + mov r2.w, l(0) +endif +mul r5.w, r5.y, l(0.040000) +mad r6.w, -r5.x, l(0.960000), l(0.960000) +mul r10.yzw, r4.xxyz, r6.wwww +mad r13.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx +mad r13.xyz, r5.xxxx, r13.xyzx, r5.wwww +mul r6.xyz, r6.wwww, r6.xyzx +mul r5.y, r3.z, r3.z +max r5.y, r5.y, l(0.00781250000) +max r5.w, v5.z, l(9.999999939E-09) +div r15.xy, v5.xyxx, r5.wwww +max r5.w, v6.z, l(9.999999939E-09) +div r15.zw, v6.xxxy, r5.wwww +add r15.xy, -r15.zwzz, r15.xyxx +mul r16.xy, r15.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r16.xy, |r16.xyxx| +sqrt r16.xy, r16.xyxx +mov r15.z, -r15.y +lt r15.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xxxz +lt r15.xz, r15.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r15.xy, -r15.ywyy, r15.xzxx +itof r15.xy, r15.xyxx +mul r15.xy, r15.xyxx, r16.xyxx +mad o1.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +lt r5.w, l(0.500000), r2.w +movc o1.w, r5.w, l(0.700000), l(0.400000) +add r15.xyz, cb0[197].xyzx, cb3[0].xyzx +mad r15.xyz, cb0[187].wwww, r15.xyzx, -cb3[0].xyzx +mov r15.w, l(0.0000610351562) +dp3 r5.w, r15.xzwx, r15.xzwx +rsq r5.w, r5.w +mul r16.xyz, r5.wwww, r15.xwzx +add r19.xyz, cb0[191].xyzx, -cb3[3].xyzx +mad r19.xyz, cb0[198].yyyy, r19.xyzx, cb3[3].xyzx +add r5.w, l(1.000000), -cb3[3].w +mad r5.w, cb0[198].w, r5.w, cb3[3].w +mul r20.xyz, r5.wwww, r19.xyzx +mov r12.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r21.xy, r12.xyzz, t3.xyzw +add r11.w, r21.x, l(-1.000000) +mad r11.w, cb4[34].x, r11.w, l(1.000000) +add r12.z, -r11.w, l(1.000000) +mad r11.w, cb0[187].z, r12.z, r11.w +dp3 r12.z, r7.xyzx, r15.xyzx +mul r21.xzw, r6.xxyz, cb0[186].zzzz +mul r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) +dp3 r13.w, r10.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) +dp2 r14.w, cb0[6].xzxx, cb0[6].xzxx +rsq r14.w, r14.w +mul r23.xy, r14.wwww, cb0[6].xzxx +dp2 r14.w, r16.xzxx, r23.xyxx +mov_sat r14.w, -r14.w +add r23.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx +mad r15.w, r12.z, l(0.500000), l(-1.000000) +mad r15.w, -r12.z, r15.w, -r12.z +add r16.w, l(0.750000), -|cb0[6].y| +add_sat r16.w, r16.w, r16.w +mad r17.w, r16.w, l(-2.000000), l(3.000000) +mul r16.w, r16.w, r16.w +mul r16.w, r16.w, r17.w +mul r16.w, r14.w, r16.w +mul r16.w, r23.x, r16.w +add r15.w, r15.w, l(0.500000) +mad r12.z, r16.w, r15.w, r12.z +mad r12.z, cb0[197].w, cb0[198].x, r12.z +max r12.z, r12.z, l(-1.000000) +min r12.z, r12.z, l(1.000000) +add r12.z, r12.z, l(-0.250000) +mul r12.z, r12.z, l(1.33333337) +max r12.z, r12.z, l(0.000000) +mad r15.w, r12.z, l(-2.000000), l(3.000000) +mul r12.z, r12.z, r12.z +mul r12.z, r12.z, r15.w +dp3 r15.w, r7.xyzx, cb0[6].xyzx +add r15.w, r15.w, l(-0.250000) +mul_sat r15.w, r15.w, l(1.33333337) +mad r16.w, r15.w, l(-2.000000), l(3.000000) +mul r15.w, r15.w, r15.w +mul r15.w, r15.w, r16.w +mul r16.w, r5.z, r21.y +min r17.w, r5.z, r21.y +min r18.w, r12.z, r17.w +mul r19.w, r15.w, r16.w +dp3 r20.w, r7.xyzx, cb0[192].xyzx +add_sat r20.w, r20.w, cb0[193].x +mad r20.w, r20.w, cb0[193].y, cb0[193].z +mul r22.w, r18.w, cb0[187].y +add r24.xyz, -r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r24.xyz, r22.wwww, r24.xyzx, r14.xyzx +mul r24.xyz, r20.wwww, r24.xyzx +mad r20.w, r8.w, l(0.350000024), l(0.650000) +min r20.w, r20.w, l(1.500000) +max r25.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) +min r25.xyz, r25.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) +add r8.w, -r20.w, r25.x +mad r8.w, cb0[187].x, r8.w, r20.w +mul r26.xyz, r8.wwww, r24.xyzx +mul r26.xyz, r26.xyzx, cb0[186].wwww +dp3 r8.w, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r20.xyz, r19.xyzx, r5.wwww, -r8.wwww +mad r20.xyz, r18.wwww, r20.xyzx, r8.wwww +mul r24.xyz, r24.xyzx, r25.yyyy +mad r23.yzw, r19.xxyz, cb0[198].yyyy, r23.yyyy +mad r20.xyz, r24.xyzx, r23.yzwy, r20.xyzx +mad r20.xyz, r20.xyzx, cb0[186].yyyy, -r26.xyzx +mad r20.xyz, r11.wwww, r20.xyzx, r26.xyzx +dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww +mad r22.xyz, r22.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww +mad_sat r8.w, r15.w, r16.w, r12.z +mad r23.yzw, r6.xxyz, cb0[186].zzzz, -r22.xxyz +mad r22.xyz, r8.wwww, r23.yzwy, r22.xyzx +mad r23.yzw, r4.xxyz, r6.wwww, -r22.xxyz +mad r22.xyz, r18.wwww, r23.yzwy, r22.xyzx +mad r23.yzw, r4.xxyz, r6.wwww, -r13.wwww +mad r23.yzw, r23.yyzw, l(0.000000, 1.200000, 1.200000, 1.200000), r13.wwww +mad r23.yzw, -r6.xxyz, cb0[186].zzzz, r23.yyzw +mad r21.xzw, r19.wwww, r23.yyzw, r21.xxzw +dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +max r12.z, r8.w, l(0.001000) +div r12.z, l(1.000000, 1.000000, 1.000000, 1.000000), r12.z +mul r8.w, r8.w, r12.z +max r8.w, r8.w, l(0.000000) +min r8.w, r8.w, l(1.500000) +mad r22.xyz, r22.xyzx, r8.wwww, -r21.xzwx +mad r21.xzw, r11.wwww, r22.xxyz, r21.xxzw +mad r8.w, -r15.w, r16.w, r18.w +mad r8.w, r11.w, r8.w, r19.w +add r12.z, l(1.000000), -cb0[186].z +mad r12.z, r8.w, r12.z, cb0[186].z +add r15.w, r15.y, l(-0.500000) +mad r22.y, r11.w, r15.w, l(0.500000) +dp3_sat r24.x, r3.xywx, r2.xyzx +mov r22.xz, cb0[6].xxzx +dp3 r15.w, r22.xyzx, r22.xyzx +max r15.w, r15.w, l(1.175494351E-38) +rsq r15.w, r15.w +mul r22.xyz, r15.wwww, r22.xyzx +add r22.xyz, r22.xyzx, r22.xyzx +mad r15.xyz, r15.xyzx, r11.wwww, r22.xyzx +add r15.w, r11.w, l(2.000000) +mad r15.xyz, r2.xyzx, r15.wwww, r15.xyzx +dp3 r15.w, r15.xyzx, r15.xyzx +rsq r15.w, r15.w +mul r15.xyz, r15.wwww, r15.xyzx +dp3 r15.x, r3.xywx, r15.xyzx +mul r15.y, r5.y, r5.y +mad r15.z, r15.x, r15.y, -r15.x +mad r15.x, r15.z, r15.x, l(1.000000) +mul r15.x, r15.x, r15.x +add r15.z, l(1.000000), -cb5[1].z +mad r15.z, r4.w, cb5[1].z, r15.z +mul r22.xyz, r20.xyzx, r21.xzwx +ne r15.w, r15.x, r15.y +div r15.x, r15.y, r15.x +movc r15.x, r15.w, r15.x, l(1.000000) +mad r15.y, r24.x, l(2.000000), r5.y +add r15.y, r15.y, l(0.000100) +div r15.y, l(0.500000), r15.y +mad r15.x, r15.x, r15.y, l(-0.0000610351562) +max r15.x, r15.x, l(0.000000) +min r15.x, r15.x, l(20.000000) +mul r15.xyw, r13.xyxz, r15.xxxx +mad r8.w, r8.w, l(0.500000), l(0.500000) +mul r8.w, r12.z, r8.w +mul r20.xyz, r8.wwww, r20.xyzx +mul r15.xyw, r15.xyxw, r20.xyxz +mul r15.xyw, r15.xyxw, cb0[199].wwww +mad r15.xyw, r22.xyxz, r15.zzzz, r15.xyxw +dp3 r8.w, r15.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r16.w, r8.w, l(-0.500000) +max r16.w, r16.w, l(0.000000) +min r16.w, r16.w, l(0.500000) +mov r20.y, l(0) +mov r20.xz, cb0[195].yyxy +mul r22.xyz, r20.xyzx, cb0[6].zxyz +mad r20.xyz, cb0[6].yzxy, r20.yzxy, -r22.xyzx +dp3 r18.w, r20.xyzx, r20.xyzx +rsq r18.w, r18.w +mul r20.xyz, r18.wwww, r20.xyzx +dp3 r18.w, r2.xyzx, r7.xyzx +add r22.xy, -|r18.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) +dp3 r16.x, r16.xyzx, r7.xyzx +add r16.y, -r11.w, l(1.000000) +add r10.x, -r3.z, r10.x +mad r2.w, r2.w, r10.x, r3.z +mul r26.y, r2.w, r2.w +mul r27.x, r24.x, r24.x +mul r27.z, r24.x, r27.x +mul r10.x, r26.y, r26.y +mul r26.z, r26.y, r10.x +mov r24.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r25.x, l(3.327070, 1.000000, 0.000000, 0.000000), r24.xyxx +dp2 r25.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r24.xzxx +mov r26.x, l(1.000000) +dp2 r10.x, r25.xyxx, r26.xyxx +mov r27.yw, l(0,9.044010,0,1.000000) +dp3 r28.x, l(3.596850, -1.367720, 1.000000, 0.000000), r27.xzwx +dp3 r28.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r27.xyzx +mov r29.x, l(5.565890) +mov r29.yz, r27.xxzx +dp3 r28.z, l(1.000000, 19.788601, -20.212299, 0.000000), r29.xyzx +dp3 r16.z, r28.xyzx, r26.xyzx +div r10.x, r10.x, r16.z +dp2 r25.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r24.xwxx +mov r27.x, l(1.296780) +mov r27.y, r24.x +dp2 r25.y, l(1.000000, -0.755907, 0.000000, 0.000000), r27.xyxx +dp2 r16.z, r25.xyxx, r26.xyxx +dp3 r28.x, l(2.923380, 59.418800, 1.000000, 0.000000), r27.yzwy +mov r27.xw, l(20.322500,0,0,121.563004) +dp3 r28.y, l(1.000000, -27.030199, 222.591995, 0.000000), r27.xyzx +dp3 r28.z, l(626.130005, 316.627014, 1.000000, 0.000000), r27.yzwy +dp3 r19.w, r28.xyzx, r26.xyzx +div r16.z, r16.z, r19.w +mad r23.yzw, r13.xxyz, r10.xxxx, r16.zzzz +add r10.x, r10.x, r16.z +mad r16.z, r16.w, r16.w, l(1.000000) +add r15.xyw, -r8.wwww, r15.xyxw +mad r15.xyw, r16.zzzz, r15.xyxw, r8.wwww +mad r16.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) +add r8.w, -r16.z, r16.w +add r16.z, -r16.z, r22.x +div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w +mul_sat r8.w, r8.w, r16.z +mad r16.z, r8.w, l(-2.000000), l(3.000000) +mul r8.w, r8.w, r8.w +mul r8.w, r8.w, r16.z +mul r24.yzw, r8.wwww, cb0[194].xxyz +mul r24.yzw, r24.yyzw, cb0[194].wwww +dp3 r8.w, r9.xyzx, r20.xyzx +add_sat r8.w, r8.w, l(1.000000) +min r5.z, r5.z, r8.w +min r5.z, r21.y, r5.z +mul r24.yzw, r5.zzzz, r24.yyzw +mad r25.xyw, r4.xyxz, r6.wwww, l(-0.250000, -0.250000, 0.000000, -0.250000) +mad r25.xyw, cb0[195].zzzz, r25.xyxw, l(0.250000, 0.250000, 0.000000, 0.250000) +dp3_sat r5.z, r20.xyzx, r7.xyzx +mul r20.xyz, r5.zzzz, r25.xywx +max r5.z, r17.y, r17.x +max r5.z, r17.z, r5.z +mul r5.z, r5.z, l(0.500000) +max r5.z, r5.z, l(1.000000) +div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z +mul r17.xyz, r5.zzzz, r17.xyzx +mad r19.xyz, r19.xyzx, r5.wwww, -r17.xyzx +mad r17.xyz, r11.wwww, r19.xyzx, r17.xyzx +dp3 r5.z, r18.xyzx, r7.xyzx +mul r5.w, r7.w, r5.z +mad r8.w, r16.x, l(0.500000), l(-1.000000) +mad r8.w, -r16.x, r8.w, l(0.500000) +mad r5.z, -r5.z, r7.w, r8.w +mad_sat r5.z, r11.w, r5.z, r5.w +mul r16.xzw, r5.zzzz, r17.xxyz +mad r5.z, r14.w, r11.w, r16.y +mul r5.z, r23.x, r5.z +mul r16.xzw, r5.zzzz, r16.xxzw +mul_sat r5.z, r22.y, l(5.00000048) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mul r16.xzw, r5.zzzz, r16.xxzw +mul r16.xzw, r17.wwww, r16.xxzw +add r5.z, r13.w, l(-0.100000) +mul_sat r5.z, r5.z, l(-16.666666) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mad r5.z, r5.z, r11.w, r16.y +mul r16.xzw, r5.zzzz, r16.xxzw +max r17.xyz, r10.yzwy, l(0.150000, 0.150000, 0.150000, 0.000000) +mul r16.xzw, r16.xxzw, r17.xxyz +mad r16.xzw, r24.yyzw, r20.xxyz, r16.xxzw +add r15.xyw, r15.xyxw, r16.xzxw +utof r5.zw, r12.xxxy +mul r16.xz, r5.zzwz, l(0.031250, 0.000000, 0.031250, 0.000000) +round_ni r16.xz, r16.xxzx +mad r7.w, r16.z, cb2[1].y, r16.x +mul r7.w, r7.w, l(8.000000) +ftoi r7.w, r7.w +mad r8.w, -cb0[85].y, cb2[2].w, v0.w +round_ni r8.w, r8.w +add r11.w, l(-1.000000), cb2[1].w +max r13.w, r8.w, l(0.000000) +min r11.w, r11.w, r13.w +mul r13.w, r11.w, l(8.000000) +ftoi r13.w, r13.w +mul r8.xyz, r8.xyzx, cb5[6].xyzx +mul r16.xzw, r9.wwww, cb5[12].xxyz +mul r16.xzw, r4.wwww, r16.xxzw +mad r8.xyz, r8.xyzx, cb5[1].wwww, r16.xzwx +mad r8.xyz, r8.xyzx, r15.zzzz, r15.xywx +dp3 r9.w, -r2.xyzx, r3.xywx +add r9.w, r9.w, r9.w +mad r15.xyw, r3.xyxw, -r9.wwww, -r2.xyxz +max r2.w, r2.w, l(0.001000) +log r2.w, r2.w +mad r2.w, r2.w, l(1.200000), l(5.000000) +sample_l_indexable(texturecube)(float,float,float,float) r15.xyw, r15.xywx, t17.xywz, s0, r2.w +add r2.w, -r10.x, l(1.000000) +div r2.w, r2.w, r10.x +mul r16.xzw, r2.wwww, r13.xxyz +mad r16.xzw, r16.xxzw, r23.yyzw, r23.yyzw +mul r15.xyw, r15.xyxw, r16.xzxw +mul r2.w, r25.z, cb0[186].w +mul r2.w, r12.z, r2.w +mul r15.xyw, r2.wwww, r15.xyxw +mad r8.xyz, r15.xywx, r14.xyzx, r8.xyzx +ge r2.w, r11.w, r8.w +iadd r8.w, r13.w, cb0[110].y +mad r9.w, r16.y, l(-0.250000), l(0.750000) +mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) +add r6.w, -r5.y, l(0.010000) +ge r5.x, r5.x, l(0.500000) +and r5.x, r5.x, l(0x3f800000) +mov r14.w, l(1.000000) +mov r15.xyw, r8.xyxz +mov r10.x, l(0) +loop + ilt r11.w, l(7), r10.x + breakc_nz r11.w + iadd r11.w, r7.w, r10.x + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx + iadd r12.z, r8.w, r10.x + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.z, r12.z, l(0), t0.xxxx + and r11.w, r11.w, r12.z + and r11.w, r2.w, r11.w + ishl r12.z, r10.x, l(5) + mov r16.xyz, r15.xywx + mov r13.w, r11.w + loop + breakc_z r13.w + firstbit_lo r16.w, r13.w + ishl r17.x, l(1), r16.w + xor r17.x, r13.w, r17.x + iadd r16.w, r12.z, r16.w + bfi r19.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) + ftou r17.y, cb3[r19.y + 6].w + ieq r17.y, r17.y, l(1) + if_nz r17.y + add r14.xyz, v2.xyzx, -cb3[r19.x + 6].xyzx + and r17.yzw, l(0, 0x0000ffff, 0x0000ffff, 0x0000ffff), cb3[r19.y + 6].xxzy + and r18.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r19.z + 6].yxzy + ushr r20.xyz, cb3[r19.y + 6].xzyx, l(16, 16, 16, 0) + ushr r22.yzw, cb3[r19.z + 6].yyxz, l(0, 16, 16, 16) + f16tof32 r17.yzw, r17.yyzw + f16tof32 r18.xyz, r18.xyzx + f16tof32 r20.xyz, r20.xyzx + f16tof32 r23.xyw, r22.zyzw + mov r25.xz, r17.yywy + mov r25.yw, r20.xxxz + dp4 r17.y, r14.xyzw, r25.xyzw + mov r20.x, r17.z + mov r20.z, r18.y + mov r20.w, r23.x + dp4 r17.z, r14.xyzw, r20.xyzw + mov r23.xz, r18.xxzx + dp4 r14.x, r14.xyzw, r23.xyzw + max r14.y, |r17.z|, |r17.y| + max r14.x, |r14.x|, r14.y + mad r14.y, cb3[r19.w + 6].x, l(0.500000), l(0.500000) + add r14.x, -r14.y, r14.x + mad r14.y, -cb3[r19.w + 6].x, l(0.500000), l(0.500000) + div_sat r14.x, r14.x, r14.y + add r14.x, -r14.x, l(1.000000) + mul r14.x, r14.x, r14.x + else + mov r14.x, l(1.000000) + endif + lt r14.y, r14.x, l(0.001000) + if_nz r14.y + mov r13.w, r17.x + continue + endif + ishl r14.y, r16.w, l(3) + lt r14.z, cb3[r14.y + 6].w, l(1.500000) + if_nz r14.z + bfi r14.z, l(29), l(3), r16.w, l(3) + ieq r17.y, l(16), cb3[r14.z + 6].w + add r17.z, cb0[198].z, cb3[r14.z + 6].z + lt r17.z, r17.z, l(0.500000) + or r17.y, r17.z, r17.y + if_z r17.y + bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) + ftou r16.w, cb3[r14.y + 6].w + and r16.w, r16.w, l(1) + ieq r17.w, r16.w, l(0) + not r17.w, r17.w + lt r18.x, l(0.000000), cb3[r17.y + 6].z + and r17.w, r17.w, r18.x + ieq r18.x, l(4), cb3[r14.z + 6].w + movc r18.y, r16.w, l(0), l(1.000000) + mad r18.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) + add r20.z, r18.z, -|cb3[r17.y + 6].x| + add r20.x, -r20.z, cb3[r17.y + 6].y + add r18.z, -|r20.z|, l(1.000000) + add r18.z, -|r20.x|, r18.z + max r18.z, r18.z, l(0.000488281250) + ge r19.y, cb3[r17.y + 6].x, l(0.000000) + movc r20.y, r19.y, r18.z, -r18.z + dp3 r18.z, r20.xyzx, r20.xyzx + rsq r18.z, r18.z + mul r20.xyz, r18.zzzz, r20.xyzx + add r18.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y + max r18.z, r18.z, l(0.100000) + and r19.y, r18.x, l(0x3f800000) + add r18.z, r18.z, -cb3[r19.z + 6].w + mad r18.z, r19.y, r18.z, cb3[r19.z + 6].w + add r22.yzw, -v2.xxyz, cb3[r19.x + 6].xxyz + dp3 r19.y, r22.zwyz, -r20.xyzx + lt r19.z, l(0.500000), cb3[r17.z + 6].z + and r19.z, r18.x, r19.z + and r19.z, r19.z, l(0x3f800000) + mul r19.z, r18.y, r19.z + mad r23.xyz, -r20.zxyz, r19.yyyy, -r22.yzwy + mad r22.yzw, r19.zzzz, r23.xxyz, r22.yyzw + dp3 r19.y, r22.yzwy, r22.yzwy + rsq r19.z, r19.y + mul r23.xyz, r19.zzzz, r22.yzwy + if_nz r17.w + mul r24.yzw, r20.zzxy, cb3[r17.y + 6].zzzz + mad r25.xyz, -r24.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000), r22.yzwy + mad r24.yzw, r24.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), r22.yyzw + dp3 r19.z, r25.xyzx, r25.xyzx + sqrt r19.z, r19.z + dp3 r20.w, r24.yzwy, r24.yzwy + sqrt r20.w, r20.w + mul r26.xyz, r20.xyzx, r23.xyzx + mad r26.xyz, r20.zxyz, r23.yzxy, -r26.xyzx + mul r27.xyz, r20.xyzx, r26.xyzx + mad r26.xyz, r26.zxyz, r20.yzxy, -r27.xyzx + dp3 r21.y, r26.xyzx, r26.xyzx + rsq r21.y, r21.y + mul r23.xyz, r21.yyyy, r26.xyzx + dp3 r21.y, r25.xyzx, r24.yzwy + mad r21.y, r19.z, r20.w, r21.y + mad r21.y, r21.y, l(0.500000), l(1.000000) + div r21.y, l(1.000000, 1.000000, 1.000000, 1.000000), r21.y + dp3 r23.w, r23.xyzx, r25.xyzx + div r19.z, r23.w, r19.z + dp3 r23.w, r23.xyzx, r24.yzwy + div r20.w, r23.w, r20.w + add r19.z, r19.z, r20.w + mul_sat r19.z, r19.z, l(0.500000) + mul r19.z, r19.z, r21.y + else + mov r19.z, l(1.000000) + endif + lt r20.w, r18.z, l(0.000000) + if_nz r20.w + mul r20.w, cb3[r19.x + 6].w, cb3[r19.x + 6].w + mul r20.w, r19.y, r20.w + mad r20.w, -r20.w, r20.w, l(1.000000) + max r20.w, r20.w, l(0.000000) + add r19.y, r19.y, l(1.000000) + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), r19.y + and r21.y, r17.w, l(0x3f800000) + add r23.w, -r19.y, r19.z + mad r19.y, r21.y, r23.w, r19.y + mul r20.w, r20.w, r20.w + mul r19.y, r19.y, r20.w + else + mul r24.yzw, r22.yyzw, cb3[r19.x + 6].wwww + dp3 r20.w, r24.yzwy, r24.yzwy + min r20.w, r20.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + log r20.w, r20.w + mul r18.z, r18.z, r20.w + exp r18.z, r18.z + mul r19.y, r18.z, r19.z + endif + dp3 r18.z, r23.yzxy, -r20.xyzx + add r18.z, r18.z, -cb3[r17.y + 6].z + mul_sat r18.z, r18.z, cb3[r17.y + 6].w + mad r18.z, r18.z, r18.z, l(-1.000000) + mad r18.y, r18.y, r18.z, l(1.000000) + mul r18.y, r18.y, r19.y + ftoi r18.z, cb3[r19.w + 6].w + not r17.w, r17.w + ige r19.y, r18.z, l(0) + and r17.w, r17.w, r19.y + if_nz r17.w + if_z r16.w + ishl r17.w, r18.z, l(2) + mul r20.xyz, v2.yyyy, cb6[r17.w + 33].xywx + mad r20.xyz, cb6[r17.w + 32].xywx, v2.xxxx, r20.xyzx + mad r20.xyz, cb6[r17.w + 34].xywx, v2.zzzz, r20.xyzx + add r20.xyz, r20.xyzx, cb6[r17.w + 35].xywx + div_sat r19.yz, r20.xxyx, r20.zzzz + mad r19.yz, r19.yyzy, cb6[r18.z + 0].zzwz, cb6[r18.z + 0].xxyx + else + ishl r17.w, r18.z, l(2) + dp3 r20.x, -r22.yzwy, cb6[r17.w + 32].xyzx + dp3 r20.y, -r22.yzwy, cb6[r17.w + 33].xyzx + dp3 r20.z, -r22.yzwy, cb6[r17.w + 34].xyzx + lt r17.w, |r20.x|, |r20.y| + and r17.w, r17.w, l(1) + dp2 r20.w, |r20.xyxx|, icb[r17.w + 0].xyxx + lt r20.w, r20.w, |r20.z| + movc r17.w, r20.w, l(2), r17.w + dp3 r20.w, r20.xyzx, icb[r17.w + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r17.w, l(31), l(1), r17.w, r20.w + ushr r20.w, r17.w, l(1) + dp3 r20.w, r20.xyzx, icb[r20.w + 0].xyzx + div r21.y, l(0.000244140625), cb6[r18.z + 0].w + add r21.y, -r21.y, l(0.500000) + utof r22.y, r17.w + ult r22.z, r17.w, l(2) + and r22.z, r22.z, l(2) + dp2 r20.x, r20.xzxx, icb[r22.z + 0].xzxx + mul r20.x, r20.x, icb[r17.w + 4].z + div r20.x, r20.x, |r20.w| + mad r20.x, r20.x, r21.y, r22.y + add r20.x, r20.x, l(0.500000) + mul_sat r25.x, r20.x, l(0.166666672) + iadd r20.x, l(-1), icb[r17.w + 4].y + dp2 r20.x, r20.yzyy, icb[r20.x + 0].xyxx + mul r17.w, r20.x, icb[r17.w + 4].w + div r17.w, r17.w, |r20.w| + mad_sat r25.y, -r17.w, r21.y, l(0.500000) + mad r19.yz, r25.xxyx, cb6[r18.z + 0].zzwz, cb6[r18.z + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.w, r19.yzyy, t18.yzwx, s0, l(0.000000) + mul r18.y, r17.w, r18.y + endif + mul r14.x, r14.x, r18.y + lt r17.w, l(0.000100), r14.x + if_nz r17.w + if_nz r18.x + add r17.w, l(1.000000), -cb3[r17.z + 6].w + dp3 r18.y, r11.xyzx, r23.xyzx + add_sat r18.y, r18.y, l(0.500000) + mad r18.z, r18.y, l(-2.000000), l(3.000000) + mul r18.y, r18.y, r18.y + mul r18.y, r18.y, r18.z + mad r17.w, r18.y, cb3[r17.z + 6].w, r17.w + mul r17.w, r17.w, cb3[r17.z + 6].x + mul r17.w, r14.x, r17.w + add r20.xyz, -r16.xyzx, cb3[r14.y + 6].xyzx + mad r20.xyz, r17.wwww, r20.xyzx, r16.xyzx + endif + if_z r18.x + dp3 r17.w, r7.xyzx, r23.xyzx + mov_sat r18.y, r17.w + if_nz cb3[r14.z + 6].w + if_z r16.w + ftoi r16.w, cb3[r14.z + 6].x + else + add r22.yzw, v2.xxyz, -cb3[r19.x + 6].xxyz + lt r24.yzw, |r22.zzww|, |r22.yyyz| + and r18.z, r24.z, r24.y + lt r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r22.yyzw + ushr r19.y, cb3[r17.y + 6].w, l(24) + ubfe r24.yz, l(0, 8, 8, 0), l(0, 16, 8, 0), cb3[r17.y + 6].wwww + movc r19.y, r22.y, r19.y, r24.y + and r17.y, l(255), cb3[r17.y + 6].w + movc r17.y, r22.z, r24.z, r17.y + ubfe r19.z, l(8), l(8), cb3[r14.z + 6].x + and r20.w, l(255), cb3[r14.z + 6].x + movc r19.z, r22.w, r19.z, r20.w + movc r17.y, r24.w, r17.y, r19.z + movc r17.y, r18.z, r19.y, r17.y + ilt r18.z, r17.y, l(80) + movc r16.w, r18.z, r17.y, l(-1) + endif + ige r17.y, r16.w, l(0) + if_nz r17.y + add r19.xyz, v2.xyzx, -cb3[r19.x + 6].xyzx + ishl r17.y, r16.w, l(2) + dp3 r18.z, r19.xyzx, r19.xyzx + max r18.z, r18.z, l(1.175494351E-38) + rsq r18.z, r18.z + mul r19.xyz, r18.zzzz, r19.xyzx + mad r19.xyz, -r19.xyzx, cb4[r16.w + 288].xxxx, v2.xyzx + mul r18.z, l(5.000000), cb4[r16.w + 288].y + mad r19.xyz, r11.xyzx, r18.zzzz, r19.xyzx + mul r25.xyzw, r19.yyyy, cb4[r17.y + 65].xyzw + mad r25.xyzw, cb4[r17.y + 64].xyzw, r19.xxxx, r25.xyzw + mad r25.xyzw, cb4[r17.y + 66].xyzw, r19.zzzz, r25.xyzw + add r25.xyzw, r25.xyzw, cb4[r17.y + 67].xyzw + div r19.xyz, r25.xyzx, r25.wwww + ge r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxyz + ge r24.yzw, r19.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000) + add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz + mad r19.xy, r19.xyxx, r25.xyxx, cb4[r16.w + 344].xyxx + mad r25.xy, r19.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r19.xy, r19.xyxx, cb4[400].zwzz, -r25.xyxx + add r26.xyzw, r19.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r19.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r19.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r19.xyxx + mul r30.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xy, -r26.xzxx, r26.xzxx, r25.zwzz + add r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r30.z, r31.x + mov r30.w, r19.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r19.y + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r29.w, r28.x + mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw + mad r19.xy, r25.xyxx, cb4[400].xyxx, r29.zwzz + mov r28.w, r29.y + mov r29.yw, r28.yyyz + mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy + mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz + mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw + mul r29.xyzw, r26.zwyz, r27.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r30.xyxx, t2.xxxx, s2, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.zwzz, t2.xxxx, s2, r19.z + mul r18.z, r18.z, r29.y + mad r17.y, r29.x, r17.y, r18.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r19.xyxx, t2.xxxx, s2, r19.z + mad r17.y, r29.z, r18.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.xyxx, t2.xxxx, s2, r19.z + mad r17.y, r29.w, r18.z, r17.y + mul r29.xyzw, r26.xyzw, r27.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r31.xyxx, t2.xxxx, s2, r19.z + mad r17.y, r29.x, r18.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r31.zwzz, t2.xxxx, s2, r19.z + mad r17.y, r29.y, r18.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.zwzz, t2.xxxx, s2, r19.z + mad r17.y, r29.z, r18.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r25.xyxx, t2.xxxx, s2, r19.z + mad r17.y, r29.w, r18.z, r17.y + or r22.yzw, r22.yyzw, r24.yyzw + or r18.z, r22.z, r22.y + or r18.z, r22.w, r18.z + and r19.x, r19.z, l(0x7fffffff) + ult r19.x, l(0x7f800000), r19.x + or r18.z, r18.z, r19.x + mul r19.x, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r25.zwzz, t2.xxxx, s2, r19.z + mad r17.y, r19.x, r19.y, r17.y + add r17.y, r17.y, l(-1.000000) + mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) + movc r16.w, r18.z, l(1.000000), r16.w + else + dp3 r17.y, r9.xyzx, r23.xyzx + add_sat r16.w, r17.y, l(1.000000) + endif + else + mov r16.w, l(1.000000) + endif + if_z cb3[r14.z + 6].w + mul r19.xyz, r14.xxxx, cb3[r14.y + 6].xyzx + add r17.y, l(1.000000), -cb3[r17.z + 6].y + max r18.z, r19.y, r19.x + max r18.z, r19.z, r18.z + mul r18.z, r9.w, r18.z + max r18.z, r18.z, l(1.000000) + div r18.z, l(1.000000, 1.000000, 1.000000, 1.000000), r18.z + mad r17.y, r18.z, cb3[r17.z + 6].y, r17.y + mul r19.xyz, r17.yyyy, cb3[r14.y + 6].xyzx + mul r17.y, l(0.250000), cb3[r17.z + 6].x + add_sat r18.z, r17.w, l(0.500000) + mad r20.w, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) + mad r17.y, r18.z, r20.w, r17.y + mul r19.xyz, r17.yyyy, r19.xyzx + mov r22.yzw, r21.xxzw + mov r24.yzw, r21.xxzw + mov r17.y, l(1.000000) + mov r18.z, l(0) + else + ieq r20.w, l(3), cb3[r14.z + 6].w + if_nz r20.w + mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) + add r20.w, -r25.x, r25.y + add r21.y, r22.x, -r25.x + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r20.w + mul_sat r20.w, r20.w, r21.y + mad r21.y, r20.w, l(-2.000000), l(3.000000) + mul r20.w, r20.w, r20.w + mul r20.w, r20.w, r21.y + mul r20.w, r16.w, r20.w + mul r14.x, r14.x, r20.w + mul r25.xyz, r23.zxyz, cb0[6].xyzx + mad r25.xyz, cb0[6].zxyz, r23.xyzx, -r25.xyzx + mul r26.xyz, r25.xyzx, cb0[6].zxyz + mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx + dp3 r20.w, r25.xyzx, r25.xyzx + rsq r20.w, r20.w + mul r25.xyz, r20.wwww, r25.xyzx + dp3_sat r18.y, r7.xyzx, -r25.xyzx + mad r22.yzw, cb3[r17.z + 6].yyyy, r4.xxyz, l(0.000000, 0.500000, 0.500000, 0.500000) + mov r24.yzw, l(0,0,0,0) + mov r17.y, l(1.000000) + mov r18.z, l(0) + else + ieq r20.w, l(1), cb3[r14.z + 6].w + if_nz r20.w + add r17.w, r17.w, cb3[r17.z + 6].x + max_sat r17.w, r17.w, l(-1.000000) + mul r18.y, r16.w, r17.w + mul r24.yzw, r6.xxyz, cb3[r17.z + 6].yyyy + mov r17.y, l(1.000000) + mov r18.z, l(0) + else + ieq r16.w, l(2), cb3[r14.z + 6].w + if_nz r16.w + add r17.w, l(0.050000), cb3[r17.z + 6].x + add r17.w, r3.z, -r17.w + mul_sat r17.w, r17.w, l(-10.000000) + mad r21.y, r17.w, l(-2.000000), l(3.000000) + mul r17.w, r17.w, r17.w + mul r17.w, r17.w, r21.y + add r21.y, l(1.000000), -cb3[r17.z + 6].z + mad r21.y, r5.x, cb3[r17.z + 6].z, r21.y + mul r17.y, r17.w, r21.y + else + mov r17.y, l(1.000000) + endif + and r18.z, r16.w, cb3[r17.z + 6].y + mov r24.yzw, l(0,0,0,0) + endif + and r22.yzw, r10.yyzw, r20.wwww + endif + mov r19.xyz, cb3[r14.y + 6].xyzx + endif + ine r14.y, l(3), cb3[r14.z + 6].w + if_nz r14.y + mad r14.y, r18.z, r6.w, r5.y + mad r23.xyz, r0.xyzx, r1.wwww, r23.xyzx + dp3 r14.z, r23.xyzx, r23.xyzx + rsq r14.z, r14.z + mul r23.xyz, r14.zzzz, r23.xyzx + dp3 r14.z, r3.xywx, r23.xyzx + mul r16.w, r14.y, r14.y + mad r17.z, r14.z, r16.w, -r14.z + mad r14.z, r17.z, r14.z, l(1.000000) + mul r14.z, r14.z, r14.z + ne r17.z, r14.z, r16.w + div r14.z, r16.w, r14.z + movc r14.z, r17.z, r14.z, l(1.000000) + mad r14.y, r24.x, l(2.000000), r14.y + add r14.y, r14.y, l(0.000100) + div r14.y, l(0.500000), r14.y + mad r14.y, r14.z, r14.y, l(-0.0000610351562) + max r14.y, r14.y, l(0.000000) + min r14.y, r14.y, l(20.000000) + mul r23.xyz, r13.xyzx, r14.yyyy + mul r17.yzw, r17.yyyy, r23.xxyz + mul r17.yzw, r17.yyzw, cb3[r19.w + 6].zzzz + else + mov r17.yzw, l(0,0,0,0) + endif + mul r14.xyz, r14.xxxx, r19.xyzx + add r19.xyz, r22.yzwy, -r24.yzwy + mad r19.xyz, r18.yyyy, r19.xyzx, r24.yzwy + mul r19.xyz, r14.xyzx, r19.xyzx + mul r14.xyz, r17.yzwy, r14.xyzx + mul r14.xyz, r18.yyyy, r14.xyzx + mad r14.xyz, r19.xyzx, r15.zzzz, r14.xyzx + add r16.xyz, r14.xyzx, r16.xyzx + endif + else + mov r18.x, l(0) + endif + movc r16.xyz, r18.xxxx, r20.xyzx, r16.xyzx + endif + endif + mov r13.w, r17.x + endloop + mov r15.xyw, r16.xyxz + iadd r10.x, r10.x, l(1) +endloop +lt r0.x, l(0.500000), cb5[3].x +if_nz r0.x + dp3 r0.x, r15.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r3.xyz, -r0.xxxx, r15.xywx + mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx + add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) + mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r3.xyz, r0.xyzx, cb5[3].yyyy + mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx + mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx + add r2.w, l(1.000000), -cb5[4].x + mov_sat r18.w, r18.w + add r3.x, -r18.w, l(1.000000) + add r3.y, -r2.w, l(1.000000) + add r2.w, -r2.w, r3.x + div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y + mul_sat r2.w, r2.w, r3.x + mad r3.x, r2.w, l(-2.000000), l(3.000000) + mul r2.w, r2.w, r2.w + mul r2.w, r2.w, r3.x + mul r3.xyz, r2.wwww, cb5[8].xyzx + mad r15.xyw, r3.xyxz, cb5[4].yyyy, r0.xyxz +endif +div r0.xyz, r15.xywx, cb0[109].xxxx +eq r2.w, l(1.000000), cb5[2].x +movc o0.w, r2.w, r4.w, l(1.000000) +lt r2.w, cb0[198].w, l(0.500000) +if_nz r2.w + mul r0.w, r0.w, r1.w + mad r1.w, v2.y, cb0[156].w, cb0[157].w + max r1.w, r1.w, l(0.010000) + mad r2.w, r0.w, cb0[154].w, -cb0[153].w + max r2.w, r2.w, l(0.000000) + mul r3.x, r1.w, l(-1.442695) + exp r3.x, r3.x + add r3.x, -r3.x, l(1.000000) + div r1.w, r3.x, r1.w + mad r3.x, v2.y, cb0[156].w, cb0[158].w + mul r3.x, r3.x, l(1.442695) + exp r3.x, r3.x + mul r1.w, r1.w, r3.x + mul r1.w, r1.w, -r2.w + mul r3.xyz, r1.wwww, cb0[155].xyzx + mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) + exp r3.xyz, r3.xyzx + dp3 r1.w, -r2.xyzx, cb0[154].xyzx + mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) + dp2 r3.w, r1.wwww, cb0[155].wwww + add r2.w, r2.w, -r3.w + lt r3.w, l(0.000000), cb0[163].z + if_nz r3.w + and r12.w, l(7), cb0[108].w + imad r4.xyz, r12.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.w, r4.y, r4.z, r4.x + imad r4.x, r4.z, r3.w, r4.y + imad r4.y, r3.w, r4.x, r4.z + imad r5.x, r4.x, r4.y, r3.w + dp3 r1.x, -r2.xyzx, -r1.xyzx + add r1.y, v2.y, -cb0[44].y + lt r1.z, l(5.960464478E-08), r1.x + div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x + and r1.x, r1.x, r1.z + mul r1.x, r1.x, cb0[163].w + div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r2.x, r1.z, r1.x + mad r2.y, r2.x, r1.y, cb0[44].y + mad r1.y, -r2.x, r1.y, r1.y + mul r2.x, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r2.z, r2.y, -cb0[159].x + mul r2.z, r2.z, cb0[159].z + max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r2.z, -r2.z + mul r2.z, r2.z, cb0[159].y + lt r3.w, l(5.960464478E-08), |r2.x| + exp r4.z, -r2.x + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r2.x + mad r2.x, -r2.x, l(0.240226507), l(0.693147182) + movc r2.x, r3.w, r4.z, r2.x + add r2.y, r2.y, -cb0[162].z + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[162].y + lt r3.w, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r3.w, r4.z, r1.y + mul r1.y, r1.y, r2.y + mad r1.y, r2.z, r2.x, r1.y + mad r1.x, -r1.x, r1.z, l(1.000000) + mul r1.x, r0.w, r1.x + mul r1.x, r1.x, r1.y + exp r1.x, -r1.x + min r1.x, r1.x, l(1.000000) + max r1.x, r1.x, cb0[161].w + mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r1.x, r1.y, r1.x + add r1.x, r1.z, r1.x + min r1.x, r1.x, l(1.000000) + imad r5.y, r4.y, r5.x, r4.x + ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) + utof r1.yz, r1.yyzy + mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz + mul r2.xy, r1.yzyy, cb0[165].xyxx + mad r1.y, v0.w, cb0[164].x, cb0[164].y + log r1.y, r1.y + mul r1.y, r1.y, cb0[164].z + div r2.z, r1.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t19.xyzw, s0, l(0.000000) + add r1.y, v0.w, -cb0[166].z + mul_sat r1.y, r1.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.xyz, r1.yyyy, cb0[161].xyzx + mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx + mul r1.x, r1.x, r4.w + else + add r1.y, v2.y, -cb0[44].y + mul r1.z, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r1.z| + exp r4.y, -r1.z + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r1.z + mad r1.z, -r1.z, l(0.240226507), l(0.693147182) + movc r1.z, r4.x, r4.y, r1.z + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r1.z, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r1.x, r0.w, l(1.000000) + add r0.w, -r1.x, l(1.000000) + mul r2.xyz, r0.wwww, cb0[161].xyzx + endif + mul r4.xyz, r1.xxxx, r3.xyzx + mad r0.w, r1.w, r1.w, l(1.000000) + mul r0.w, r0.w, l(0.0596831031) + mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz + mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) + mul r3.w, r2.w, l(12.566371) + sqrt r2.w, r2.w + mul r2.w, r2.w, r3.w + max r2.w, r2.w, l(0.001000) + div r0.w, r0.w, r2.w + mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw + mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) + add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r1.yzw, r1.yyzw, r3.xxyz + mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r0.xyz = scene color, r4.xyz = transmittance, r1.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r1.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad o0.xyz, r0.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx +endif +// === End Fog Modification === +else + mov o0.xyz, r0.xyzx +endif +mov o1.z, l(1.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0_original_backup.asm new file mode 100644 index 000000000..eb832b91d --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0_original_backup.asm @@ -0,0 +1,1911 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 22:27:23 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy w +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyz 5 NONE float xyz +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 xyz 8 NONE float xyz +// TEXCOORD 8 x 9 NONE uint x +// SV_IsFrontFace 0 x 10 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[216], immediateIndexed +dcl_constantbuffer CB1[4093], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[14], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_comparison +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_resource_structured t0, 4 +dcl_resource_structured t1, 16 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_resource_texture3d (float,float,float,float) t4 +dcl_resource_texture3d (float,float,float,float) t5 +dcl_resource_texture3d (float,float,float,float) t6 +dcl_resource_texture3d (float,float,float,float) t7 +dcl_resource_texture3d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texturecube (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_input_ps_siv linear noperspective v0.xyw, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps linear v8.xyz +dcl_input_ps constant v9.x +dcl_input_ps_sgv constant v10.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 32 +add r0.xyz, -v2.xyzx, cb0[44].xyzx +mov r1.x, cb0[0].z +mov r1.y, cb0[1].z +mov r1.z, cb0[2].z +add r2.xyz, -r0.xyzx, r1.xyzx +mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +max r1.w, r0.w, l(9.999999939E-09) +rsq r1.w, r1.w +mul r2.xyz, r0.xyzx, r1.wwww +ishl r2.w, v9.x, l(4) +and r3.x, l(16), cb1[r2.w + 4].w +if_nz r3.x + iadd r3.x, l(2), cb1[r2.w + 5].x + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx +else + mov r3.xy, cb1[r2.w + 3].zxzz +endif +sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t13.xyzw, s4, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t14.xyzw, s5, cb0[108].x +add r3.z, -r5.w, l(1.000000) +mul r4.xyzw, r4.xyzw, cb5[5].xyzw +mul r6.xyz, r4.xyzx, cb5[4].zzzz +dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww +mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t15.xywz, s6, cb0[108].x +mul r7.x, r7.x, r7.z +mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r3.w, r7.xyxx, r7.xyxx +min r3.w, r3.w, l(1.000000) +add r3.w, -r3.w, l(1.000000) +sqrt r3.w, r3.w +max r3.w, r3.w, l(1.000000017E-16) +mul r7.xy, r7.xyxx, cb5[0].wwww +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, v1.xyxx, t16.xyzw, s7, cb0[108].x +add r9.xz, -r3.yyxy, v2.xxzx +mov r9.y, l(0.0000610351562) +dp3 r3.x, r9.xyzx, r9.xyzx +rsq r3.x, r3.x +mul r9.xyz, r3.xxxx, r9.xyzx +mul r10.xyz, v3.zxyz, v4.yzxy +mad r10.xyz, v3.yzxy, v4.zxyz, -r10.xyzx +mul r10.xyz, r10.xyzx, v4.wwww +mul r7.yzw, r7.yyyy, r10.xxyz +mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy +mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz +mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) +movc r6.w, v10.x, l(1.000000), r6.w +dp3 r7.x, r3.xywx, r3.xywx +max r7.x, r7.x, l(1.175494351E-38) +rsq r7.x, r7.x +mul r3.xyw, r3.xyxw, r7.xxxx +mul r7.xyz, r6.wwww, r3.xywx +dp3 r8.w, v3.xyzx, v3.xyzx +rsq r8.w, r8.w +mul r11.xyz, r8.wwww, v3.xyzx +mul r11.xyz, r6.wwww, r11.xyzx +ftou r12.xy, v0.xyxx +add r8.w, l(1.000000), -cb0[111].x +mad r8.w, cb0[198].w, r8.w, cb0[111].x +mul r8.w, r8.w, cb0[109].x +lt r9.w, cb0[187].y, l(0.500000) +if_nz r9.w + mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r13.xyz, -r13.xyzx, v2.xzyx + max r9.w, |r13.y|, |r13.x| + add r9.w, r9.w, l(-464.000000) + mul_sat r9.w, r9.w, l(0.031250) + add r10.w, |r13.z|, l(-208.000000) + mul_sat r10.w, r10.w, l(0.031250) + max r9.w, r9.w, r10.w + ne r10.w, l(0.000000), cb0[210].w + lt r11.w, r9.w, l(1.000000) + and r10.w, r10.w, r11.w + if_nz r10.w + mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r13.xyz, -r13.xyzx, v2.xzyx + max r10.w, |r13.y|, |r13.x| + add r10.w, r10.w, l(-29.000000) + mul_sat r10.w, r10.w, l(0.500000) + add r11.w, |r13.z|, l(-13.000000) + mul_sat r11.w, r11.w, l(0.500000) + max r10.w, r10.w, r11.w + lt r11.w, r10.w, l(1.000000) + if_nz r11.w + mad r13.xyz, v2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r13.xyzx, cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r14.xyw, r13.xyzx, t4.yzwx, s1, l(0.000000) + add r11.w, -r10.w, l(1.000000) + mul r15.x, l(0.500000), cb0[211].y + mad r15.y, -cb0[211].y, l(0.500000), l(1.000000) + max r13.y, r13.y, r15.x + min r13.y, r15.y, r13.y + mul r13.w, r13.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t5.xyzw, s0, l(0.000000) + mad r13.y, r15.w, r11.w, r9.w + add r16.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s0, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r14.yyyy, r16.xyzx + mov r16.w, r14.y + mul r16.xyzw, r11.wwww, r16.xyzw + add r13.xzw, r13.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t5.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r17.xyz, r14.xxxx, r13.xzwx + mov r17.w, r14.x + mul r17.xyzw, r11.wwww, r17.xyzw + mad r13.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r14.xyz, r14.wwww, r13.xzwx + mul r14.xyzw, r11.wwww, r14.xyzw + else + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r13.y, r9.w + endif + mad r13.xzw, cb0[6].xxzy, -cb0[212].zzzz, cb0[210].xxzy + add r13.xzw, -r13.xxzw, v2.xxzy + max r11.w, |r13.z|, |r13.x| + add r11.w, r11.w, l(-116.000000) + mul_sat r11.w, r11.w, l(0.125000) + add r13.x, |r13.w|, l(-52.000000) + mul_sat r13.x, r13.x, l(0.125000) + max r11.w, r11.w, r13.x + lt r13.x, r11.w, l(1.000000) + if_nz r13.x + mad r13.xzw, v2.xxyz, l(0.500000, 0.000000, 0.500000, 0.500000), l(0.500000, 0.000000, 0.500000, 0.500000) + mul r15.xyz, r13.xzwx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r15.xyz, r13.xzwx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r15.xyzx, t6.yzwx, s1, l(0.000000) + add r13.x, -r11.w, l(1.000000) + mul r10.w, r10.w, r13.x + mul r13.x, l(0.500000), cb0[211].y + mad r13.z, -cb0[211].y, l(0.500000), l(1.000000) + max r13.x, r13.x, r15.y + min r13.x, r13.z, r13.x + mul r15.w, r13.x, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r15.xwzx, t7.xyzw, s0, l(0.000000) + mad r13.y, r19.w, r10.w, r13.y + add r13.xzw, r15.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t7.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r20.xyz, r18.yyyy, r13.xzwx + mov r20.w, r18.y + mad r16.xyzw, r20.xyzw, r10.wwww, r16.xyzw + add r13.xzw, r15.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t7.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r15.xyz, r18.xxxx, r13.xzwx + mov r15.w, r18.x + mad r17.xyzw, r15.xyzw, r10.wwww, r17.xyzw + mad r13.xzw, r19.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r18.xyz, r18.wwww, r13.xzwx + mad r14.xyzw, r18.xyzw, r10.wwww, r14.xyzw + endif + lt r10.w, l(0.000000), r11.w + if_nz r10.w + mad r13.xzw, v2.xxyz, l(0.125000, 0.000000, 0.125000, 0.125000), l(0.500000, 0.000000, 0.500000, 0.500000) + mul r15.xyz, r13.xzwx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r13.xzw, r13.xxzw, cb0[211].xxyz, -r15.xxyz + mad r15.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r13.xzw, r18.xxyz, r13.xxzw + min r19.xyz, r15.xyzx, r13.xzwx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r19.xyzx, t8.yzwx, s1, l(0.000000) + add r10.w, -r9.w, l(1.000000) + mul r10.w, r10.w, r11.w + max r11.w, r18.y, r19.y + min r11.w, r15.y, r11.w + mul r19.w, r11.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r19.xwzx, t9.xyzw, s0, l(0.000000) + add r13.xzw, r19.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t9.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r18.xyz, r20.yyyy, r13.xzwx + mov r18.w, r20.y + mad r16.xyzw, r18.xyzw, r10.wwww, r16.xyzw + add r13.xzw, r19.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t9.xwyz, s0, l(0.000000) + mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r18.xyz, r20.xxxx, r13.xzwx + mov r18.w, r20.x + mad r17.xyzw, r18.xyzw, r10.wwww, r17.xyzw + mad r13.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r20.xyz, r20.wwww, r13.xzwx + mad r14.xyzw, r20.xyzw, r10.wwww, r14.xyzw + mad r13.y, r15.w, r10.w, r13.y + endif + mad_sat r10.w, r13.y, l(2.000000), l(-1.000000) + add r13.x, -r9.w, r10.w + add r9.w, r9.w, r10.w + mul r13.y, r9.w, l(0.500000) + else + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r13.xy, l(0,1.000000,0,0) + endif + mul r15.xyzw, r13.yyyx, cb0[213].xyzw + mad r15.y, r15.w, l(0.500000), r15.y + mul r13.zw, r13.yyyx, cb0[213].wwwy + mad r15.w, r13.w, l(0.375000), r13.z + add r14.xyzw, r14.xyzw, r15.xyzw + mul r15.xyzw, r13.yyyx, cb0[214].xyzw + mad r15.y, r15.w, l(0.500000), r15.y + mul r13.zw, r13.yyyx, cb0[214].wwwy + mad r15.w, r13.w, l(0.375000), r13.z + add r15.xyzw, r15.xyzw, r17.xyzw + mul r17.xyzw, r13.yyyx, cb0[215].xyzw + mad r17.y, r17.w, l(0.500000), r17.y + mul r13.xy, r13.yxyy, cb0[215].wyww + mad r17.w, r13.y, l(0.375000), r13.x + add r13.xyzw, r16.xyzw, r17.xyzw + mov r7.w, l(1.000000) + dp4 r16.x, r14.xyzw, r7.xyzw + dp4 r16.y, r15.xyzw, r7.xyzw + dp4 r16.z, r13.xyzw, r7.xyzw + max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r17.xyz, r8.wwww, r16.xyzx + mul r18.xyz, r15.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) + mad r18.xyz, r14.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r18.xyzx + mad r18.xyz, r13.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r18.xyzx + dp3 r7.w, r18.xyzx, r18.xyzx + max r7.w, r7.w, l(1.175494351E-38) + rsq r7.w, r7.w + mul r18.xyz, r7.wwww, r18.xyzx + mov r18.y, |r18.y| + mov r18.w, l(1.000000) + dp4 r14.x, r14.xyzw, r18.xyzw + dp4 r14.y, r15.xyzw, r18.xyzw + dp4 r14.z, r13.xyzw, r18.xyzw + max r13.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + ge r7.w, r17.y, r17.z + and r7.w, r7.w, l(0x3f800000) + mov r14.xy, r17.zyzz + mov r14.zw, l(0,0,-1.000000,0.666666687) + mad r15.xy, r16.yzyy, r8.wwww, -r14.xyxx + mov r15.zw, l(0,0,1.000000,-1.000000) + mad r14.xyzw, r7.wwww, r15.xyzw, r14.xyzw + ge r7.w, r17.x, r14.x + and r7.w, r7.w, l(0x3f800000) + mov r15.xyz, r14.xywx + mov r15.w, r17.x + mov r14.xyw, r15.wywx + add r14.xyzw, -r15.xyzw, r14.xyzw + mad r14.xyzw, r7.wwww, r14.xyzw, r15.xyzw + min r7.w, r14.y, r14.w + add r7.w, -r7.w, r14.x + add r9.w, -r14.y, r14.w + mad r10.w, r7.w, l(6.000000), l(0.000100) + div r9.w, r9.w, r10.w + add r9.w, r9.w, r14.z + frc r9.w, |r9.w| + add r10.w, r14.x, l(0.000100) + div r7.w, r7.w, r10.w + add r15.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) + add r9.w, |r15.x|, l(-0.450000) + mul_sat r9.w, r9.w, l(-10.000001) + mad r10.w, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r10.w + mad r9.w, r9.w, l(-0.350000), l(0.700000) + mov_sat r14.x, r14.x + mul r9.w, r9.w, r14.x + min r7.w, r7.w, r9.w + add r9.w, -r7.w, l(2.000000) + div r9.w, l(2.000000), r9.w + frc r14.xyz, r15.yzwy + mad r14.xyz, r14.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) + add_sat r14.xyz, |r14.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) + add r14.xyz, r14.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) + mad r14.xyz, r7.wwww, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r14.xyz, r9.wwww, r14.xyzx + max r7.w, r13.y, r13.x + max r7.w, r13.z, r7.w + mul r8.w, r8.w, r7.w + mov r7.w, l(1.000000) +else + mov r18.xyz, l(0,0,0,0) + mov r17.xyz, l(1.000000,1.000000,1.000000,0) + mov r14.xyz, cb0[188].xyzx + mov r7.w, l(0) +endif +dp3 r13.x, v4.xyzx, r2.xyzx +dp3 r13.y, r10.xyzx, r2.xyzx +dp3 r13.z, v3.xyzx, r2.xyzx +dp3 r9.w, r13.xyzx, r13.xyzx +max r9.w, r9.w, l(1.175494351E-38) +rsq r9.w, r9.w +mul r10.xyz, r9.wwww, r13.xyzx +mad r13.xy, v1.xyxx, cb5[13].xyxx, cb5[13].zwzz +deriv_rtx_coarse r13.zw, v1.xxxy +deriv_rty_coarse r15.xy, v1.xyxx +min r9.w, l(20.000000), cb5[11].x +div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w +max r10.z, r10.z, l(0.001000) +div r10.xy, r10.xyxx, r10.zzzz +mul r10.xy, r10.xyxx, -cb5[11].yyyy +mul r15.zw, r10.wwww, r10.xxxy +add r10.z, -r10.w, l(1.000000) +add r9.w, r9.w, l(1.000000) +mul r13.zw, r13.zzzw, cb0[108].yyyy +mul r15.xy, r15.xyxx, cb0[108].yyyy +mov r16.xy, r15.zwzz +mov r16.zw, l(0,0,0,0) +mov r11.w, r10.z +mov r14.w, l(0) +mov r17.w, l(1.000000) +mov r18.w, l(0) +mov r19.x, l(0) +loop + lt r19.y, r19.x, r9.w + if_nz r19.y + add r19.yz, r13.xxyx, r16.xxyx + sample_d_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t10.yxzw, s3, r13.zwzz, r15.xyxx + lt r19.z, r11.w, r19.y + if_nz r19.z + mov r18.w, r19.y + break + endif + add r19.x, r19.x, l(1.000000) + mad r19.zw, r10.xxxy, r10.wwww, r16.xxxy + add r20.x, -r10.w, r11.w + mov r16.zw, r16.xxxy + mov r14.w, r19.y + mov r17.w, r11.w + mov r11.w, r20.x + mov r16.xy, r19.zwzz + continue + else + mov r18.w, r14.w + break + endif +endloop +add r9.w, r14.w, -r17.w +add r10.x, r14.w, -r18.w +add r10.x, r11.w, r10.x +add r10.x, -r17.w, r10.x +div r9.w, r9.w, r10.x +mad r10.xy, r15.zwzz, r9.wwww, r16.zwzz +add r10.xy, r13.xyxx, r10.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r9.w, r10.xyxx, t10.yzwx, s3, cb0[108].x +add r10.x, -v2.y, cb1[r2.w + 12].z +add r10.x, r10.x, l(0.200000) +mul_sat r10.x, r10.x, l(2.85714269) +mad r10.y, r10.x, l(-2.000000), l(3.000000) +mul r10.x, r10.x, r10.x +mul r10.x, r10.x, r10.y +mul r10.x, r10.x, cb1[r2.w + 12].y +max r10.x, r10.x, cb1[r2.w + 12].w +add r10.y, r10.x, cb1[r2.w + 12].x +lt r10.y, l(0.010000), r10.y +if_nz r10.y + add r10.y, -r5.x, l(1.000000) + mul r13.xyz, r4.xyzx, r10.yyyy + dp3 r10.z, r13.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r10.z, r10.z, l(-0.350000) + mul_sat r10.z, r10.z, l(-4.000000) + mad r10.w, r10.z, l(-2.000000), l(3.000000) + mul r10.z, r10.z, r10.z + mul r11.w, r10.z, r10.w + mul r13.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) + movc r13.xyzw, cb1[r2.w + 4].wwww, r13.xyzw, v8.xzxy + mul r15.xyzw, r13.xyzw, cb0[196].zzzz + movc r16.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy + mov r16.x, v7.x + add r19.xyz, |r16.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) + mul r20.xyz, r19.xyzx, r19.xyzx + mul r19.xyz, r19.xyzx, r20.xyzx + max r19.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp3 r13.x, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r19.xyz, r19.xyzx, r13.xxxx + sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r15.zyzz, t11.xyzw, s4, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.zwzz, t11.xyzw, s4, cb0[108].x + mul r22.xyzw, r19.zzzz, r22.xyzw + mad r21.xyzw, r21.xyzw, r19.yyyy, r22.xyzw + sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.ywyy, t11.xyzw, s4, cb0[108].x + mad r19.xyzw, r22.xyzw, r19.xxxx, r21.xyzw + add r16.yw, -r19.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) + mul r21.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) + mad_sat r13.x, cb1[r2.w + 12].x, r10.y, r21.x + add r13.x, -r16.y, r13.x + mul_sat r13.x, r13.x, l(3.33333325) + mad r14.w, r13.x, l(-2.000000), l(3.000000) + mul r13.x, r13.x, r13.x + mul r13.x, r13.x, r14.w + mul_sat r10.y, r10.y, r10.x + add r10.y, -r16.w, r10.y + mul_sat r10.y, r10.y, l(1.53846145) + mad r14.w, r10.y, l(-2.000000), l(3.000000) + mul r10.y, r10.y, r10.y + mul r10.y, r10.y, r14.w + max r10.y, r10.y, r13.x + add r13.x, r5.x, l(-0.500000) + mul_sat r13.x, r13.x, l(4.000000) + mad r14.w, r13.x, l(-2.000000), l(3.000000) + mul r13.x, r13.x, r13.x + mul r13.x, r13.x, r14.w + add r5.w, -r5.w, l(0.199999988) + mul_sat r5.w, r5.w, l(-5.00000048) + mad r14.w, r5.w, l(-2.000000), l(3.000000) + mul r5.w, r5.w, r5.w + mul r5.w, r5.w, r14.w + mad r14.w, r5.w, r11.w, r13.x + min r14.w, r14.w, l(1.000000) + max r10.x, r10.x, cb1[r2.w + 12].x + mad r16.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mul r19.xyw, r15.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) + mul r22.xyz, r15.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) + mul r23.xyz, r20.xyzx, r20.xyzx + mul r23.xyz, r23.xyzx, r23.xyzx + mul r20.xyz, r20.xyzx, r23.xyzx + dp3 r17.w, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r20.xyz, r20.xyzx, r17.wwww + round_ni r23.xyzw, r19.yxyw + mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r24.xyzw, r24.xyzw + add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r17.w, r24.xyxx, r25.xyxx + add r21.xw, r17.wwww, r24.xxxy + mul r17.w, r21.w, r21.x + add r18.w, r21.w, r21.x + frc r17.w, r17.w + frc r26.w, r18.w + add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r27.xyzw, r27.xyzw + add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r18.w, r27.xyxx, r28.xyxx + add r21.xw, r18.wwww, r27.xxxy + mul r18.w, r21.w, r21.x + add r19.y, r21.w, r21.x + frc r24.x, r18.w + frc r24.y, r19.y + mad r18.w, r17.w, l(0.399999976), l(0.600000) + mul r19.y, r18.w, l(0.250000) + mad r23.xyzw, r15.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r23.xyzw + mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.xxxy + add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r23.x, r21.x, l(1.250000) + lt r20.w, r21.w, l(0.000000) + movc r20.w, r20.w, l(1.250000), l(0.750000) + mul r23.y, r20.w, r21.w + mad r17.w, cb0[102].x, l(3.000000), r17.w + frc r17.w, r17.w + add r21.xw, r17.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r25.xy, r21.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r21.xw, r21.xxxw, r21.xxxw + mul r21.xw, r21.xxxw, r25.xxxy + mul r17.w, r21.w, r21.x + dp2 r20.w, r23.xyxx, r23.xyxx + sqrt r20.w, r20.w + mad r18.w, -r18.w, l(0.250000), r20.w + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.y + mul_sat r18.w, r18.w, r20.w + mad r20.w, r18.w, l(-2.000000), l(3.000000) + mul r18.w, r18.w, r18.w + mul r18.w, r18.w, r20.w + ge r18.w, r18.w, l(0.001000) + and r18.w, r18.w, l(0x3f800000) + mul r26.z, r17.w, r18.w + div r21.xw, r23.xxxy, r19.yyyy + max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r17.w, r26.z, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r21.xw, r17.wwww, r21.xxxw + mad r17.w, r24.x, l(0.250000), l(0.250000) + mul r26.xy, r17.wwww, r21.xwxx + dp2 r17.w, r24.zwzz, r25.zwzz + add r21.xw, r17.wwww, r24.zzzw + mul r17.w, r21.w, r21.x + add r18.w, r21.w, r21.x + frc r17.w, r17.w + frc r24.w, r18.w + dp2 r18.w, r27.zwzz, r28.zwzz + add r21.xw, r18.wwww, r27.zzzw + mul r18.w, r21.w, r21.x + add r19.y, r21.w, r21.x + frc r23.x, r18.w + frc r23.y, r19.y + mad r18.w, r17.w, l(0.399999976), l(0.600000) + mul r19.y, r18.w, l(0.250000) + mad r21.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.zzzw + add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r25.x, r21.x, l(1.250000) + lt r20.w, r21.w, l(0.000000) + movc r20.w, r20.w, l(1.250000), l(0.750000) + mul r25.y, r20.w, r21.w + mad r17.w, cb0[102].x, l(3.000000), r17.w + frc r17.w, r17.w + add r21.xw, r17.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r23.yz, r21.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) + mul r21.xw, r21.xxxw, r21.xxxw + mul r21.xw, r21.xxxw, r23.yyyz + mul r17.w, r21.w, r21.x + dp2 r20.w, r25.xyxx, r25.xyxx + sqrt r20.w, r20.w + mad r18.w, -r18.w, l(0.250000), r20.w + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.y + mul_sat r18.w, r18.w, r20.w + mad r20.w, r18.w, l(-2.000000), l(3.000000) + mul r18.w, r18.w, r18.w + mul r18.w, r18.w, r20.w + ge r18.w, r18.w, l(0.001000) + and r18.w, r18.w, l(0x3f800000) + mul r24.z, r17.w, r18.w + div r21.xw, r25.xxxy, r19.yyyy + max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r17.w, r24.z, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r21.xw, r17.wwww, r21.xxxw + mad r17.w, r23.x, l(0.250000), l(0.250000) + mul r24.xy, r17.wwww, r21.xwxx + round_ni r19.xy, r19.xwxx + mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r23.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r17.w, r21.xwxx, r23.xyxx + add r21.xw, r17.wwww, r21.xxxw + mul r17.w, r21.w, r21.x + add r18.w, r21.w, r21.x + frc r17.w, r17.w + frc r23.w, r18.w + add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r25.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r18.w, r21.xwxx, r25.xyxx + add r21.xw, r18.wwww, r21.xxxw + mul r18.w, r21.w, r21.x + add r19.w, r21.w, r21.x + frc r25.x, r18.w + frc r25.y, r19.w + mad r18.w, r17.w, l(0.399999976), l(0.600000) + mul r19.w, r18.w, l(0.250000) + mad r19.xy, r15.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r19.xyxx + mad r21.xw, r25.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx + add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r27.x, r19.x, l(1.250000) + lt r19.x, r19.y, l(0.000000) + movc r19.x, r19.x, l(1.250000), l(0.750000) + mul r27.y, r19.x, r19.y + mad r17.w, cb0[102].x, l(3.000000), r17.w + frc r17.w, r17.w + add r19.xy, r17.wwww, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.xy, r19.xyxx, r19.xyxx + mul r19.xy, r19.xyxx, r21.xwxx + mul r17.w, r19.y, r19.x + dp2 r19.x, r27.xyxx, r27.xyxx + sqrt r19.x, r19.x + mad r18.w, -r18.w, l(0.250000), r19.x + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.w + mul_sat r18.w, r18.w, r19.x + mad r19.x, r18.w, l(-2.000000), l(3.000000) + mul r18.w, r18.w, r18.w + mul r18.w, r18.w, r19.x + ge r18.w, r18.w, l(0.001000) + and r18.w, r18.w, l(0x3f800000) + mul r23.z, r17.w, r18.w + div r19.xy, r27.xyxx, r19.wwww + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r17.w, r23.z, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r19.xy, r17.wwww, r19.xyxx + mad r17.w, r25.x, l(0.250000), l(0.250000) + mul r23.xy, r17.wwww, r19.xyxx + mul r24.xyzw, r20.zzzz, r24.xyzw + mad r24.xyzw, r26.xyzw, r20.yyyy, r24.xyzw + mad r23.xyzw, r23.xyzw, r20.xxxx, r24.xyzw + round_ni r24.xyzw, r22.yxyz + mul r25.xyzw, r24.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r25.xyzw, r25.xyzw + add r26.xyzw, r25.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r17.w, r25.xyxx, r26.xyxx + add r19.xy, r17.wwww, r25.xyxx + mul r17.w, r19.y, r19.x + add r18.w, r19.y, r19.x + frc r17.w, r17.w + frc r27.w, r18.w + add r28.xyzw, r24.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r28.xyzw, r28.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r28.xyzw, r28.xyzw + add r29.xyzw, r28.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r18.w, r28.xyxx, r29.xyxx + add r19.xy, r18.wwww, r28.xyxx + mul r18.w, r19.y, r19.x + add r19.x, r19.y, r19.x + frc r25.x, r18.w + frc r25.y, r19.x + mad r18.w, r17.w, l(0.399999976), l(0.600000) + mul r19.x, r18.w, l(0.250000) + mad r24.xyzw, r15.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r24.xyzw + mad r19.yw, r25.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.xxxy + add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r24.x, r19.y, l(1.250000) + lt r15.x, r19.w, l(0.000000) + movc r15.x, r15.x, l(1.250000), l(0.750000) + mul r24.y, r15.x, r19.w + mad r15.x, cb0[102].x, l(4.345600), r17.w + frc r15.x, r15.x + add r19.yw, r15.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.yw, r19.yyyw, r19.yyyw + mul r19.yw, r19.yyyw, r21.xxxw + mul r15.x, r19.w, r19.y + dp2 r17.w, r24.xyxx, r24.xyxx + sqrt r17.w, r17.w + mad r17.w, -r18.w, l(0.250000), r17.w + div r18.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.x + mul_sat r17.w, r17.w, r18.w + mad r18.w, r17.w, l(-2.000000), l(3.000000) + mul r17.w, r17.w, r17.w + mul r17.w, r17.w, r18.w + ge r17.w, r17.w, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r27.z, r15.x, r17.w + div r19.xy, r24.xyxx, r19.xxxx + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r15.x, r27.z, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r19.xy, r15.xxxx, r19.xyxx + mad r15.x, r25.x, l(0.250000), l(0.250000) + mul r27.xy, r15.xxxx, r19.xyxx + dp2 r15.x, r25.zwzz, r26.zwzz + add r19.xy, r15.xxxx, r25.zwzz + mul r15.x, r19.y, r19.x + add r17.w, r19.y, r19.x + frc r15.x, r15.x + frc r25.w, r17.w + dp2 r17.w, r28.zwzz, r29.zwzz + add r19.xy, r17.wwww, r28.zwzz + mul r17.w, r19.y, r19.x + add r18.w, r19.y, r19.x + frc r19.x, r17.w + frc r19.y, r18.w + mad r17.w, r15.x, l(0.399999976), l(0.600000) + mul r18.w, r17.w, l(0.250000) + mad r19.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.zzzw + add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r24.x, r19.y, l(1.250000) + lt r19.y, r19.w, l(0.000000) + movc r19.y, r19.y, l(1.250000), l(0.750000) + mul r24.y, r19.y, r19.w + mad r15.x, cb0[102].x, l(4.345600), r15.x + frc r15.x, r15.x + add r19.yw, r15.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.yw, r19.yyyw, r19.yyyw + mul r19.yw, r19.yyyw, r21.xxxw + mul r15.x, r19.w, r19.y + dp2 r19.y, r24.xyxx, r24.xyxx + sqrt r19.y, r19.y + mad r17.w, -r17.w, l(0.250000), r19.y + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w + mul_sat r17.w, r17.w, r19.y + mad r19.y, r17.w, l(-2.000000), l(3.000000) + mul r17.w, r17.w, r17.w + mul r17.w, r17.w, r19.y + ge r17.w, r17.w, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r25.z, r15.x, r17.w + div r19.yw, r24.xxxy, r18.wwww + max r19.yw, r19.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) + min r19.yw, r19.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) + ge r15.x, r25.z, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r19.yw, r15.xxxx, r19.yyyw + mad r15.x, r19.x, l(0.250000), l(0.250000) + mul r25.xy, r15.xxxx, r19.ywyy + round_ni r19.xy, r22.xzxx + mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r22.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r15.x, r21.xwxx, r22.xyxx + add r21.xw, r15.xxxx, r21.xxxw + mul r15.x, r21.w, r21.x + add r17.w, r21.w, r21.x + frc r15.x, r15.x + frc r22.w, r17.w + add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r24.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r17.w, r21.xwxx, r24.xyxx + add r21.xw, r17.wwww, r21.xxxw + mul r17.w, r21.w, r21.x + add r18.w, r21.w, r21.x + frc r24.x, r17.w + frc r24.y, r18.w + mad r17.w, r15.x, l(0.399999976), l(0.600000) + mul r18.w, r17.w, l(0.250000) + mad r19.xy, r15.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r19.xyxx + mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx + add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r26.x, r19.x, l(1.250000) + lt r19.x, r19.y, l(0.000000) + movc r19.x, r19.x, l(1.250000), l(0.750000) + mul r26.y, r19.x, r19.y + mad r15.x, cb0[102].x, l(4.345600), r15.x + frc r15.x, r15.x + add r19.xy, r15.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.xy, r19.xyxx, r19.xyxx + mul r19.xy, r19.xyxx, r21.xwxx + mul r15.x, r19.y, r19.x + dp2 r19.x, r26.xyxx, r26.xyxx + sqrt r19.x, r19.x + mad r17.w, -r17.w, l(0.250000), r19.x + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w + mul_sat r17.w, r17.w, r19.x + mad r19.x, r17.w, l(-2.000000), l(3.000000) + mul r17.w, r17.w, r17.w + mul r17.w, r17.w, r19.x + ge r17.w, r17.w, l(0.001000) + and r17.w, r17.w, l(0x3f800000) + mul r22.z, r15.x, r17.w + div r19.xy, r26.xyxx, r18.wwww + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r15.x, r22.z, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r19.xy, r15.xxxx, r19.xyxx + mad r15.x, r24.x, l(0.250000), l(0.250000) + mul r22.xy, r15.xxxx, r19.xyxx + mul r24.xyzw, r20.zzzz, r25.xyzw + mad r24.xyzw, r27.xyzw, r20.yyyy, r24.xyzw + mad r20.xyzw, r22.xyzw, r20.xxxx, r24.xyzw + max r19.xy, r20.zwzz, r23.zwzz + mad r20.zw, -r14.wwww, r10.xxxx, l(0.000000, 0.000000, 1.000000, 1.010000) + add r15.x, r19.y, l(-0.100000) + ge r15.x, r15.x, r20.z + and r15.x, r15.x, l(0x3f800000) + mul r15.x, r15.x, r19.x + ge r2.w, cb1[r2.w + 12].x, l(0.010000) + and r2.w, r2.w, l(0x3f800000) + mul r2.w, r2.w, r15.x + lt r15.x, l(0.001000), r2.w + add r19.xy, r20.xyxx, r23.xyxx + mul r17.w, cb0[102].x, cb0[196].z + mul r20.y, r17.w, l(0.750000) + dp2 r17.w, r16.xzxx, r16.xzxx + max r17.w, r17.w, l(1.175494351E-38) + rsq r17.w, r17.w + mul r16.xz, r16.xxzx, r17.wwww + add r16.xz, |r16.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) + mul r21.xw, r16.xxxz, r16.xxxz + mul r16.xz, r16.xxzx, r21.xxwx + max r16.xz, r16.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp2 r17.w, r16.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + div r16.xz, r16.xxzx, r17.wwww + sample_b_indexable(texture2d)(float,float,float,float) r22.xyz, r15.zwzz, t12.xyzw, s4, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.yzw, r15.ywyy, t12.wxyz, s4, cb0[108].x + mul r15.yzw, r16.xxxx, r15.yyzw + mad r15.yzw, r22.xxyz, r16.zzzz, r15.yyzw + movc r16.yw, r15.xxxx, r19.xxxy, r16.yyyw + mad r15.xy, r15.yzyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mov r20.x, l(0) + mad r22.xyzw, r13.zwyw, cb0[196].zzzz, r20.xyxy + sample_b_indexable(texture2d)(float,float,float,float) r13.y, r22.xyxx, t12.xwyz, s4, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r13.z, r22.zwzz, t12.xywz, s4, cb0[108].x + mul r13.z, r16.x, r13.z + mad r13.y, r13.y, r16.z, r13.z + mad r13.yz, r15.xxyx, r13.yyyy, r16.yywy + ge r13.w, r19.z, r20.w + and r13.w, r13.w, l(0x3f800000) + max r2.w, r2.w, r13.w + add r13.w, -r15.w, l(1.000000) + mad r10.x, r14.w, r10.x, -r13.w + mul_sat r10.x, r10.x, l(9.999998) + mad r13.w, r10.x, l(-2.000000), l(3.000000) + mul r10.x, r10.x, r10.x + mul r10.x, r10.x, r13.w + max r2.w, r2.w, r10.x + mad r15.xy, -r7.zyzz, l(1.000000, 0.000000, 0.000000, 0.000000), r21.yzyy + dp2 r10.x, r15.xyxx, r15.xyxx + lt r13.w, l(0.0000610351562), r10.x + rsq r10.x, r10.x + mul r15.xy, r10.xxxx, r15.xyxx + mov r15.xy, -r15.xyxx + movc r16.z, r13.w, r15.x, l(-1.000000) + and r16.y, r13.w, r15.y + min r10.x, r3.z, l(0.050000) + add r13.w, -r3.z, r10.x + mad r13.w, r2.w, r13.w, r3.z + mad r10.z, -r10.w, r10.z, l(1.000000) + mul r10.z, r10.z, r10.y + mad r5.w, -r5.w, r11.w, l(1.000000) + mul r5.w, r5.w, r10.z + mad r5.w, r5.w, l(-0.500000), l(1.000000) + mov r16.x, l(0) + mad r3.xyw, -r3.xyxw, r6.wwww, r16.zxzy + mad r3.xyw, r13.yyyy, r3.xyxw, r7.xyxz + mul r15.xyz, r7.zxyz, r16.xyzx + mad r15.xyz, r7.yzxy, r16.yzxy, -r15.xyzx + add r15.xyz, -r3.xywx, r15.xyzx + mad r3.xyw, r13.zzzz, r15.xyxz, r3.xyxw + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz + mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mul r3.xyw, r3.xyxw, r6.wwww + mul r6.w, r11.w, r10.y + mad r6.w, -r6.w, l(0.200000), r13.w + min r10.y, r13.w, l(0.200000) + max r3.z, r6.w, r10.y + mul r6.xyz, r5.wwww, r6.xyzx + dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r6.w, r6.w, l(-0.700000) + mul_sat r6.w, r6.w, l(-2.50000024) + mad r10.y, r6.w, l(-2.000000), l(3.000000) + mul r6.w, r6.w, r6.w + mul r6.w, r6.w, r10.y + mad r6.w, r6.w, l(0.500000), l(1.000000) + mul r10.y, r13.x, r2.w + mad r13.xyz, r4.xyzx, r6.wwww, -r4.xyzx + mad r10.yzw, r10.yyyy, r13.xxyz, r4.xxyz + mul r4.xyz, r5.wwww, r10.yzwy +else + mov r3.xyw, r7.xyxz + mov r10.x, l(0.010000) + mov r2.w, l(0) +endif +mul r5.w, r5.y, l(0.040000) +mad r6.w, -r5.x, l(0.960000), l(0.960000) +mul r10.yzw, r4.xxyz, r6.wwww +mad r13.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx +mad r13.xyz, r5.xxxx, r13.xyzx, r5.wwww +mul r6.xyz, r6.wwww, r6.xyzx +mul r5.y, r3.z, r3.z +max r5.y, r5.y, l(0.00781250000) +max r5.w, v5.z, l(9.999999939E-09) +div r15.xy, v5.xyxx, r5.wwww +max r5.w, v6.z, l(9.999999939E-09) +div r15.zw, v6.xxxy, r5.wwww +add r15.xy, -r15.zwzz, r15.xyxx +mul r16.xy, r15.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r16.xy, |r16.xyxx| +sqrt r16.xy, r16.xyxx +mov r15.z, -r15.y +lt r15.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xxxz +lt r15.xz, r15.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r15.xy, -r15.ywyy, r15.xzxx +itof r15.xy, r15.xyxx +mul r15.xy, r15.xyxx, r16.xyxx +mad o1.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +lt r5.w, l(0.500000), r2.w +movc o1.w, r5.w, l(0.700000), l(0.400000) +add r15.xyz, cb0[197].xyzx, cb3[0].xyzx +mad r15.xyz, cb0[187].wwww, r15.xyzx, -cb3[0].xyzx +mov r15.w, l(0.0000610351562) +dp3 r5.w, r15.xzwx, r15.xzwx +rsq r5.w, r5.w +mul r16.xyz, r5.wwww, r15.xwzx +add r19.xyz, cb0[191].xyzx, -cb3[3].xyzx +mad r19.xyz, cb0[198].yyyy, r19.xyzx, cb3[3].xyzx +add r5.w, l(1.000000), -cb3[3].w +mad r5.w, cb0[198].w, r5.w, cb3[3].w +mul r20.xyz, r5.wwww, r19.xyzx +mov r12.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r21.xy, r12.xyzz, t3.xyzw +add r11.w, r21.x, l(-1.000000) +mad r11.w, cb4[34].x, r11.w, l(1.000000) +add r12.z, -r11.w, l(1.000000) +mad r11.w, cb0[187].z, r12.z, r11.w +dp3 r12.z, r7.xyzx, r15.xyzx +mul r21.xzw, r6.xxyz, cb0[186].zzzz +mul r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) +dp3 r13.w, r10.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) +dp2 r14.w, cb0[6].xzxx, cb0[6].xzxx +rsq r14.w, r14.w +mul r23.xy, r14.wwww, cb0[6].xzxx +dp2 r14.w, r16.xzxx, r23.xyxx +mov_sat r14.w, -r14.w +add r23.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx +mad r15.w, r12.z, l(0.500000), l(-1.000000) +mad r15.w, -r12.z, r15.w, -r12.z +add r16.w, l(0.750000), -|cb0[6].y| +add_sat r16.w, r16.w, r16.w +mad r17.w, r16.w, l(-2.000000), l(3.000000) +mul r16.w, r16.w, r16.w +mul r16.w, r16.w, r17.w +mul r16.w, r14.w, r16.w +mul r16.w, r23.x, r16.w +add r15.w, r15.w, l(0.500000) +mad r12.z, r16.w, r15.w, r12.z +mad r12.z, cb0[197].w, cb0[198].x, r12.z +max r12.z, r12.z, l(-1.000000) +min r12.z, r12.z, l(1.000000) +add r12.z, r12.z, l(-0.250000) +mul r12.z, r12.z, l(1.33333337) +max r12.z, r12.z, l(0.000000) +mad r15.w, r12.z, l(-2.000000), l(3.000000) +mul r12.z, r12.z, r12.z +mul r12.z, r12.z, r15.w +dp3 r15.w, r7.xyzx, cb0[6].xyzx +add r15.w, r15.w, l(-0.250000) +mul_sat r15.w, r15.w, l(1.33333337) +mad r16.w, r15.w, l(-2.000000), l(3.000000) +mul r15.w, r15.w, r15.w +mul r15.w, r15.w, r16.w +mul r16.w, r5.z, r21.y +min r17.w, r5.z, r21.y +min r18.w, r12.z, r17.w +mul r19.w, r15.w, r16.w +dp3 r20.w, r7.xyzx, cb0[192].xyzx +add_sat r20.w, r20.w, cb0[193].x +mad r20.w, r20.w, cb0[193].y, cb0[193].z +mul r22.w, r18.w, cb0[187].y +add r24.xyz, -r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r24.xyz, r22.wwww, r24.xyzx, r14.xyzx +mul r24.xyz, r20.wwww, r24.xyzx +mad r20.w, r8.w, l(0.350000024), l(0.650000) +min r20.w, r20.w, l(1.500000) +max r25.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) +min r25.xyz, r25.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) +add r8.w, -r20.w, r25.x +mad r8.w, cb0[187].x, r8.w, r20.w +mul r26.xyz, r8.wwww, r24.xyzx +mul r26.xyz, r26.xyzx, cb0[186].wwww +dp3 r8.w, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r20.xyz, r19.xyzx, r5.wwww, -r8.wwww +mad r20.xyz, r18.wwww, r20.xyzx, r8.wwww +mul r24.xyz, r24.xyzx, r25.yyyy +mad r23.yzw, r19.xxyz, cb0[198].yyyy, r23.yyyy +mad r20.xyz, r24.xyzx, r23.yzwy, r20.xyzx +mad r20.xyz, r20.xyzx, cb0[186].yyyy, -r26.xyzx +mad r20.xyz, r11.wwww, r20.xyzx, r26.xyzx +dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww +mad r22.xyz, r22.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww +mad_sat r8.w, r15.w, r16.w, r12.z +mad r23.yzw, r6.xxyz, cb0[186].zzzz, -r22.xxyz +mad r22.xyz, r8.wwww, r23.yzwy, r22.xyzx +mad r23.yzw, r4.xxyz, r6.wwww, -r22.xxyz +mad r22.xyz, r18.wwww, r23.yzwy, r22.xyzx +mad r23.yzw, r4.xxyz, r6.wwww, -r13.wwww +mad r23.yzw, r23.yyzw, l(0.000000, 1.200000, 1.200000, 1.200000), r13.wwww +mad r23.yzw, -r6.xxyz, cb0[186].zzzz, r23.yyzw +mad r21.xzw, r19.wwww, r23.yyzw, r21.xxzw +dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +max r12.z, r8.w, l(0.001000) +div r12.z, l(1.000000, 1.000000, 1.000000, 1.000000), r12.z +mul r8.w, r8.w, r12.z +max r8.w, r8.w, l(0.000000) +min r8.w, r8.w, l(1.500000) +mad r22.xyz, r22.xyzx, r8.wwww, -r21.xzwx +mad r21.xzw, r11.wwww, r22.xxyz, r21.xxzw +mad r8.w, -r15.w, r16.w, r18.w +mad r8.w, r11.w, r8.w, r19.w +add r12.z, l(1.000000), -cb0[186].z +mad r12.z, r8.w, r12.z, cb0[186].z +add r15.w, r15.y, l(-0.500000) +mad r22.y, r11.w, r15.w, l(0.500000) +dp3_sat r24.x, r3.xywx, r2.xyzx +mov r22.xz, cb0[6].xxzx +dp3 r15.w, r22.xyzx, r22.xyzx +max r15.w, r15.w, l(1.175494351E-38) +rsq r15.w, r15.w +mul r22.xyz, r15.wwww, r22.xyzx +add r22.xyz, r22.xyzx, r22.xyzx +mad r15.xyz, r15.xyzx, r11.wwww, r22.xyzx +add r15.w, r11.w, l(2.000000) +mad r15.xyz, r2.xyzx, r15.wwww, r15.xyzx +dp3 r15.w, r15.xyzx, r15.xyzx +rsq r15.w, r15.w +mul r15.xyz, r15.wwww, r15.xyzx +dp3 r15.x, r3.xywx, r15.xyzx +mul r15.y, r5.y, r5.y +mad r15.z, r15.x, r15.y, -r15.x +mad r15.x, r15.z, r15.x, l(1.000000) +mul r15.x, r15.x, r15.x +add r15.z, l(1.000000), -cb5[1].z +mad r15.z, r4.w, cb5[1].z, r15.z +mul r22.xyz, r20.xyzx, r21.xzwx +ne r15.w, r15.x, r15.y +div r15.x, r15.y, r15.x +movc r15.x, r15.w, r15.x, l(1.000000) +mad r15.y, r24.x, l(2.000000), r5.y +add r15.y, r15.y, l(0.000100) +div r15.y, l(0.500000), r15.y +mad r15.x, r15.x, r15.y, l(-0.0000610351562) +max r15.x, r15.x, l(0.000000) +min r15.x, r15.x, l(20.000000) +mul r15.xyw, r13.xyxz, r15.xxxx +mad r8.w, r8.w, l(0.500000), l(0.500000) +mul r8.w, r12.z, r8.w +mul r20.xyz, r8.wwww, r20.xyzx +mul r15.xyw, r15.xyxw, r20.xyxz +mul r15.xyw, r15.xyxw, cb0[199].wwww +mad r15.xyw, r22.xyxz, r15.zzzz, r15.xyxw +dp3 r8.w, r15.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r16.w, r8.w, l(-0.500000) +max r16.w, r16.w, l(0.000000) +min r16.w, r16.w, l(0.500000) +mov r20.y, l(0) +mov r20.xz, cb0[195].yyxy +mul r22.xyz, r20.xyzx, cb0[6].zxyz +mad r20.xyz, cb0[6].yzxy, r20.yzxy, -r22.xyzx +dp3 r18.w, r20.xyzx, r20.xyzx +rsq r18.w, r18.w +mul r20.xyz, r18.wwww, r20.xyzx +dp3 r18.w, r2.xyzx, r7.xyzx +add r22.xy, -|r18.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) +dp3 r16.x, r16.xyzx, r7.xyzx +add r16.y, -r11.w, l(1.000000) +add r10.x, -r3.z, r10.x +mad r2.w, r2.w, r10.x, r3.z +mul r26.y, r2.w, r2.w +mul r27.x, r24.x, r24.x +mul r27.z, r24.x, r27.x +mul r10.x, r26.y, r26.y +mul r26.z, r26.y, r10.x +mov r24.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r25.x, l(3.327070, 1.000000, 0.000000, 0.000000), r24.xyxx +dp2 r25.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r24.xzxx +mov r26.x, l(1.000000) +dp2 r10.x, r25.xyxx, r26.xyxx +mov r27.yw, l(0,9.044010,0,1.000000) +dp3 r28.x, l(3.596850, -1.367720, 1.000000, 0.000000), r27.xzwx +dp3 r28.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r27.xyzx +mov r29.x, l(5.565890) +mov r29.yz, r27.xxzx +dp3 r28.z, l(1.000000, 19.788601, -20.212299, 0.000000), r29.xyzx +dp3 r16.z, r28.xyzx, r26.xyzx +div r10.x, r10.x, r16.z +dp2 r25.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r24.xwxx +mov r27.x, l(1.296780) +mov r27.y, r24.x +dp2 r25.y, l(1.000000, -0.755907, 0.000000, 0.000000), r27.xyxx +dp2 r16.z, r25.xyxx, r26.xyxx +dp3 r28.x, l(2.923380, 59.418800, 1.000000, 0.000000), r27.yzwy +mov r27.xw, l(20.322500,0,0,121.563004) +dp3 r28.y, l(1.000000, -27.030199, 222.591995, 0.000000), r27.xyzx +dp3 r28.z, l(626.130005, 316.627014, 1.000000, 0.000000), r27.yzwy +dp3 r19.w, r28.xyzx, r26.xyzx +div r16.z, r16.z, r19.w +mad r23.yzw, r13.xxyz, r10.xxxx, r16.zzzz +add r10.x, r10.x, r16.z +mad r16.z, r16.w, r16.w, l(1.000000) +add r15.xyw, -r8.wwww, r15.xyxw +mad r15.xyw, r16.zzzz, r15.xyxw, r8.wwww +mad r16.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) +add r8.w, -r16.z, r16.w +add r16.z, -r16.z, r22.x +div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w +mul_sat r8.w, r8.w, r16.z +mad r16.z, r8.w, l(-2.000000), l(3.000000) +mul r8.w, r8.w, r8.w +mul r8.w, r8.w, r16.z +mul r24.yzw, r8.wwww, cb0[194].xxyz +mul r24.yzw, r24.yyzw, cb0[194].wwww +dp3 r8.w, r9.xyzx, r20.xyzx +add_sat r8.w, r8.w, l(1.000000) +min r5.z, r5.z, r8.w +min r5.z, r21.y, r5.z +mul r24.yzw, r5.zzzz, r24.yyzw +mad r25.xyw, r4.xyxz, r6.wwww, l(-0.250000, -0.250000, 0.000000, -0.250000) +mad r25.xyw, cb0[195].zzzz, r25.xyxw, l(0.250000, 0.250000, 0.000000, 0.250000) +dp3_sat r5.z, r20.xyzx, r7.xyzx +mul r20.xyz, r5.zzzz, r25.xywx +max r5.z, r17.y, r17.x +max r5.z, r17.z, r5.z +mul r5.z, r5.z, l(0.500000) +max r5.z, r5.z, l(1.000000) +div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z +mul r17.xyz, r5.zzzz, r17.xyzx +mad r19.xyz, r19.xyzx, r5.wwww, -r17.xyzx +mad r17.xyz, r11.wwww, r19.xyzx, r17.xyzx +dp3 r5.z, r18.xyzx, r7.xyzx +mul r5.w, r7.w, r5.z +mad r8.w, r16.x, l(0.500000), l(-1.000000) +mad r8.w, -r16.x, r8.w, l(0.500000) +mad r5.z, -r5.z, r7.w, r8.w +mad_sat r5.z, r11.w, r5.z, r5.w +mul r16.xzw, r5.zzzz, r17.xxyz +mad r5.z, r14.w, r11.w, r16.y +mul r5.z, r23.x, r5.z +mul r16.xzw, r5.zzzz, r16.xxzw +mul_sat r5.z, r22.y, l(5.00000048) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mul r16.xzw, r5.zzzz, r16.xxzw +mul r16.xzw, r17.wwww, r16.xxzw +add r5.z, r13.w, l(-0.100000) +mul_sat r5.z, r5.z, l(-16.666666) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mad r5.z, r5.z, r11.w, r16.y +mul r16.xzw, r5.zzzz, r16.xxzw +max r17.xyz, r10.yzwy, l(0.150000, 0.150000, 0.150000, 0.000000) +mul r16.xzw, r16.xxzw, r17.xxyz +mad r16.xzw, r24.yyzw, r20.xxyz, r16.xxzw +add r15.xyw, r15.xyxw, r16.xzxw +utof r5.zw, r12.xxxy +mul r16.xz, r5.zzwz, l(0.031250, 0.000000, 0.031250, 0.000000) +round_ni r16.xz, r16.xxzx +mad r7.w, r16.z, cb2[1].y, r16.x +mul r7.w, r7.w, l(8.000000) +ftoi r7.w, r7.w +mad r8.w, -cb0[85].y, cb2[2].w, v0.w +round_ni r8.w, r8.w +add r11.w, l(-1.000000), cb2[1].w +max r13.w, r8.w, l(0.000000) +min r11.w, r11.w, r13.w +mul r13.w, r11.w, l(8.000000) +ftoi r13.w, r13.w +mul r8.xyz, r8.xyzx, cb5[6].xyzx +mul r16.xzw, r9.wwww, cb5[12].xxyz +mul r16.xzw, r4.wwww, r16.xxzw +mad r8.xyz, r8.xyzx, cb5[1].wwww, r16.xzwx +mad r8.xyz, r8.xyzx, r15.zzzz, r15.xywx +dp3 r9.w, -r2.xyzx, r3.xywx +add r9.w, r9.w, r9.w +mad r15.xyw, r3.xyxw, -r9.wwww, -r2.xyxz +max r2.w, r2.w, l(0.001000) +log r2.w, r2.w +mad r2.w, r2.w, l(1.200000), l(5.000000) +sample_l_indexable(texturecube)(float,float,float,float) r15.xyw, r15.xywx, t17.xywz, s0, r2.w +add r2.w, -r10.x, l(1.000000) +div r2.w, r2.w, r10.x +mul r16.xzw, r2.wwww, r13.xxyz +mad r16.xzw, r16.xxzw, r23.yyzw, r23.yyzw +mul r15.xyw, r15.xyxw, r16.xzxw +mul r2.w, r25.z, cb0[186].w +mul r2.w, r12.z, r2.w +mul r15.xyw, r2.wwww, r15.xyxw +mad r8.xyz, r15.xywx, r14.xyzx, r8.xyzx +ge r2.w, r11.w, r8.w +iadd r8.w, r13.w, cb0[110].y +mad r9.w, r16.y, l(-0.250000), l(0.750000) +mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) +add r6.w, -r5.y, l(0.010000) +ge r5.x, r5.x, l(0.500000) +and r5.x, r5.x, l(0x3f800000) +mov r14.w, l(1.000000) +mov r15.xyw, r8.xyxz +mov r10.x, l(0) +loop + ilt r11.w, l(7), r10.x + breakc_nz r11.w + iadd r11.w, r7.w, r10.x + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx + iadd r12.z, r8.w, r10.x + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.z, r12.z, l(0), t0.xxxx + and r11.w, r11.w, r12.z + and r11.w, r2.w, r11.w + ishl r12.z, r10.x, l(5) + mov r16.xyz, r15.xywx + mov r13.w, r11.w + loop + breakc_z r13.w + firstbit_lo r16.w, r13.w + ishl r17.x, l(1), r16.w + xor r17.x, r13.w, r17.x + iadd r16.w, r12.z, r16.w + bfi r19.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) + ftou r17.y, cb3[r19.y + 6].w + ieq r17.y, r17.y, l(1) + if_nz r17.y + add r14.xyz, v2.xyzx, -cb3[r19.x + 6].xyzx + and r17.yzw, l(0, 0x0000ffff, 0x0000ffff, 0x0000ffff), cb3[r19.y + 6].xxzy + and r18.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r19.z + 6].yxzy + ushr r20.xyz, cb3[r19.y + 6].xzyx, l(16, 16, 16, 0) + ushr r22.yzw, cb3[r19.z + 6].yyxz, l(0, 16, 16, 16) + f16tof32 r17.yzw, r17.yyzw + f16tof32 r18.xyz, r18.xyzx + f16tof32 r20.xyz, r20.xyzx + f16tof32 r23.xyw, r22.zyzw + mov r25.xz, r17.yywy + mov r25.yw, r20.xxxz + dp4 r17.y, r14.xyzw, r25.xyzw + mov r20.x, r17.z + mov r20.z, r18.y + mov r20.w, r23.x + dp4 r17.z, r14.xyzw, r20.xyzw + mov r23.xz, r18.xxzx + dp4 r14.x, r14.xyzw, r23.xyzw + max r14.y, |r17.z|, |r17.y| + max r14.x, |r14.x|, r14.y + mad r14.y, cb3[r19.w + 6].x, l(0.500000), l(0.500000) + add r14.x, -r14.y, r14.x + mad r14.y, -cb3[r19.w + 6].x, l(0.500000), l(0.500000) + div_sat r14.x, r14.x, r14.y + add r14.x, -r14.x, l(1.000000) + mul r14.x, r14.x, r14.x + else + mov r14.x, l(1.000000) + endif + lt r14.y, r14.x, l(0.001000) + if_nz r14.y + mov r13.w, r17.x + continue + endif + ishl r14.y, r16.w, l(3) + lt r14.z, cb3[r14.y + 6].w, l(1.500000) + if_nz r14.z + bfi r14.z, l(29), l(3), r16.w, l(3) + ieq r17.y, l(16), cb3[r14.z + 6].w + add r17.z, cb0[198].z, cb3[r14.z + 6].z + lt r17.z, r17.z, l(0.500000) + or r17.y, r17.z, r17.y + if_z r17.y + bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) + ftou r16.w, cb3[r14.y + 6].w + and r16.w, r16.w, l(1) + ieq r17.w, r16.w, l(0) + not r17.w, r17.w + lt r18.x, l(0.000000), cb3[r17.y + 6].z + and r17.w, r17.w, r18.x + ieq r18.x, l(4), cb3[r14.z + 6].w + movc r18.y, r16.w, l(0), l(1.000000) + mad r18.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) + add r20.z, r18.z, -|cb3[r17.y + 6].x| + add r20.x, -r20.z, cb3[r17.y + 6].y + add r18.z, -|r20.z|, l(1.000000) + add r18.z, -|r20.x|, r18.z + max r18.z, r18.z, l(0.000488281250) + ge r19.y, cb3[r17.y + 6].x, l(0.000000) + movc r20.y, r19.y, r18.z, -r18.z + dp3 r18.z, r20.xyzx, r20.xyzx + rsq r18.z, r18.z + mul r20.xyz, r18.zzzz, r20.xyzx + add r18.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y + max r18.z, r18.z, l(0.100000) + and r19.y, r18.x, l(0x3f800000) + add r18.z, r18.z, -cb3[r19.z + 6].w + mad r18.z, r19.y, r18.z, cb3[r19.z + 6].w + add r22.yzw, -v2.xxyz, cb3[r19.x + 6].xxyz + dp3 r19.y, r22.zwyz, -r20.xyzx + lt r19.z, l(0.500000), cb3[r17.z + 6].z + and r19.z, r18.x, r19.z + and r19.z, r19.z, l(0x3f800000) + mul r19.z, r18.y, r19.z + mad r23.xyz, -r20.zxyz, r19.yyyy, -r22.yzwy + mad r22.yzw, r19.zzzz, r23.xxyz, r22.yyzw + dp3 r19.y, r22.yzwy, r22.yzwy + rsq r19.z, r19.y + mul r23.xyz, r19.zzzz, r22.yzwy + if_nz r17.w + mul r24.yzw, r20.zzxy, cb3[r17.y + 6].zzzz + mad r25.xyz, -r24.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000), r22.yzwy + mad r24.yzw, r24.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), r22.yyzw + dp3 r19.z, r25.xyzx, r25.xyzx + sqrt r19.z, r19.z + dp3 r20.w, r24.yzwy, r24.yzwy + sqrt r20.w, r20.w + mul r26.xyz, r20.xyzx, r23.xyzx + mad r26.xyz, r20.zxyz, r23.yzxy, -r26.xyzx + mul r27.xyz, r20.xyzx, r26.xyzx + mad r26.xyz, r26.zxyz, r20.yzxy, -r27.xyzx + dp3 r21.y, r26.xyzx, r26.xyzx + rsq r21.y, r21.y + mul r23.xyz, r21.yyyy, r26.xyzx + dp3 r21.y, r25.xyzx, r24.yzwy + mad r21.y, r19.z, r20.w, r21.y + mad r21.y, r21.y, l(0.500000), l(1.000000) + div r21.y, l(1.000000, 1.000000, 1.000000, 1.000000), r21.y + dp3 r23.w, r23.xyzx, r25.xyzx + div r19.z, r23.w, r19.z + dp3 r23.w, r23.xyzx, r24.yzwy + div r20.w, r23.w, r20.w + add r19.z, r19.z, r20.w + mul_sat r19.z, r19.z, l(0.500000) + mul r19.z, r19.z, r21.y + else + mov r19.z, l(1.000000) + endif + lt r20.w, r18.z, l(0.000000) + if_nz r20.w + mul r20.w, cb3[r19.x + 6].w, cb3[r19.x + 6].w + mul r20.w, r19.y, r20.w + mad r20.w, -r20.w, r20.w, l(1.000000) + max r20.w, r20.w, l(0.000000) + add r19.y, r19.y, l(1.000000) + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), r19.y + and r21.y, r17.w, l(0x3f800000) + add r23.w, -r19.y, r19.z + mad r19.y, r21.y, r23.w, r19.y + mul r20.w, r20.w, r20.w + mul r19.y, r19.y, r20.w + else + mul r24.yzw, r22.yyzw, cb3[r19.x + 6].wwww + dp3 r20.w, r24.yzwy, r24.yzwy + min r20.w, r20.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + log r20.w, r20.w + mul r18.z, r18.z, r20.w + exp r18.z, r18.z + mul r19.y, r18.z, r19.z + endif + dp3 r18.z, r23.yzxy, -r20.xyzx + add r18.z, r18.z, -cb3[r17.y + 6].z + mul_sat r18.z, r18.z, cb3[r17.y + 6].w + mad r18.z, r18.z, r18.z, l(-1.000000) + mad r18.y, r18.y, r18.z, l(1.000000) + mul r18.y, r18.y, r19.y + ftoi r18.z, cb3[r19.w + 6].w + not r17.w, r17.w + ige r19.y, r18.z, l(0) + and r17.w, r17.w, r19.y + if_nz r17.w + if_z r16.w + ishl r17.w, r18.z, l(2) + mul r20.xyz, v2.yyyy, cb6[r17.w + 33].xywx + mad r20.xyz, cb6[r17.w + 32].xywx, v2.xxxx, r20.xyzx + mad r20.xyz, cb6[r17.w + 34].xywx, v2.zzzz, r20.xyzx + add r20.xyz, r20.xyzx, cb6[r17.w + 35].xywx + div_sat r19.yz, r20.xxyx, r20.zzzz + mad r19.yz, r19.yyzy, cb6[r18.z + 0].zzwz, cb6[r18.z + 0].xxyx + else + ishl r17.w, r18.z, l(2) + dp3 r20.x, -r22.yzwy, cb6[r17.w + 32].xyzx + dp3 r20.y, -r22.yzwy, cb6[r17.w + 33].xyzx + dp3 r20.z, -r22.yzwy, cb6[r17.w + 34].xyzx + lt r17.w, |r20.x|, |r20.y| + and r17.w, r17.w, l(1) + dp2 r20.w, |r20.xyxx|, icb[r17.w + 0].xyxx + lt r20.w, r20.w, |r20.z| + movc r17.w, r20.w, l(2), r17.w + dp3 r20.w, r20.xyzx, icb[r17.w + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r17.w, l(31), l(1), r17.w, r20.w + ushr r20.w, r17.w, l(1) + dp3 r20.w, r20.xyzx, icb[r20.w + 0].xyzx + div r21.y, l(0.000244140625), cb6[r18.z + 0].w + add r21.y, -r21.y, l(0.500000) + utof r22.y, r17.w + ult r22.z, r17.w, l(2) + and r22.z, r22.z, l(2) + dp2 r20.x, r20.xzxx, icb[r22.z + 0].xzxx + mul r20.x, r20.x, icb[r17.w + 4].z + div r20.x, r20.x, |r20.w| + mad r20.x, r20.x, r21.y, r22.y + add r20.x, r20.x, l(0.500000) + mul_sat r25.x, r20.x, l(0.166666672) + iadd r20.x, l(-1), icb[r17.w + 4].y + dp2 r20.x, r20.yzyy, icb[r20.x + 0].xyxx + mul r17.w, r20.x, icb[r17.w + 4].w + div r17.w, r17.w, |r20.w| + mad_sat r25.y, -r17.w, r21.y, l(0.500000) + mad r19.yz, r25.xxyx, cb6[r18.z + 0].zzwz, cb6[r18.z + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.w, r19.yzyy, t18.yzwx, s0, l(0.000000) + mul r18.y, r17.w, r18.y + endif + mul r14.x, r14.x, r18.y + lt r17.w, l(0.000100), r14.x + if_nz r17.w + if_nz r18.x + add r17.w, l(1.000000), -cb3[r17.z + 6].w + dp3 r18.y, r11.xyzx, r23.xyzx + add_sat r18.y, r18.y, l(0.500000) + mad r18.z, r18.y, l(-2.000000), l(3.000000) + mul r18.y, r18.y, r18.y + mul r18.y, r18.y, r18.z + mad r17.w, r18.y, cb3[r17.z + 6].w, r17.w + mul r17.w, r17.w, cb3[r17.z + 6].x + mul r17.w, r14.x, r17.w + add r20.xyz, -r16.xyzx, cb3[r14.y + 6].xyzx + mad r20.xyz, r17.wwww, r20.xyzx, r16.xyzx + endif + if_z r18.x + dp3 r17.w, r7.xyzx, r23.xyzx + mov_sat r18.y, r17.w + if_nz cb3[r14.z + 6].w + if_z r16.w + ftoi r16.w, cb3[r14.z + 6].x + else + add r22.yzw, v2.xxyz, -cb3[r19.x + 6].xxyz + lt r24.yzw, |r22.zzww|, |r22.yyyz| + and r18.z, r24.z, r24.y + lt r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r22.yyzw + ushr r19.y, cb3[r17.y + 6].w, l(24) + ubfe r24.yz, l(0, 8, 8, 0), l(0, 16, 8, 0), cb3[r17.y + 6].wwww + movc r19.y, r22.y, r19.y, r24.y + and r17.y, l(255), cb3[r17.y + 6].w + movc r17.y, r22.z, r24.z, r17.y + ubfe r19.z, l(8), l(8), cb3[r14.z + 6].x + and r20.w, l(255), cb3[r14.z + 6].x + movc r19.z, r22.w, r19.z, r20.w + movc r17.y, r24.w, r17.y, r19.z + movc r17.y, r18.z, r19.y, r17.y + ilt r18.z, r17.y, l(80) + movc r16.w, r18.z, r17.y, l(-1) + endif + ige r17.y, r16.w, l(0) + if_nz r17.y + add r19.xyz, v2.xyzx, -cb3[r19.x + 6].xyzx + ishl r17.y, r16.w, l(2) + dp3 r18.z, r19.xyzx, r19.xyzx + max r18.z, r18.z, l(1.175494351E-38) + rsq r18.z, r18.z + mul r19.xyz, r18.zzzz, r19.xyzx + mad r19.xyz, -r19.xyzx, cb4[r16.w + 288].xxxx, v2.xyzx + mul r18.z, l(5.000000), cb4[r16.w + 288].y + mad r19.xyz, r11.xyzx, r18.zzzz, r19.xyzx + mul r25.xyzw, r19.yyyy, cb4[r17.y + 65].xyzw + mad r25.xyzw, cb4[r17.y + 64].xyzw, r19.xxxx, r25.xyzw + mad r25.xyzw, cb4[r17.y + 66].xyzw, r19.zzzz, r25.xyzw + add r25.xyzw, r25.xyzw, cb4[r17.y + 67].xyzw + div r19.xyz, r25.xyzx, r25.wwww + ge r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxyz + ge r24.yzw, r19.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000) + add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz + mad r19.xy, r19.xyxx, r25.xyxx, cb4[r16.w + 344].xyxx + mad r25.xy, r19.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r19.xy, r19.xyxx, cb4[400].zwzz, -r25.xyxx + add r26.xyzw, r19.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r19.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r19.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r19.xyxx + mul r30.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xy, -r26.xzxx, r26.xzxx, r25.zwzz + add r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r30.z, r31.x + mov r30.w, r19.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r19.y + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r29.w, r28.x + mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw + mad r19.xy, r25.xyxx, cb4[400].xyxx, r29.zwzz + mov r28.w, r29.y + mov r29.yw, r28.yyyz + mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy + mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz + mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw + mul r29.xyzw, r26.zwyz, r27.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r30.xyxx, t2.xxxx, s2, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.zwzz, t2.xxxx, s2, r19.z + mul r18.z, r18.z, r29.y + mad r17.y, r29.x, r17.y, r18.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r19.xyxx, t2.xxxx, s2, r19.z + mad r17.y, r29.z, r18.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.xyxx, t2.xxxx, s2, r19.z + mad r17.y, r29.w, r18.z, r17.y + mul r29.xyzw, r26.xyzw, r27.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r31.xyxx, t2.xxxx, s2, r19.z + mad r17.y, r29.x, r18.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r31.zwzz, t2.xxxx, s2, r19.z + mad r17.y, r29.y, r18.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.zwzz, t2.xxxx, s2, r19.z + mad r17.y, r29.z, r18.z, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r25.xyxx, t2.xxxx, s2, r19.z + mad r17.y, r29.w, r18.z, r17.y + or r22.yzw, r22.yyzw, r24.yyzw + or r18.z, r22.z, r22.y + or r18.z, r22.w, r18.z + and r19.x, r19.z, l(0x7fffffff) + ult r19.x, l(0x7f800000), r19.x + or r18.z, r18.z, r19.x + mul r19.x, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r25.zwzz, t2.xxxx, s2, r19.z + mad r17.y, r19.x, r19.y, r17.y + add r17.y, r17.y, l(-1.000000) + mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) + movc r16.w, r18.z, l(1.000000), r16.w + else + dp3 r17.y, r9.xyzx, r23.xyzx + add_sat r16.w, r17.y, l(1.000000) + endif + else + mov r16.w, l(1.000000) + endif + if_z cb3[r14.z + 6].w + mul r19.xyz, r14.xxxx, cb3[r14.y + 6].xyzx + add r17.y, l(1.000000), -cb3[r17.z + 6].y + max r18.z, r19.y, r19.x + max r18.z, r19.z, r18.z + mul r18.z, r9.w, r18.z + max r18.z, r18.z, l(1.000000) + div r18.z, l(1.000000, 1.000000, 1.000000, 1.000000), r18.z + mad r17.y, r18.z, cb3[r17.z + 6].y, r17.y + mul r19.xyz, r17.yyyy, cb3[r14.y + 6].xyzx + mul r17.y, l(0.250000), cb3[r17.z + 6].x + add_sat r18.z, r17.w, l(0.500000) + mad r20.w, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) + mad r17.y, r18.z, r20.w, r17.y + mul r19.xyz, r17.yyyy, r19.xyzx + mov r22.yzw, r21.xxzw + mov r24.yzw, r21.xxzw + mov r17.y, l(1.000000) + mov r18.z, l(0) + else + ieq r20.w, l(3), cb3[r14.z + 6].w + if_nz r20.w + mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) + add r20.w, -r25.x, r25.y + add r21.y, r22.x, -r25.x + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r20.w + mul_sat r20.w, r20.w, r21.y + mad r21.y, r20.w, l(-2.000000), l(3.000000) + mul r20.w, r20.w, r20.w + mul r20.w, r20.w, r21.y + mul r20.w, r16.w, r20.w + mul r14.x, r14.x, r20.w + mul r25.xyz, r23.zxyz, cb0[6].xyzx + mad r25.xyz, cb0[6].zxyz, r23.xyzx, -r25.xyzx + mul r26.xyz, r25.xyzx, cb0[6].zxyz + mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx + dp3 r20.w, r25.xyzx, r25.xyzx + rsq r20.w, r20.w + mul r25.xyz, r20.wwww, r25.xyzx + dp3_sat r18.y, r7.xyzx, -r25.xyzx + mad r22.yzw, cb3[r17.z + 6].yyyy, r4.xxyz, l(0.000000, 0.500000, 0.500000, 0.500000) + mov r24.yzw, l(0,0,0,0) + mov r17.y, l(1.000000) + mov r18.z, l(0) + else + ieq r20.w, l(1), cb3[r14.z + 6].w + if_nz r20.w + add r17.w, r17.w, cb3[r17.z + 6].x + max_sat r17.w, r17.w, l(-1.000000) + mul r18.y, r16.w, r17.w + mul r24.yzw, r6.xxyz, cb3[r17.z + 6].yyyy + mov r17.y, l(1.000000) + mov r18.z, l(0) + else + ieq r16.w, l(2), cb3[r14.z + 6].w + if_nz r16.w + add r17.w, l(0.050000), cb3[r17.z + 6].x + add r17.w, r3.z, -r17.w + mul_sat r17.w, r17.w, l(-10.000000) + mad r21.y, r17.w, l(-2.000000), l(3.000000) + mul r17.w, r17.w, r17.w + mul r17.w, r17.w, r21.y + add r21.y, l(1.000000), -cb3[r17.z + 6].z + mad r21.y, r5.x, cb3[r17.z + 6].z, r21.y + mul r17.y, r17.w, r21.y + else + mov r17.y, l(1.000000) + endif + and r18.z, r16.w, cb3[r17.z + 6].y + mov r24.yzw, l(0,0,0,0) + endif + and r22.yzw, r10.yyzw, r20.wwww + endif + mov r19.xyz, cb3[r14.y + 6].xyzx + endif + ine r14.y, l(3), cb3[r14.z + 6].w + if_nz r14.y + mad r14.y, r18.z, r6.w, r5.y + mad r23.xyz, r0.xyzx, r1.wwww, r23.xyzx + dp3 r14.z, r23.xyzx, r23.xyzx + rsq r14.z, r14.z + mul r23.xyz, r14.zzzz, r23.xyzx + dp3 r14.z, r3.xywx, r23.xyzx + mul r16.w, r14.y, r14.y + mad r17.z, r14.z, r16.w, -r14.z + mad r14.z, r17.z, r14.z, l(1.000000) + mul r14.z, r14.z, r14.z + ne r17.z, r14.z, r16.w + div r14.z, r16.w, r14.z + movc r14.z, r17.z, r14.z, l(1.000000) + mad r14.y, r24.x, l(2.000000), r14.y + add r14.y, r14.y, l(0.000100) + div r14.y, l(0.500000), r14.y + mad r14.y, r14.z, r14.y, l(-0.0000610351562) + max r14.y, r14.y, l(0.000000) + min r14.y, r14.y, l(20.000000) + mul r23.xyz, r13.xyzx, r14.yyyy + mul r17.yzw, r17.yyyy, r23.xxyz + mul r17.yzw, r17.yyzw, cb3[r19.w + 6].zzzz + else + mov r17.yzw, l(0,0,0,0) + endif + mul r14.xyz, r14.xxxx, r19.xyzx + add r19.xyz, r22.yzwy, -r24.yzwy + mad r19.xyz, r18.yyyy, r19.xyzx, r24.yzwy + mul r19.xyz, r14.xyzx, r19.xyzx + mul r14.xyz, r17.yzwy, r14.xyzx + mul r14.xyz, r18.yyyy, r14.xyzx + mad r14.xyz, r19.xyzx, r15.zzzz, r14.xyzx + add r16.xyz, r14.xyzx, r16.xyzx + endif + else + mov r18.x, l(0) + endif + movc r16.xyz, r18.xxxx, r20.xyzx, r16.xyzx + endif + endif + mov r13.w, r17.x + endloop + mov r15.xyw, r16.xyxz + iadd r10.x, r10.x, l(1) +endloop +lt r0.x, l(0.500000), cb5[3].x +if_nz r0.x + dp3 r0.x, r15.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r3.xyz, -r0.xxxx, r15.xywx + mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx + add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) + mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r3.xyz, r0.xyzx, cb5[3].yyyy + mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx + mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx + add r2.w, l(1.000000), -cb5[4].x + mov_sat r18.w, r18.w + add r3.x, -r18.w, l(1.000000) + add r3.y, -r2.w, l(1.000000) + add r2.w, -r2.w, r3.x + div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y + mul_sat r2.w, r2.w, r3.x + mad r3.x, r2.w, l(-2.000000), l(3.000000) + mul r2.w, r2.w, r2.w + mul r2.w, r2.w, r3.x + mul r3.xyz, r2.wwww, cb5[8].xyzx + mad r15.xyw, r3.xyxz, cb5[4].yyyy, r0.xyxz +endif +div r0.xyz, r15.xywx, cb0[109].xxxx +eq r2.w, l(1.000000), cb5[2].x +movc o0.w, r2.w, r4.w, l(1.000000) +lt r2.w, cb0[198].w, l(0.500000) +if_nz r2.w + mul r0.w, r0.w, r1.w + mad r1.w, v2.y, cb0[156].w, cb0[157].w + max r1.w, r1.w, l(0.010000) + mad r2.w, r0.w, cb0[154].w, -cb0[153].w + max r2.w, r2.w, l(0.000000) + mul r3.x, r1.w, l(-1.442695) + exp r3.x, r3.x + add r3.x, -r3.x, l(1.000000) + div r1.w, r3.x, r1.w + mad r3.x, v2.y, cb0[156].w, cb0[158].w + mul r3.x, r3.x, l(1.442695) + exp r3.x, r3.x + mul r1.w, r1.w, r3.x + mul r1.w, r1.w, -r2.w + mul r3.xyz, r1.wwww, cb0[155].xyzx + mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) + exp r3.xyz, r3.xyzx + dp3 r1.w, -r2.xyzx, cb0[154].xyzx + mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) + dp2 r3.w, r1.wwww, cb0[155].wwww + add r2.w, r2.w, -r3.w + lt r3.w, l(0.000000), cb0[163].z + if_nz r3.w + and r12.w, l(7), cb0[108].w + imad r4.xyz, r12.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.w, r4.y, r4.z, r4.x + imad r4.x, r4.z, r3.w, r4.y + imad r4.y, r3.w, r4.x, r4.z + imad r5.x, r4.x, r4.y, r3.w + dp3 r1.x, -r2.xyzx, -r1.xyzx + add r1.y, v2.y, -cb0[44].y + lt r1.z, l(5.960464478E-08), r1.x + div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x + and r1.x, r1.x, r1.z + mul r1.x, r1.x, cb0[163].w + div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r2.x, r1.z, r1.x + mad r2.y, r2.x, r1.y, cb0[44].y + mad r1.y, -r2.x, r1.y, r1.y + mul r2.x, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r2.z, r2.y, -cb0[159].x + mul r2.z, r2.z, cb0[159].z + max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r2.z, -r2.z + mul r2.z, r2.z, cb0[159].y + lt r3.w, l(5.960464478E-08), |r2.x| + exp r4.z, -r2.x + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r2.x + mad r2.x, -r2.x, l(0.240226507), l(0.693147182) + movc r2.x, r3.w, r4.z, r2.x + add r2.y, r2.y, -cb0[162].z + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[162].y + lt r3.w, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r3.w, r4.z, r1.y + mul r1.y, r1.y, r2.y + mad r1.y, r2.z, r2.x, r1.y + mad r1.x, -r1.x, r1.z, l(1.000000) + mul r1.x, r0.w, r1.x + mul r1.x, r1.x, r1.y + exp r1.x, -r1.x + min r1.x, r1.x, l(1.000000) + max r1.x, r1.x, cb0[161].w + mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r1.x, r1.y, r1.x + add r1.x, r1.z, r1.x + min r1.x, r1.x, l(1.000000) + imad r5.y, r4.y, r5.x, r4.x + ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) + utof r1.yz, r1.yyzy + mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz + mul r2.xy, r1.yzyy, cb0[165].xyxx + mad r1.y, v0.w, cb0[164].x, cb0[164].y + log r1.y, r1.y + mul r1.y, r1.y, cb0[164].z + div r2.z, r1.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t19.xyzw, s0, l(0.000000) + add r1.y, v0.w, -cb0[166].z + mul_sat r1.y, r1.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.xyz, r1.yyyy, cb0[161].xyzx + mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx + mul r1.x, r1.x, r4.w + else + add r1.y, v2.y, -cb0[44].y + mul r1.z, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r1.z| + exp r4.y, -r1.z + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r1.z + mad r1.z, -r1.z, l(0.240226507), l(0.693147182) + movc r1.z, r4.x, r4.y, r1.z + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r1.z, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r1.x, r0.w, l(1.000000) + add r0.w, -r1.x, l(1.000000) + mul r2.xyz, r0.wwww, cb0[161].xyzx + endif + mul r4.xyz, r1.xxxx, r3.xyzx + mad r0.w, r1.w, r1.w, l(1.000000) + mul r0.w, r0.w, l(0.0596831031) + mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz + mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) + mul r3.w, r2.w, l(12.566371) + sqrt r2.w, r2.w + mul r2.w, r2.w, r3.w + max r2.w, r2.w, l(0.001000) + div r0.w, r0.w, r2.w + mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw + mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) + add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r1.yzw, r1.yyzw, r3.xxyz + mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx + mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx +else + mov o0.xyz, r0.xyzx +endif +mov o1.z, l(1.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD3FA93FC.cso b/src/games/endfield/deferred-lighting/0xD3FA93FC.cso index f7740c34d15134b0d10688be39dd46600384e9ce..243a01365cc91d14d04cc1c82dfd8ed16b50d32b 100644 GIT binary patch delta 86 zcmZ4SpJ~Q#CMlN)C+F>Ly$VxT^hN7!C@kH7E_V(i0|Ud1y%VJtao*U&zz_iBnQc5O gy@%V_c(WZ8Pky~el{+m>%^r#;OYha39I`(I0N42;6#xJL delta 558 zcmbR7n`y;=CMlN)CuiGl;Z;s&4Kn?{=)C5%e-O{ez`(F#|3s-poG=1e;%p8R@`Dz~w*u{{(|mfowWBEZ1F)x;pczzo#k#w5VN4y2hJ7#QZST4e{r zlkZeW)Poc-0wow28th@3Sb;o{CJ@c!z`$@}bEI9QxVim|yOV8!LO^37hO+_LAaxu- zn#loEorMAeJIE0r%dLPk$UKN$C!9k*hEmU88I+$g5*JLm=8fdhWQ*M4m6*u PNC6n=3=EU~_j&>V8n{|b diff --git a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm index 7ead2ae6b..2ab496bfc 100644 --- a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm @@ -1577,60 +1577,23 @@ if_z cb13[12].y ret endif -// === Custom Hue-Preserving Fog Blend === -// FOG_INTENSITY = 0.7, HUE_PRESERVATION = 0.6 +// === Simplified Fog Modification (Anti-Banding) === // r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter (0-255) // Normalize colors to 0-1 range mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 -// Reduce fog intensity: transmittance = lerp(transmittance, 1, 0.3) +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density add r7.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r7.xyz, r7.xyzx, l(0.300000, 0.300000, 0.300000, 0.000000), r4.xyzx // adjusted transmittance +mad r7.xyz, r7.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx -// fogColor *= FOG_INTENSITY (0.7) -mul r6.xyz, r6.xyzx, l(0.700000, 0.700000, 0.700000, 0.000000) +// Reduce fog inscatter intensity +mul r6.xyz, r6.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) -// Standard fog blend: foggedScene = sceneColor * transmittance + fogColor +// Standard fog blend with reduced intensity mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx -// Calculate fog amount: fogAmount = 1 - avg(transmittance) -dp3 r3.w, r7.xyzx, l(0.333333, 0.333333, 0.333333, 0.000000) -add r3.w, -r3.w, l(1.000000) - -// Scene luminance (BT.709) -dp3 r5.w, r5.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) - -// Fogged luminance -dp3 r6.w, r8.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) - -// lumaWeight = saturate(sceneLuma * 100) for smooth falloff -mul_sat r7.w, r5.w, l(100.000000) - -// Safe luma for division -max r5.w, r5.w, l(0.0001) - -// sceneRatios = sceneColor / safeLuma -div r9.xyz, r5.xyzx, r5.wwww - -// Clamp ratios to prevent artifacts -max r9.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r9.xyz, r9.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000) - -// huePreserved = sceneRatios * foggedLuma -mul r9.xyz, r9.xyzx, r6.wwww - -// preserveAmount = HUE_PRESERVATION * saturate(1 - fogAmount*0.5) * lumaWeight -mul r5.w, r3.w, l(0.500000) -add_sat r5.w, -r5.w, l(1.000000) -mul r5.w, r5.w, l(0.600000) // HUE_PRESERVATION -mul r5.w, r5.w, r7.w - -// foggedScene = lerp(foggedScene, huePreserved, preserveAmount) -add r9.xyz, r9.xyzx, -r8.xyzx -mad r8.xyz, r5.wwww, r9.xyzx, r8.xyzx - // Output: scale back to 0-255 range mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.cso b/src/games/endfield/deferred-lighting/0xD5B102A4.cso new file mode 100644 index 0000000000000000000000000000000000000000..b4458e5229bcb17f80a3b10224da68d383598d06 GIT binary patch literal 38580 zcmchgZIES0dEd{Rkw!DKE3_JfEG>?GYj8+1;DVhcAV%!Y*^x8|q(lm^8}Nt7Q5hvp z6cCFHj*QIJU^WN`utO|cHX$Ie?2?j7MR5gJQr51|zM-_!l?+qd`5NFu3p)j54mKkqO7bf0tYow@#@nbrES;t%6{^q}UtNLEYqK<2H(7*?mc9|}&PnU6KJm9)` z`>ES*eee5!@a`Xc?|Zs;-0;rpZn@=c*LROT`sgjpyy2by{inJPeeV6!UH3N@ySaCD-9_7<90lor(fM7A=|1G^WH|a?3_Rl_qrSgL z_Z)^_s%wt#!_4nLq^rp_ygd$IU&HhJ785?a9)jgviI)3!UX|{lKY4O;50CmDKJ`7c zaX%z_^seCx&HW|KJ^l^+Kbz>6e4q7MZtf2>_XnGM{8ICKiSIMN%bI&UP~%_T+^;nE zFKzCxXzpLu++XSYEdM*2`>UG!tDF17`Thq+-9_t%QoM-K?T5N~?zw)q^5EG~g8g+( z2V{JwQfR$PW80bT^%~pCV{?O$)V{at?%(aY@pUI()}0m%e%s5L?ne)G=-1+q6EzMx zuWPCyFJQUv2LZZ{Ge@+3pc|h}2iGF(x&u2|c0VvO-b@GAlGPm=-=`klYKyDFB@Z_= zenLGuCws=5N4oA3^E#aIZ0n!ux@B}EXT>x4^@DCMYzKBT-l@4m<0k}1c0cG;TGH_i z*>3Zs?+2Y48}itc-KtlY)cQdCjC@ZozDsY*`agGBip#=Wg3+UoqEu|%?vqd4U$0o( z5Asv^2zig`8d~$*UQBeSa=suN-_V4=Xg@4mk;Wd*_3UkeJLb%J>)j8!={n9F(fWaI zI_4T!hBvee7bUy;K{u189OyQ!19%U=B;nUO+}L%W*cEf~7kkMIbOHZ?_b0nuBb^80 zx%8}XsZFOYPB{d=Yjw`&WpL{8tAw-QG3f%md~g9Ca~A)i%XZdTmy3m89<#ic3#dAE z$!YUeERhQjdVFBp$Z5vb#v`3m?xTa@9tXCZafv^=%)%oV)*3tw6?vvLU--xmiz}kR ze*1JI>!UoPEj^v#3riFKF5Eu~AZx2?(E>bJ56l}N+&1|4_kp@(+8h=)w<`9Vf2bc#EEswyoi%w!~q`WMGs7MDSQfD z_SwdA_Sqk4?7O>*=D`L2)~@@cb9!B4tclcc{IIQ>OnoP(xi^nHb-g0i^3$Se`ay$D z9n$(VCtaex!M7iDnzWd63qLlBk*9S=FY*IiwIyP}_2H@}E6=9tvvFik88;8*`Lf~t zAVx*MR8NgZ&J$PG|Lyq+pNBQKk#9Kr0ph@%SjhhTkGj55bzy5R)dkA~5Bvu{l!t`}a1d6o*9P)}Den*cUJ$ub)HcUDW=(8ex zY^mvVdoJlS4CrH-#&JIjru+zg;<0Srn)9)CYpf$)hpX60hp1<@?&jfI0nL7XS;=$3 zvFHa8G)=yX{Sf(-ecmxYYWaur9%EiO*vOm%_qU$9`Ek$L3-VF1C9fX-_(j89OzuFHvMI+}^JN3~~T>N{Tkq<60aLzinfingl)vl;1$hV$#J|E3-0*>zV=zhl? zcObXW3Kp?2oLqH|T$l%=C!}BG2s*$Qob11Ish{MC>FeG(QjZbeY*XY`4NLxh>X_|m zVWIB~Tdf=Vw*F)uVXte4E~BoKbBwu1mh_EU#I^Pd3AQup=5 z`Di}ESzgcdXVin+4?0O6zK<)Nyp|$wZCc*Oo11-F_&(z-+?Ccn)-?1cZopS$7IV}# zB%Q~b%+c46x{L7vwqqN9R9jljW5(6Kq|}*bgkax6XW!X3-ot>Wwsd>uwV)Wp`m!_O z^=cu=-Xc%-##)#4Dc9usR_0^7ESJ1;9MShHPu+aXI{d!)OVuoRcHrgDu;_%N@H=P`HyBVR1fu;j<-+TYR}7h79c#XD*`aTR{V1Yg-Fju$%Y zNS}Y>qdT=6Mm%t7e?>tDL&n69T_;G6fXSeWOBlxL^K3qQCf+>^(sORroi zd-13fyl3!yr3Z)HG7s?K^?>#Tz=RVvL+AadW!1gs5M%g;KI_kWte6Wm44aUN3~Cy% zGkQLxXO7hI1V=6W1KhEJ|4;t$hhkr_m1W`=aDe?zchB{X3p{F=ZqFtCQq6Dajceb- z(_`3|b&9o!YmLR+nb&pVd)E_Qi!wZDfPHHBhu$Q#DcTbn058$T`+%5Z_&tqv8`L)1 z*K`mwd<5Kk3&z3y*#{pyPJiv!UPFzG_YSq+Jjb>( zopgvfk8aF6%+ZT=)?P1c(A^@*Bp*oY#6;- z=va^S1H&D2(+BsL>}FrFR|9`Rw$SS+@#eV=JNu#Q-gy3&6E}bGGh4ci_80Oq6?3Bd z%A^kCL+6WggWUbQ-&lLI-uYZmo0a3s)}~5k7WTeu>(IE*`T_;06DrXY#f6_C6N>ga2DkJ#`HH zU14LxsY??+??P>-VUD%Xia)6X_@Ezjy71lVA~A=LV=esfD`RR?d>HG8c&0t8=i0Nn zjixniCf=NU!;#VO|7GY3AM4*2XkeYw`CLEfTpBr$);;TrP4IA!e_9y!WE)~Ga4r9Y zZTJ!S_=SCxX-#9k0tYR4o2p1_uW?-g%?_iBcj=W@P> zH*~}T7rG&#-V5KQ1fQVhemC&k`X@i zymP%Yyx|}97{1oI)?t=iwgFhn(=ckVVT_TFMQ#NvV*@74jxqLoANS>_Za!Y;f$5Q9 zd%c&zCdU!^#*yBOH4L2k8QeCT)_i~UfBYhQ$lA|Q4_pU$57zpGy|ZtO)}p4Y&VY&M zlua$Y`CwBEJDm9eo5h>YYUIoEepI}s;s)Gtajw_-YuT2gx?XhPnKgWrdt%+{mvbYY zky{u#KbG|`YejxuWnBdy{>UaqjA0{V=*6>iyZ$lpeldnnN1|I=9p`Nn)O z4|?_i&fU6ROyytJqlOa$>dA_xD)w83dD@4Q`Pao~fk*Ugx-Nb2LoXg`8~KQv^B)~W z|A#v3Wn_uHa|M4vD?TMRQ$BPX_zjrs-;=I+-&K5gK7R+OAH*QuThXT`A6{B~eK7f~ zA2P6X2Z&d4}OQ#!XzeYEjk$A>mNDi_aVTm z*u?v0#?~qu>udbAlJ$pgO^@A%nWy|3pGAS!4?0E8`Ppr}S@Twm5AKR5zSO(7nCtl4 z-z&l2{%jl@>Sq9ApxDRrFZ9pcopNN>GXQ!10_22zvFch`(AKhe-XN~CWXWIg{Vnjl zw}0+aBd~+7ba~0MnV;eP0JQAuxf?_?r4Rcy$DBM+i_i327YuXk6Ape)&&%QC>K&lI zuUP6Rz69?1z&i!*$y<8Gw0x%FIM;EMZm~xo=9aHM^hZDCUVK+8U8nc&T?e;#}kVyCmd0dD+7I zL4ZkK#*JvE@=}B4y)k(cd9O3QVYN)#s(2J%GgjlUuWo%^=W_)sJ~#ZP88zR}XUK4V zB>ZkedKOt;H{9>He!$D~#rW-hiM0wlSF%5zRL{EeK#nu`z=$sa z{{K&&Ick4}KeH_Agki*n+`?{fq*LsJ=5?*ugkQKW`(eeN_@Vo0U9sn8KMXCg47$7@ z=KC;yW~Dx0Kl@m0r6=b21{%iT;X0eY6BBDYaE+Hb0L=JvgKqNs0`tNq_#@A}>810f z_&dgOe!$DQLZ0cm$l+dX312}2KXhzyoD1OegHAJY0T{Vp`PL1;1H+%S9LDAboto#* zmfn1bX$v!N@hH6Iw-VFCl@E|_|Cy)hMH4!TPaUtqC+Vs0=2beFhMricMb422@TG^2 zb=)66Oy;6x>b+w8Mgtk}ou|)s5kK3=wQ%G8qH&|oxPKt{#zfb! zGh&@(f?H(DS34OO`_P*{q~BM?^xGz4I`H<*JFw2aMrxRu@9{qu%CJG z!N=+OF6d2Ko3^q%lr>7j{qB9azTC$|5<0p5`6>3pu~&4->`YGK$0 zKXh+l@K%15T!OxpZy$+8H8%Ex zPHNZx(xDUSYP_i!OzHQV>vs(Azx9caO;^;`P*PU!coM_(Geh#Pp;kLM2b z`}LPUHZXR(I54)5@!+?mG24s0m)!E%6TkV`=fyYW0r=#|j?R&nq7B>BW1Fsv-OK~* zrw3QGQ+ECEhrd{C5;)$k;&!kg%u z@g0lS*S~nxwZp&tM}KR}zUDV`*@ugNFZ1h%uKSU{|4@!s*KLjdWUGw@^#A7AzkcEq zKmAv(LmS7U_3_(2_MO*n-TGPKr2MlyeC(Wpw)L@L_ANfa|IG2Hb&Vev^jZ6y`m!!$ z91RuTrgN<7nu~AY>6-h>d(&_Dj);CsFxuSEb?;sI$j0G}>)*uz6Gqfuu4O~i&X^Cf zhq|Ix_%L^A?q$b;(;CC~*blyHRPX?=<|oQnqhmb(7J-@(_o9UdH4=W|$DL8s3EZAEA6!hRlp7wHgo$!};J7kcmUob&YfN3p$zcPl%hu3^+L>*N@jr(lbQd5rg0 z)GpDi+d|n&Ra@b@2=<&Py zlBdEexyc->@y*Nn*;k$;+^fajnrrD0e7QC)cB5m4PxUp7`3a7DVAx&L8HUWAiLN0N zA6TYs&$%3M>;nGHm;YM)HsF6A_{^_hJA9n;;NS!9!Tp=>J`_HjQS z8D?1@eEh?)Kdxj<>5^+|)Dd!1>t?{IiT$8c)ZEG5So%)pRG!=59XWX2F&|K|{=x%4 ztVrkV*Wg|Iv+`G&3#MJjbmS^DjtBhfeBxfZmmIBf3{dE>E?%t5SLWaB6D##}FFjt}Uwb?oT}ow^@ZE=`U!Hr7YiljFwf zw|ZORL9;LT?KCxw&&bG)Y*+l=dRI*NI}FfZ$1{ozzS@iC`Fvp6o-g>0X1{XnG0!*q z4!QV;`QW~W)qVw6{)*pcWcYnq<@6qmLOtPF4nuigi3E%iG+p_ubeUk8R{%(T5 zbHZ3{SFu_CuwCHHngitXMS_vfv9J67={Z3CwtmjbWOI72M6STQ$dnJcUy*C%r{c$c z&|uSe$Nxs{6>rbJ?1u(Hw+r`;V(>1V*`HFY@K5b;>*v2Gfi2jCziG9 zYjV3954dUI)57-Ct%Xf&8lUBJFXtVx1twcABi=FBKLkkN=#mQe&-TP6;pGGcfA)vmeC&efJ;xi5t#d z%Q%hi@Q{l%&k5&lJ;of^`NrF~X5mY>vi~-ZG-oEiFR1-c>#xs-j{86!al}``k2Mi{ z&)hfCS&q?Be}@IX81_{VavcjAy`Rl%W7KNK6xX7s=3>lM#+R#W-R@CGzy7P&jP`&o8ZkJi@}PPM1|di?HsHmr;1k*#cp>?ypnuY4Jy(<8hoU#NF4kIR9JIk>X9P&Ub?>?p znvc{G!|4^Dc)qf{mPULc$H8Uqur-(V!jDyapy6+lU9R5WG0Q$-q`bqI-NB2zucqI>V@vOf5?5t08a!7WWxa%!wZ^%^J$qjK#5H~bhVSqTW8Ne1Jwfi(!bbdh zp^cAdjY_TdF*bsajnO}kjWupRz|Z#4?{6ct?E7sa_qLJiue$c6D_`&nVIh*$! zv38>4nfpdT6?^}WPv+)c^*m^rwUaTgoxQG=S5b2rm;cMPZl~5FaMOJI`mWbb#?W;F z>&UUGcVYKw0N#oA)}SS)+jmn!IZi#<%KXfi`3&xnTr;>fEb$y~QqPUo<_G(Re$c6@ z-TlB&tUt{Cse1lW4LG-W2Bp>Y+;Doyi+YZYvuHFHH5A->-aRI}%m-TPIrp>bx&0-( zgV)60lkf0QcCBB8_65{>>tX)LL-(UqY=FVfILs^P!1EZo%&PTQ z2r}?fb_s>`B!9fq(KMzf=gPK2uUq9$ZZNFL%J~51bZ~0N{YutVi;ftt0&{FFi zf9_oexyBw~%B>~W9BRDju(hrE_}9Mc2i>UQ<8(Ehd#7_euob#}d>yt1&bL`>p{3^A zR_<*p*UOEq)K6>!=4UVNXVrdU-w!&y2;ZXzwZGQKevb7(vVhgH8JF+pjwqK`r7!-^ z^QqLLW)B{I%g-$F?9vY+QjM#Qt{-%_M-9S$;uAb}M&Lya(tL_~gO2^6Q$s(iUYQrY z>s75=O(U66V>0gLC0DAyS@t{P(+@f|vipG{e?CB;-r>N*^6Yo+kIJ7l%z6TAYbCL^ zKd6<=g;}-I@o}vLEyZeft@K**I_a_{J*lmpfArR~hM}kFT;IU+81iP-H|U;pOjTd5 z)O}muG!lC_{AApI(2d%Dwab2ueh=P?edJ}0+YfLa>+GY%_M8Ad%03lZ=7!_Jz2`I6 z_zalm)QYZ|zowg2yYStGw(ecKz;`ZCyJq>(w$`})Ai`oN_U>;hwA3!!%DrvndbzRH zwF_8XKkC{A4Bg3ve$eSf=z|{Au38`a*|iH;Et_$0m>2W9-cXNh;#9Ah)VK9f!mG#A z+?l-l5$WQJXt6{2UY-xlPs1^f)W>|FH;lQ09+?(Uo}1mK^5p-=9(!>;%kKxI(^8${ z3Li+v*vI3eE0yQydVXi5bJzW@4*SwRq|ZKzzm3Q}Ja)4jen$n5=l;$}=Lrvd2rlse zo_L%)P7UE+EuQlnSNad+yxC93^TPYT)zLg&sE*Ei`WK?(@4W~e9WTe?1D_g+y6eot zI+A0xADNrAAGx+}-aF}cY0K~@4$tJzWcoojP1AfRIgK3f;ZN^(NszE+?JA-8?DE-$ zFLjC-w)Osq)^l)`|6M<%&wKgI*N1d1&t&{An7rbh@WZO9(D?7~0NY9uBB#J1m*{I9 zr9;8vyHnWU{-zo4kEwU?g-^=SaeTLICyyb62HvW!sU3Mfbg$K=d>r!nJbv`(rw4K# ze)IWnf&=@m3J)Kf554j|;)K0ToXWGCK%v8K=54>!dZ8<_^b9$7r4I3pIff5-=0_)T zgZmfjC(XG7_=#qp@XkNksTx>a3%9(xHg59Shp)@Ni{ECD+t@sfGrra~0W*G`d-egJ z6@bHUUzwY2?n#dW#wDN7mEYFV<0t+3b}IW3nEkRW z9DEDiiQB$%{OTF`*2YBW_waBJ%FmEEhZMKj&4Qcaj%>tDXG`Jn>gQ zbltyr&rck$59wX<7`z%^zAf)MsZ#;V{s4x4_~ez!F<@sZ*iMGMK0lK@nPJQaV1C~r zvhW-80h{YsU}K#V*g2oab~8W6xAqtF5dPJC2wxDR{d{4c;VWt?S>F%gv(1;U-E&q) z^!Ay+WnP)DeTF^wEM#U~?KAAcXTWNotqL#flh1(JXRTi1)AhsNdJz-!3E4UJ$aYL- z>E)Qr(hC^xK8WRhda)Mu!)(3a5#JM@p%*ddJ9T^M#b=tc^nwn3X6O~R5b<_>?aF7n+lVpzkrB+opFVTKi+#D(0$R~6mzLmC72+<`P-`aw5p$fUPk z@HY?gx8{%k@Gt!FBQVq92Viv_s_ik%-&-^cdFF|aEsy;ohiol1j=ep$`@0OfEHHGk zUo;-yZ$PJd4BoVsC-&~e6PV-ox+*pv+lwbQ?Zp$A>EVeF_RzC@mqxb7^8j(h4=?mP z%jAghAKv3T%R(t~l0D9zJPS7V{K^H_g# zw0y=T)FRjZ5RZbdxe$AOY6*J|dj6gRyl5vRdsi|UcMaBMk*%DF{oT9<{SFpdd;)Ey zqj|(?7t_PkqTD`-vPlEm+K_JpUK64(}Ddw2$vT<8SgDyng7qKYsFE$KP

    bEz6D^7=u5rg<+guknhe?Bj_8c7TUGVwdo`*gGA` zesFE&??yUyemdkqC2_J7p;C)9^eX4r~u%#Dnj`izIZ_Q_SkV=eUBtGdSjAPE~7 zGahy?XFTQ=G_l{#Jg4HTxyGCWkNDPjQ}M0vh;NNI72k{}mSO)Dy1@Pu>i4o=b3NX1 zXWa7c4jF3k9X#zJT0UpssoaSCwC(1V@#7sh^#oo=vY)TibwB9TG~>NN&z{7?`hXA2 z_wYU{ogItA85f^}Q^Uwf#vBi=6Tv%tk@Z>-4)H?<f_QR_mbZQ#w46@)S+K73+4j;TK+vG8N(c8geH|O?yBCc2TSrC5d}FVMozw{OjlP9}18-nzvCgm; z2VZ&yjDB5q?Pv@bJQ;J3-i!;U)Jw)(hjJgW1&`VVuNv-}xv9&(x4w??T@tb5^P)BVyx^HDXk7@sO0ls{8ne)Z@(GOxi z`3x{_`XRch_i~~=(9(L3OpWt3bwITt_S@v2^{Cgd8}*L0@6$V0=40e*t}VP{1()|+ z^XjmlhK((*WQL7(9GR2&j`-jU^jTIGdFMFgIWU-)*pzu~zQ#fJ zN|t4M*YtD=F=;oM_4JXi}@BjD-%<^NXGnmxDDz@T9*SFGY$ zyrwhkO2NEef**Am+2kHJ5NG$SGlroTIQ9>C*k02ek=ws2Jo2s|bZQ!ZHvl^D>|@L7 zhXz@xWtImbGS^bQox*gAr;pWxN9`hh@S%~<&^RxtNrowY zQIo(+ewh4CZpMf&E&FJyCe8AdP={K!=`CCEqL*P=E`O&b))eF!wqH%cCh88&b3;6) z>JB(<-JwosZpOaMzN8-cZ-U;X>lPk-J~|Razr)u-T|mcqUB9*ZJ(>Ml|Go(ve}L!!8X5OajlDwa-DC0_jlZu= z>j!Pv?zlP*-A2#YZGZBfH*qjVFWMzyNFx_$(ldJEMgwPc5147d!FM#%8D@T#H7}eN zW*TuQ`b@FPd-grV8(DLMPTlyZWvHgbewxvK&}r)XjOqWM zGOE}`?sIM0wak-TwciYLo_s<0$guo=&_E*tpHMG6U)U>|k7Xzy`14t}6-b;I8^-264)7b;lr1#cEl<%u9kCUcM&ftz@ZkK(`kbdL|$;RTPDm&C_Ba6E%& zo`9H@ED@+&q$ z!<@=7EIs40FXG3w`P1VE$tks`2-FwA4- z?|cVOu)?4BX)TRqX>RXXuRbq6dZ%Hd~Bq1x>k3AoV83_ z!|XHbzn^}ukY88D1OGrrgO2;d`TnGa9?I8z4hyUwbW%$csXwLl-+275M4Do9Sv%Gb zK)P-m?oNF_Xdv47tb5|w(t54`1tIw}Vdlkp*7>~NA<(vSz4>`vi_gK;tf_2_`G5_c zk6+Za=MmShksZdj50KH0xlTf(+7mUc_M72f5S-`Jt+~nf7cbHndnE9AwNFCJ$JuFL-D<%kdxmZ^n*sj?cF%_@viIOv)P9{ z57BrB4P8IzG}YpJy~Q8(Tu8dd9E&|Ab{2j+qu>&Gue>{*<>3eL$p6qY`(>}W2+m4u z6DIp3?53tDj>R{u(Zp>h$KJkiT)h6Zab3>2^N{E@e=o?veh?tqw|1*O_6*c6=MwV8 ztLS5S=u_9YS|2~F)bQlfZ|%B%XISv%+BViS)&ZH`^WwL}YkbuCq@h?Bs9(f@@e>TD z7PX6U$C&HPBi38fQ8O}qP%?Mz_nIfP?Rs0`Mf_V{hzAG#Z5O_k--@me>E3<-Pcjp) z=~%}4Qp3@w>n6U#?Yh<~X!z~=H8eLv{bH0ihp-iNR2Iv0NQa3fEuxw+S~Jh=ltzS>Za zt;qd%m%Zi0OoH)^yKdGnc<~)IKNlG0Jmy~cwA|Xq`zLY>IN!CVNp`{W zSU&)v+28ct0pf=YKSy)j4?0afiw4h2EZaQ&nFezYJ~ZCj(dt~mX4f9Q6A8bmi@!I) z`^kek{Cy7KYM~d`){Fe>2b~(dh$FHyZuHU*4(s*&co$=tCskapC?SJ=`@d literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm new file mode 100644 index 000000000..c203b31c3 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm @@ -0,0 +1,1283 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 22:30:13 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[5], immediateIndexed +dcl_constantbuffer CB4[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 23 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t24.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t25.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r2.xyw, r1.wwww, r3.xyxz +utof r4.xy, r0.xyxx +mul r4.zw, v0.xxxy, cb0[82].zzzw +mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r5.zw, r5.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.yyyy, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw +mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r3.w, r5.y, cb0[1].z +mad r3.w, cb0[0].z, r5.x, r3.w +mad r3.w, cb0[2].z, r5.z, r3.w +add r3.w, r3.w, cb0[3].z +eq r6.x, l(0.000000), cb0[86].w +add r6.yzw, -r5.xxyz, cb0[44].xxyz +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r6.xyz, r6.xxxx, r6.yzwy, r7.xyzx +dp3 r6.w, r6.xyzx, r6.xyzx +max r7.w, r6.w, l(9.999999939E-09) +rsq r7.w, r7.w +mul r8.xyz, r6.xyzx, r7.wwww +mul r6.w, r6.w, r7.w +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r9.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x +else + mov r9.xy, l(1.000000,1.000000,0,0) +endif +lt r9.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy +if_nz r9.z + add r9.z, |r2.y|, |r2.x| + add r9.z, |r2.w|, r9.z + div r9.z, l(1.000000, 1.000000, 1.000000, 1.000000), r9.z + mul r10.xyz, |r2.xywx|, r9.zzzz + mul r11.xyz, r5.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r9.z, r11.xyzx, t9.yzxw, s2, l(0.000000) + mul r11.xyzw, r10.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) + add r10.xyw, r11.zwzz, r11.xxxy + mad r10.xyz, r10.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r10.xywx + mad r10.w, r9.z, l(2.000000), l(-1.000000) + mul r10.xyz, r10.wwww, r10.xyzx + mov r10.w, |r2.y| + add r10.w, r10.w, l(-0.700000) + mul_sat r10.w, r10.w, l(4.000000) + mad r11.x, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r11.x + add r11.x, -cb0[229].z, cb0[229].y + mad r10.w, r10.w, r11.x, cb0[229].z + mul r10.xyz, r10.wwww, r10.xyzx +else + mov r10.xyz, l(0,0,0,0) + mov r9.z, l(0) +endif +mad r10.w, -r3.y, r1.w, l(-0.200000) +if_nz r9.w + mul r11.xyz, r2.xywx, cb0[233].zzzz + mul r12.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r11.xyz, r11.xyzx, cb0[225].xxxx, r12.xyzx + max r9.w, -r2.y, l(0.000000) + min r9.w, r9.w, l(0.900000) + add r9.w, -r9.w, l(1.000000) + mul_sat r11.w, r10.w, l(-10.000000) + mad r12.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.x + max r11.w, r11.w, l(0.100000) + min r11.w, r11.w, l(1.000000) + mul r9.w, r9.w, r11.w + mad r11.xyz, r11.xyzx, r9.wwww, r5.xyzx + add r10.xyz, r10.xyzx, r11.xyzx + mul r11.xyz, r10.yyyy, cb3[1].xyzx + mad r11.xyz, cb3[0].xyzx, r10.xxxx, r11.xyzx + mad r10.xyz, cb3[2].xyzx, r10.zzzz, r11.xyzx + add r10.xyz, r10.xyzx, cb3[3].xyzx + mad r11.x, r10.x, l(0.500000), cb3[4].x + mad r9.w, r10.y, l(0.500000), l(0.500000) + add r11.z, -r9.w, cb3[4].y + add r10.xy, r11.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r9.w, r10.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r10.xyxx, t8.xxxx, s4, r9.w +else + mov r9.w, l(1.000000) +endif +mov_sat r10.x, r2.y +add r10.y, l(1.000000), -cb0[230].w +mad r10.x, r10.x, r10.y, cb0[230].w +add r10.yz, r5.xxzx, -cb0[44].xxzx +max r10.y, |r10.z|, |r10.y| +mul r10.z, r9.w, r10.x +mul r11.x, l(0.0500000119), cb0[222].w +mad r11.y, -cb0[222].w, l(0.700000), r10.y +div r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.x +mul_sat r11.x, r11.x, r11.y +mad r11.y, r11.x, l(-2.000000), l(3.000000) +mul r11.x, r11.x, r11.x +mul r11.x, r11.x, r11.y +mad r9.w, -r10.x, r9.w, l(1.000000) +mad r9.w, r11.x, r9.w, r10.z +ge r10.z, r1.z, l(0.045000) +and r10.z, r10.z, l(0x3f800000) +mul r10.z, r9.w, r10.z +deriv_rty_coarse r11.xyz, r5.xyzx +deriv_rtx_coarse r12.xyz, r5.zxyz +mul r13.xyz, r11.xyzx, r12.xyzx +mad r11.xyz, r11.zxyz, r12.yzxy, -r13.xyzx +dp3 r11.w, r11.xyzx, r11.xyzx +max r11.w, r11.w, l(1.175494351E-38) +rsq r11.w, r11.w +mul r12.xyz, r11.wwww, r11.xzyx +mov_sat r11.y, r12.x +add r11.z, r11.y, l(-0.988000) +mul_sat r11.z, r11.z, l(1000.012878) +mad r12.w, r11.z, l(-2.000000), l(3.000000) +mul r11.z, r11.z, r11.z +mul r11.z, r11.z, r12.w +add r12.w, |r3.w|, l(-15.000000) +mul_sat r12.w, r12.w, l(0.015000) +add r12.w, -r12.w, l(1.000000) +lt r13.x, l(0.000488281250), cb0[223].y +mad r13.y, cb0[223].z, l(0.300000), l(0.687000) +add r11.y, r11.y, -r13.y +mul_sat r11.y, r11.y, l(-1000.012878) +mad r13.y, r11.y, l(-2.000000), l(3.000000) +mul r11.y, r11.y, r11.y +mul r11.y, r11.y, r13.y +mad r11.x, r11.x, r11.w, l(0.500000) +mul_sat r11.x, r11.x, l(2.500000) +mad r11.w, r11.x, l(-2.000000), l(3.000000) +mul r11.x, r11.x, r11.x +mul r11.x, r11.x, r11.w +mul r11.x, r11.x, r11.y +lt r11.x, l(0.000488281250), r11.x +and r11.x, r11.x, r13.x +if_nz r11.x + mul r11.xy, |r12.yzyy|, |r12.yzyy| + add r11.w, r11.y, r11.x + div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w + mul r11.xy, r11.wwww, r11.xyxx + mul r13.xyz, r12.xzyx, l(0.000000, 1.000000, 0.000000, 0.000000) + mad r13.xyz, r12.yxzy, l(1.000000, 0.000000, 0.000000, 0.000000), -r13.xyzx + dp2 r11.w, r13.xyxx, r13.xyxx + rsq r11.w, r11.w + mul r13.xyz, r11.wwww, r13.xyzx + mul r14.xyz, r12.xzyx, r13.xyzx + mad r14.xyz, r13.zxyz, r12.zyxz, -r14.xyzx + dp3 r11.w, r14.xyzx, r14.xyzx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + add r15.xyz, r5.xyzx, r5.xyzx + round_ni r15.xyz, r15.xyzx + add r15.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + add r13.zw, r15.yyyy, r15.xxxz + dp2 r11.w, r13.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + lt r13.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.zzzy + lt r15.xy, r12.zyzz, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r13.zw, r13.zzzw, -r15.xxxy + itof r13.zw, r13.zzzw + mul r15.xy, r5.xzxx, r13.zwzz + mul r13.z, r9.z, r11.w + add r13.w, -r11.w, l(1.000000) + mad r13.w, r13.w, l(0.700000), l(0.300000) + mul r16.xy, r13.zzzz, l(3.000000, 6.000000, 0.000000, 0.000000) + mad r13.z, -cb0[223].x, r13.w, r16.x + frc r17.x, r13.z + mad r13.z, cb0[223].x, l(-0.300000), r16.y + frc r17.y, r13.z + mul r11.w, r11.w, l(5.000000) + round_ni r11.w, r11.w + add r16.x, r11.w, l(1.000000) + mul r16.y, r5.y, r16.x + mov r5.w, l(0.100000) + mul r13.zw, r5.yyyw, r16.xxxy + frc r13.zw, r13.zzzw + add r16.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + add r16.xy, r13.zwzz, -r16.xyxx + add r16.xy, r16.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) + mul_sat r16.xy, r16.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) + mad r16.zw, r16.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) + mul r16.xy, r16.xyxx, r16.xyxx + mul r16.xy, r16.xyxx, r16.zwzz + add r16.zw, -r13.zzzw, r17.xxxy + max r16.xy, r16.zwzz, r16.xyxx + add r17.zw, -r17.xxxy, r13.zzzw + add r17.zw, r17.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) + mul r17.zw, r17.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) + max r17.zw, r17.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r18.xy, r17.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r17.zw, r17.zzzw, r17.zzzw + mul r17.zw, r17.zzzw, r18.xxxy + add r16.zw, r16.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + max r16.zw, r16.zzzw, r17.zzzw + ge r13.zw, r13.zzzw, r17.xxxy + and r13.zw, r13.zzzw, l(0, 0, 0x3f800000, 0x3f800000) + add r16.zw, -r16.xxxy, r16.zzzw + mad r13.zw, r13.zzzw, r16.zzzw, r16.xxxy + mad r11.w, r13.z, r13.z, l(-0.400000) + mul_sat r11.w, r11.w, l(1.66666663) + mad r13.z, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r13.z + mad r13.z, r13.w, l(2.000000), l(-1.000000) + mul r16.x, r11.w, l(0.010000) + mul r16.y, r13.z, r16.x + mad r17.x, r9.z, l(0.100000), r16.y + mul r16.x, r11.w, r16.x + mad r16.x, r16.x, r13.z, r9.z + mul r17.y, r9.z, r16.x + mov r15.z, r5.y + mad r16.xy, r15.yzyy, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t10.xyzw, s2, cb0[108].x + mov r15.w, -r15.x + mad r15.xy, r15.wzww, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r15.xyzw, r15.xyxx, t10.xyzw, s2, cb0[108].x + mul r15.xyzw, r11.yyyy, r15.xyzw + mad r15.xyzw, r16.xyzw, r11.xxxx, r15.xyzw + mad r11.xy, r15.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r9.z, r11.w, l(2.000000), l(-1.000000) + mad_sat r9.z, r9.z, l(0.800000), r13.w + mad r13.w, -r15.w, l(0.500000), l(1.000000) + mad r9.z, r9.z, r13.w, l(-0.700000) + mul_sat r9.z, r9.z, l(3.33333325) + mad r13.w, r9.z, l(-2.000000), l(3.000000) + mul r9.z, r9.z, r9.z + mul r9.z, r9.z, r13.w + mul r13.z, r13.z, r15.w + mad_sat r11.w, r13.z, l(0.500000), r11.w + mad r11.w, r11.w, l(0.500000), l(0.100000) + max r9.z, r9.z, r11.w + add r11.w, -r9.z, l(1.000000) + max r11.w, r11.w, l(0.000000) + mul r13.z, r11.w, r11.w + mul r13.z, r13.z, r13.z + mul r11.w, r11.w, r13.z + ge r11.w, r15.z, r11.w + and r11.w, r11.w, l(0x3f800000) + mad r9.z, r9.z, l(0.700000), l(0.200000018) + mad r9.z, r11.w, r9.z, l(0.100000) + mul r9.z, r15.z, r9.z + mul r9.z, r9.z, cb0[223].y + mul r9.z, r9.z, l(0.330000) + mul r11.w, r10.z, cb0[222].x + mul r11.w, r12.w, r11.w + mul r9.z, r9.z, r11.w + dp2 r11.w, r11.xyxx, r11.xyxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r11.w, r11.w, l(0.000488281250) + mul_sat r13.z, r9.z, l(10.000000) + mad r13.w, r13.z, l(-2.000000), l(3.000000) + mul r13.z, r13.z, r13.z + mul r13.z, r13.z, r13.w + mul r13.z, r13.z, cb0[223].y + mul r15.xy, r11.xyxx, r13.zzzz + add r11.x, l(-1.500000), cb0[223].y + mul_sat r11.x, r11.x, l(0.666666687) + mad r11.y, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r11.y + mul r11.y, r11.x, l(-0.200000) + mad r11.x, -r11.x, l(-0.200000), r11.w + mad r15.z, r9.z, r11.x, r11.y + dp3 r11.x, r15.xyzx, r15.xyzx + max r11.x, r11.x, l(1.175494351E-38) + rsq r11.x, r11.x + mul r11.xyw, r11.xxxx, r15.xyxz + mov r15.x, r13.y + mov r15.y, r14.x + mov r15.z, r12.y + dp3 r15.x, r15.xyzx, r11.xywx + mov r14.w, r12.x + dp2 r15.y, r14.ywyy, r11.ywyy + mov r12.x, r13.x + mov r12.y, r14.z + dp3 r15.z, r12.xyzx, r11.xywx + mad r11.xyw, -r3.xyxz, r1.wwww, r15.xyxz + mad r13.xyz, r9.zzzz, r11.xywx, r2.xywx + mul r9.z, r9.z, cb0[223].y + mul r9.z, r9.z, l(0.330000) +else + mov r13.xyz, r2.xywx + mov r9.z, l(0) +endif +lt r11.xy, l(0.000488281250, 0.000488281250, 0.000000, 0.000000), cb0[227].ywyy +or r11.x, r11.y, r11.x +lt r11.y, l(0.000488281250), r11.z +and r11.x, r11.y, r11.x +if_nz r11.x + mul r11.xyw, r2.ywyx, l(1.000000, 0.000000, 0.000000, 0.000000) + mad r11.xyw, r2.xyxw, l(0.000000, 0.000000, 0.000000, 1.000000), -r11.xyxw + dp2 r12.x, r11.xwxx, r11.xwxx + rsq r12.x, r12.x + mul r11.xyw, r11.xyxw, r12.xxxx + mul r12.xyz, r2.ywxy, r11.xywx + mad r12.xyz, r11.wxyw, r2.wxyw, -r12.xyzx + dp3 r11.y, r12.xyzx, r12.xyzx + rsq r11.y, r11.y + mul r14.xyz, r11.yyyy, r12.xzyx + mul r12.xy, -r5.xzxx, cb0[228].xyxx + frc r15.xy, r12.xyxx + round_ni r12.xy, r12.xyxx + dp2 r11.y, r12.xyxx, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.y, null, r11.y + mul r11.y, r11.y, l(43758.546875) + frc r11.y, r11.y + add r12.x, r11.y, cb0[227].x + frc r12.x, r12.x + mul r12.y, cb0[228].z, cb0[228].z + mul r12.x, r12.y, r12.x + round_ni r12.x, r12.x + div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z + mad r15.zw, -r5.xxxz, cb0[228].xxxy, cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r15.zwzz, t11.zwxy, s2, cb0[108].x + mad r15.zw, -r5.xxxz, cb0[228].xxxy, -cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r15.zwzz, t11.xyzw, s2, cb0[108].x + mul r16.xyzw, r16.xyzw, cb0[227].wwww + mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww + ge r11.y, l(0.500000), r11.y + and r11.y, r11.y, l(0x3f800000) + add r15.zw, -r15.xxxy, r15.yyyx + mad r15.xy, r11.yyyy, r15.zwzz, r15.xyxx + div r11.y, r12.x, cb0[228].z + ge r12.z, r11.y, -r11.y + frc r11.y, |r11.y| + movc r11.y, r12.z, r11.y, -r11.y + mul r11.y, r11.y, cb0[228].z + mul r17.x, r11.y, r12.y + add r15.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz + mul r11.y, r12.y, r12.x + round_ni r11.y, r11.y + add r11.y, -r11.y, r15.w + mul r17.y, r11.y, r12.y + mad r12.xy, r15.xyxx, r12.yyyy, r17.xyxx + frc r12.xy, r12.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r12.xy, r12.xyxx, t11.xyzw, s1, cb0[108].x + mul r12.xy, r12.xyxx, cb0[227].yyyy + mad r12.xy, r12.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), -cb0[227].yyyy + add r15.xy, r16.zwzz, r16.xyxx + add r12.xy, r12.xyxx, r15.xyxx + dp2 r11.y, r12.xyxx, r12.xyxx + min r11.y, r11.y, l(1.000000) + add r11.y, -r11.y, l(1.000000) + sqrt r11.y, r11.y + max r12.z, r11.y, l(0.000488281250) + dp3 r11.y, r12.xyzx, r12.xyzx + rsq r11.y, r11.y + mul r12.xyz, r11.yyyy, r12.xyzx + mov r14.w, r2.x + dp2 r16.x, r14.xwxx, r12.yzyy + mov r17.x, r11.w + mov r17.y, r14.z + mov r17.z, r2.y + dp3 r16.y, r17.xyzx, r12.xyzx + mov r14.x, r11.x + mov r14.z, r2.w + dp3 r16.z, r14.xyzx, r12.xyzx + mul r10.z, r10.z, cb0[222].x + mul r10.z, r11.z, r10.z + max r11.x, l(0.000488281250), cb0[228].w + mov_sat r15.z, r15.z + add r11.y, -r11.x, r15.z + add r11.x, r2.z, -r11.x + div r11.y, l(1.000000, 1.000000, 1.000000, 1.000000), r11.y + mul_sat r11.x, r11.y, r11.x + mad r11.y, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r11.y + mul r10.z, r10.z, r11.x + mul r10.z, r12.w, r10.z + mad r3.xyz, -r3.xyzx, r1.wwww, r16.xyzx + mad r13.xyz, r10.zzzz, r3.xyzx, r2.xywx +endif +min r1.w, r9.y, r9.x +mul r3.x, r10.x, cb0[230].z +mad r3.y, -cb0[230].z, r10.x, l(1.000000) +mad r3.x, r9.w, r3.y, r3.x +mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r3.z, r10.y, -cb0[222].w +div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y +mul_sat r3.y, r3.y, r3.z +mad r3.z, r3.y, l(-2.000000), l(3.000000) +mul r3.y, r3.y, r3.y +mul r3.y, r3.y, r3.z +add r3.z, -r3.x, cb0[230].y +mad r3.x, r3.y, r3.z, r3.x +add r3.x, -r3.x, l(1.000000) +mul r3.y, r3.x, r9.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r3.z, -r2.z, l(1.000000) +mad_sat r9.w, r3.z, cb0[222].z, cb0[222].y +mad_sat r9.w, r9.z, cb0[224].z, r9.w +add r10.x, -r9.w, l(1.000000) +mad r9.w, r1.x, r10.x, r9.w +mul_sat r10.x, r10.w, l(3.33333325) +mad r10.y, r10.x, l(-2.000000), l(3.000000) +mul r10.x, r10.x, r10.x +mad r10.x, -r10.y, r10.x, l(1.000000) +mul r10.y, r9.w, cb0[222].x +add r10.z, -r1.x, l(1.000000) +mul r10.y, r10.z, r10.y +mul r10.y, r10.x, r10.y +mad r10.y, r10.y, l(-0.750000), l(1.000000) +mad r9.w, r9.w, l(-0.299999952), l(0.900000) +sqrt r10.z, r3.z +add r9.w, r9.w, r10.z +add_sat r9.w, r9.w, l(-0.600000) +max r9.w, r3.z, r9.w +min r9.w, r9.w, l(0.990000) +add_sat r10.z, l(2.000000), -cb0[222].x +mul r10.z, r10.z, cb0[222].x +mul r10.x, r10.x, r10.z +mad r3.x, -r9.x, r3.x, l(1.000000) +mul r3.x, r3.x, r10.x +add r9.x, -r3.z, r9.w +mad r3.x, r3.x, r9.x, r3.z +add r3.x, -r3.x, l(1.000000) +mul_sat r3.z, r9.z, l(20.000000) +mad r9.x, r3.z, l(-2.000000), l(3.000000) +mul r3.z, r3.z, r3.z +mul r3.z, r3.z, r9.x +mad r3.z, r3.z, l(-0.900000), l(1.000000) +mul r9.x, r3.z, r3.x +add r9.y, r9.y, l(-1.000000) +mad r11.x, r1.z, r9.y, l(1.000000) +add r11.y, -r1.z, l(1.000000) +movc r9.yz, r8.wwww, r11.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r9.x, r9.y +mad r3.x, r3.x, r3.z, -r1.z +mad r1.z, r1.w, r3.x, r1.z +add r2.z, -r1.z, r2.z +mad r11.z, r3.y, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r9.xyw, r0.xyzz, t26.xywz +min r1.z, r10.y, r9.z +add r2.z, -r1.z, r10.y +mad r1.z, r1.w, r2.z, r1.z +add r1.w, -r1.z, l(1.000000) +mad r1.z, r3.y, r1.w, r1.z +mul r3.xyz, r1.zzzz, r9.xywx +mul r10.xyz, r1.xxxx, r3.xyzx +mad r9.xyz, r9.xywx, r1.zzzz, -r10.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz +dp3 r2.z, r13.xyzx, r8.xyzx +max r10.x, r2.z, l(0.000000) +mul r3.y, r11.z, r11.z +mul r12.x, r10.x, r10.x +mul r12.z, r10.x, r12.x +mul r2.z, r3.y, r3.y +mul r3.z, r3.y, r2.z +mov r10.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r14.x, l(3.327070, 1.000000, 0.000000, 0.000000), r10.xyxx +dp2 r14.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r10.xzxx +mov r3.x, l(1.000000) +dp2 r8.w, r14.xyxx, r3.xyxx +mov r12.yw, l(0,9.044010,0,1.000000) +dp3 r14.x, l(3.596850, -1.367720, 1.000000, 0.000000), r12.xzwx +dp3 r14.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r12.xyzx +mov r15.x, l(5.565890) +mov r15.yz, r12.xxzx +dp3 r14.z, l(1.000000, 19.788601, -20.212299, 0.000000), r15.xyzx +dp3 r9.w, r14.xyzx, r3.xyzx +div r8.w, r8.w, r9.w +dp2 r14.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r10.xwxx +mov r12.x, l(1.296780) +mov r12.y, r10.x +dp2 r14.y, l(1.000000, -0.755907, 0.000000, 0.000000), r12.xyxx +dp2 r9.w, r14.xyxx, r3.xyxx +dp3 r14.x, l(2.923380, 59.418800, 1.000000, 0.000000), r12.yzwy +mov r12.xw, l(20.322500,0,0,121.563004) +dp3 r14.y, l(1.000000, -27.030199, 222.591995, 0.000000), r12.xyzx +dp3 r14.z, l(626.130005, 316.627014, 1.000000, 0.000000), r12.yzwy +dp3 r3.x, r14.xyzx, r3.xyzx +div r3.x, r9.w, r3.x +mad r10.yzw, r1.xxzw, r8.wwww, r3.xxxx +add r3.x, r3.x, r8.w +ld_indexable(texture2d)(float,float,float,float) r3.y, r0.xyzz, t6.zxyw +lt r0.z, l(0.001000), r3.y +if_nz r0.z + dp3 r0.z, -r8.xyzx, r13.xyzx + add r0.z, r0.z, r0.z + mad r12.xyz, r13.xyzx, -r0.zzzz, -r8.xyzx + dp3 r0.z, -cb2[0].xyzx, r12.xyzx + mad r14.xyz, cb2[0].xyzx, r0.zzzz, r12.xyzx + lt r0.z, r0.z, cb2[4].z + dp3 r8.w, r14.xyzx, r14.xyzx + max r8.w, r8.w, l(0.0000610351562) + rsq r8.w, r8.w + mul r14.xyz, r8.wwww, r14.xyzx + mul r14.xyz, r14.xyzx, cb2[4].yyyy + mad r14.xyz, -cb2[0].xyzx, cb2[4].zzzz, r14.xyzx + dp3 r8.w, r14.xyzx, r14.xyzx + rsq r8.w, r8.w + mul r14.xyz, r8.wwww, r14.xyzx + movc r12.xyz, r0.zzzz, r14.xyzx, r12.xyzx + mad r6.xyz, r6.xyzx, r7.wwww, r12.xyzx + dp3 r0.z, r6.xyzx, r6.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r6.xyz, r0.zzzz, r6.xyzx + dp3_sat r11.x, r12.xyzx, r13.xyzx + dp3_sat r0.z, r13.xyzx, r6.xyzx + min r11.y, r10.x, l(1.000000) + mad r7.w, r0.z, r2.z, -r0.z + mad r0.z, r7.w, r0.z, l(1.000000) + dp3_sat r6.x, r8.xyzx, r6.xyzx + add r6.x, -r6.x, l(1.000000) + mul r6.y, r6.x, r6.x + mul r6.y, r6.y, r6.y + mul r6.z, r6.x, r6.y + add r7.w, -r11.z, l(1.000000) + mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) + mad r8.w, r7.w, r8.w, l(1.049970) + mad r7.w, r7.w, r8.w, l(0.409255) + min r7.w, r7.w, l(0.999000) + add r8.w, -r7.w, l(1.000000) + add r14.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r14.xyz, r14.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx + mad r6.x, -r6.y, r6.x, l(1.000000) + mad r6.xyz, r1.xzwx, r6.xxxx, r6.zzzz + mul r0.z, r0.z, r0.z + div r0.z, r2.z, r0.z + mad r15.xy, -r11.yxyy, r2.zzzz, r11.yxyy + mad r15.xy, r15.xyxx, r11.yxyy, r2.zzzz + sqrt r15.xy, r15.xyxx + mul r15.xy, r11.xyxx, r15.xyxx + add r2.z, r15.y, r15.x + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.z, r0.z, r2.z + mul r6.xyz, r0.zzzz, r6.xyzx + min r6.xyz, r6.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r15.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r15.xyxx, t12.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r15.zwzz, t12.yzxw, s1, l(0.000000) + mul r0.z, r0.z, r2.z + mul r0.z, r7.w, r0.z + div r0.z, r0.z, r8.w + mul r15.xyz, r14.xyzx, r14.xyzx + mul r15.xyz, r0.zzzz, r15.xyzx + mad r14.xyz, -r14.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r14.xyz, r15.xyzx, r14.xyzx + add r6.xyz, r6.xyzx, r14.xyzx + mul r6.xyz, r6.xyzx, cb2[4].xxxx + max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r6.xyz, r6.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + dp3_sat r0.z, r12.xyzx, r2.xywx + mul r12.xyz, r0.zzzz, r9.xyzx + mad r6.xyz, r6.xyzx, r11.xxxx, r12.xyzx + mul r6.xyz, r6.xyzx, cb2[1].xyzx + mov r3.z, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r3.yzyy, t7.xywz, s1, cb0[108].x + add r0.z, -r3.y, l(1.000000) + mad r11.xyw, r6.xyxz, r11.xyxw, -r6.xyxz + mad r6.xyz, r0.zzzz, r11.xywx, r6.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t13.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r6.xyz, r0.zzzz, r6.xyzx +else + mov r6.xyz, l(0,0,0,0) +endif +ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r3.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + dp3 r2.z, r2.xywx, r8.xyzx + max r2.z, r2.z, l(0.000000) + add r2.z, r0.z, r2.z + mad r3.y, r11.z, l(-16.000000), l(-1.000000) + exp r3.y, r3.y + log r2.z, |r2.z| + mul r2.z, r2.z, r3.y + exp r2.z, r2.z + add r2.z, r0.z, r2.z + add r2.z, r2.z, l(-1.000000) + mov_sat r11.xyw, r2.zzzz + mad r12.xyz, r9.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r9.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r9.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + max r12.xyz, r0.zzzz, r12.xyzx +else + mov r11.xyw, r1.yyyy + mov r12.xyz, r1.yyyy +endif +mad r14.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r15.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx +dp2 r0.z, r15.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r14.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r14.xyzx +mad r15.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r15.xyz, r14.xzyx, -r15.xyzx +max r0.z, |r15.y|, |r15.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.y, |r15.z|, l(-208.000000) +mul_sat r1.y, r1.y, l(0.031250) +max r0.z, r0.z, r1.y +ne r1.y, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.y, r1.y, r2.z +if_nz r1.y + mad r15.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r15.xyz, r14.xzyx, -r15.xyzx + max r1.y, |r15.y|, |r15.x| + add r1.y, r1.y, l(-29.000000) + mul_sat r1.y, r1.y, l(0.500000) + add r2.z, |r15.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.y, r1.y, r2.z + lt r2.z, r1.y, l(1.000000) + if_nz r2.z + mad r15.xyz, r14.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r15.xyzx, cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r16.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) + add r2.z, -r1.y, l(1.000000) + mul r3.y, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.y, r3.y, r15.y + min r3.y, r7.w, r3.y + mul r15.w, r3.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) + mad r3.y, r17.w, r2.z, r0.z + add r18.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r16.yyyy, r18.xyzx + mov r18.w, r16.y + mul r18.xyzw, r2.zzzz, r18.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r16.xxxx, r15.xyzx + mov r15.w, r16.x + mul r15.xyzw, r2.zzzz, r15.xyzw + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r16.wwww, r17.xyzx + mul r16.xyzw, r2.zzzz, r16.xyzw + else + mov r18.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r3.y, r0.z + endif + mad r17.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r17.xyz, r14.xzyx, -r17.xyzx + max r2.z, |r17.y|, |r17.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r7.w, |r17.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r2.z, r2.z, r7.w + lt r7.w, r2.z, l(1.000000) + if_nz r7.w + mad r17.xyz, r14.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r17.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r17.xyzx, t19.yzwx, s2, l(0.000000) + add r7.w, -r2.z, l(1.000000) + mul r1.y, r1.y, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r17.y + min r7.w, r8.w, r7.w + mul r17.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.y, r20.w, r1.y, r3.y + add r21.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t20.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.yyyy, r21.xyzx + mov r21.w, r19.y + mad r18.xyzw, r21.xyzw, r1.yyyy, r18.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t20.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r19.xxxx, r17.xyzx + mov r17.w, r19.x + mad r15.xyzw, r17.xyzw, r1.yyyy, r15.xyzw + mad r17.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r17.xyzx + mad r16.xyzw, r19.xyzw, r1.yyyy, r16.xyzw + endif + lt r1.y, l(0.000000), r2.z + if_nz r1.y + mad r14.xyz, r14.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r14.xyzx, cb0[211].xyzx + mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r17.xyzx + mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r14.xyz, r19.xyzx, r14.xyzx + min r14.xyz, r17.xyzx, r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r14.xyzx, t21.yzwx, s2, l(0.000000) + add r1.y, -r0.z, l(1.000000) + mul r1.y, r1.y, r2.z + max r2.z, r19.y, r14.y + min r2.z, r17.y, r2.z + mul r14.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t22.xyzw, s1, l(0.000000) + add r19.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r20.yyyy, r19.xyzx + mov r19.w, r20.y + mad r18.xyzw, r19.xyzw, r1.yyyy, r18.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t22.xyzw, s1, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r20.xxxx, r14.xyzx + mov r14.w, r20.x + mad r15.xyzw, r14.xyzw, r1.yyyy, r15.xyzw + mad r14.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r14.xyzx + mad r16.xyzw, r20.xyzw, r1.yyyy, r16.xyzw + mad r3.y, r17.w, r1.y, r3.y + endif + mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) + add r14.x, -r0.z, r1.y + add r0.z, r0.z, r1.y + mul r14.y, r0.z, l(0.500000) +else + mov r18.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r14.xy, l(0,1.000000,0,0) +endif +mul r17.xyzw, r14.yxyy, cb0[213].ywzx +mad r17.y, r17.y, l(0.500000), r17.x +mul r14.zw, r14.yyyx, cb0[213].wwwy +mad r17.x, r14.w, l(0.375000), r14.z +add r16.xyzw, r16.xyzw, r17.wyzx +mul r17.xyzw, r14.yxyy, cb0[214].ywzx +mad r17.y, r17.y, l(0.500000), r17.x +mul r14.zw, r14.yyyx, cb0[214].wwwy +mad r17.x, r14.w, l(0.375000), r14.z +add r15.xyzw, r15.xyzw, r17.wyzx +mul r17.xyzw, r14.yxyy, cb0[215].ywzx +mad r17.y, r17.y, l(0.500000), r17.x +mul r14.xy, r14.yxyy, cb0[215].wyww +mad r17.x, r14.y, l(0.375000), r14.x +add r14.xyzw, r17.wyzx, r18.xyzw +ge r17.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r17.y, r17.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r4.zwzz, t16.xyzw, s1, l(0.000000) + lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| + or r4.zw, r18.zzzw, r18.xxxy + or r0.z, r4.w, r4.z + if_nz r0.z + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mov r4.z, l(1.000000) + mov r4.w, r0.z + mov r1.y, l(0) + loop + ge r2.z, l(4.600000), r4.w + breakc_nz r2.z + iadd r2.z, r1.y, l(1) + mul r18.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r4.zw, r18.xxxy + mov r1.y, r2.z + continue + endloop + mul r17.xyzw, r4.zzzz, r17.xyzw + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb4[3].x, cb4[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r18.x, r0.z, l(0.00390625000) + mov r18.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r18.xyxx, t15.zwxy, s1, l(0.000000) + mad r4.zw, r4.zzzw, cb4[2].xxxy, cb4[2].zzzw + mul r18.x, r4.z, l(3.54490781) + mul r18.yzw, r4.wwww, r17.yyzw + mul r0.z, r17.x, l(0.406976730) + exp r0.z, r0.z + mul r17.xyzw, r0.zzzz, r18.xyzw + mov r18.xyzw, r17.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.y + breakc_nz r2.z + mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r19.xyzw, r18.xyzw + dp2 r3.y, r19.yxyy, r18.xyxx + dp2 r4.z, r19.zxzz, r18.xzxx + dp2 r4.w, r19.wxww, r18.xwxx + iadd r7.w, r0.z, l(1) + mov r18.x, r2.z + mov r18.y, r3.y + mov r18.zw, r4.zzzw + mov r0.z, r7.w + continue + endloop + mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r17.xyzw, r18.xyzw + dp2 r1.y, r17.yxyy, r18.xyxx + dp2 r2.z, r17.zxzz, r18.xzxx + dp2 r3.y, r17.wxww, r18.xwxx + mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.z, r17.xyzw, r18.xyzw + dp2 r4.w, r17.yxyy, r18.xyxx + dp2 r7.w, r17.zxzz, r18.xzxx + dp2 r8.w, r17.wxww, r18.xwxx + mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r17.xyzw, r18.xyzw + dp2 r10.x, r17.yxyy, r18.xyxx + dp2 r12.w, r17.zxzz, r18.xzxx + dp2 r17.x, r17.wxww, r18.xwxx + mul r16.w, r0.z, l(0.886226952) + mul r16.x, r3.y, l(-1.02332675) + mul r16.y, r1.y, l(-1.02332675) + mul r16.z, r2.z, l(1.02332675) + mul r15.x, r8.w, l(-1.02332675) + mul r15.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r15.z, r7.w, l(1.02332675) + mul r14.w, r9.w, l(0.886226952) + mul r14.x, r17.x, l(-1.02332675) + mul r14.y, r10.x, l(-1.02332675) + mul r14.z, r12.w, l(1.02332675) + endif +endif +dp3 r0.z, r16.xyzx, r2.xywx +add r0.z, r16.w, r0.z +max r16.x, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r2.xywx +add r0.z, r15.w, r0.z +max r16.y, r0.z, l(0.000000) +dp3 r0.z, r14.xyzx, r2.xywx +add r0.z, r14.w, r0.z +max r16.z, r0.z, l(0.000000) +dp3 r0.z, -r8.xyzx, r13.xyzx +add r0.z, r0.z, r0.z +mad r2.xyz, r13.xyzx, -r0.zzzz, -r8.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r1.y, r11.z, l(0.001000) +log r1.y, r1.y +mad r1.y, -r1.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.y +mul r4.zw, r4.xxxy, cb1[0].wwww +round_ni r4.zw, r4.zzzw +add r1.y, |r3.w|, -cb1[2].y +round_ni r1.y, r1.y +add r2.w, l(-1.000000), cb1[1].x +max r3.y, r1.y, l(0.000000) +min r2.w, r2.w, r3.y +ge r1.y, r2.w, r1.y +mad r3.y, r4.w, cb1[0].x, r4.z +ftoi r3.y, r3.y +iadd r3.y, r3.y, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.y, r3.y, l(0), t0.xxxx +ftoi r2.w, r2.w +iadd r2.w, r2.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.w, r2.w, l(0), t0.xxxx +and r2.w, r2.w, r3.y +and r1.y, r1.y, r2.w +mul r14.xyz, r16.xyzx, cb0[111].xxxx +dp3 r2.w, r14.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r13.w, l(1.000000) +mov r14.xyz, l(0,0,0,0) +mov r3.y, l(1.000000) +mov r4.z, r1.y +mov r4.w, l(0) +loop + lt r7.w, l(0.010000), r3.y + ine r8.w, r4.z, l(0) + and r8.w, r7.w, r8.w + if_nz r8.w + firstbit_lo r8.w, r4.z + ishl r9.w, l(1), r8.w + xor r4.z, r4.z, r9.w + ishl r8.w, r8.w, l(3) + dp4 r15.x, cb1[r8.w + 6].xyzw, r5.xyzw + dp4 r15.y, cb1[r8.w + 7].xyzw, r5.xyzw + dp4 r15.z, cb1[r8.w + 8].xyzw, r5.xyzw + ge r17.xyz, cb1[r8.w + 5].xyzx, |r15.xyzx| + and r9.w, r17.y, r17.x + and r9.w, r17.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb1[r8.w + 5].x + mul r17.xyz, |r15.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r18.xyz, -|r15.xyzx|, cb1[r8.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb1[r8.w + 9].xyzx + eq r10.x, l(1.000000), cb1[r8.w + 10].x + if_nz r10.x + dp3 r19.x, cb1[r8.w + 6].xyzx, r2.xyzx + dp3 r19.y, cb1[r8.w + 7].xyzx, r2.xyzx + dp3 r19.z, cb1[r8.w + 8].xyzx, r2.xyzx + add r20.xyz, -r15.xyzx, cb1[r8.w + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r15.xyzx, -cb1[r8.w + 5].xyzx + div r21.xyz, r21.xyzx, r19.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + movc r20.xyz, r22.xyzx, r20.xyzx, r21.xyzx + min r10.x, r20.y, r20.x + min r10.x, r20.z, r10.x + mad r15.xyz, r19.xyzx, r10.xxxx, r15.xyzx + else + mov r15.xyz, r2.xyzx + endif + dp3 r10.x, r15.xyzx, r15.xyzx + rsq r10.x, r10.x + mul r15.xyz, r10.xxxx, r15.xyzx + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r20.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r19.xyz, -r19.xyzx, r20.xyzx + itof r19.xyz, r19.xyzx + dp3 r10.x, r15.xyzx, r19.xyzx + div r15.xyz, r15.xyzx, r10.xxxx + lt r10.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r19.xxxy + movc r15.xy, r10.xxxx, r15.zwzz, r15.xyxx + dp4 r10.x, cb1[r8.w + 4].xyzw, r13.xyzw + max r10.x, r10.x, l(0.000000) + max r10.x, r10.x, l(0.000100) + min r11.z, r18.z, r18.y + min r11.z, r11.z, r18.x + add r12.w, r17.y, r17.x + mad r12.w, r17.z, r17.z, r12.w + mad r9.w, r9.w, r9.w, -r12.w + mul r9.w, r9.w, cb1[r8.w + 9].x + mul r9.w, r9.w, cb1[r8.w + 9].x + add r12.w, l(1.000000), -cb1[r8.w + 10].y + mul r9.w, r9.w, r12.w + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r11.z, cb1[r8.w + 10].y, r9.w + mul r11.z, r9.w, cb1[r8.w + 10].w + mad r15.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r15.xy, r15.xyxx, cb1[1].wwww, cb1[2].wwww + mov r15.z, cb1[r8.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + mul r15.xyz, r15.xyzx, cb1[r8.w + 9].wwww + div r12.w, r2.w, r10.x + min r12.w, |r12.w|, l(1.000000) + mad r12.w, r12.w, l(2.000000), r2.w + add r10.x, r10.x, l(2.000000) + div r10.x, r12.w, r10.x + add r10.x, r10.x, l(-1.000000) + mad r10.x, r10.x, cb0[112].w, l(1.000000) + mul r15.xyz, r10.xxxx, r15.xyzx + mul r15.xyz, r11.zzzz, r15.xyzx + mad r14.xyz, r15.xyzx, r3.yyyy, r14.xyzx + mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) + mul r3.y, r3.y, r8.w + endif + mov r4.w, l(-1) + continue + else + mov r4.w, r7.w + break + endif + mov r4.w, r7.w +endloop +if_nz r4.w + dp3 r1.y, r2.xyzx, r2.xyzx + rsq r1.y, r1.y + mul r2.xyz, r1.yyyy, r2.xyzx + lt r5.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xxyz + lt r15.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r5.xzw, -r5.xxzw, r15.xxyz + itof r5.xzw, r5.xxzw + dp3 r1.y, r2.xyzx, r5.xzwx + div r2.xyz, r2.xyzx, r1.yyyy + lt r1.y, r2.z, l(0.000000) + add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r4.zw, r4.zzzw, r5.xxxz + movc r2.xy, r1.yyyy, r4.zwzz, r2.xyxx + mov r13.w, l(1.000000) + dp4 r1.y, cb1[3].xyzw, r13.xyzw + max r1.y, r1.y, l(0.000000) + max r1.y, r1.y, l(0.000100) + mad r2.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r2.xy, r2.xyxx, cb1[1].wwww, cb1[2].wwww + mov r2.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r2.xyz, r2.xyzx, t5.xyzw, s3, r0.z + div r0.z, r2.w, r1.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.w + add r1.y, r1.y, l(2.000000) + div r0.z, r0.z, r1.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r2.xyz, r0.zzzz, r2.xyzx + mad r14.xyz, r2.xyzx, r3.yyyy, r14.xyzx +endif +mul r2.xyz, r14.xyzx, cb0[112].zzzz +mul r2.xyz, r2.xyzx, cb0[111].yyyy +if_nz r3.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r5.xzw, v1.xyxx, t2.xwyz, s1, cb0[108].x + add r1.y, -r0.z, l(1.000000) + mul r13.xyz, r1.yyyy, r2.xyzx + mad r2.xyz, r5.xzwx, r0.zzzz, r13.xyzx +endif +mul r5.xzw, r9.xxyz, r16.xxyz +mul r5.xzw, r5.xxzw, cb0[111].xxxx +add r0.z, -r3.x, l(1.000000) +div r0.z, r0.z, r3.x +mul r1.xyz, r0.zzzz, r1.xzwx +mad r1.xyz, r1.xyzx, r10.yzwy, r10.yzwy +mul r1.xyz, r1.xyzx, r2.xyzx +mul r1.xyz, r11.xywx, r1.xyzx +mad r1.xyz, r5.xzwx, r12.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r6.xyzx +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r5.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r8.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r8.xyzx, -r7.xyzx + add r2.w, r5.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w + mul r4.z, r0.x, r3.z + mad r4.w, r4.z, r2.w, cb0[44].y + mad r2.w, -r4.z, r2.w, r2.w + mul r4.z, r2.w, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.x, r4.w, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.z, l(5.960464478E-08), |r4.z| + exp r5.w, -r4.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r5.z, r5.w, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r5.z, l(5.960464478E-08), |r2.w| + exp r5.w, -r2.w + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r5.z, r5.w, r2.w + mul r2.w, r2.w, r4.w + mad r2.w, r5.x, r4.z, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r6.w, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r6.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r3.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r3.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r0.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad o0.xyz, r1.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +endif +// === End Fog Modification === +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0_original_backup.asm new file mode 100644 index 000000000..cbebeb69e --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0_original_backup.asm @@ -0,0 +1,1263 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 22:30:13 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[5], immediateIndexed +dcl_constantbuffer CB4[4], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 23 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t24.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t25.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r2.xyw, r1.wwww, r3.xyxz +utof r4.xy, r0.xyxx +mul r4.zw, v0.xxxy, cb0[82].zzzw +mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r5.zw, r5.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.yyyy, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw +mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r3.w, r5.y, cb0[1].z +mad r3.w, cb0[0].z, r5.x, r3.w +mad r3.w, cb0[2].z, r5.z, r3.w +add r3.w, r3.w, cb0[3].z +eq r6.x, l(0.000000), cb0[86].w +add r6.yzw, -r5.xxyz, cb0[44].xxyz +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r6.xyz, r6.xxxx, r6.yzwy, r7.xyzx +dp3 r6.w, r6.xyzx, r6.xyzx +max r7.w, r6.w, l(9.999999939E-09) +rsq r7.w, r7.w +mul r8.xyz, r6.xyzx, r7.wwww +mul r6.w, r6.w, r7.w +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r9.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x +else + mov r9.xy, l(1.000000,1.000000,0,0) +endif +lt r9.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy +if_nz r9.z + add r9.z, |r2.y|, |r2.x| + add r9.z, |r2.w|, r9.z + div r9.z, l(1.000000, 1.000000, 1.000000, 1.000000), r9.z + mul r10.xyz, |r2.xywx|, r9.zzzz + mul r11.xyz, r5.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r9.z, r11.xyzx, t9.yzxw, s2, l(0.000000) + mul r11.xyzw, r10.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) + add r10.xyw, r11.zwzz, r11.xxxy + mad r10.xyz, r10.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r10.xywx + mad r10.w, r9.z, l(2.000000), l(-1.000000) + mul r10.xyz, r10.wwww, r10.xyzx + mov r10.w, |r2.y| + add r10.w, r10.w, l(-0.700000) + mul_sat r10.w, r10.w, l(4.000000) + mad r11.x, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r11.x + add r11.x, -cb0[229].z, cb0[229].y + mad r10.w, r10.w, r11.x, cb0[229].z + mul r10.xyz, r10.wwww, r10.xyzx +else + mov r10.xyz, l(0,0,0,0) + mov r9.z, l(0) +endif +mad r10.w, -r3.y, r1.w, l(-0.200000) +if_nz r9.w + mul r11.xyz, r2.xywx, cb0[233].zzzz + mul r12.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r11.xyz, r11.xyzx, cb0[225].xxxx, r12.xyzx + max r9.w, -r2.y, l(0.000000) + min r9.w, r9.w, l(0.900000) + add r9.w, -r9.w, l(1.000000) + mul_sat r11.w, r10.w, l(-10.000000) + mad r12.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.x + max r11.w, r11.w, l(0.100000) + min r11.w, r11.w, l(1.000000) + mul r9.w, r9.w, r11.w + mad r11.xyz, r11.xyzx, r9.wwww, r5.xyzx + add r10.xyz, r10.xyzx, r11.xyzx + mul r11.xyz, r10.yyyy, cb3[1].xyzx + mad r11.xyz, cb3[0].xyzx, r10.xxxx, r11.xyzx + mad r10.xyz, cb3[2].xyzx, r10.zzzz, r11.xyzx + add r10.xyz, r10.xyzx, cb3[3].xyzx + mad r11.x, r10.x, l(0.500000), cb3[4].x + mad r9.w, r10.y, l(0.500000), l(0.500000) + add r11.z, -r9.w, cb3[4].y + add r10.xy, r11.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r9.w, r10.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r10.xyxx, t8.xxxx, s4, r9.w +else + mov r9.w, l(1.000000) +endif +mov_sat r10.x, r2.y +add r10.y, l(1.000000), -cb0[230].w +mad r10.x, r10.x, r10.y, cb0[230].w +add r10.yz, r5.xxzx, -cb0[44].xxzx +max r10.y, |r10.z|, |r10.y| +mul r10.z, r9.w, r10.x +mul r11.x, l(0.0500000119), cb0[222].w +mad r11.y, -cb0[222].w, l(0.700000), r10.y +div r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.x +mul_sat r11.x, r11.x, r11.y +mad r11.y, r11.x, l(-2.000000), l(3.000000) +mul r11.x, r11.x, r11.x +mul r11.x, r11.x, r11.y +mad r9.w, -r10.x, r9.w, l(1.000000) +mad r9.w, r11.x, r9.w, r10.z +ge r10.z, r1.z, l(0.045000) +and r10.z, r10.z, l(0x3f800000) +mul r10.z, r9.w, r10.z +deriv_rty_coarse r11.xyz, r5.xyzx +deriv_rtx_coarse r12.xyz, r5.zxyz +mul r13.xyz, r11.xyzx, r12.xyzx +mad r11.xyz, r11.zxyz, r12.yzxy, -r13.xyzx +dp3 r11.w, r11.xyzx, r11.xyzx +max r11.w, r11.w, l(1.175494351E-38) +rsq r11.w, r11.w +mul r12.xyz, r11.wwww, r11.xzyx +mov_sat r11.y, r12.x +add r11.z, r11.y, l(-0.988000) +mul_sat r11.z, r11.z, l(1000.012878) +mad r12.w, r11.z, l(-2.000000), l(3.000000) +mul r11.z, r11.z, r11.z +mul r11.z, r11.z, r12.w +add r12.w, |r3.w|, l(-15.000000) +mul_sat r12.w, r12.w, l(0.015000) +add r12.w, -r12.w, l(1.000000) +lt r13.x, l(0.000488281250), cb0[223].y +mad r13.y, cb0[223].z, l(0.300000), l(0.687000) +add r11.y, r11.y, -r13.y +mul_sat r11.y, r11.y, l(-1000.012878) +mad r13.y, r11.y, l(-2.000000), l(3.000000) +mul r11.y, r11.y, r11.y +mul r11.y, r11.y, r13.y +mad r11.x, r11.x, r11.w, l(0.500000) +mul_sat r11.x, r11.x, l(2.500000) +mad r11.w, r11.x, l(-2.000000), l(3.000000) +mul r11.x, r11.x, r11.x +mul r11.x, r11.x, r11.w +mul r11.x, r11.x, r11.y +lt r11.x, l(0.000488281250), r11.x +and r11.x, r11.x, r13.x +if_nz r11.x + mul r11.xy, |r12.yzyy|, |r12.yzyy| + add r11.w, r11.y, r11.x + div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w + mul r11.xy, r11.wwww, r11.xyxx + mul r13.xyz, r12.xzyx, l(0.000000, 1.000000, 0.000000, 0.000000) + mad r13.xyz, r12.yxzy, l(1.000000, 0.000000, 0.000000, 0.000000), -r13.xyzx + dp2 r11.w, r13.xyxx, r13.xyxx + rsq r11.w, r11.w + mul r13.xyz, r11.wwww, r13.xyzx + mul r14.xyz, r12.xzyx, r13.xyzx + mad r14.xyz, r13.zxyz, r12.zyxz, -r14.xyzx + dp3 r11.w, r14.xyzx, r14.xyzx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + add r15.xyz, r5.xyzx, r5.xyzx + round_ni r15.xyz, r15.xyzx + add r15.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + add r13.zw, r15.yyyy, r15.xxxz + dp2 r11.w, r13.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + lt r13.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.zzzy + lt r15.xy, r12.zyzz, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r13.zw, r13.zzzw, -r15.xxxy + itof r13.zw, r13.zzzw + mul r15.xy, r5.xzxx, r13.zwzz + mul r13.z, r9.z, r11.w + add r13.w, -r11.w, l(1.000000) + mad r13.w, r13.w, l(0.700000), l(0.300000) + mul r16.xy, r13.zzzz, l(3.000000, 6.000000, 0.000000, 0.000000) + mad r13.z, -cb0[223].x, r13.w, r16.x + frc r17.x, r13.z + mad r13.z, cb0[223].x, l(-0.300000), r16.y + frc r17.y, r13.z + mul r11.w, r11.w, l(5.000000) + round_ni r11.w, r11.w + add r16.x, r11.w, l(1.000000) + mul r16.y, r5.y, r16.x + mov r5.w, l(0.100000) + mul r13.zw, r5.yyyw, r16.xxxy + frc r13.zw, r13.zzzw + add r16.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + add r16.xy, r13.zwzz, -r16.xyxx + add r16.xy, r16.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) + mul_sat r16.xy, r16.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) + mad r16.zw, r16.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) + mul r16.xy, r16.xyxx, r16.xyxx + mul r16.xy, r16.xyxx, r16.zwzz + add r16.zw, -r13.zzzw, r17.xxxy + max r16.xy, r16.zwzz, r16.xyxx + add r17.zw, -r17.xxxy, r13.zzzw + add r17.zw, r17.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) + mul r17.zw, r17.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) + max r17.zw, r17.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r18.xy, r17.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r17.zw, r17.zzzw, r17.zzzw + mul r17.zw, r17.zzzw, r18.xxxy + add r16.zw, r16.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + max r16.zw, r16.zzzw, r17.zzzw + ge r13.zw, r13.zzzw, r17.xxxy + and r13.zw, r13.zzzw, l(0, 0, 0x3f800000, 0x3f800000) + add r16.zw, -r16.xxxy, r16.zzzw + mad r13.zw, r13.zzzw, r16.zzzw, r16.xxxy + mad r11.w, r13.z, r13.z, l(-0.400000) + mul_sat r11.w, r11.w, l(1.66666663) + mad r13.z, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r13.z + mad r13.z, r13.w, l(2.000000), l(-1.000000) + mul r16.x, r11.w, l(0.010000) + mul r16.y, r13.z, r16.x + mad r17.x, r9.z, l(0.100000), r16.y + mul r16.x, r11.w, r16.x + mad r16.x, r16.x, r13.z, r9.z + mul r17.y, r9.z, r16.x + mov r15.z, r5.y + mad r16.xy, r15.yzyy, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t10.xyzw, s2, cb0[108].x + mov r15.w, -r15.x + mad r15.xy, r15.wzww, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r15.xyzw, r15.xyxx, t10.xyzw, s2, cb0[108].x + mul r15.xyzw, r11.yyyy, r15.xyzw + mad r15.xyzw, r16.xyzw, r11.xxxx, r15.xyzw + mad r11.xy, r15.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r9.z, r11.w, l(2.000000), l(-1.000000) + mad_sat r9.z, r9.z, l(0.800000), r13.w + mad r13.w, -r15.w, l(0.500000), l(1.000000) + mad r9.z, r9.z, r13.w, l(-0.700000) + mul_sat r9.z, r9.z, l(3.33333325) + mad r13.w, r9.z, l(-2.000000), l(3.000000) + mul r9.z, r9.z, r9.z + mul r9.z, r9.z, r13.w + mul r13.z, r13.z, r15.w + mad_sat r11.w, r13.z, l(0.500000), r11.w + mad r11.w, r11.w, l(0.500000), l(0.100000) + max r9.z, r9.z, r11.w + add r11.w, -r9.z, l(1.000000) + max r11.w, r11.w, l(0.000000) + mul r13.z, r11.w, r11.w + mul r13.z, r13.z, r13.z + mul r11.w, r11.w, r13.z + ge r11.w, r15.z, r11.w + and r11.w, r11.w, l(0x3f800000) + mad r9.z, r9.z, l(0.700000), l(0.200000018) + mad r9.z, r11.w, r9.z, l(0.100000) + mul r9.z, r15.z, r9.z + mul r9.z, r9.z, cb0[223].y + mul r9.z, r9.z, l(0.330000) + mul r11.w, r10.z, cb0[222].x + mul r11.w, r12.w, r11.w + mul r9.z, r9.z, r11.w + dp2 r11.w, r11.xyxx, r11.xyxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r11.w, r11.w, l(0.000488281250) + mul_sat r13.z, r9.z, l(10.000000) + mad r13.w, r13.z, l(-2.000000), l(3.000000) + mul r13.z, r13.z, r13.z + mul r13.z, r13.z, r13.w + mul r13.z, r13.z, cb0[223].y + mul r15.xy, r11.xyxx, r13.zzzz + add r11.x, l(-1.500000), cb0[223].y + mul_sat r11.x, r11.x, l(0.666666687) + mad r11.y, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r11.y + mul r11.y, r11.x, l(-0.200000) + mad r11.x, -r11.x, l(-0.200000), r11.w + mad r15.z, r9.z, r11.x, r11.y + dp3 r11.x, r15.xyzx, r15.xyzx + max r11.x, r11.x, l(1.175494351E-38) + rsq r11.x, r11.x + mul r11.xyw, r11.xxxx, r15.xyxz + mov r15.x, r13.y + mov r15.y, r14.x + mov r15.z, r12.y + dp3 r15.x, r15.xyzx, r11.xywx + mov r14.w, r12.x + dp2 r15.y, r14.ywyy, r11.ywyy + mov r12.x, r13.x + mov r12.y, r14.z + dp3 r15.z, r12.xyzx, r11.xywx + mad r11.xyw, -r3.xyxz, r1.wwww, r15.xyxz + mad r13.xyz, r9.zzzz, r11.xywx, r2.xywx + mul r9.z, r9.z, cb0[223].y + mul r9.z, r9.z, l(0.330000) +else + mov r13.xyz, r2.xywx + mov r9.z, l(0) +endif +lt r11.xy, l(0.000488281250, 0.000488281250, 0.000000, 0.000000), cb0[227].ywyy +or r11.x, r11.y, r11.x +lt r11.y, l(0.000488281250), r11.z +and r11.x, r11.y, r11.x +if_nz r11.x + mul r11.xyw, r2.ywyx, l(1.000000, 0.000000, 0.000000, 0.000000) + mad r11.xyw, r2.xyxw, l(0.000000, 0.000000, 0.000000, 1.000000), -r11.xyxw + dp2 r12.x, r11.xwxx, r11.xwxx + rsq r12.x, r12.x + mul r11.xyw, r11.xyxw, r12.xxxx + mul r12.xyz, r2.ywxy, r11.xywx + mad r12.xyz, r11.wxyw, r2.wxyw, -r12.xyzx + dp3 r11.y, r12.xyzx, r12.xyzx + rsq r11.y, r11.y + mul r14.xyz, r11.yyyy, r12.xzyx + mul r12.xy, -r5.xzxx, cb0[228].xyxx + frc r15.xy, r12.xyxx + round_ni r12.xy, r12.xyxx + dp2 r11.y, r12.xyxx, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.y, null, r11.y + mul r11.y, r11.y, l(43758.546875) + frc r11.y, r11.y + add r12.x, r11.y, cb0[227].x + frc r12.x, r12.x + mul r12.y, cb0[228].z, cb0[228].z + mul r12.x, r12.y, r12.x + round_ni r12.x, r12.x + div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z + mad r15.zw, -r5.xxxz, cb0[228].xxxy, cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r15.zwzz, t11.zwxy, s2, cb0[108].x + mad r15.zw, -r5.xxxz, cb0[228].xxxy, -cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r15.zwzz, t11.xyzw, s2, cb0[108].x + mul r16.xyzw, r16.xyzw, cb0[227].wwww + mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww + ge r11.y, l(0.500000), r11.y + and r11.y, r11.y, l(0x3f800000) + add r15.zw, -r15.xxxy, r15.yyyx + mad r15.xy, r11.yyyy, r15.zwzz, r15.xyxx + div r11.y, r12.x, cb0[228].z + ge r12.z, r11.y, -r11.y + frc r11.y, |r11.y| + movc r11.y, r12.z, r11.y, -r11.y + mul r11.y, r11.y, cb0[228].z + mul r17.x, r11.y, r12.y + add r15.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz + mul r11.y, r12.y, r12.x + round_ni r11.y, r11.y + add r11.y, -r11.y, r15.w + mul r17.y, r11.y, r12.y + mad r12.xy, r15.xyxx, r12.yyyy, r17.xyxx + frc r12.xy, r12.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r12.xy, r12.xyxx, t11.xyzw, s1, cb0[108].x + mul r12.xy, r12.xyxx, cb0[227].yyyy + mad r12.xy, r12.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), -cb0[227].yyyy + add r15.xy, r16.zwzz, r16.xyxx + add r12.xy, r12.xyxx, r15.xyxx + dp2 r11.y, r12.xyxx, r12.xyxx + min r11.y, r11.y, l(1.000000) + add r11.y, -r11.y, l(1.000000) + sqrt r11.y, r11.y + max r12.z, r11.y, l(0.000488281250) + dp3 r11.y, r12.xyzx, r12.xyzx + rsq r11.y, r11.y + mul r12.xyz, r11.yyyy, r12.xyzx + mov r14.w, r2.x + dp2 r16.x, r14.xwxx, r12.yzyy + mov r17.x, r11.w + mov r17.y, r14.z + mov r17.z, r2.y + dp3 r16.y, r17.xyzx, r12.xyzx + mov r14.x, r11.x + mov r14.z, r2.w + dp3 r16.z, r14.xyzx, r12.xyzx + mul r10.z, r10.z, cb0[222].x + mul r10.z, r11.z, r10.z + max r11.x, l(0.000488281250), cb0[228].w + mov_sat r15.z, r15.z + add r11.y, -r11.x, r15.z + add r11.x, r2.z, -r11.x + div r11.y, l(1.000000, 1.000000, 1.000000, 1.000000), r11.y + mul_sat r11.x, r11.y, r11.x + mad r11.y, r11.x, l(-2.000000), l(3.000000) + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r11.y + mul r10.z, r10.z, r11.x + mul r10.z, r12.w, r10.z + mad r3.xyz, -r3.xyzx, r1.wwww, r16.xyzx + mad r13.xyz, r10.zzzz, r3.xyzx, r2.xywx +endif +min r1.w, r9.y, r9.x +mul r3.x, r10.x, cb0[230].z +mad r3.y, -cb0[230].z, r10.x, l(1.000000) +mad r3.x, r9.w, r3.y, r3.x +mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r3.z, r10.y, -cb0[222].w +div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y +mul_sat r3.y, r3.y, r3.z +mad r3.z, r3.y, l(-2.000000), l(3.000000) +mul r3.y, r3.y, r3.y +mul r3.y, r3.y, r3.z +add r3.z, -r3.x, cb0[230].y +mad r3.x, r3.y, r3.z, r3.x +add r3.x, -r3.x, l(1.000000) +mul r3.y, r3.x, r9.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r3.z, -r2.z, l(1.000000) +mad_sat r9.w, r3.z, cb0[222].z, cb0[222].y +mad_sat r9.w, r9.z, cb0[224].z, r9.w +add r10.x, -r9.w, l(1.000000) +mad r9.w, r1.x, r10.x, r9.w +mul_sat r10.x, r10.w, l(3.33333325) +mad r10.y, r10.x, l(-2.000000), l(3.000000) +mul r10.x, r10.x, r10.x +mad r10.x, -r10.y, r10.x, l(1.000000) +mul r10.y, r9.w, cb0[222].x +add r10.z, -r1.x, l(1.000000) +mul r10.y, r10.z, r10.y +mul r10.y, r10.x, r10.y +mad r10.y, r10.y, l(-0.750000), l(1.000000) +mad r9.w, r9.w, l(-0.299999952), l(0.900000) +sqrt r10.z, r3.z +add r9.w, r9.w, r10.z +add_sat r9.w, r9.w, l(-0.600000) +max r9.w, r3.z, r9.w +min r9.w, r9.w, l(0.990000) +add_sat r10.z, l(2.000000), -cb0[222].x +mul r10.z, r10.z, cb0[222].x +mul r10.x, r10.x, r10.z +mad r3.x, -r9.x, r3.x, l(1.000000) +mul r3.x, r3.x, r10.x +add r9.x, -r3.z, r9.w +mad r3.x, r3.x, r9.x, r3.z +add r3.x, -r3.x, l(1.000000) +mul_sat r3.z, r9.z, l(20.000000) +mad r9.x, r3.z, l(-2.000000), l(3.000000) +mul r3.z, r3.z, r3.z +mul r3.z, r3.z, r9.x +mad r3.z, r3.z, l(-0.900000), l(1.000000) +mul r9.x, r3.z, r3.x +add r9.y, r9.y, l(-1.000000) +mad r11.x, r1.z, r9.y, l(1.000000) +add r11.y, -r1.z, l(1.000000) +movc r9.yz, r8.wwww, r11.xxyx, l(0,1.000000,1.000000,0) +min r1.z, r9.x, r9.y +mad r3.x, r3.x, r3.z, -r1.z +mad r1.z, r1.w, r3.x, r1.z +add r2.z, -r1.z, r2.z +mad r11.z, r3.y, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r9.xyw, r0.xyzz, t26.xywz +min r1.z, r10.y, r9.z +add r2.z, -r1.z, r10.y +mad r1.z, r1.w, r2.z, r1.z +add r1.w, -r1.z, l(1.000000) +mad r1.z, r3.y, r1.w, r1.z +mul r3.xyz, r1.zzzz, r9.xywx +mul r10.xyz, r1.xxxx, r3.xyzx +mad r9.xyz, r9.xywx, r1.zzzz, -r10.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz +dp3 r2.z, r13.xyzx, r8.xyzx +max r10.x, r2.z, l(0.000000) +mul r3.y, r11.z, r11.z +mul r12.x, r10.x, r10.x +mul r12.z, r10.x, r12.x +mul r2.z, r3.y, r3.y +mul r3.z, r3.y, r2.z +mov r10.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r14.x, l(3.327070, 1.000000, 0.000000, 0.000000), r10.xyxx +dp2 r14.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r10.xzxx +mov r3.x, l(1.000000) +dp2 r8.w, r14.xyxx, r3.xyxx +mov r12.yw, l(0,9.044010,0,1.000000) +dp3 r14.x, l(3.596850, -1.367720, 1.000000, 0.000000), r12.xzwx +dp3 r14.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r12.xyzx +mov r15.x, l(5.565890) +mov r15.yz, r12.xxzx +dp3 r14.z, l(1.000000, 19.788601, -20.212299, 0.000000), r15.xyzx +dp3 r9.w, r14.xyzx, r3.xyzx +div r8.w, r8.w, r9.w +dp2 r14.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r10.xwxx +mov r12.x, l(1.296780) +mov r12.y, r10.x +dp2 r14.y, l(1.000000, -0.755907, 0.000000, 0.000000), r12.xyxx +dp2 r9.w, r14.xyxx, r3.xyxx +dp3 r14.x, l(2.923380, 59.418800, 1.000000, 0.000000), r12.yzwy +mov r12.xw, l(20.322500,0,0,121.563004) +dp3 r14.y, l(1.000000, -27.030199, 222.591995, 0.000000), r12.xyzx +dp3 r14.z, l(626.130005, 316.627014, 1.000000, 0.000000), r12.yzwy +dp3 r3.x, r14.xyzx, r3.xyzx +div r3.x, r9.w, r3.x +mad r10.yzw, r1.xxzw, r8.wwww, r3.xxxx +add r3.x, r3.x, r8.w +ld_indexable(texture2d)(float,float,float,float) r3.y, r0.xyzz, t6.zxyw +lt r0.z, l(0.001000), r3.y +if_nz r0.z + dp3 r0.z, -r8.xyzx, r13.xyzx + add r0.z, r0.z, r0.z + mad r12.xyz, r13.xyzx, -r0.zzzz, -r8.xyzx + dp3 r0.z, -cb2[0].xyzx, r12.xyzx + mad r14.xyz, cb2[0].xyzx, r0.zzzz, r12.xyzx + lt r0.z, r0.z, cb2[4].z + dp3 r8.w, r14.xyzx, r14.xyzx + max r8.w, r8.w, l(0.0000610351562) + rsq r8.w, r8.w + mul r14.xyz, r8.wwww, r14.xyzx + mul r14.xyz, r14.xyzx, cb2[4].yyyy + mad r14.xyz, -cb2[0].xyzx, cb2[4].zzzz, r14.xyzx + dp3 r8.w, r14.xyzx, r14.xyzx + rsq r8.w, r8.w + mul r14.xyz, r8.wwww, r14.xyzx + movc r12.xyz, r0.zzzz, r14.xyzx, r12.xyzx + mad r6.xyz, r6.xyzx, r7.wwww, r12.xyzx + dp3 r0.z, r6.xyzx, r6.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r6.xyz, r0.zzzz, r6.xyzx + dp3_sat r11.x, r12.xyzx, r13.xyzx + dp3_sat r0.z, r13.xyzx, r6.xyzx + min r11.y, r10.x, l(1.000000) + mad r7.w, r0.z, r2.z, -r0.z + mad r0.z, r7.w, r0.z, l(1.000000) + dp3_sat r6.x, r8.xyzx, r6.xyzx + add r6.x, -r6.x, l(1.000000) + mul r6.y, r6.x, r6.x + mul r6.y, r6.y, r6.y + mul r6.z, r6.x, r6.y + add r7.w, -r11.z, l(1.000000) + mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) + mad r8.w, r7.w, r8.w, l(1.049970) + mad r7.w, r7.w, r8.w, l(0.409255) + min r7.w, r7.w, l(0.999000) + add r8.w, -r7.w, l(1.000000) + add r14.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r14.xyz, r14.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx + mad r6.x, -r6.y, r6.x, l(1.000000) + mad r6.xyz, r1.xzwx, r6.xxxx, r6.zzzz + mul r0.z, r0.z, r0.z + div r0.z, r2.z, r0.z + mad r15.xy, -r11.yxyy, r2.zzzz, r11.yxyy + mad r15.xy, r15.xyxx, r11.yxyy, r2.zzzz + sqrt r15.xy, r15.xyxx + mul r15.xy, r11.xyxx, r15.xyxx + add r2.z, r15.y, r15.x + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.z, r0.z, r2.z + mul r6.xyz, r0.zzzz, r6.xyzx + min r6.xyz, r6.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r15.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r15.xyxx, t12.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r15.zwzz, t12.yzxw, s1, l(0.000000) + mul r0.z, r0.z, r2.z + mul r0.z, r7.w, r0.z + div r0.z, r0.z, r8.w + mul r15.xyz, r14.xyzx, r14.xyzx + mul r15.xyz, r0.zzzz, r15.xyzx + mad r14.xyz, -r14.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r14.xyz, r15.xyzx, r14.xyzx + add r6.xyz, r6.xyzx, r14.xyzx + mul r6.xyz, r6.xyzx, cb2[4].xxxx + max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r6.xyz, r6.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + dp3_sat r0.z, r12.xyzx, r2.xywx + mul r12.xyz, r0.zzzz, r9.xyzx + mad r6.xyz, r6.xyzx, r11.xxxx, r12.xyzx + mul r6.xyz, r6.xyzx, cb2[1].xyzx + mov r3.z, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r3.yzyy, t7.xywz, s1, cb0[108].x + add r0.z, -r3.y, l(1.000000) + mad r11.xyw, r6.xyxz, r11.xyxw, -r6.xyxz + mad r6.xyz, r0.zzzz, r11.xywx, r6.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t13.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r6.xyz, r0.zzzz, r6.xyzx +else + mov r6.xyz, l(0,0,0,0) +endif +ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r3.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + dp3 r2.z, r2.xywx, r8.xyzx + max r2.z, r2.z, l(0.000000) + add r2.z, r0.z, r2.z + mad r3.y, r11.z, l(-16.000000), l(-1.000000) + exp r3.y, r3.y + log r2.z, |r2.z| + mul r2.z, r2.z, r3.y + exp r2.z, r2.z + add r2.z, r0.z, r2.z + add r2.z, r2.z, l(-1.000000) + mov_sat r11.xyw, r2.zzzz + mad r12.xyz, r9.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r9.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + mad r12.xyz, r9.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r12.xyzx + add r12.xyz, r12.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r12.xyz, r0.zzzz, r12.xyzx + max r12.xyz, r0.zzzz, r12.xyzx +else + mov r11.xyw, r1.yyyy + mov r12.xyz, r1.yyyy +endif +mad r14.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r15.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx +dp2 r0.z, r15.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r14.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r14.xyzx +mad r15.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r15.xyz, r14.xzyx, -r15.xyzx +max r0.z, |r15.y|, |r15.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.y, |r15.z|, l(-208.000000) +mul_sat r1.y, r1.y, l(0.031250) +max r0.z, r0.z, r1.y +ne r1.y, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.y, r1.y, r2.z +if_nz r1.y + mad r15.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r15.xyz, r14.xzyx, -r15.xyzx + max r1.y, |r15.y|, |r15.x| + add r1.y, r1.y, l(-29.000000) + mul_sat r1.y, r1.y, l(0.500000) + add r2.z, |r15.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.y, r1.y, r2.z + lt r2.z, r1.y, l(1.000000) + if_nz r2.z + mad r15.xyz, r14.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r15.xyzx, cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r16.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) + add r2.z, -r1.y, l(1.000000) + mul r3.y, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.y, r3.y, r15.y + min r3.y, r7.w, r3.y + mul r15.w, r3.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) + mad r3.y, r17.w, r2.z, r0.z + add r18.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r16.yyyy, r18.xyzx + mov r18.w, r16.y + mul r18.xyzw, r2.zzzz, r18.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r16.xxxx, r15.xyzx + mov r15.w, r16.x + mul r15.xyzw, r2.zzzz, r15.xyzw + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r16.wwww, r17.xyzx + mul r16.xyzw, r2.zzzz, r16.xyzw + else + mov r18.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r3.y, r0.z + endif + mad r17.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r17.xyz, r14.xzyx, -r17.xyzx + max r2.z, |r17.y|, |r17.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r7.w, |r17.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r2.z, r2.z, r7.w + lt r7.w, r2.z, l(1.000000) + if_nz r7.w + mad r17.xyz, r14.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r17.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r17.xyzx, t19.yzwx, s2, l(0.000000) + add r7.w, -r2.z, l(1.000000) + mul r1.y, r1.y, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r17.y + min r7.w, r8.w, r7.w + mul r17.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.y, r20.w, r1.y, r3.y + add r21.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t20.xyzw, s1, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.yyyy, r21.xyzx + mov r21.w, r19.y + mad r18.xyzw, r21.xyzw, r1.yyyy, r18.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t20.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r19.xxxx, r17.xyzx + mov r17.w, r19.x + mad r15.xyzw, r17.xyzw, r1.yyyy, r15.xyzw + mad r17.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r17.xyzx + mad r16.xyzw, r19.xyzw, r1.yyyy, r16.xyzw + endif + lt r1.y, l(0.000000), r2.z + if_nz r1.y + mad r14.xyz, r14.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r14.xyzx, cb0[211].xyzx + mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r17.xyzx + mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r14.xyz, r19.xyzx, r14.xyzx + min r14.xyz, r17.xyzx, r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r14.xyzx, t21.yzwx, s2, l(0.000000) + add r1.y, -r0.z, l(1.000000) + mul r1.y, r1.y, r2.z + max r2.z, r19.y, r14.y + min r2.z, r17.y, r2.z + mul r14.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t22.xyzw, s1, l(0.000000) + add r19.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r20.yyyy, r19.xyzx + mov r19.w, r20.y + mad r18.xyzw, r19.xyzw, r1.yyyy, r18.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t22.xyzw, s1, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r20.xxxx, r14.xyzx + mov r14.w, r20.x + mad r15.xyzw, r14.xyzw, r1.yyyy, r15.xyzw + mad r14.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r14.xyzx + mad r16.xyzw, r20.xyzw, r1.yyyy, r16.xyzw + mad r3.y, r17.w, r1.y, r3.y + endif + mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) + add r14.x, -r0.z, r1.y + add r0.z, r0.z, r1.y + mul r14.y, r0.z, l(0.500000) +else + mov r18.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r14.xy, l(0,1.000000,0,0) +endif +mul r17.xyzw, r14.yxyy, cb0[213].ywzx +mad r17.y, r17.y, l(0.500000), r17.x +mul r14.zw, r14.yyyx, cb0[213].wwwy +mad r17.x, r14.w, l(0.375000), r14.z +add r16.xyzw, r16.xyzw, r17.wyzx +mul r17.xyzw, r14.yxyy, cb0[214].ywzx +mad r17.y, r17.y, l(0.500000), r17.x +mul r14.zw, r14.yyyx, cb0[214].wwwy +mad r17.x, r14.w, l(0.375000), r14.z +add r15.xyzw, r15.xyzw, r17.wyzx +mul r17.xyzw, r14.yxyy, cb0[215].ywzx +mad r17.y, r17.y, l(0.500000), r17.x +mul r14.xy, r14.yxyy, cb0[215].wyww +mad r17.x, r14.y, l(0.375000), r14.x +add r14.xyzw, r17.wyzx, r18.xyzw +ge r17.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r17.y, r17.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r4.zwzz, t16.xyzw, s1, l(0.000000) + lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| + or r4.zw, r18.zzzw, r18.xxxy + or r0.z, r4.w, r4.z + if_nz r0.z + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mov r4.z, l(1.000000) + mov r4.w, r0.z + mov r1.y, l(0) + loop + ge r2.z, l(4.600000), r4.w + breakc_nz r2.z + iadd r2.z, r1.y, l(1) + mul r18.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r4.zw, r18.xxxy + mov r1.y, r2.z + continue + endloop + mul r17.xyzw, r4.zzzz, r17.xyzw + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb4[3].x, cb4[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r18.x, r0.z, l(0.00390625000) + mov r18.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r18.xyxx, t15.zwxy, s1, l(0.000000) + mad r4.zw, r4.zzzw, cb4[2].xxxy, cb4[2].zzzw + mul r18.x, r4.z, l(3.54490781) + mul r18.yzw, r4.wwww, r17.yyzw + mul r0.z, r17.x, l(0.406976730) + exp r0.z, r0.z + mul r17.xyzw, r0.zzzz, r18.xyzw + mov r18.xyzw, r17.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.y + breakc_nz r2.z + mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r19.xyzw, r18.xyzw + dp2 r3.y, r19.yxyy, r18.xyxx + dp2 r4.z, r19.zxzz, r18.xzxx + dp2 r4.w, r19.wxww, r18.xwxx + iadd r7.w, r0.z, l(1) + mov r18.x, r2.z + mov r18.y, r3.y + mov r18.zw, r4.zzzw + mov r0.z, r7.w + continue + endloop + mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r17.xyzw, r18.xyzw + dp2 r1.y, r17.yxyy, r18.xyxx + dp2 r2.z, r17.zxzz, r18.xzxx + dp2 r3.y, r17.wxww, r18.xwxx + mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.z, r17.xyzw, r18.xyzw + dp2 r4.w, r17.yxyy, r18.xyxx + dp2 r7.w, r17.zxzz, r18.xzxx + dp2 r8.w, r17.wxww, r18.xwxx + mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r17.xyzw, r18.xyzw + dp2 r10.x, r17.yxyy, r18.xyxx + dp2 r12.w, r17.zxzz, r18.xzxx + dp2 r17.x, r17.wxww, r18.xwxx + mul r16.w, r0.z, l(0.886226952) + mul r16.x, r3.y, l(-1.02332675) + mul r16.y, r1.y, l(-1.02332675) + mul r16.z, r2.z, l(1.02332675) + mul r15.x, r8.w, l(-1.02332675) + mul r15.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r15.z, r7.w, l(1.02332675) + mul r14.w, r9.w, l(0.886226952) + mul r14.x, r17.x, l(-1.02332675) + mul r14.y, r10.x, l(-1.02332675) + mul r14.z, r12.w, l(1.02332675) + endif +endif +dp3 r0.z, r16.xyzx, r2.xywx +add r0.z, r16.w, r0.z +max r16.x, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r2.xywx +add r0.z, r15.w, r0.z +max r16.y, r0.z, l(0.000000) +dp3 r0.z, r14.xyzx, r2.xywx +add r0.z, r14.w, r0.z +max r16.z, r0.z, l(0.000000) +dp3 r0.z, -r8.xyzx, r13.xyzx +add r0.z, r0.z, r0.z +mad r2.xyz, r13.xyzx, -r0.zzzz, -r8.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r1.y, r11.z, l(0.001000) +log r1.y, r1.y +mad r1.y, -r1.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.y +mul r4.zw, r4.xxxy, cb1[0].wwww +round_ni r4.zw, r4.zzzw +add r1.y, |r3.w|, -cb1[2].y +round_ni r1.y, r1.y +add r2.w, l(-1.000000), cb1[1].x +max r3.y, r1.y, l(0.000000) +min r2.w, r2.w, r3.y +ge r1.y, r2.w, r1.y +mad r3.y, r4.w, cb1[0].x, r4.z +ftoi r3.y, r3.y +iadd r3.y, r3.y, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.y, r3.y, l(0), t0.xxxx +ftoi r2.w, r2.w +iadd r2.w, r2.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.w, r2.w, l(0), t0.xxxx +and r2.w, r2.w, r3.y +and r1.y, r1.y, r2.w +mul r14.xyz, r16.xyzx, cb0[111].xxxx +dp3 r2.w, r14.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r13.w, l(1.000000) +mov r14.xyz, l(0,0,0,0) +mov r3.y, l(1.000000) +mov r4.z, r1.y +mov r4.w, l(0) +loop + lt r7.w, l(0.010000), r3.y + ine r8.w, r4.z, l(0) + and r8.w, r7.w, r8.w + if_nz r8.w + firstbit_lo r8.w, r4.z + ishl r9.w, l(1), r8.w + xor r4.z, r4.z, r9.w + ishl r8.w, r8.w, l(3) + dp4 r15.x, cb1[r8.w + 6].xyzw, r5.xyzw + dp4 r15.y, cb1[r8.w + 7].xyzw, r5.xyzw + dp4 r15.z, cb1[r8.w + 8].xyzw, r5.xyzw + ge r17.xyz, cb1[r8.w + 5].xyzx, |r15.xyzx| + and r9.w, r17.y, r17.x + and r9.w, r17.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb1[r8.w + 5].x + mul r17.xyz, |r15.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r18.xyz, -|r15.xyzx|, cb1[r8.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb1[r8.w + 9].xyzx + eq r10.x, l(1.000000), cb1[r8.w + 10].x + if_nz r10.x + dp3 r19.x, cb1[r8.w + 6].xyzx, r2.xyzx + dp3 r19.y, cb1[r8.w + 7].xyzx, r2.xyzx + dp3 r19.z, cb1[r8.w + 8].xyzx, r2.xyzx + add r20.xyz, -r15.xyzx, cb1[r8.w + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r15.xyzx, -cb1[r8.w + 5].xyzx + div r21.xyz, r21.xyzx, r19.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + movc r20.xyz, r22.xyzx, r20.xyzx, r21.xyzx + min r10.x, r20.y, r20.x + min r10.x, r20.z, r10.x + mad r15.xyz, r19.xyzx, r10.xxxx, r15.xyzx + else + mov r15.xyz, r2.xyzx + endif + dp3 r10.x, r15.xyzx, r15.xyzx + rsq r10.x, r10.x + mul r15.xyz, r10.xxxx, r15.xyzx + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r20.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r19.xyz, -r19.xyzx, r20.xyzx + itof r19.xyz, r19.xyzx + dp3 r10.x, r15.xyzx, r19.xyzx + div r15.xyz, r15.xyzx, r10.xxxx + lt r10.x, r15.z, l(0.000000) + add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r19.xxxy + movc r15.xy, r10.xxxx, r15.zwzz, r15.xyxx + dp4 r10.x, cb1[r8.w + 4].xyzw, r13.xyzw + max r10.x, r10.x, l(0.000000) + max r10.x, r10.x, l(0.000100) + min r11.z, r18.z, r18.y + min r11.z, r11.z, r18.x + add r12.w, r17.y, r17.x + mad r12.w, r17.z, r17.z, r12.w + mad r9.w, r9.w, r9.w, -r12.w + mul r9.w, r9.w, cb1[r8.w + 9].x + mul r9.w, r9.w, cb1[r8.w + 9].x + add r12.w, l(1.000000), -cb1[r8.w + 10].y + mul r9.w, r9.w, r12.w + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r11.z, cb1[r8.w + 10].y, r9.w + mul r11.z, r9.w, cb1[r8.w + 10].w + mad r15.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r15.xy, r15.xyxx, cb1[1].wwww, cb1[2].wwww + mov r15.z, cb1[r8.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + mul r15.xyz, r15.xyzx, cb1[r8.w + 9].wwww + div r12.w, r2.w, r10.x + min r12.w, |r12.w|, l(1.000000) + mad r12.w, r12.w, l(2.000000), r2.w + add r10.x, r10.x, l(2.000000) + div r10.x, r12.w, r10.x + add r10.x, r10.x, l(-1.000000) + mad r10.x, r10.x, cb0[112].w, l(1.000000) + mul r15.xyz, r10.xxxx, r15.xyzx + mul r15.xyz, r11.zzzz, r15.xyzx + mad r14.xyz, r15.xyzx, r3.yyyy, r14.xyzx + mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) + mul r3.y, r3.y, r8.w + endif + mov r4.w, l(-1) + continue + else + mov r4.w, r7.w + break + endif + mov r4.w, r7.w +endloop +if_nz r4.w + dp3 r1.y, r2.xyzx, r2.xyzx + rsq r1.y, r1.y + mul r2.xyz, r1.yyyy, r2.xyzx + lt r5.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xxyz + lt r15.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r5.xzw, -r5.xxzw, r15.xxyz + itof r5.xzw, r5.xxzw + dp3 r1.y, r2.xyzx, r5.xzwx + div r2.xyz, r2.xyzx, r1.yyyy + lt r1.y, r2.z, l(0.000000) + add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r4.zw, r4.zzzw, r5.xxxz + movc r2.xy, r1.yyyy, r4.zwzz, r2.xyxx + mov r13.w, l(1.000000) + dp4 r1.y, cb1[3].xyzw, r13.xyzw + max r1.y, r1.y, l(0.000000) + max r1.y, r1.y, l(0.000100) + mad r2.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r2.xy, r2.xyxx, cb1[1].wwww, cb1[2].wwww + mov r2.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r2.xyz, r2.xyzx, t5.xyzw, s3, r0.z + div r0.z, r2.w, r1.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.w + add r1.y, r1.y, l(2.000000) + div r0.z, r0.z, r1.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r2.xyz, r0.zzzz, r2.xyzx + mad r14.xyz, r2.xyzx, r3.yyyy, r14.xyzx +endif +mul r2.xyz, r14.xyzx, cb0[112].zzzz +mul r2.xyz, r2.xyzx, cb0[111].yyyy +if_nz r3.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r5.xzw, v1.xyxx, t2.xwyz, s1, cb0[108].x + add r1.y, -r0.z, l(1.000000) + mul r13.xyz, r1.yyyy, r2.xyzx + mad r2.xyz, r5.xzwx, r0.zzzz, r13.xyzx +endif +mul r5.xzw, r9.xxyz, r16.xxyz +mul r5.xzw, r5.xxzw, cb0[111].xxxx +add r0.z, -r3.x, l(1.000000) +div r0.z, r0.z, r3.x +mul r1.xyz, r0.zzzz, r1.xzwx +mad r1.xyz, r1.xyzx, r10.yzwy, r10.yzwy +mul r1.xyz, r1.xyzx, r2.xyzx +mul r1.xyz, r11.xywx, r1.xyzx +mad r1.xyz, r5.xzwx, r12.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r6.xyzx +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r5.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r8.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r8.xyzx, -r7.xyzx + add r2.w, r5.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w + mul r4.z, r0.x, r3.z + mad r4.w, r4.z, r2.w, cb0[44].y + mad r2.w, -r4.z, r2.w, r2.w + mul r4.z, r2.w, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.x, r4.w, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.z, l(5.960464478E-08), |r4.z| + exp r5.w, -r4.z + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r5.z, r5.w, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r5.z, l(5.960464478E-08), |r2.w| + exp r5.w, -r2.w + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r5.z, r5.w, r2.w + mul r2.w, r2.w, r4.w + mad r2.w, r5.x, r4.z, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r6.w, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r6.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r3.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r3.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.cso b/src/games/endfield/deferred-lighting/0xD88CD7C9.cso index af5cc7c98ef9b0bdf81ff6f5e08bd645dd5c4b19..1b1a4f927eedc448aff36428c96821d0811308c3 100644 GIT binary patch delta 86 zcmZ2-fpN+iMk$vFC+9;}jaQ2%{@Nw_q+DdJ(ywkt1_lO^w24xSI73ny7y^L2(2Yl@ fr*In^Z?=Qt$?2)8+-YfQ_E0=|daCB+3+W*MdFCG; delta 523 zcmbPohH=RSMk$vFCug16x!%tWj57ftn zEXO%nkVSlQLJ|ijOf~1^LM`z~3p6u8vLG`+ZU)JL+y%266fh8XG1xOGFmNErH8=w0 z5bkcUx0tLOCZ0HJrldW(DKOJOz6Amf6juTTfIb161_~`B1_n-$JcteR8OWzFKX6Rm Hn;H%PjLTFL diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm index 9d463781c..958caf991 100644 --- a/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm @@ -857,60 +857,23 @@ if_z cb13[12].y ret endif -// === Custom Hue-Preserving Fog Blend === -// FOG_INTENSITY = 0.7, HUE_PRESERVATION = 0.6 +// === Simplified Fog Modification (Anti-Banding) === // r1.xyz = scene color (0-255), r2.xyw = transmittance, r0.xyz = fog inscatter (0-255) // Normalize colors to 0-1 range mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 -// Reduce fog intensity: transmittance = lerp(transmittance, 1, 0.3) +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density add r7.xyz, -r2.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r7.xyz, r7.xyzx, l(0.300000, 0.300000, 0.300000, 0.000000), r2.xywx // adjusted transmittance +mad r7.xyz, r7.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r2.xywx -// fogColor *= FOG_INTENSITY (0.7) -mul r6.xyz, r6.xyzx, l(0.700000, 0.700000, 0.700000, 0.000000) +// Reduce fog inscatter intensity +mul r6.xyz, r6.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) -// Standard fog blend: foggedScene = sceneColor * transmittance + fogColor +// Standard fog blend with reduced intensity mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx -// Calculate fog amount: fogAmount = 1 - avg(transmittance) -dp3 r3.w, r7.xyzx, l(0.333333, 0.333333, 0.333333, 0.000000) -add r3.w, -r3.w, l(1.000000) - -// Scene luminance (BT.709) -dp3 r4.w, r5.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) - -// Fogged luminance -dp3 r5.w, r8.xyzx, l(0.2126, 0.7152, 0.0722, 0.000000) - -// lumaWeight = saturate(sceneLuma * 100) for smooth falloff -mul_sat r6.w, r4.w, l(100.000000) - -// Safe luma for division -max r4.w, r4.w, l(0.0001) - -// sceneRatios = sceneColor / safeLuma -div r9.xyz, r5.xyzx, r4.wwww - -// Clamp ratios to prevent artifacts -max r9.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r9.xyz, r9.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000) - -// huePreserved = sceneRatios * foggedLuma -mul r9.xyz, r9.xyzx, r5.wwww - -// preserveAmount = HUE_PRESERVATION * saturate(1 - fogAmount*0.5) * lumaWeight -mul r4.w, r3.w, l(0.500000) -add_sat r4.w, -r4.w, l(1.000000) -mul r4.w, r4.w, l(0.600000) // HUE_PRESERVATION -mul r4.w, r4.w, r6.w - -// foggedScene = lerp(foggedScene, huePreserved, preserveAmount) -add r9.xyz, r9.xyzx, -r8.xyzx -mad r8.xyz, r4.wwww, r9.xyzx, r8.xyzx - // Output: scale back to 0-255 range mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) dp3 o0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) diff --git a/src/games/endfield/deferred-lighting/0xE322C21D.cso b/src/games/endfield/deferred-lighting/0xE322C21D.cso new file mode 100644 index 0000000000000000000000000000000000000000..39ecd93f41f6438c6e163e7aad6b5f615cbf3249 GIT binary patch literal 49564 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm new file mode 100644 index 000000000..f0aa33b73 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm @@ -0,0 +1,1634 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 20:17:33 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[160], dynamicIndexed +dcl_constantbuffer CB6[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture3d (float,float,float,float) t25 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 38 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t23.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t24.xyzw +mul r1.xyzw, r1.xwyz, l(1023.000000, 3.000000, 1023.000000, 1023.000000) +ftou r1.xyw, r1.xyxw +ubfe r4.x, l(7), l(3), r1.x +bfi r4.yz, l(0, 3, 3, 0), l(0, 2, 2, 0), r1.xxwx, l(0, 0, 0, 0) +bfi r1.x, l(2), l(0), r1.y, r4.y +utof r1.x, r1.x +mul r1.y, r1.x, l(0.0322580636) +round_ne r1.z, r1.z +ftou r1.z, r1.z +ubfe r4.y, l(7), l(3), r1.z +utof r4.xy, r4.xyxx +mul r4.y, r4.y, l(0.00787401572) +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.w, l(1.000000) +lt r4.w, r5.y, l(0.000000) +ge r6.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r6.xy, r6.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r6.xy, r6.xyxx, r6.zwzz +movc r5.xz, r4.wwww, r6.xxyx, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r5.xyz, r2.xxxx, r5.xyzx +and r1.z, r1.z, l(7) +utof r1.z, r1.z +mad r1.z, r1.z, l(0.107142866), l(0.500000) +utof r2.xy, r0.xyxx +mul r6.xy, v0.xyxx, cb0[82].zwzz +mad r6.zw, r6.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r7.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r7.xy, r7.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r4.w, r7.xyxx, t1.yzwx, s0, l(0.000000) +mul r7.xyzw, -r6.wwww, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r6.zzzz, r7.xyzw +mad r7.xyzw, cb0[26].xyzw, r4.wwww, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r4.w, r7.y, cb0[1].z +mad r4.w, cb0[0].z, r7.x, r4.w +mad r4.w, cb0[2].z, r7.z, r4.w +add r4.w, r4.w, cb0[3].z +eq r6.z, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r10.xyz, r6.zzzz, r8.xyzx, r9.xyzx +dp3 r6.z, r10.xyzx, r10.xyzx +max r6.w, r6.z, l(9.999999939E-09) +rsq r6.w, r6.w +mul r11.xyz, r6.wwww, r10.xyzx +mul r6.z, r6.w, r6.z +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r8.w, v1.xyxx, t21.yzwx, s1, cb0[108].x +else + mov r8.w, l(1.000000) +endif +add r8.w, -r8.w, l(1.000000) +mul r2.w, r2.w, l(3.000000) +mad_sat r9.w, r2.z, l(0.300000), l(0.250000) +mul r9.w, r9.w, cb0[222].x +mul r9.w, r8.w, r9.w +mad r9.w, r9.w, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r9.wwww +min r9.w, r2.z, l(0.300000) +mul r8.w, r8.w, cb0[222].x +mul r8.w, r8.w, l(0.500000) +add r9.w, -r2.z, r9.w +mad r12.w, r8.w, r9.w, r2.z +mul r2.z, r1.z, l(0.080000) +dp3 r8.w, r5.xyzx, r11.xyzx +max r9.w, r8.w, l(0.000000) +mad r13.xyzw, r12.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r10.w, r13.x, r13.x +mul r11.w, r9.w, l(-9.280000) +exp r11.w, r11.w +min r10.w, r10.w, r11.w +mad r10.w, r10.w, r13.x, r13.y +mad r13.xy, r10.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t7.zwxy +lt r0.z, l(0.001000), r13.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t10.yzxw, s1, l(0.000000) + dp3 r10.w, -r11.xyzx, r5.xyzx + add r10.w, r10.w, r10.w + mad r14.xyz, r5.xyzx, -r10.wwww, -r11.xyzx + dp3 r10.w, -cb3[0].xyzx, r14.xyzx + mad r15.xyz, cb3[0].xyzx, r10.wwww, r14.xyzx + lt r10.w, r10.w, cb3[4].z + dp3 r11.w, r15.xyzx, r15.xyzx + max r11.w, r11.w, l(0.0000610351562) + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb3[4].yyyy + mad r15.xyz, -cb3[0].xyzx, cb3[4].zzzz, r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + movc r14.xyz, r10.wwww, r15.xyzx, r14.xyzx + mad r15.xyz, r10.xyzx, r6.wwww, r14.xyzx + dp3 r10.w, r15.xyzx, r15.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + dp3 r10.w, r5.xyzx, r14.xyzx + mov_sat r12.y, r10.w + dp3_sat r11.w, r5.xyzx, r15.xyzx + dp3 r14.x, r11.xyzx, r14.xyzx + min r12.z, r9.w, l(1.000000) + mul r14.y, r12.w, r12.w + mul r14.y, r14.y, r14.y + mad r14.z, r11.w, r14.y, -r11.w + mad r11.w, r14.z, r11.w, l(1.000000) + dp3_sat r14.z, r11.xyzx, r15.xyzx + add r14.z, -r14.z, l(1.000000) + mul r14.w, r14.z, r14.z + mul r14.w, r14.w, r14.w + mul r15.x, r14.z, r14.w + add r15.y, -r12.w, l(1.000000) + mad r15.z, -r15.y, l(0.383026), l(-0.0761947036) + mad r15.z, r15.y, r15.z, l(1.049970) + mad r15.y, r15.y, r15.z, l(0.409255) + min r15.y, r15.y, l(0.999000) + add r15.z, -r15.y, l(1.000000) + mad r15.w, -r1.z, l(0.080000), l(1.000000) + mad r15.w, r15.w, l(0.0476190485), r2.z + mov_sat r16.x, -r14.x + mul r16.x, r16.x, r16.x + mad r16.x, r16.x, l(-0.640000), l(1.000000) + mul r16.x, r16.x, r16.x + mad r14.z, -r14.w, r14.z, l(1.000000) + mad r14.z, r2.z, r14.z, r15.x + mul r11.w, r11.w, r11.w + div r11.w, r14.y, r11.w + mad r16.yz, -r12.zzyz, r14.yyyy, r12.zzyz + mad r14.yw, r16.yyyz, r12.zzzy, r14.yyyy + sqrt r14.yw, r14.yyyw + mul r14.yw, r12.yyyz, r14.yyyw + add r14.y, r14.w, r14.y + add r14.y, r14.y, l(0.000100) + div r14.y, l(0.500000), r14.y + mul r11.w, r11.w, r14.y + mul r11.w, r11.w, r14.z + min r11.w, r11.w, l(2048.000000) + mad r17.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r12.z, r17.xyxx, t9.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r14.y, r17.zwzz, t9.yxzw, s1, l(0.000000) + mul r12.z, r12.z, r14.y + mul r12.z, r15.y, r12.z + div r12.z, r12.z, r15.z + mul r14.y, r15.w, r15.w + mul r12.z, r12.z, r14.y + mad r14.y, -r15.w, r15.z, l(1.000000) + div r12.z, r12.z, r14.y + add r11.w, r11.w, r12.z + add_sat r12.z, r8.w, l(0.200000) + mov_sat r14.y, r14.x + add r14.y, r14.y, l(0.500000) + min r14.y, r14.y, l(1.000000) + mul r14.z, r12.z, r14.y + add_sat r14.x, r14.x, l(1.000000) + mad r12.z, -r12.z, r14.y, l(1.000000) + mad r12.z, r14.x, r12.z, r14.z + mul r11.w, r11.w, r12.z + mul r11.w, r4.y, r11.w + mul r14.xyz, r4.yyyy, r3.xyzx + ubfe r1.w, l(7), l(3), r1.w + utof r1.w, r1.w + mul r1.w, r1.w, l(0.00787401572) + mul r11.w, r11.w, cb3[4].x + max r11.w, r11.w, l(0.000000) + min r11.w, r11.w, l(1000.000000) + mul r11.w, r12.y, r11.w + mad r14.xyz, r14.xyzx, r1.wwww, r11.wwww + max r1.w, r3.y, r3.x + max r1.w, r3.z, r1.w + max r1.w, r1.w, l(0.010000) + div r15.xyz, r3.xyzx, r1.wwww + mul r1.w, r4.x, l(0.00393700786) + mul r15.xyz, r1.wwww, r15.xyzx + add_sat r1.w, -r10.w, l(0.500000) + ne r11.w, r16.x, l(0.360000) + div r12.z, l(0.360000), r16.x + movc r11.w, r11.w, r12.z, l(1.000000) + mul r1.w, r1.w, r11.w + mad_sat r10.w, r1.x, l(0.0322580636), r10.w + add r10.w, -r12.y, r10.w + mul r16.xyz, r3.xyzx, r10.wwww + mad r15.xyz, r15.xyzx, r1.wwww, r16.xyzx + mad r14.xyz, r15.xyzx, r4.yyyy, r14.xyzx + mul r14.xyz, r14.xyzx, cb3[1].xyzx + mov r13.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, r13.zwzz, t8.xyzw, s1, cb0[108].x + add r1.w, -r13.z, l(1.000000) + mad r15.xyz, r14.xyzx, r15.xyzx, -r14.xyzx + mad r14.xyz, r1.wwww, r15.xyzx, r14.xyzx + max r1.w, r4.y, r0.z + add r1.w, -r0.z, r1.w + mad r0.z, r1.y, r1.w, r0.z + mul r14.xyz, r0.zzzz, r14.xyzx +else + mov r14.xyz, l(0,0,0,0) +endif +mul r1.yw, r2.xxxy, l(0.000000, 0.031250, 0.000000, 0.031250) +round_ni r1.yw, r1.yyyw +mad r0.z, r1.w, cb2[1].y, r1.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r1.y, -cb0[85].y, cb2[2].w, |r4.w| +round_ni r1.y, r1.y +add r1.w, l(-1.000000), cb2[1].w +max r10.w, r1.y, l(0.000000) +min r1.w, r1.w, r10.w +mul r10.w, r1.w, l(8.000000) +ftoi r10.w, r10.w +ge r1.y, r1.w, r1.y +iadd r1.w, r10.w, cb0[110].y +mul r10.w, r12.w, r12.w +dp3 r11.w, -r11.xyzx, r5.xyzx +add r11.w, r11.w, r11.w +mad r15.xyz, r5.xyzx, -r11.wwww, -r11.xyzx +min r12.x, r9.w, l(1.000000) +add r11.w, -r12.w, l(1.000000) +mad r12.y, -r11.w, l(0.383026), l(-0.0761947036) +mad r12.y, r11.w, r12.y, l(1.049970) +mad r11.w, r11.w, r12.y, l(0.409255) +min r11.w, r11.w, l(0.999000) +add r12.y, -r11.w, l(1.000000) +mad r1.z, -r1.z, l(0.080000), l(1.000000) +mad r1.z, r1.z, l(0.0476190485), r2.z +mad r13.zw, r12.xxxw, l(0.000000, 0.000000, 0.968750, 0.968750), l(0.000000, 0.000000, 0.015625, 0.015625) +sample_l_indexable(texture2d)(float,float,float,float) r12.z, r13.zwzz, t9.yzxw, s1, l(0.000000) +mad r13.z, -r1.z, r12.y, l(1.000000) +add_sat r8.w, r8.w, l(0.200000) +max r13.w, r3.y, r3.x +max r13.w, r3.z, r13.w +max r13.w, r13.w, l(0.010000) +div r16.xyz, r3.xyzx, r13.wwww +mul r13.w, r4.x, l(0.00393700786) +mul r17.xyz, r13.wwww, r16.xyzx +mul r18.xyz, r4.yyyy, r3.xyzx +mul r1.z, r1.z, r1.z +mov r19.w, l(1.000000) +mov r20.y, l(1.000000) +mov r21.z, r12.w +mov r22.xyz, l(0,0,0,0) +mov r13.w, l(1.000000) +mov r14.w, l(0) +loop + ilt r15.w, l(7), r14.w + breakc_nz r15.w + iadd r15.w, r0.z, r14.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t0.xxxx + iadd r16.w, r1.w, r14.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t0.xxxx + and r15.w, r15.w, r16.w + and r15.w, r1.y, r15.w + ishl r16.w, r14.w, l(5) + mov r23.xyz, l(0,0,0,0) + mov r17.w, r13.w + mov r18.w, r15.w + loop + breakc_z r18.w + firstbit_lo r20.z, r18.w + ishl r20.w, l(1), r20.z + xor r20.w, r18.w, r20.w + iadd r20.z, r16.w, r20.z + bfi r24.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r20.zzzz, l(1, 3, 5, 6) + bfi r21.w, l(29), l(3), r20.z, l(7) + ftou r22.w, cb3[r24.z + 6].w + ieq r22.w, r22.w, l(1) + if_nz r22.w + add r19.xyz, r7.xyzx, -cb3[r24.x + 6].xyzx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.z + 6].xzyx + and r26.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.w + 6].yxzy + ushr r27.xyz, cb3[r24.z + 6].xzyx, l(16, 16, 16, 0) + ushr r28.xyz, cb3[r24.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyz, r27.xyzx + f16tof32 r28.xyw, r28.yxyz + mov r29.xz, r25.xxzx + mov r29.yw, r27.xxxz + dp4 r22.w, r19.xyzw, r29.xyzw + mov r27.x, r25.y + mov r27.z, r26.y + mov r27.w, r28.x + dp4 r23.w, r19.xyzw, r27.xyzw + mov r28.xz, r26.xxzx + dp4 r19.x, r19.xyzw, r28.xyzw + max r19.y, |r22.w|, |r23.w| + max r19.x, |r19.x|, r19.y + mad r19.y, cb3[r21.w + 6].x, l(0.500000), l(0.500000) + add r19.x, -r19.y, r19.x + mad r19.y, -cb3[r21.w + 6].x, l(0.500000), l(0.500000) + div_sat r19.x, r19.x, r19.y + add r19.x, -r19.x, l(1.000000) + mul r19.x, r19.x, r19.x + else + mov r19.x, l(1.000000) + endif + lt r19.y, l(0.500000), cb3[r24.y + 6].z + lt r19.z, r19.x, l(0.001000) + or r19.z, r19.y, r19.z + if_nz r19.z + mov r18.w, r20.w + continue + endif + ishl r19.z, r20.z, l(3) + bfi r20.z, l(29), l(3), r20.z, l(2) + lt r22.w, cb3[r19.z + 6].w, l(1.500000) + if_nz r22.w + mad r22.w, cb3[r20.z + 6].y, l(0.500000), l(0.500000) + add r25.x, r22.w, -|cb3[r20.z + 6].x| + add r25.y, -r25.x, cb3[r20.z + 6].y + add r22.w, -|r25.x|, l(1.000000) + add r22.w, -|r25.y|, r22.w + max r22.w, r22.w, l(0.000488281250) + ge r23.w, cb3[r20.z + 6].x, l(0.000000) + movc r25.z, r23.w, r22.w, -r22.w + dp3 r22.w, r25.xyzx, r25.xyzx + rsq r22.w, r22.w + mul r25.xyz, r22.wwww, r25.xyzx + add r26.xyz, -r7.xyzx, cb3[r24.x + 6].xyzx + dp3 r22.w, r26.xyzx, r26.xyzx + rsq r23.w, r22.w + mul r27.xyz, r23.wwww, r26.xyzx + ftoi r24.z, cb3[r21.w + 6].w + mul r28.xyz, r25.xyzx, cb3[r20.z + 6].zzzz + mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r30.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + ftou r25.w, cb3[r19.z + 6].w + and r25.w, r25.w, l(1) + ieq r26.w, r25.w, l(0) + not r26.w, r26.w + lt r27.w, l(0.000000), cb3[r20.z + 6].z + and r26.w, r26.w, r27.w + dp3 r27.w, r29.xyzx, r29.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r30.xyzx, r30.xyzx + sqrt r28.w, r28.w + dp3 r29.w, r5.xyzx, r29.xyzx + div r29.w, r29.w, r27.w + dp3 r30.w, r5.xyzx, r30.xyzx + div r30.w, r30.w, r28.w + add r29.w, r29.w, r30.w + mul_sat r31.x, r29.w, l(0.500000) + dp3 r29.w, r29.xyzx, r30.xyzx + mad r27.w, r27.w, r28.w, r29.w + mad r27.w, r27.w, l(0.500000), l(1.000000) + div r31.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w + dp3_sat r20.x, r5.xyzx, r27.xyzx + movc r21.xy, r26.wwww, r31.xyxx, r20.xyxx + lt r20.x, cb3[r24.w + 6].w, l(0.000000) + if_nz r20.x + mul r20.x, cb3[r24.x + 6].w, cb3[r24.x + 6].w + mul r20.x, r20.x, r22.w + mad r20.x, -r20.x, r20.x, l(1.000000) + max r20.x, r20.x, l(0.000000) + add r22.w, r22.w, l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + and r27.w, r26.w, l(0x3f800000) + add r28.w, r21.y, -r22.w + mad r22.w, r27.w, r28.w, r22.w + mul r20.x, r20.x, r20.x + mul r20.x, r20.x, r22.w + else + mul r30.xyz, r26.xyzx, cb3[r24.x + 6].wwww + dp3 r22.w, r30.xyzx, r30.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb3[r24.w + 6].w + exp r22.w, r22.w + mul r20.x, r21.y, r22.w + endif + dp3 r21.y, r27.xyzx, -r25.xyzx + add r21.y, r21.y, -cb3[r20.z + 6].z + mul_sat r21.y, r21.y, cb3[r20.z + 6].w + mul r21.y, r21.y, r21.y + movc r21.y, r25.w, l(1.000000), r21.y + mul r20.x, r20.x, r21.y + not r21.y, r26.w + ige r22.w, r24.z, l(0) + and r21.y, r21.y, r22.w + if_nz r21.y + if_z r25.w + ishl r21.y, r24.z, l(2) + mul r25.xyz, r7.yyyy, cb5[r21.y + 33].xywx + mad r25.xyz, cb5[r21.y + 32].xywx, r7.xxxx, r25.xyzx + mad r25.xyz, cb5[r21.y + 34].xywx, r7.zzzz, r25.xyzx + add r25.xyz, r25.xyzx, cb5[r21.y + 35].xywx + div_sat r25.xy, r25.xyxx, r25.zzzz + mad r25.xy, r25.xyxx, cb5[r24.z + 0].zwzz, cb5[r24.z + 0].xyxx + else + ishl r21.y, r24.z, l(2) + dp3 r30.x, -r26.xyzx, cb5[r21.y + 32].xyzx + dp3 r30.y, -r26.xyzx, cb5[r21.y + 33].xyzx + dp3 r30.z, -r26.xyzx, cb5[r21.y + 34].xyzx + lt r21.y, |r30.x|, |r30.y| + and r21.y, r21.y, l(1) + dp2 r22.w, |r30.xyxx|, icb[r21.y + 0].xyxx + lt r22.w, r22.w, |r30.z| + movc r21.y, r22.w, l(2), r21.y + dp3 r22.w, r30.xyzx, icb[r21.y + 0].xyzx + lt r22.w, r22.w, l(0.000000) + bfi r21.y, l(31), l(1), r21.y, r22.w + ushr r22.w, r21.y, l(1) + dp3 r22.w, r30.xyzx, icb[r22.w + 0].xyzx + div r25.z, l(0.000244140625), cb5[r24.z + 0].w + add r25.z, -r25.z, l(0.500000) + utof r26.x, r21.y + ult r26.y, r21.y, l(2) + and r26.y, r26.y, l(2) + dp2 r26.y, r30.xzxx, icb[r26.y + 0].xzxx + mul r26.y, r26.y, icb[r21.y + 4].z + div r26.y, r26.y, |r22.w| + mad r26.x, r26.y, r25.z, r26.x + add r26.x, r26.x, l(0.500000) + mul_sat r26.x, r26.x, l(0.166666672) + iadd r26.z, l(-1), icb[r21.y + 4].y + dp2 r26.z, r30.yzyy, icb[r26.z + 0].xyxx + mul r21.y, r26.z, icb[r21.y + 4].w + div r21.y, r21.y, |r22.w| + mad_sat r26.y, -r21.y, r25.z, l(0.500000) + mad r25.xy, r26.xyxx, cb5[r24.z + 0].zwzz, cb5[r24.z + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r21.y, r25.xyxx, t11.yxzw, s1, l(0.000000) + mul r20.x, r20.x, r21.y + endif + lt r21.y, l(0.000000), r20.x + if_nz r21.y + if_z r25.w + ftoi r22.w, cb3[r24.y + 6].x + else + add r25.xyz, r7.xyzx, -cb3[r24.x + 6].xyzx + lt r26.xyz, |r25.yzzy|, |r25.xxyx| + and r24.z, r26.y, r26.x + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ushr r25.w, cb3[r20.z + 6].w, l(24) + ubfe r26.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r20.z + 6].wwww + movc r25.x, r25.x, r25.w, r26.x + and r25.w, l(255), cb3[r20.z + 6].w + movc r25.y, r25.y, r26.y, r25.w + ubfe r25.w, l(8), l(8), cb3[r24.y + 6].x + and r26.x, l(255), cb3[r24.y + 6].x + movc r25.z, r25.z, r25.w, r26.x + movc r25.y, r26.z, r25.y, r25.z + movc r24.z, r24.z, r25.x, r25.y + ilt r25.x, r24.z, l(80) + movc r22.w, r25.x, r24.z, l(-1) + endif + ishl r24.z, r22.w, l(2) + mad r25.xyz, r27.xyzx, cb4[r22.w + 288].xxxx, r7.xyzx + mul r25.w, l(5.000000), cb4[r22.w + 288].y + mad r25.xyz, r5.xyzx, r25.wwww, r25.xyzx + mul r30.xyzw, r25.yyyy, cb4[r24.z + 65].xyzw + mad r30.xyzw, cb4[r24.z + 64].xyzw, r25.xxxx, r30.xyzw + mad r25.xyzw, cb4[r24.z + 66].xyzw, r25.zzzz, r30.xyzw + add r25.xyzw, r25.xyzw, cb4[r24.z + 67].xyzw + div r25.xyz, r25.xyzx, r25.wwww + ge r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ge r30.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r31.xy, -cb4[r22.w + 344].xyxx, cb4[r22.w + 344].zwzz + mad r25.xy, r25.xyxx, r31.xyxx, cb4[r22.w + 344].xyxx + mad r31.xy, r25.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r31.xy, r31.xyxx + mad r25.xy, r25.xyxx, cb4[400].zwzz, -r31.xyxx + add r32.xyzw, r25.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r33.xyzw, r32.xxzz, r32.xxzz + add r31.zw, -r25.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r32.xz, r25.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r34.xy, r25.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r35.xy, r31.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r34.xy, -r34.xyxx, r34.xyxx, r32.ywyy + add r34.xy, r34.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r34.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r33.xz, r33.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r25.xy, r33.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r25.xyxx + mul r36.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r25.xy, -r32.xzxx, r32.xzxx, r31.zwzz + add r25.xy, r25.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r37.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xy, r32.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r36.z, r37.x + mov r36.w, r25.x + mov r35.z, r34.x + mov r35.w, r33.x + add r32.xyzw, r35.zwxz, r36.zwxz + mov r37.z, r36.y + mov r37.w, r25.y + mov r34.z, r35.y + mov r34.w, r33.z + add r25.xyw, r34.zyzw, r37.zyzw + div r33.xyz, r35.xzwx, r32.zwyz + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.yxzy, cb4[400].xxxx + div r34.xyz, r34.zywz, r25.xywx + add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r34.xyz, r34.xyzx, cb4[400].yyyy + mov r33.w, r34.x + mad r35.xyzw, r31.xyxy, cb4[400].xyxy, r33.ywxw + mad r31.zw, r31.xxxy, cb4[400].xxxy, r33.zzzw + mov r34.w, r33.y + mov r33.yw, r34.yyyz + mad r36.xyzw, r31.xyxy, cb4[400].xyxy, r33.xyzy + mad r34.xyzw, r31.xyxy, cb4[400].xyxy, r34.wywz + mad r33.xyzw, r31.xyxy, cb4[400].xyxy, r33.xwzw + mul r37.xyzw, r25.xxxy, r32.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r35.xyxx, t6.xxxx, s4, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r35.zwzz, t6.xxxx, s4, r25.z + mul r25.x, r25.x, r37.y + mad r24.z, r37.x, r24.z, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r31.zwzz, t6.xxxx, s4, r25.z + mad r24.z, r37.z, r25.x, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r34.xyxx, t6.xxxx, s4, r25.z + mad r24.z, r37.w, r25.x, r24.z + mul r31.xyzw, r25.yyww, r32.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r36.xyxx, t6.xxxx, s4, r25.z + mad r24.z, r31.x, r25.x, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r36.zwzz, t6.xxxx, s4, r25.z + mad r24.z, r31.y, r25.x, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r34.zwzz, t6.xxxx, s4, r25.z + mad r24.z, r31.z, r25.x, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r33.xyxx, t6.xxxx, s4, r25.z + mad r24.z, r31.w, r25.x, r24.z + ige r25.x, r22.w, l(0) + or r26.xyz, r26.xyzx, r30.xyzx + or r25.y, r26.y, r26.x + or r25.y, r26.z, r25.y + and r26.x, r25.z, l(0x7fffffff) + ult r26.x, l(0x7f800000), r26.x + or r25.y, r25.y, r26.x + mul r25.w, r25.w, r32.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.z, r33.zwzz, t6.xxxx, s4, r25.z + mad r24.z, r25.w, r25.z, r24.z + add r24.z, r24.z, l(-1.000000) + mad r22.w, cb4[r22.w + 288].w, r24.z, l(1.000000) + movc r22.w, r25.y, l(1.000000), r22.w + movc r22.w, r25.x, r22.w, l(1.000000) + else + mov r22.w, l(1.000000) + endif + if_nz r26.w + dp3 r24.z, r15.xyzx, r28.xyzx + mul_sat r25.x, r23.w, cb3[r20.z + 6].z + mad r25.x, r25.x, l(0.500000), r10.w + min r25.x, r25.x, l(1.000000) + div r25.x, r10.w, r25.x + mad r25.yzw, r15.xxyz, r24.zzzz, -r28.xxyz + dp3 r25.y, r29.xyzx, r25.yzwy + mul r24.z, r24.z, r24.z + mad r24.z, cb3[r20.z + 6].z, cb3[r20.z + 6].z, -r24.z + div_sat r24.z, r25.y, r24.z + mad r25.yzw, r28.xxyz, r24.zzzz, r29.xxyz + dp3 r24.z, r25.yzwy, r25.yzwy + rsq r24.z, r24.z + mul r27.xyz, r24.zzzz, r25.yzwy + else + mov r25.x, l(1.000000) + endif + if_nz r21.y + mul_sat r21.y, r23.w, cb3[r21.w + 6].y + mad r25.yzw, r10.xxyz, r6.wwww, r27.xxyz + dp3 r23.w, r25.yzwy, r25.yzwy + max r23.w, r23.w, l(0.0000610351562) + rsq r23.w, r23.w + mul r25.yzw, r23.wwww, r25.yyzw + dp3 r23.w, r5.xyzx, r27.xyzx + dp3_sat r24.z, r5.xyzx, r25.yzwy + dp3_sat r25.y, r11.xyzx, r25.yzwy + dp3 r25.z, r11.xyzx, r27.xyzx + lt r25.w, l(0.000000), r21.y + mul r21.y, r21.y, r21.y + mad r26.x, r25.y, l(3.600000), l(0.400000) + div r21.y, r21.y, r26.x + mad r21.y, r12.w, r12.w, r21.y + min r21.y, r21.y, l(1.000000) + movc r21.y, r25.w, r21.y, r10.w + mul r21.y, r21.y, r21.y + mad r25.w, r24.z, r21.y, -r24.z + mad r24.z, r25.w, r24.z, l(1.000000) + add r25.y, -r25.y, l(1.000000) + mul r25.w, r25.y, r25.y + mul r25.w, r25.w, r25.w + mul r26.x, r25.y, r25.w + mov_sat r26.y, -r25.z + mul r26.y, r26.y, r26.y + mad r26.y, r26.y, l(-0.640000), l(1.000000) + mul r26.y, r26.y, r26.y + mad r25.y, -r25.w, r25.y, l(1.000000) + mad r25.y, r2.z, r25.y, r26.x + mul r24.z, r24.z, r24.z + div r24.z, r21.y, r24.z + mul r24.z, r25.x, r24.z + mad r25.x, -r12.x, r21.y, r12.x + mad r25.x, r25.x, r12.x, r21.y + sqrt r25.x, r25.x + mad r25.w, -r21.x, r21.y, r21.x + mad r21.y, r25.w, r21.x, r21.y + sqrt r21.y, r21.y + mul r21.y, r12.x, r21.y + mad r21.y, r21.x, r25.x, r21.y + add r21.y, r21.y, l(0.000100) + div r21.y, l(0.500000), r21.y + mul r21.y, r21.y, r24.z + mul r21.y, r21.y, r25.y + min r21.y, r21.y, l(2048.000000) + mad r25.xy, r21.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r24.z, r25.xyxx, t9.yzxw, s1, l(0.000000) + mul r24.z, r12.z, r24.z + mul r24.z, r11.w, r24.z + div r24.z, r24.z, r12.y + mul r24.z, r1.z, r24.z + div r24.z, r24.z, r13.z + add r21.y, r21.y, r24.z + mov_sat r24.z, r25.z + add r24.z, r24.z, l(0.500000) + min r24.z, r24.z, l(1.000000) + mul r25.x, r8.w, r24.z + add_sat r25.y, r25.z, l(1.000000) + mad r24.z, -r8.w, r24.z, l(1.000000) + mad r24.z, r25.y, r24.z, r25.x + mul r21.y, r21.y, r24.z + mul r21.y, r4.y, r21.y + mul r21.y, r21.y, cb3[r21.w + 6].z + max r21.y, r21.y, l(0.000000) + min r21.y, r21.y, l(1000.000000) + add_sat r24.z, -r23.w, l(0.500000) + ne r25.x, r26.y, l(0.360000) + div r25.y, l(0.360000), r26.y + movc r25.x, r25.x, r25.y, l(1.000000) + mul r24.z, r24.z, r25.x + mad_sat r23.w, r1.x, l(0.0322580636), r23.w + add r23.w, -r21.x, r23.w + mul r25.xyz, r3.xyzx, r23.wwww + mad r25.xyz, r17.xyzx, r24.zzzz, r25.xyzx + mul r25.xyz, r4.yyyy, r25.xyzx + mad r25.xyz, r21.yyyy, r21.xxxx, r25.xyzx + mad r25.xyz, r18.xyzx, r21.xxxx, r25.xyzx + mul r26.xyz, r20.xxxx, cb3[r19.z + 6].xyzx + mul r26.xyz, r22.wwww, r26.xyzx + mul r26.xyz, r19.xxxx, r26.xyzx + mul r25.xyz, r25.xyzx, r26.xyzx + else + mov r25.xyz, l(0,0,0,0) + endif + else + if_z r19.y + mad r19.x, cb3[r20.z + 6].y, l(0.500000), l(0.500000) + add r26.x, r19.x, -|cb3[r20.z + 6].x| + add r26.y, -r26.x, cb3[r20.z + 6].y + add r19.x, -|r26.x|, l(1.000000) + add r19.x, -|r26.y|, r19.x + max r19.x, r19.x, l(0.000488281250) + ge r19.y, cb3[r20.z + 6].x, l(0.000000) + movc r26.z, r19.y, r19.x, -r19.x + dp3 r19.x, r26.xyzx, r26.xyzx + rsq r19.x, r19.x + mul r26.xyz, r19.xxxx, r26.xyzx + add r27.xyz, -r7.xyzx, cb3[r24.x + 6].xyzx + dp3 r19.x, r27.xyzx, r27.xyzx + rsq r19.y, r19.x + mul r28.xyz, r19.yyyy, r27.xyzx + ftoi r19.y, cb3[r21.w + 6].w + mul r21.xyw, r26.xyxz, cb3[r20.z + 6].zzzz + mad r29.xyz, -r21.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r27.xyzx + mad r21.xyw, r21.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r27.xyxz + ftou r19.z, cb3[r19.z + 6].w + and r19.z, r19.z, l(1) + ieq r20.x, r19.z, l(0) + not r20.x, r20.x + lt r22.w, l(0.000000), cb3[r20.z + 6].z + and r20.x, r20.x, r22.w + dp3 r22.w, r29.xyzx, r29.xyzx + sqrt r22.w, r22.w + dp3 r23.w, r21.xywx, r21.xywx + sqrt r23.w, r23.w + dp3 r21.x, r29.xyzx, r21.xywx + mad r21.x, r22.w, r23.w, r21.x + mad r21.x, r21.x, l(0.500000), l(1.000000) + div r21.x, l(1.000000, 1.000000, 1.000000, 1.000000), r21.x + movc r21.x, r20.x, r21.x, l(1.000000) + lt r21.y, cb3[r24.w + 6].w, l(0.000000) + if_nz r21.y + mul r21.y, cb3[r24.x + 6].w, cb3[r24.x + 6].w + mul r21.y, r19.x, r21.y + mad r21.y, -r21.y, r21.y, l(1.000000) + max r21.y, r21.y, l(0.000000) + add r19.x, r19.x, l(1.000000) + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x + and r21.w, r20.x, l(0x3f800000) + add r22.w, -r19.x, r21.x + mad r19.x, r21.w, r22.w, r19.x + mul r21.y, r21.y, r21.y + mul r19.x, r19.x, r21.y + else + mul r29.xyz, r27.xyzx, cb3[r24.x + 6].wwww + dp3 r21.y, r29.xyzx, r29.xyzx + min r21.y, r21.y, l(1.000000) + add r21.y, -r21.y, l(1.000000) + log r21.y, r21.y + mul r21.y, r21.y, cb3[r24.w + 6].w + exp r21.y, r21.y + mul r19.x, r21.y, r21.x + endif + dp3 r21.x, r28.xyzx, -r26.xyzx + add r21.x, r21.x, -cb3[r20.z + 6].z + mul_sat r21.x, r21.x, cb3[r20.z + 6].w + mul r21.x, r21.x, r21.x + movc r21.x, r19.z, l(1.000000), r21.x + mul r19.x, r19.x, r21.x + not r20.x, r20.x + ige r21.x, r19.y, l(0) + and r20.x, r20.x, r21.x + if_nz r20.x + if_z r19.z + ishl r20.x, r19.y, l(2) + mul r21.xyw, r7.yyyy, cb5[r20.x + 33].xyxw + mad r21.xyw, cb5[r20.x + 32].xyxw, r7.xxxx, r21.xyxw + mad r21.xyw, cb5[r20.x + 34].xyxw, r7.zzzz, r21.xyxw + add r21.xyw, r21.xyxw, cb5[r20.x + 35].xyxw + div_sat r21.xy, r21.xyxx, r21.wwww + mad r21.xy, r21.xyxx, cb5[r19.y + 0].zwzz, cb5[r19.y + 0].xyxx + else + ishl r20.x, r19.y, l(2) + dp3 r26.x, -r27.xyzx, cb5[r20.x + 32].xyzx + dp3 r26.y, -r27.xyzx, cb5[r20.x + 33].xyzx + dp3 r26.z, -r27.xyzx, cb5[r20.x + 34].xyzx + lt r20.x, |r26.x|, |r26.y| + and r20.x, r20.x, l(1) + dp2 r21.w, |r26.xyxx|, icb[r20.x + 0].xyxx + lt r21.w, r21.w, |r26.z| + movc r20.x, r21.w, l(2), r20.x + dp3 r21.w, r26.xyzx, icb[r20.x + 0].xyzx + lt r21.w, r21.w, l(0.000000) + bfi r20.x, l(31), l(1), r20.x, r21.w + ushr r21.w, r20.x, l(1) + dp3 r21.w, r26.xyzx, icb[r21.w + 0].xyzx + div r22.w, l(0.000244140625), cb5[r19.y + 0].w + add r22.w, -r22.w, l(0.500000) + utof r23.w, r20.x + ult r24.z, r20.x, l(2) + and r24.z, r24.z, l(2) + dp2 r24.z, r26.xzxx, icb[r24.z + 0].xzxx + mul r24.z, r24.z, icb[r20.x + 4].z + div r24.z, r24.z, |r21.w| + mad r23.w, r24.z, r22.w, r23.w + add r23.w, r23.w, l(0.500000) + mul_sat r27.x, r23.w, l(0.166666672) + iadd r23.w, l(-1), icb[r20.x + 4].y + dp2 r23.w, r26.yzyy, icb[r23.w + 0].xyxx + mul r20.x, r23.w, icb[r20.x + 4].w + div r20.x, r20.x, |r21.w| + mad_sat r27.y, -r20.x, r22.w, l(0.500000) + mad r21.xy, r27.xyxx, cb5[r19.y + 0].zwzz, cb5[r19.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r21.xyxx, t11.yxzw, s1, l(0.000000) + mul r19.x, r19.y, r19.x + endif + lt r19.x, l(0.000000), r19.x + if_nz r19.x + if_z r19.z + ftoi r19.x, cb3[r24.y + 6].x + else + add r21.xyw, r7.xyxz, -cb3[r24.x + 6].xyxz + lt r24.xzw, |r21.yyww|, |r21.xxxy| + and r19.y, r24.z, r24.x + lt r21.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyxw + ushr r19.z, cb3[r20.z + 6].w, l(24) + ubfe r24.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r20.z + 6].wwww + movc r19.z, r21.x, r19.z, r24.x + and r20.x, l(255), cb3[r20.z + 6].w + movc r20.x, r21.y, r24.z, r20.x + ubfe r20.z, l(8), l(8), cb3[r24.y + 6].x + and r21.x, l(255), cb3[r24.y + 6].x + movc r20.z, r21.w, r20.z, r21.x + movc r20.x, r24.w, r20.x, r20.z + movc r19.y, r19.y, r19.z, r20.x + ilt r19.z, r19.y, l(80) + movc r19.x, r19.z, r19.y, l(-1) + endif + ishl r19.y, r19.x, l(2) + mad r21.xyw, r28.xyxz, cb4[r19.x + 288].xxxx, r7.xyxz + mul r19.z, l(5.000000), cb4[r19.x + 288].y + mad r21.xyw, r5.xyxz, r19.zzzz, r21.xyxw + mul r24.xyzw, r21.yyyy, cb4[r19.y + 65].xyzw + mad r24.xyzw, cb4[r19.y + 64].xyzw, r21.xxxx, r24.xyzw + mad r24.xyzw, cb4[r19.y + 66].xyzw, r21.wwww, r24.xyzw + add r24.xyzw, r24.xyzw, cb4[r19.y + 67].xyzw + div r21.xyw, r24.xyxz, r24.wwww + ge r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xywx + ge r26.xyz, r21.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r19.yz, -cb4[r19.x + 344].xxyx, cb4[r19.x + 344].zzwz + mad r19.yz, r21.xxyx, r19.yyzy, cb4[r19.x + 344].xxyx + mad r20.xz, r19.yyzy, cb4[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) + round_ni r20.xz, r20.xxzx + mad r19.yz, r19.yyzy, cb4[400].zzwz, -r20.xxzx + add r27.xyzw, r19.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r28.xyzw, r27.xxzz, r27.xxzz + add r21.xy, -r19.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r27.xz, r19.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r29.xy, r19.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r30.xy, r21.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r29.xy, -r29.xyxx, r29.xyxx, r27.ywyy + add r29.xy, r29.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r29.xy, r29.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r28.xz, r28.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.yz, r28.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r19.yyzy + mul r31.xy, r19.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.yz, -r27.xxzx, r27.xxzx, r21.xxyx + add r19.yz, r19.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r32.xy, r19.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.yz, r27.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r31.z, r32.x + mov r31.w, r19.y + mov r30.z, r29.x + mov r30.w, r28.x + add r27.xyzw, r30.zwxz, r31.zwxz + mov r32.z, r31.y + mov r32.w, r19.z + mov r29.z, r30.y + mov r29.w, r28.z + add r28.xyz, r29.zywz, r32.zywz + div r30.xyz, r30.xzwx, r27.zwyz + add r30.xyz, r30.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r30.xyz, r30.yxzy, cb4[400].xxxx + div r29.xyz, r29.zywz, r28.xyzx + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.xyzx, cb4[400].yyyy + mov r30.w, r29.x + mad r31.xyzw, r20.xzxz, cb4[400].xyxy, r30.ywxw + mad r19.yz, r20.xxzx, cb4[400].xxyx, r30.zzwz + mov r29.w, r30.y + mov r30.yw, r29.yyyz + mad r32.xyzw, r20.xzxz, cb4[400].xyxy, r30.xyzy + mad r29.xyzw, r20.xzxz, cb4[400].xyxy, r29.wywz + mad r30.xyzw, r20.xzxz, cb4[400].xyxy, r30.xwzw + mul r33.xyzw, r27.zwyz, r28.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r31.xyxx, t6.xxxx, s4, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r31.zwzz, t6.xxxx, s4, r21.w + mul r20.z, r20.z, r33.y + mad r20.x, r33.x, r20.x, r20.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t6.xxxx, s4, r21.w + mad r19.y, r33.z, r19.y, r20.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r29.xyxx, t6.xxxx, s4, r21.w + mad r19.y, r33.w, r19.z, r19.y + mul r31.xyzw, r27.xyzw, r28.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r32.xyxx, t6.xxxx, s4, r21.w + mad r19.y, r31.x, r19.z, r19.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r32.zwzz, t6.xxxx, s4, r21.w + mad r19.y, r31.y, r19.z, r19.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r29.zwzz, t6.xxxx, s4, r21.w + mad r19.y, r31.z, r19.z, r19.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r30.xyxx, t6.xxxx, s4, r21.w + mad r19.y, r31.w, r19.z, r19.y + ige r19.z, r19.x, l(0) + or r24.xyz, r24.xyzx, r26.xyzx + or r20.x, r24.y, r24.x + or r20.x, r24.z, r20.x + and r20.z, r21.w, l(0x7fffffff) + ult r20.z, l(0x7f800000), r20.z + or r20.x, r20.z, r20.x + mul r20.z, r27.y, r28.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.x, r30.zwzz, t6.xxxx, s4, r21.w + mad r19.y, r20.z, r21.x, r19.y + add r19.y, r19.y, l(-1.000000) + mad r19.x, cb4[r19.x + 288].w, r19.y, l(1.000000) + movc r19.x, r20.x, l(1.000000), r19.x + movc r19.x, r19.z, r19.x, l(1.000000) + else + mov r19.x, l(1.000000) + endif + else + mov r19.x, l(1.000000) + endif + mul r17.w, r17.w, r19.x + mov r25.xyz, l(0,0,0,0) + endif + add r23.xyz, r23.xyzx, r25.xyzx + mov r18.w, r20.w + endloop + mov r13.w, r17.w + add r22.xyz, r22.xyzx, r23.xyzx + iadd r14.w, r14.w, l(1) +endloop +mad r1.xyz, r22.xyzx, r13.wwww, r14.xyzx +ne r10.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx +if_nz r10.x + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r1.w, r0.z, r9.w + mad r4.y, r12.w, l(-16.000000), l(-1.000000) + exp r4.y, r4.y + log r1.w, |r1.w| + mul r1.w, r1.w, r4.y + exp r1.w, r1.w + add r1.w, r0.z, r1.w + add r1.w, r1.w, l(-1.000000) + mov_sat r10.xzw, r1.wwww + mad r14.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r10.xzw, r3.wwww + mov r14.xyz, r3.wwww +endif +mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r17.xyz, r7.xzyx, -r17.xyzx +max r0.z, |r17.y|, |r17.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.w, |r17.z|, l(-208.000000) +mul_sat r1.w, r1.w, l(0.031250) +max r0.z, r0.z, r1.w +ne r1.w, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r1.w, r1.w, r3.w +if_nz r1.w + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r7.xzyx, -r17.xyzx + max r1.w, |r17.y|, |r17.x| + add r1.w, r1.w, l(-29.000000) + mul_sat r1.w, r1.w, l(0.500000) + add r3.w, |r17.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r1.w, r1.w, r3.w + lt r3.w, r1.w, l(1.000000) + if_nz r3.w + mad r17.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t15.yzwx, s2, l(0.000000) + add r3.w, -r1.w, l(1.000000) + mul r4.y, l(0.500000), cb0[211].y + mad r6.w, -cb0[211].y, l(0.500000), l(1.000000) + max r4.y, r4.y, r17.y + min r4.y, r6.w, r4.y + mul r17.w, r4.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t16.xyzw, s1, l(0.000000) + mad r4.y, r19.w, r3.w, r0.z + add r20.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t16.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mul r20.xyzw, r3.wwww, r20.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r3.wwww, r17.xyzw + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r3.wwww, r18.xyzw + else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r4.y, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r7.xzyx, -r19.xyzx + max r3.w, |r19.y|, |r19.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r6.w, |r19.z|, l(-52.000000) + mul_sat r6.w, r6.w, l(0.125000) + max r3.w, r3.w, r6.w + lt r6.w, r3.w, l(1.000000) + if_nz r6.w + mad r19.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r21.xyz, r19.xyzx, cb0[211].xyzx + round_ni r21.xyz, r21.xyzx + mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r19.xyzx, t17.yzwx, s2, l(0.000000) + add r6.w, -r3.w, l(1.000000) + mul r1.w, r1.w, r6.w + mul r6.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r6.w, r6.w, r19.y + min r6.w, r8.w, r6.w + mul r19.w, r6.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyzw, r19.xwzx, t18.xyzw, s1, l(0.000000) + mad r4.y, r22.w, r1.w, r4.y + add r23.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r23.xyzx, t18.xyzw, s1, l(0.000000) + mad r23.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r21.yyyy, r23.xyzx + mov r23.w, r21.y + mad r20.xyzw, r23.xyzw, r1.wwww, r20.xyzw + add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.xxxx, r19.xyzx + mov r19.w, r21.x + mad r17.xyzw, r19.xyzw, r1.wwww, r17.xyzw + mad r19.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r19.xyzx + mad r18.xyzw, r21.xyzw, r1.wwww, r18.xyzw + endif + lt r1.w, l(0.000000), r3.w + if_nz r1.w + mad r19.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r21.xyz, r19.xyzx, cb0[211].xyzx + mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r21.xyz, r21.xyzx + mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx + mad r21.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r19.xyz, r22.xyzx, r19.xyzx + min r19.xyz, r21.xyzx, r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r19.xyzx, t19.yzwx, s2, l(0.000000) + add r1.w, -r0.z, l(1.000000) + mul r1.w, r1.w, r3.w + max r3.w, r22.y, r19.y + min r3.w, r21.y, r3.w + mul r19.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r19.xwzx, t20.xyzw, s1, l(0.000000) + add r22.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t20.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r23.yyyy, r22.xyzx + mov r22.w, r23.y + mad r20.xyzw, r22.xyzw, r1.wwww, r20.xyzw + add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r23.xxxx, r19.xyzx + mov r19.w, r23.x + mad r17.xyzw, r19.xyzw, r1.wwww, r17.xyzw + mad r19.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r23.wwww, r19.xyzx + mad r18.xyzw, r23.xyzw, r1.wwww, r18.xyzw + mad r4.y, r21.w, r1.w, r4.y + endif + mad_sat r1.w, r4.y, l(2.000000), l(-1.000000) + add r19.x, -r0.z, r1.w + add r0.z, r0.z, r1.w + mul r19.y, r0.z, l(0.500000) +else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xy, l(0,1.000000,0,0) +endif +mul r21.xyzw, r19.yyyx, cb0[213].xyzw +mad r21.y, r21.w, l(0.500000), r21.y +mul r12.yz, r19.yyxy, cb0[213].wwyw +mad r21.w, r12.z, l(0.375000), r12.y +add r18.xyzw, r18.xyzw, r21.xyzw +mul r21.xyzw, r19.yyyx, cb0[214].xyzw +mad r21.y, r21.w, l(0.500000), r21.y +mul r12.yz, r19.yyxy, cb0[214].wwyw +mad r21.w, r12.z, l(0.375000), r12.y +add r17.xyzw, r17.xyzw, r21.xyzw +mul r21.xyzw, r19.yyyx, cb0[215].xyzw +mad r21.y, r21.w, l(0.500000), r21.y +mul r12.yz, r19.yyxy, cb0[215].wwyw +mad r21.w, r12.z, l(0.375000), r12.y +add r19.xyzw, r20.xyzw, r21.xyzw +ge r12.yz, r6.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r12.z, r12.y +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r20.xyzw, r6.xyxx, t14.xyzw, s1, l(0.000000) + lt r21.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r20.xyzw| + or r6.xy, r21.zwzz, r21.xyxx + or r0.z, r6.y, r6.x + if_nz r0.z + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mov r6.x, l(1.000000) + mov r6.y, r0.z + mov r1.w, l(0) + loop + ge r3.w, l(4.600000), r6.y + breakc_nz r3.w + iadd r3.w, r1.w, l(1) + mul r12.yz, r6.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000) + mov r6.xy, r12.yzyy + mov r1.w, r3.w + continue + endloop + mul r20.xyzw, r6.xxxx, r20.xyzw + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb6[3].x, cb6[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r6.x, r0.z, l(0.00390625000) + mov r6.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyxx, t13.xyzw, s1, l(0.000000) + mad r6.xy, r6.xyxx, cb6[2].xyxx, cb6[2].zwzz + mul r21.x, r6.x, l(3.54490781) + mul r21.yzw, r6.yyyy, r20.yyzw + mul r0.z, r20.x, l(0.406976730) + exp r0.z, r0.z + mul r20.xyzw, r0.zzzz, r21.xyzw + mov r21.xyzw, r20.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r1.w + breakc_nz r3.w + mul r22.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r22.xyzw, r21.xyzw + dp2 r4.y, r22.yxyy, r21.xyxx + dp2 r6.x, r22.zxzz, r21.xzxx + dp2 r6.y, r22.wxww, r21.xwxx + iadd r6.w, r0.z, l(1) + mov r21.x, r3.w + mov r21.y, r4.y + mov r21.zw, r6.xxxy + mov r0.z, r6.w + continue + endloop + mul r20.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r21.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r20.xyzw, r21.xyzw + dp2 r1.w, r20.yxyy, r21.xyxx + dp2 r3.w, r20.zxzz, r21.xzxx + dp2 r4.y, r20.wxww, r21.xwxx + mul r21.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r6.x, r20.xyzw, r21.xyzw + dp2 r6.y, r20.yxyy, r21.xyxx + dp2 r6.w, r20.zxzz, r21.xzxx + dp2 r8.w, r20.wxww, r21.xwxx + mul r21.xyzw, r19.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r20.xyzw, r21.xyzw + dp2 r11.w, r20.yxyy, r21.xyxx + dp2 r12.y, r20.zxzz, r21.xzxx + dp2 r12.z, r20.wxww, r21.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r4.y, l(-1.02332675) + mul r18.y, r1.w, l(-1.02332675) + mul r18.z, r3.w, l(1.02332675) + mul r17.x, r8.w, l(-1.02332675) + mul r17.yzw, r6.yywx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) + mul r19.w, r9.w, l(0.886226952) + mul r19.y, r11.w, l(-1.02332675) + mul r19.xz, r12.zzyz, l(-1.02332675, 0.000000, 1.02332675, 0.000000) + endif +endif +mov r5.w, l(1.000000) +dp4 r20.x, r18.xyzw, r5.xyzw +dp4 r20.y, r17.xyzw, r5.xyzw +dp4 r20.z, r19.xyzw, r5.xyzw +max r6.xyw, r20.xyxz, l(0.000000, 0.000000, 0.000000, 0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.w, r12.w, l(0.001000) +log r1.w, r1.w +mad r1.w, -r1.w, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.w +mul r12.yz, r2.xxyx, cb1[0].wwww +round_ni r12.yz, r12.yyzy +add r1.w, |r4.w|, -cb1[2].y +round_ni r1.w, r1.w +add r3.w, l(-1.000000), cb1[1].x +max r4.y, r1.w, l(0.000000) +min r3.w, r3.w, r4.y +ge r1.w, r3.w, r1.w +mad r4.y, r12.z, cb1[0].x, r12.y +ftoi r4.y, r4.y +iadd r4.y, r4.y, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r4.y, r4.y, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r4.y +and r1.w, r1.w, r3.w +mul r12.yzw, r6.xxyw, cb0[111].xxxx +dp3 r3.w, r12.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r12.yzw, l(0,0,0,0) +mov r4.y, l(1.000000) +mov r8.w, r1.w +mov r9.w, l(0) +loop + lt r11.w, l(0.010000), r4.y + ine r13.z, r8.w, l(0) + and r13.z, r11.w, r13.z + if_nz r13.z + firstbit_lo r13.z, r8.w + ishl r13.w, l(1), r13.z + xor r8.w, r8.w, r13.w + ishl r13.z, r13.z, l(3) + dp4 r20.x, cb1[r13.z + 6].xyzw, r7.xyzw + dp4 r20.y, cb1[r13.z + 7].xyzw, r7.xyzw + dp4 r20.z, cb1[r13.z + 8].xyzw, r7.xyzw + ge r21.xyz, cb1[r13.z + 5].xyzx, |r20.xyzx| + and r13.w, r21.y, r21.x + and r13.w, r21.z, r13.w + if_nz r13.w + mul r13.w, l(0.100000), cb1[r13.z + 5].x + mul r21.xyz, |r20.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r21.xy, r21.xyxx, r21.xyxx + add r22.xyz, -|r20.xyzx|, cb1[r13.z + 5].xyzx + mul r22.xyz, r22.xyzx, cb1[r13.z + 9].xyzx + eq r14.w, l(1.000000), cb1[r13.z + 10].x + if_nz r14.w + dp3 r23.x, cb1[r13.z + 6].xyzx, r15.xyzx + dp3 r23.y, cb1[r13.z + 7].xyzx, r15.xyzx + dp3 r23.z, cb1[r13.z + 8].xyzx, r15.xyzx + add r24.xyz, -r20.xyzx, cb1[r13.z + 5].xyzx + div r24.xyz, r24.xyzx, r23.xyzx + add r25.xyz, -r20.xyzx, -cb1[r13.z + 5].xyzx + div r25.xyz, r25.xyzx, r23.xyzx + lt r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + movc r24.xyz, r26.xyzx, r24.xyzx, r25.xyzx + min r14.w, r24.y, r24.x + min r14.w, r24.z, r14.w + mad r20.xyz, r23.xyzx, r14.wwww, r20.xyzx + else + mov r20.xyz, r15.xyzx + endif + dp3 r14.w, r20.xyzx, r20.xyzx + rsq r14.w, r14.w + mul r20.xyz, r14.wwww, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + lt r24.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r23.xyz, -r23.xyzx, r24.xyzx + itof r23.xyz, r23.xyzx + dp3 r14.w, r20.xyzx, r23.xyzx + div r20.xyz, r20.xyzx, r14.wwww + lt r14.w, r20.z, l(0.000000) + add r20.zw, -|r20.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.zw, r20.zzzw, r23.xxxy + movc r20.xy, r14.wwww, r20.zwzz, r20.xyxx + dp4 r14.w, cb1[r13.z + 4].xyzw, r5.xyzw + max r14.w, r14.w, l(0.000000) + max r14.w, r14.w, l(0.000100) + min r15.w, r22.z, r22.y + min r15.w, r15.w, r22.x + add r16.w, r21.y, r21.x + mad r16.w, r21.z, r21.z, r16.w + mad r13.w, r13.w, r13.w, -r16.w + mul r13.w, r13.w, cb1[r13.z + 9].x + mul r13.w, r13.w, cb1[r13.z + 9].x + add r16.w, l(1.000000), -cb1[r13.z + 10].y + mul r13.w, r13.w, r16.w + mul r13.w, r13.w, l(100.000000) + mad_sat r13.w, r15.w, cb1[r13.z + 10].y, r13.w + mul r15.w, r13.w, cb1[r13.z + 10].w + mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r20.xy, r20.xyxx, cb1[1].wwww, cb1[2].wwww + mov r20.z, cb1[r13.z + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r20.xyz, r20.xyzx, t5.xyzw, s3, r0.z + mul r20.xyz, r20.xyzx, cb1[r13.z + 9].wwww + div r16.w, r3.w, r14.w + min r16.w, |r16.w|, l(1.000000) + mad r16.w, r16.w, l(2.000000), r3.w + add r14.w, r14.w, l(2.000000) + div r14.w, r16.w, r14.w + add r14.w, r14.w, l(-1.000000) + mad r14.w, r14.w, cb0[112].w, l(1.000000) + mul r20.xyz, r14.wwww, r20.xyzx + mul r20.xyz, r15.wwww, r20.xyzx + mad r12.yzw, r20.xxyz, r4.yyyy, r12.yyzw + mad r13.z, -r13.w, cb1[r13.z + 10].w, l(1.000000) + mul r4.y, r4.y, r13.z + endif + mov r9.w, l(-1) + continue + else + mov r9.w, r11.w + break + endif + mov r9.w, r11.w +endloop +if_nz r9.w + dp3 r1.w, r15.xyzx, r15.xyzx + rsq r1.w, r1.w + mul r15.xyz, r1.wwww, r15.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r21.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r1.w, r15.xyzx, r20.xyzx + div r15.xyz, r15.xyzx, r1.wwww + lt r1.w, r15.z, l(0.000000) + add r13.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r13.zw, r13.zzzw, r20.xxxy + movc r13.zw, r1.wwww, r13.zzzw, r15.xxxy + dp4 r1.w, cb1[3].xyzw, r5.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r15.xy, r13.zwzz, cb1[1].wwww, cb1[2].wwww + mov r15.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + div r0.z, r3.w, r1.w + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r1.w, r1.w, l(2.000000) + div r0.z, r0.z, r1.w + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r15.xyz, r0.zzzz, r15.xyzx + mad r12.yzw, r15.xxyz, r4.yyyy, r12.yyzw +endif +mul r12.yzw, r12.yyzw, cb0[112].zzzz +mul r12.yzw, r12.yyzw, cb0[111].yyyy +if_nz r10.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.w, -r0.z, l(1.000000) + mul r20.xyz, r1.wwww, r12.yzwy + mad r12.yzw, r15.xxyz, r0.zzzz, r20.xxyz +endif +mul r3.xyz, r3.xyzx, r6.xywx +mul r3.xyz, r3.xyzx, cb0[111].xxxx +mad r0.z, r2.z, r13.x, r13.y +mul r6.xyw, r0.zzzz, r12.yzyw +mul r6.xyw, r10.xzxw, r6.xyxw +mad r3.xyz, r3.xyzx, r14.xyzx, r6.xywx +mul r5.xyzw, r5.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r10.x, r18.xyzw, r5.xyzw +dp4 r10.y, r17.xyzw, r5.xyzw +dp4 r10.z, r19.xyzw, r5.xyzw +max r5.xyz, r10.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r5.xyz, r5.xyzx, cb0[111].xxxx +mul r5.xyz, r14.xyzx, r5.xyzx +mul r5.xyz, r16.xyzx, r5.xyzx +mul r0.z, r4.x, r12.x +ftou r1.w, r2.w +bfi r1.w, l(2), l(0), r1.w, r4.z +utof r1.w, r1.w +mul r1.w, r1.w, l(0.0322580636) +mad r0.z, r0.z, l(0.00787401572), r1.w +mul r4.xyz, r0.zzzz, r5.xyzx +mad r3.xyz, r4.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r3.xyzx +add r1.xyz, r1.xyzx, r3.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.z, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.z, r0.z, l(-1.442695) +exp r2.z, r2.z +add r2.z, -r2.z, l(1.000000) +div r0.z, r2.z, r0.z +mad r2.z, r7.y, cb0[156].w, cb0[158].w +mul r2.z, r2.z, l(1.442695) +exp r2.z, r2.z +mul r0.z, r0.z, r2.z +mul r0.z, r0.z, -r1.w +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.z +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r9.xyzx + add r2.z, r7.y, -cb0[44].y + lt r2.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r2.w + mul r0.x, r0.x, cb0[163].w + div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.z + mul r3.w, r0.x, r2.w + mad r4.z, r3.w, r2.z, cb0[44].y + mad r2.z, -r3.w, r2.z, r2.z + mul r3.w, r2.z, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r2.z, r2.z, cb0[162].x + max r2.z, r2.z, l(-127.000000) + add r5.x, r4.z, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.y, l(5.960464478E-08), |r3.w| + exp r5.z, -r3.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.y, r5.z, r3.w + add r4.z, r4.z, -cb0[162].z + mul r4.z, r4.z, cb0[162].x + max r4.z, r4.z, l(-127.000000) + exp r4.z, -r4.z + mul r4.z, r4.z, cb0[162].y + lt r5.y, l(5.960464478E-08), |r2.z| + exp r5.z, -r2.z + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r2.z + mad r2.z, -r2.z, l(0.240226507), l(0.693147182) + movc r2.z, r5.y, r5.z, r2.z + mul r2.z, r2.z, r4.z + mad r2.z, r5.x, r3.w, r2.z + mad r0.x, -r0.x, r2.w, l(1.000000) + mul r0.x, r6.z, r0.x + mul r0.x, r0.x, r2.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r2.zw, r6.zzzz, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r2.z + add r0.x, r2.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy + mul r2.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r4.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r2.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r2.xyzw, r2.xyzx, t12.xyzw, s1, l(0.000000) + add r0.y, |r4.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r2.xyzw, r2.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r2.xyzw, r0.yyyy, r2.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r2.xyz, r4.xyzx, r2.wwww, r2.xyzx + mul r0.x, r0.x, r2.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.z, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.zzzz, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r2.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r3.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r2.xyzx +// Check fog modification toggle (cb13[12].y) +// If 0 (Original), skip fog modification and output original +if_z cb13[12].y + mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx + dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + dp3 r1.w, r8.xyzx, r8.xyzx + sqrt r1.w, r1.w + mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) + mul r2.x, r1.w, cb0[169].x + mad r1.w, -cb0[169].x, r1.w, l(1.000000) + mul r2.yzw, cb0[168].xxyz, cb0[183].wwww + mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw + sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) + dp2 r2.x, r2.yyyy, r2.xxxx + add r1.w, r1.w, r2.x + add r2.x, r0.w, l(1.000000) + min r1.w, r1.w, r2.x + add r0.xyz, -r1.xyzx, r0.xyzx + mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx + mov o0.w, r0.w + ret +endif + +// === Simplified Fog Modification (Anti-Banding) === +// r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter (0-255) + +// Normalize colors to 0-1 range +mul r9.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 +mul r10.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 + +// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density +add r11.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r11.xyz, r11.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + +// Reduce fog inscatter intensity +mul r10.xyz, r10.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + +// Standard fog blend with reduced intensity +mad r12.xyz, r9.xyzx, r11.xyzx, r10.xyzx + +// Scale back to 0-255 +mul r0.xyz, r12.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) + +// Continue with original post-fog processing +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r8.xyzx, r8.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0_original_backup.asm new file mode 100644 index 000000000..b298deebb --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0_original_backup.asm @@ -0,0 +1,1590 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Jan 30 20:17:33 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[160], dynamicIndexed +dcl_constantbuffer CB6[4], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture3d (float,float,float,float) t25 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 38 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t23.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t24.xyzw +mul r1.xyzw, r1.xwyz, l(1023.000000, 3.000000, 1023.000000, 1023.000000) +ftou r1.xyw, r1.xyxw +ubfe r4.x, l(7), l(3), r1.x +bfi r4.yz, l(0, 3, 3, 0), l(0, 2, 2, 0), r1.xxwx, l(0, 0, 0, 0) +bfi r1.x, l(2), l(0), r1.y, r4.y +utof r1.x, r1.x +mul r1.y, r1.x, l(0.0322580636) +round_ne r1.z, r1.z +ftou r1.z, r1.z +ubfe r4.y, l(7), l(3), r1.z +utof r4.xy, r4.xyxx +mul r4.y, r4.y, l(0.00787401572) +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.w, l(1.000000) +lt r4.w, r5.y, l(0.000000) +ge r6.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r6.xy, r6.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r6.xy, r6.xyxx, r6.zwzz +movc r5.xz, r4.wwww, r6.xxyx, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r5.xyz, r2.xxxx, r5.xyzx +and r1.z, r1.z, l(7) +utof r1.z, r1.z +mad r1.z, r1.z, l(0.107142866), l(0.500000) +utof r2.xy, r0.xyxx +mul r6.xy, v0.xyxx, cb0[82].zwzz +mad r6.zw, r6.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +add r7.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mul r7.xy, r7.xyxx, cb0[82].zwzz +sample_l_indexable(texture2d)(float,float,float,float) r4.w, r7.xyxx, t1.yzwx, s0, l(0.000000) +mul r7.xyzw, -r6.wwww, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r6.zzzz, r7.xyzw +mad r7.xyzw, cb0[26].xyzw, r4.wwww, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r4.w, r7.y, cb0[1].z +mad r4.w, cb0[0].z, r7.x, r4.w +mad r4.w, cb0[2].z, r7.z, r4.w +add r4.w, r4.w, cb0[3].z +eq r6.z, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r10.xyz, r6.zzzz, r8.xyzx, r9.xyzx +dp3 r6.z, r10.xyzx, r10.xyzx +max r6.w, r6.z, l(9.999999939E-09) +rsq r6.w, r6.w +mul r11.xyz, r6.wwww, r10.xyzx +mul r6.z, r6.w, r6.z +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r8.w, v1.xyxx, t21.yzwx, s1, cb0[108].x +else + mov r8.w, l(1.000000) +endif +add r8.w, -r8.w, l(1.000000) +mul r2.w, r2.w, l(3.000000) +mad_sat r9.w, r2.z, l(0.300000), l(0.250000) +mul r9.w, r9.w, cb0[222].x +mul r9.w, r8.w, r9.w +mad r9.w, r9.w, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r9.wwww +min r9.w, r2.z, l(0.300000) +mul r8.w, r8.w, cb0[222].x +mul r8.w, r8.w, l(0.500000) +add r9.w, -r2.z, r9.w +mad r12.w, r8.w, r9.w, r2.z +mul r2.z, r1.z, l(0.080000) +dp3 r8.w, r5.xyzx, r11.xyzx +max r9.w, r8.w, l(0.000000) +mad r13.xyzw, r12.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r10.w, r13.x, r13.x +mul r11.w, r9.w, l(-9.280000) +exp r11.w, r11.w +min r10.w, r10.w, r11.w +mad r10.w, r10.w, r13.x, r13.y +mad r13.xy, r10.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t7.zwxy +lt r0.z, l(0.001000), r13.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t10.yzxw, s1, l(0.000000) + dp3 r10.w, -r11.xyzx, r5.xyzx + add r10.w, r10.w, r10.w + mad r14.xyz, r5.xyzx, -r10.wwww, -r11.xyzx + dp3 r10.w, -cb3[0].xyzx, r14.xyzx + mad r15.xyz, cb3[0].xyzx, r10.wwww, r14.xyzx + lt r10.w, r10.w, cb3[4].z + dp3 r11.w, r15.xyzx, r15.xyzx + max r11.w, r11.w, l(0.0000610351562) + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb3[4].yyyy + mad r15.xyz, -cb3[0].xyzx, cb3[4].zzzz, r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + movc r14.xyz, r10.wwww, r15.xyzx, r14.xyzx + mad r15.xyz, r10.xyzx, r6.wwww, r14.xyzx + dp3 r10.w, r15.xyzx, r15.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + dp3 r10.w, r5.xyzx, r14.xyzx + mov_sat r12.y, r10.w + dp3_sat r11.w, r5.xyzx, r15.xyzx + dp3 r14.x, r11.xyzx, r14.xyzx + min r12.z, r9.w, l(1.000000) + mul r14.y, r12.w, r12.w + mul r14.y, r14.y, r14.y + mad r14.z, r11.w, r14.y, -r11.w + mad r11.w, r14.z, r11.w, l(1.000000) + dp3_sat r14.z, r11.xyzx, r15.xyzx + add r14.z, -r14.z, l(1.000000) + mul r14.w, r14.z, r14.z + mul r14.w, r14.w, r14.w + mul r15.x, r14.z, r14.w + add r15.y, -r12.w, l(1.000000) + mad r15.z, -r15.y, l(0.383026), l(-0.0761947036) + mad r15.z, r15.y, r15.z, l(1.049970) + mad r15.y, r15.y, r15.z, l(0.409255) + min r15.y, r15.y, l(0.999000) + add r15.z, -r15.y, l(1.000000) + mad r15.w, -r1.z, l(0.080000), l(1.000000) + mad r15.w, r15.w, l(0.0476190485), r2.z + mov_sat r16.x, -r14.x + mul r16.x, r16.x, r16.x + mad r16.x, r16.x, l(-0.640000), l(1.000000) + mul r16.x, r16.x, r16.x + mad r14.z, -r14.w, r14.z, l(1.000000) + mad r14.z, r2.z, r14.z, r15.x + mul r11.w, r11.w, r11.w + div r11.w, r14.y, r11.w + mad r16.yz, -r12.zzyz, r14.yyyy, r12.zzyz + mad r14.yw, r16.yyyz, r12.zzzy, r14.yyyy + sqrt r14.yw, r14.yyyw + mul r14.yw, r12.yyyz, r14.yyyw + add r14.y, r14.w, r14.y + add r14.y, r14.y, l(0.000100) + div r14.y, l(0.500000), r14.y + mul r11.w, r11.w, r14.y + mul r11.w, r11.w, r14.z + min r11.w, r11.w, l(2048.000000) + mad r17.xyzw, r12.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r12.z, r17.xyxx, t9.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r14.y, r17.zwzz, t9.yxzw, s1, l(0.000000) + mul r12.z, r12.z, r14.y + mul r12.z, r15.y, r12.z + div r12.z, r12.z, r15.z + mul r14.y, r15.w, r15.w + mul r12.z, r12.z, r14.y + mad r14.y, -r15.w, r15.z, l(1.000000) + div r12.z, r12.z, r14.y + add r11.w, r11.w, r12.z + add_sat r12.z, r8.w, l(0.200000) + mov_sat r14.y, r14.x + add r14.y, r14.y, l(0.500000) + min r14.y, r14.y, l(1.000000) + mul r14.z, r12.z, r14.y + add_sat r14.x, r14.x, l(1.000000) + mad r12.z, -r12.z, r14.y, l(1.000000) + mad r12.z, r14.x, r12.z, r14.z + mul r11.w, r11.w, r12.z + mul r11.w, r4.y, r11.w + mul r14.xyz, r4.yyyy, r3.xyzx + ubfe r1.w, l(7), l(3), r1.w + utof r1.w, r1.w + mul r1.w, r1.w, l(0.00787401572) + mul r11.w, r11.w, cb3[4].x + max r11.w, r11.w, l(0.000000) + min r11.w, r11.w, l(1000.000000) + mul r11.w, r12.y, r11.w + mad r14.xyz, r14.xyzx, r1.wwww, r11.wwww + max r1.w, r3.y, r3.x + max r1.w, r3.z, r1.w + max r1.w, r1.w, l(0.010000) + div r15.xyz, r3.xyzx, r1.wwww + mul r1.w, r4.x, l(0.00393700786) + mul r15.xyz, r1.wwww, r15.xyzx + add_sat r1.w, -r10.w, l(0.500000) + ne r11.w, r16.x, l(0.360000) + div r12.z, l(0.360000), r16.x + movc r11.w, r11.w, r12.z, l(1.000000) + mul r1.w, r1.w, r11.w + mad_sat r10.w, r1.x, l(0.0322580636), r10.w + add r10.w, -r12.y, r10.w + mul r16.xyz, r3.xyzx, r10.wwww + mad r15.xyz, r15.xyzx, r1.wwww, r16.xyzx + mad r14.xyz, r15.xyzx, r4.yyyy, r14.xyzx + mul r14.xyz, r14.xyzx, cb3[1].xyzx + mov r13.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, r13.zwzz, t8.xyzw, s1, cb0[108].x + add r1.w, -r13.z, l(1.000000) + mad r15.xyz, r14.xyzx, r15.xyzx, -r14.xyzx + mad r14.xyz, r1.wwww, r15.xyzx, r14.xyzx + max r1.w, r4.y, r0.z + add r1.w, -r0.z, r1.w + mad r0.z, r1.y, r1.w, r0.z + mul r14.xyz, r0.zzzz, r14.xyzx +else + mov r14.xyz, l(0,0,0,0) +endif +mul r1.yw, r2.xxxy, l(0.000000, 0.031250, 0.000000, 0.031250) +round_ni r1.yw, r1.yyyw +mad r0.z, r1.w, cb2[1].y, r1.y +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r1.y, -cb0[85].y, cb2[2].w, |r4.w| +round_ni r1.y, r1.y +add r1.w, l(-1.000000), cb2[1].w +max r10.w, r1.y, l(0.000000) +min r1.w, r1.w, r10.w +mul r10.w, r1.w, l(8.000000) +ftoi r10.w, r10.w +ge r1.y, r1.w, r1.y +iadd r1.w, r10.w, cb0[110].y +mul r10.w, r12.w, r12.w +dp3 r11.w, -r11.xyzx, r5.xyzx +add r11.w, r11.w, r11.w +mad r15.xyz, r5.xyzx, -r11.wwww, -r11.xyzx +min r12.x, r9.w, l(1.000000) +add r11.w, -r12.w, l(1.000000) +mad r12.y, -r11.w, l(0.383026), l(-0.0761947036) +mad r12.y, r11.w, r12.y, l(1.049970) +mad r11.w, r11.w, r12.y, l(0.409255) +min r11.w, r11.w, l(0.999000) +add r12.y, -r11.w, l(1.000000) +mad r1.z, -r1.z, l(0.080000), l(1.000000) +mad r1.z, r1.z, l(0.0476190485), r2.z +mad r13.zw, r12.xxxw, l(0.000000, 0.000000, 0.968750, 0.968750), l(0.000000, 0.000000, 0.015625, 0.015625) +sample_l_indexable(texture2d)(float,float,float,float) r12.z, r13.zwzz, t9.yzxw, s1, l(0.000000) +mad r13.z, -r1.z, r12.y, l(1.000000) +add_sat r8.w, r8.w, l(0.200000) +max r13.w, r3.y, r3.x +max r13.w, r3.z, r13.w +max r13.w, r13.w, l(0.010000) +div r16.xyz, r3.xyzx, r13.wwww +mul r13.w, r4.x, l(0.00393700786) +mul r17.xyz, r13.wwww, r16.xyzx +mul r18.xyz, r4.yyyy, r3.xyzx +mul r1.z, r1.z, r1.z +mov r19.w, l(1.000000) +mov r20.y, l(1.000000) +mov r21.z, r12.w +mov r22.xyz, l(0,0,0,0) +mov r13.w, l(1.000000) +mov r14.w, l(0) +loop + ilt r15.w, l(7), r14.w + breakc_nz r15.w + iadd r15.w, r0.z, r14.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t0.xxxx + iadd r16.w, r1.w, r14.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t0.xxxx + and r15.w, r15.w, r16.w + and r15.w, r1.y, r15.w + ishl r16.w, r14.w, l(5) + mov r23.xyz, l(0,0,0,0) + mov r17.w, r13.w + mov r18.w, r15.w + loop + breakc_z r18.w + firstbit_lo r20.z, r18.w + ishl r20.w, l(1), r20.z + xor r20.w, r18.w, r20.w + iadd r20.z, r16.w, r20.z + bfi r24.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r20.zzzz, l(1, 3, 5, 6) + bfi r21.w, l(29), l(3), r20.z, l(7) + ftou r22.w, cb3[r24.z + 6].w + ieq r22.w, r22.w, l(1) + if_nz r22.w + add r19.xyz, r7.xyzx, -cb3[r24.x + 6].xyzx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.z + 6].xzyx + and r26.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.w + 6].yxzy + ushr r27.xyz, cb3[r24.z + 6].xzyx, l(16, 16, 16, 0) + ushr r28.xyz, cb3[r24.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyz, r27.xyzx + f16tof32 r28.xyw, r28.yxyz + mov r29.xz, r25.xxzx + mov r29.yw, r27.xxxz + dp4 r22.w, r19.xyzw, r29.xyzw + mov r27.x, r25.y + mov r27.z, r26.y + mov r27.w, r28.x + dp4 r23.w, r19.xyzw, r27.xyzw + mov r28.xz, r26.xxzx + dp4 r19.x, r19.xyzw, r28.xyzw + max r19.y, |r22.w|, |r23.w| + max r19.x, |r19.x|, r19.y + mad r19.y, cb3[r21.w + 6].x, l(0.500000), l(0.500000) + add r19.x, -r19.y, r19.x + mad r19.y, -cb3[r21.w + 6].x, l(0.500000), l(0.500000) + div_sat r19.x, r19.x, r19.y + add r19.x, -r19.x, l(1.000000) + mul r19.x, r19.x, r19.x + else + mov r19.x, l(1.000000) + endif + lt r19.y, l(0.500000), cb3[r24.y + 6].z + lt r19.z, r19.x, l(0.001000) + or r19.z, r19.y, r19.z + if_nz r19.z + mov r18.w, r20.w + continue + endif + ishl r19.z, r20.z, l(3) + bfi r20.z, l(29), l(3), r20.z, l(2) + lt r22.w, cb3[r19.z + 6].w, l(1.500000) + if_nz r22.w + mad r22.w, cb3[r20.z + 6].y, l(0.500000), l(0.500000) + add r25.x, r22.w, -|cb3[r20.z + 6].x| + add r25.y, -r25.x, cb3[r20.z + 6].y + add r22.w, -|r25.x|, l(1.000000) + add r22.w, -|r25.y|, r22.w + max r22.w, r22.w, l(0.000488281250) + ge r23.w, cb3[r20.z + 6].x, l(0.000000) + movc r25.z, r23.w, r22.w, -r22.w + dp3 r22.w, r25.xyzx, r25.xyzx + rsq r22.w, r22.w + mul r25.xyz, r22.wwww, r25.xyzx + add r26.xyz, -r7.xyzx, cb3[r24.x + 6].xyzx + dp3 r22.w, r26.xyzx, r26.xyzx + rsq r23.w, r22.w + mul r27.xyz, r23.wwww, r26.xyzx + ftoi r24.z, cb3[r21.w + 6].w + mul r28.xyz, r25.xyzx, cb3[r20.z + 6].zzzz + mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + mad r30.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx + ftou r25.w, cb3[r19.z + 6].w + and r25.w, r25.w, l(1) + ieq r26.w, r25.w, l(0) + not r26.w, r26.w + lt r27.w, l(0.000000), cb3[r20.z + 6].z + and r26.w, r26.w, r27.w + dp3 r27.w, r29.xyzx, r29.xyzx + sqrt r27.w, r27.w + dp3 r28.w, r30.xyzx, r30.xyzx + sqrt r28.w, r28.w + dp3 r29.w, r5.xyzx, r29.xyzx + div r29.w, r29.w, r27.w + dp3 r30.w, r5.xyzx, r30.xyzx + div r30.w, r30.w, r28.w + add r29.w, r29.w, r30.w + mul_sat r31.x, r29.w, l(0.500000) + dp3 r29.w, r29.xyzx, r30.xyzx + mad r27.w, r27.w, r28.w, r29.w + mad r27.w, r27.w, l(0.500000), l(1.000000) + div r31.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w + dp3_sat r20.x, r5.xyzx, r27.xyzx + movc r21.xy, r26.wwww, r31.xyxx, r20.xyxx + lt r20.x, cb3[r24.w + 6].w, l(0.000000) + if_nz r20.x + mul r20.x, cb3[r24.x + 6].w, cb3[r24.x + 6].w + mul r20.x, r20.x, r22.w + mad r20.x, -r20.x, r20.x, l(1.000000) + max r20.x, r20.x, l(0.000000) + add r22.w, r22.w, l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + and r27.w, r26.w, l(0x3f800000) + add r28.w, r21.y, -r22.w + mad r22.w, r27.w, r28.w, r22.w + mul r20.x, r20.x, r20.x + mul r20.x, r20.x, r22.w + else + mul r30.xyz, r26.xyzx, cb3[r24.x + 6].wwww + dp3 r22.w, r30.xyzx, r30.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb3[r24.w + 6].w + exp r22.w, r22.w + mul r20.x, r21.y, r22.w + endif + dp3 r21.y, r27.xyzx, -r25.xyzx + add r21.y, r21.y, -cb3[r20.z + 6].z + mul_sat r21.y, r21.y, cb3[r20.z + 6].w + mul r21.y, r21.y, r21.y + movc r21.y, r25.w, l(1.000000), r21.y + mul r20.x, r20.x, r21.y + not r21.y, r26.w + ige r22.w, r24.z, l(0) + and r21.y, r21.y, r22.w + if_nz r21.y + if_z r25.w + ishl r21.y, r24.z, l(2) + mul r25.xyz, r7.yyyy, cb5[r21.y + 33].xywx + mad r25.xyz, cb5[r21.y + 32].xywx, r7.xxxx, r25.xyzx + mad r25.xyz, cb5[r21.y + 34].xywx, r7.zzzz, r25.xyzx + add r25.xyz, r25.xyzx, cb5[r21.y + 35].xywx + div_sat r25.xy, r25.xyxx, r25.zzzz + mad r25.xy, r25.xyxx, cb5[r24.z + 0].zwzz, cb5[r24.z + 0].xyxx + else + ishl r21.y, r24.z, l(2) + dp3 r30.x, -r26.xyzx, cb5[r21.y + 32].xyzx + dp3 r30.y, -r26.xyzx, cb5[r21.y + 33].xyzx + dp3 r30.z, -r26.xyzx, cb5[r21.y + 34].xyzx + lt r21.y, |r30.x|, |r30.y| + and r21.y, r21.y, l(1) + dp2 r22.w, |r30.xyxx|, icb[r21.y + 0].xyxx + lt r22.w, r22.w, |r30.z| + movc r21.y, r22.w, l(2), r21.y + dp3 r22.w, r30.xyzx, icb[r21.y + 0].xyzx + lt r22.w, r22.w, l(0.000000) + bfi r21.y, l(31), l(1), r21.y, r22.w + ushr r22.w, r21.y, l(1) + dp3 r22.w, r30.xyzx, icb[r22.w + 0].xyzx + div r25.z, l(0.000244140625), cb5[r24.z + 0].w + add r25.z, -r25.z, l(0.500000) + utof r26.x, r21.y + ult r26.y, r21.y, l(2) + and r26.y, r26.y, l(2) + dp2 r26.y, r30.xzxx, icb[r26.y + 0].xzxx + mul r26.y, r26.y, icb[r21.y + 4].z + div r26.y, r26.y, |r22.w| + mad r26.x, r26.y, r25.z, r26.x + add r26.x, r26.x, l(0.500000) + mul_sat r26.x, r26.x, l(0.166666672) + iadd r26.z, l(-1), icb[r21.y + 4].y + dp2 r26.z, r30.yzyy, icb[r26.z + 0].xyxx + mul r21.y, r26.z, icb[r21.y + 4].w + div r21.y, r21.y, |r22.w| + mad_sat r26.y, -r21.y, r25.z, l(0.500000) + mad r25.xy, r26.xyxx, cb5[r24.z + 0].zwzz, cb5[r24.z + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r21.y, r25.xyxx, t11.yxzw, s1, l(0.000000) + mul r20.x, r20.x, r21.y + endif + lt r21.y, l(0.000000), r20.x + if_nz r21.y + if_z r25.w + ftoi r22.w, cb3[r24.y + 6].x + else + add r25.xyz, r7.xyzx, -cb3[r24.x + 6].xyzx + lt r26.xyz, |r25.yzzy|, |r25.xxyx| + and r24.z, r26.y, r26.x + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ushr r25.w, cb3[r20.z + 6].w, l(24) + ubfe r26.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r20.z + 6].wwww + movc r25.x, r25.x, r25.w, r26.x + and r25.w, l(255), cb3[r20.z + 6].w + movc r25.y, r25.y, r26.y, r25.w + ubfe r25.w, l(8), l(8), cb3[r24.y + 6].x + and r26.x, l(255), cb3[r24.y + 6].x + movc r25.z, r25.z, r25.w, r26.x + movc r25.y, r26.z, r25.y, r25.z + movc r24.z, r24.z, r25.x, r25.y + ilt r25.x, r24.z, l(80) + movc r22.w, r25.x, r24.z, l(-1) + endif + ishl r24.z, r22.w, l(2) + mad r25.xyz, r27.xyzx, cb4[r22.w + 288].xxxx, r7.xyzx + mul r25.w, l(5.000000), cb4[r22.w + 288].y + mad r25.xyz, r5.xyzx, r25.wwww, r25.xyzx + mul r30.xyzw, r25.yyyy, cb4[r24.z + 65].xyzw + mad r30.xyzw, cb4[r24.z + 64].xyzw, r25.xxxx, r30.xyzw + mad r25.xyzw, cb4[r24.z + 66].xyzw, r25.zzzz, r30.xyzw + add r25.xyzw, r25.xyzw, cb4[r24.z + 67].xyzw + div r25.xyz, r25.xyzx, r25.wwww + ge r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ge r30.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r31.xy, -cb4[r22.w + 344].xyxx, cb4[r22.w + 344].zwzz + mad r25.xy, r25.xyxx, r31.xyxx, cb4[r22.w + 344].xyxx + mad r31.xy, r25.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r31.xy, r31.xyxx + mad r25.xy, r25.xyxx, cb4[400].zwzz, -r31.xyxx + add r32.xyzw, r25.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r33.xyzw, r32.xxzz, r32.xxzz + add r31.zw, -r25.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r32.xz, r25.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r34.xy, r25.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r35.xy, r31.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r34.xy, -r34.xyxx, r34.xyxx, r32.ywyy + add r34.xy, r34.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r34.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r33.xz, r33.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r25.xy, r33.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r25.xyxx + mul r36.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r25.xy, -r32.xzxx, r32.xzxx, r31.zwzz + add r25.xy, r25.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r37.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xy, r32.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r36.z, r37.x + mov r36.w, r25.x + mov r35.z, r34.x + mov r35.w, r33.x + add r32.xyzw, r35.zwxz, r36.zwxz + mov r37.z, r36.y + mov r37.w, r25.y + mov r34.z, r35.y + mov r34.w, r33.z + add r25.xyw, r34.zyzw, r37.zyzw + div r33.xyz, r35.xzwx, r32.zwyz + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.yxzy, cb4[400].xxxx + div r34.xyz, r34.zywz, r25.xywx + add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r34.xyz, r34.xyzx, cb4[400].yyyy + mov r33.w, r34.x + mad r35.xyzw, r31.xyxy, cb4[400].xyxy, r33.ywxw + mad r31.zw, r31.xxxy, cb4[400].xxxy, r33.zzzw + mov r34.w, r33.y + mov r33.yw, r34.yyyz + mad r36.xyzw, r31.xyxy, cb4[400].xyxy, r33.xyzy + mad r34.xyzw, r31.xyxy, cb4[400].xyxy, r34.wywz + mad r33.xyzw, r31.xyxy, cb4[400].xyxy, r33.xwzw + mul r37.xyzw, r25.xxxy, r32.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r35.xyxx, t6.xxxx, s4, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r35.zwzz, t6.xxxx, s4, r25.z + mul r25.x, r25.x, r37.y + mad r24.z, r37.x, r24.z, r25.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r31.zwzz, t6.xxxx, s4, r25.z + mad r24.z, r37.z, r25.x, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r34.xyxx, t6.xxxx, s4, r25.z + mad r24.z, r37.w, r25.x, r24.z + mul r31.xyzw, r25.yyww, r32.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r36.xyxx, t6.xxxx, s4, r25.z + mad r24.z, r31.x, r25.x, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r36.zwzz, t6.xxxx, s4, r25.z + mad r24.z, r31.y, r25.x, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r34.zwzz, t6.xxxx, s4, r25.z + mad r24.z, r31.z, r25.x, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r33.xyxx, t6.xxxx, s4, r25.z + mad r24.z, r31.w, r25.x, r24.z + ige r25.x, r22.w, l(0) + or r26.xyz, r26.xyzx, r30.xyzx + or r25.y, r26.y, r26.x + or r25.y, r26.z, r25.y + and r26.x, r25.z, l(0x7fffffff) + ult r26.x, l(0x7f800000), r26.x + or r25.y, r25.y, r26.x + mul r25.w, r25.w, r32.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r25.z, r33.zwzz, t6.xxxx, s4, r25.z + mad r24.z, r25.w, r25.z, r24.z + add r24.z, r24.z, l(-1.000000) + mad r22.w, cb4[r22.w + 288].w, r24.z, l(1.000000) + movc r22.w, r25.y, l(1.000000), r22.w + movc r22.w, r25.x, r22.w, l(1.000000) + else + mov r22.w, l(1.000000) + endif + if_nz r26.w + dp3 r24.z, r15.xyzx, r28.xyzx + mul_sat r25.x, r23.w, cb3[r20.z + 6].z + mad r25.x, r25.x, l(0.500000), r10.w + min r25.x, r25.x, l(1.000000) + div r25.x, r10.w, r25.x + mad r25.yzw, r15.xxyz, r24.zzzz, -r28.xxyz + dp3 r25.y, r29.xyzx, r25.yzwy + mul r24.z, r24.z, r24.z + mad r24.z, cb3[r20.z + 6].z, cb3[r20.z + 6].z, -r24.z + div_sat r24.z, r25.y, r24.z + mad r25.yzw, r28.xxyz, r24.zzzz, r29.xxyz + dp3 r24.z, r25.yzwy, r25.yzwy + rsq r24.z, r24.z + mul r27.xyz, r24.zzzz, r25.yzwy + else + mov r25.x, l(1.000000) + endif + if_nz r21.y + mul_sat r21.y, r23.w, cb3[r21.w + 6].y + mad r25.yzw, r10.xxyz, r6.wwww, r27.xxyz + dp3 r23.w, r25.yzwy, r25.yzwy + max r23.w, r23.w, l(0.0000610351562) + rsq r23.w, r23.w + mul r25.yzw, r23.wwww, r25.yyzw + dp3 r23.w, r5.xyzx, r27.xyzx + dp3_sat r24.z, r5.xyzx, r25.yzwy + dp3_sat r25.y, r11.xyzx, r25.yzwy + dp3 r25.z, r11.xyzx, r27.xyzx + lt r25.w, l(0.000000), r21.y + mul r21.y, r21.y, r21.y + mad r26.x, r25.y, l(3.600000), l(0.400000) + div r21.y, r21.y, r26.x + mad r21.y, r12.w, r12.w, r21.y + min r21.y, r21.y, l(1.000000) + movc r21.y, r25.w, r21.y, r10.w + mul r21.y, r21.y, r21.y + mad r25.w, r24.z, r21.y, -r24.z + mad r24.z, r25.w, r24.z, l(1.000000) + add r25.y, -r25.y, l(1.000000) + mul r25.w, r25.y, r25.y + mul r25.w, r25.w, r25.w + mul r26.x, r25.y, r25.w + mov_sat r26.y, -r25.z + mul r26.y, r26.y, r26.y + mad r26.y, r26.y, l(-0.640000), l(1.000000) + mul r26.y, r26.y, r26.y + mad r25.y, -r25.w, r25.y, l(1.000000) + mad r25.y, r2.z, r25.y, r26.x + mul r24.z, r24.z, r24.z + div r24.z, r21.y, r24.z + mul r24.z, r25.x, r24.z + mad r25.x, -r12.x, r21.y, r12.x + mad r25.x, r25.x, r12.x, r21.y + sqrt r25.x, r25.x + mad r25.w, -r21.x, r21.y, r21.x + mad r21.y, r25.w, r21.x, r21.y + sqrt r21.y, r21.y + mul r21.y, r12.x, r21.y + mad r21.y, r21.x, r25.x, r21.y + add r21.y, r21.y, l(0.000100) + div r21.y, l(0.500000), r21.y + mul r21.y, r21.y, r24.z + mul r21.y, r21.y, r25.y + min r21.y, r21.y, l(2048.000000) + mad r25.xy, r21.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r24.z, r25.xyxx, t9.yzxw, s1, l(0.000000) + mul r24.z, r12.z, r24.z + mul r24.z, r11.w, r24.z + div r24.z, r24.z, r12.y + mul r24.z, r1.z, r24.z + div r24.z, r24.z, r13.z + add r21.y, r21.y, r24.z + mov_sat r24.z, r25.z + add r24.z, r24.z, l(0.500000) + min r24.z, r24.z, l(1.000000) + mul r25.x, r8.w, r24.z + add_sat r25.y, r25.z, l(1.000000) + mad r24.z, -r8.w, r24.z, l(1.000000) + mad r24.z, r25.y, r24.z, r25.x + mul r21.y, r21.y, r24.z + mul r21.y, r4.y, r21.y + mul r21.y, r21.y, cb3[r21.w + 6].z + max r21.y, r21.y, l(0.000000) + min r21.y, r21.y, l(1000.000000) + add_sat r24.z, -r23.w, l(0.500000) + ne r25.x, r26.y, l(0.360000) + div r25.y, l(0.360000), r26.y + movc r25.x, r25.x, r25.y, l(1.000000) + mul r24.z, r24.z, r25.x + mad_sat r23.w, r1.x, l(0.0322580636), r23.w + add r23.w, -r21.x, r23.w + mul r25.xyz, r3.xyzx, r23.wwww + mad r25.xyz, r17.xyzx, r24.zzzz, r25.xyzx + mul r25.xyz, r4.yyyy, r25.xyzx + mad r25.xyz, r21.yyyy, r21.xxxx, r25.xyzx + mad r25.xyz, r18.xyzx, r21.xxxx, r25.xyzx + mul r26.xyz, r20.xxxx, cb3[r19.z + 6].xyzx + mul r26.xyz, r22.wwww, r26.xyzx + mul r26.xyz, r19.xxxx, r26.xyzx + mul r25.xyz, r25.xyzx, r26.xyzx + else + mov r25.xyz, l(0,0,0,0) + endif + else + if_z r19.y + mad r19.x, cb3[r20.z + 6].y, l(0.500000), l(0.500000) + add r26.x, r19.x, -|cb3[r20.z + 6].x| + add r26.y, -r26.x, cb3[r20.z + 6].y + add r19.x, -|r26.x|, l(1.000000) + add r19.x, -|r26.y|, r19.x + max r19.x, r19.x, l(0.000488281250) + ge r19.y, cb3[r20.z + 6].x, l(0.000000) + movc r26.z, r19.y, r19.x, -r19.x + dp3 r19.x, r26.xyzx, r26.xyzx + rsq r19.x, r19.x + mul r26.xyz, r19.xxxx, r26.xyzx + add r27.xyz, -r7.xyzx, cb3[r24.x + 6].xyzx + dp3 r19.x, r27.xyzx, r27.xyzx + rsq r19.y, r19.x + mul r28.xyz, r19.yyyy, r27.xyzx + ftoi r19.y, cb3[r21.w + 6].w + mul r21.xyw, r26.xyxz, cb3[r20.z + 6].zzzz + mad r29.xyz, -r21.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r27.xyzx + mad r21.xyw, r21.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r27.xyxz + ftou r19.z, cb3[r19.z + 6].w + and r19.z, r19.z, l(1) + ieq r20.x, r19.z, l(0) + not r20.x, r20.x + lt r22.w, l(0.000000), cb3[r20.z + 6].z + and r20.x, r20.x, r22.w + dp3 r22.w, r29.xyzx, r29.xyzx + sqrt r22.w, r22.w + dp3 r23.w, r21.xywx, r21.xywx + sqrt r23.w, r23.w + dp3 r21.x, r29.xyzx, r21.xywx + mad r21.x, r22.w, r23.w, r21.x + mad r21.x, r21.x, l(0.500000), l(1.000000) + div r21.x, l(1.000000, 1.000000, 1.000000, 1.000000), r21.x + movc r21.x, r20.x, r21.x, l(1.000000) + lt r21.y, cb3[r24.w + 6].w, l(0.000000) + if_nz r21.y + mul r21.y, cb3[r24.x + 6].w, cb3[r24.x + 6].w + mul r21.y, r19.x, r21.y + mad r21.y, -r21.y, r21.y, l(1.000000) + max r21.y, r21.y, l(0.000000) + add r19.x, r19.x, l(1.000000) + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x + and r21.w, r20.x, l(0x3f800000) + add r22.w, -r19.x, r21.x + mad r19.x, r21.w, r22.w, r19.x + mul r21.y, r21.y, r21.y + mul r19.x, r19.x, r21.y + else + mul r29.xyz, r27.xyzx, cb3[r24.x + 6].wwww + dp3 r21.y, r29.xyzx, r29.xyzx + min r21.y, r21.y, l(1.000000) + add r21.y, -r21.y, l(1.000000) + log r21.y, r21.y + mul r21.y, r21.y, cb3[r24.w + 6].w + exp r21.y, r21.y + mul r19.x, r21.y, r21.x + endif + dp3 r21.x, r28.xyzx, -r26.xyzx + add r21.x, r21.x, -cb3[r20.z + 6].z + mul_sat r21.x, r21.x, cb3[r20.z + 6].w + mul r21.x, r21.x, r21.x + movc r21.x, r19.z, l(1.000000), r21.x + mul r19.x, r19.x, r21.x + not r20.x, r20.x + ige r21.x, r19.y, l(0) + and r20.x, r20.x, r21.x + if_nz r20.x + if_z r19.z + ishl r20.x, r19.y, l(2) + mul r21.xyw, r7.yyyy, cb5[r20.x + 33].xyxw + mad r21.xyw, cb5[r20.x + 32].xyxw, r7.xxxx, r21.xyxw + mad r21.xyw, cb5[r20.x + 34].xyxw, r7.zzzz, r21.xyxw + add r21.xyw, r21.xyxw, cb5[r20.x + 35].xyxw + div_sat r21.xy, r21.xyxx, r21.wwww + mad r21.xy, r21.xyxx, cb5[r19.y + 0].zwzz, cb5[r19.y + 0].xyxx + else + ishl r20.x, r19.y, l(2) + dp3 r26.x, -r27.xyzx, cb5[r20.x + 32].xyzx + dp3 r26.y, -r27.xyzx, cb5[r20.x + 33].xyzx + dp3 r26.z, -r27.xyzx, cb5[r20.x + 34].xyzx + lt r20.x, |r26.x|, |r26.y| + and r20.x, r20.x, l(1) + dp2 r21.w, |r26.xyxx|, icb[r20.x + 0].xyxx + lt r21.w, r21.w, |r26.z| + movc r20.x, r21.w, l(2), r20.x + dp3 r21.w, r26.xyzx, icb[r20.x + 0].xyzx + lt r21.w, r21.w, l(0.000000) + bfi r20.x, l(31), l(1), r20.x, r21.w + ushr r21.w, r20.x, l(1) + dp3 r21.w, r26.xyzx, icb[r21.w + 0].xyzx + div r22.w, l(0.000244140625), cb5[r19.y + 0].w + add r22.w, -r22.w, l(0.500000) + utof r23.w, r20.x + ult r24.z, r20.x, l(2) + and r24.z, r24.z, l(2) + dp2 r24.z, r26.xzxx, icb[r24.z + 0].xzxx + mul r24.z, r24.z, icb[r20.x + 4].z + div r24.z, r24.z, |r21.w| + mad r23.w, r24.z, r22.w, r23.w + add r23.w, r23.w, l(0.500000) + mul_sat r27.x, r23.w, l(0.166666672) + iadd r23.w, l(-1), icb[r20.x + 4].y + dp2 r23.w, r26.yzyy, icb[r23.w + 0].xyxx + mul r20.x, r23.w, icb[r20.x + 4].w + div r20.x, r20.x, |r21.w| + mad_sat r27.y, -r20.x, r22.w, l(0.500000) + mad r21.xy, r27.xyxx, cb5[r19.y + 0].zwzz, cb5[r19.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r21.xyxx, t11.yxzw, s1, l(0.000000) + mul r19.x, r19.y, r19.x + endif + lt r19.x, l(0.000000), r19.x + if_nz r19.x + if_z r19.z + ftoi r19.x, cb3[r24.y + 6].x + else + add r21.xyw, r7.xyxz, -cb3[r24.x + 6].xyxz + lt r24.xzw, |r21.yyww|, |r21.xxxy| + and r19.y, r24.z, r24.x + lt r21.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyxw + ushr r19.z, cb3[r20.z + 6].w, l(24) + ubfe r24.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r20.z + 6].wwww + movc r19.z, r21.x, r19.z, r24.x + and r20.x, l(255), cb3[r20.z + 6].w + movc r20.x, r21.y, r24.z, r20.x + ubfe r20.z, l(8), l(8), cb3[r24.y + 6].x + and r21.x, l(255), cb3[r24.y + 6].x + movc r20.z, r21.w, r20.z, r21.x + movc r20.x, r24.w, r20.x, r20.z + movc r19.y, r19.y, r19.z, r20.x + ilt r19.z, r19.y, l(80) + movc r19.x, r19.z, r19.y, l(-1) + endif + ishl r19.y, r19.x, l(2) + mad r21.xyw, r28.xyxz, cb4[r19.x + 288].xxxx, r7.xyxz + mul r19.z, l(5.000000), cb4[r19.x + 288].y + mad r21.xyw, r5.xyxz, r19.zzzz, r21.xyxw + mul r24.xyzw, r21.yyyy, cb4[r19.y + 65].xyzw + mad r24.xyzw, cb4[r19.y + 64].xyzw, r21.xxxx, r24.xyzw + mad r24.xyzw, cb4[r19.y + 66].xyzw, r21.wwww, r24.xyzw + add r24.xyzw, r24.xyzw, cb4[r19.y + 67].xyzw + div r21.xyw, r24.xyxz, r24.wwww + ge r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xywx + ge r26.xyz, r21.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r19.yz, -cb4[r19.x + 344].xxyx, cb4[r19.x + 344].zzwz + mad r19.yz, r21.xxyx, r19.yyzy, cb4[r19.x + 344].xxyx + mad r20.xz, r19.yyzy, cb4[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) + round_ni r20.xz, r20.xxzx + mad r19.yz, r19.yyzy, cb4[400].zzwz, -r20.xxzx + add r27.xyzw, r19.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r28.xyzw, r27.xxzz, r27.xxzz + add r21.xy, -r19.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r27.xz, r19.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r29.xy, r19.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r30.xy, r21.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r29.xy, -r29.xyxx, r29.xyxx, r27.ywyy + add r29.xy, r29.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r29.xy, r29.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r28.xz, r28.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.yz, r28.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r19.yyzy + mul r31.xy, r19.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.yz, -r27.xxzx, r27.xxzx, r21.xxyx + add r19.yz, r19.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r32.xy, r19.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.yz, r27.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r31.z, r32.x + mov r31.w, r19.y + mov r30.z, r29.x + mov r30.w, r28.x + add r27.xyzw, r30.zwxz, r31.zwxz + mov r32.z, r31.y + mov r32.w, r19.z + mov r29.z, r30.y + mov r29.w, r28.z + add r28.xyz, r29.zywz, r32.zywz + div r30.xyz, r30.xzwx, r27.zwyz + add r30.xyz, r30.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r30.xyz, r30.yxzy, cb4[400].xxxx + div r29.xyz, r29.zywz, r28.xyzx + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.xyzx, cb4[400].yyyy + mov r30.w, r29.x + mad r31.xyzw, r20.xzxz, cb4[400].xyxy, r30.ywxw + mad r19.yz, r20.xxzx, cb4[400].xxyx, r30.zzwz + mov r29.w, r30.y + mov r30.yw, r29.yyyz + mad r32.xyzw, r20.xzxz, cb4[400].xyxy, r30.xyzy + mad r29.xyzw, r20.xzxz, cb4[400].xyxy, r29.wywz + mad r30.xyzw, r20.xzxz, cb4[400].xyxy, r30.xwzw + mul r33.xyzw, r27.zwyz, r28.xxxy + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r31.xyxx, t6.xxxx, s4, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r31.zwzz, t6.xxxx, s4, r21.w + mul r20.z, r20.z, r33.y + mad r20.x, r33.x, r20.x, r20.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t6.xxxx, s4, r21.w + mad r19.y, r33.z, r19.y, r20.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r29.xyxx, t6.xxxx, s4, r21.w + mad r19.y, r33.w, r19.z, r19.y + mul r31.xyzw, r27.xyzw, r28.yyzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r32.xyxx, t6.xxxx, s4, r21.w + mad r19.y, r31.x, r19.z, r19.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r32.zwzz, t6.xxxx, s4, r21.w + mad r19.y, r31.y, r19.z, r19.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r29.zwzz, t6.xxxx, s4, r21.w + mad r19.y, r31.z, r19.z, r19.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r30.xyxx, t6.xxxx, s4, r21.w + mad r19.y, r31.w, r19.z, r19.y + ige r19.z, r19.x, l(0) + or r24.xyz, r24.xyzx, r26.xyzx + or r20.x, r24.y, r24.x + or r20.x, r24.z, r20.x + and r20.z, r21.w, l(0x7fffffff) + ult r20.z, l(0x7f800000), r20.z + or r20.x, r20.z, r20.x + mul r20.z, r27.y, r28.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.x, r30.zwzz, t6.xxxx, s4, r21.w + mad r19.y, r20.z, r21.x, r19.y + add r19.y, r19.y, l(-1.000000) + mad r19.x, cb4[r19.x + 288].w, r19.y, l(1.000000) + movc r19.x, r20.x, l(1.000000), r19.x + movc r19.x, r19.z, r19.x, l(1.000000) + else + mov r19.x, l(1.000000) + endif + else + mov r19.x, l(1.000000) + endif + mul r17.w, r17.w, r19.x + mov r25.xyz, l(0,0,0,0) + endif + add r23.xyz, r23.xyzx, r25.xyzx + mov r18.w, r20.w + endloop + mov r13.w, r17.w + add r22.xyz, r22.xyzx, r23.xyzx + iadd r14.w, r14.w, l(1) +endloop +mad r1.xyz, r22.xyzx, r13.wwww, r14.xyzx +ne r10.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx +if_nz r10.x + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r1.w, r0.z, r9.w + mad r4.y, r12.w, l(-16.000000), l(-1.000000) + exp r4.y, r4.y + log r1.w, |r1.w| + mul r1.w, r1.w, r4.y + exp r1.w, r1.w + add r1.w, r0.z, r1.w + add r1.w, r1.w, l(-1.000000) + mov_sat r10.xzw, r1.wwww + mad r14.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r10.xzw, r3.wwww + mov r14.xyz, r3.wwww +endif +mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r17.xyz, r7.xzyx, -r17.xyzx +max r0.z, |r17.y|, |r17.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.w, |r17.z|, l(-208.000000) +mul_sat r1.w, r1.w, l(0.031250) +max r0.z, r0.z, r1.w +ne r1.w, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r1.w, r1.w, r3.w +if_nz r1.w + mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r17.xyz, r7.xzyx, -r17.xyzx + max r1.w, |r17.y|, |r17.x| + add r1.w, r1.w, l(-29.000000) + mul_sat r1.w, r1.w, l(0.500000) + add r3.w, |r17.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r1.w, r1.w, r3.w + lt r3.w, r1.w, l(1.000000) + if_nz r3.w + mad r17.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t15.yzwx, s2, l(0.000000) + add r3.w, -r1.w, l(1.000000) + mul r4.y, l(0.500000), cb0[211].y + mad r6.w, -cb0[211].y, l(0.500000), l(1.000000) + max r4.y, r4.y, r17.y + min r4.y, r6.w, r4.y + mul r17.w, r4.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t16.xyzw, s1, l(0.000000) + mad r4.y, r19.w, r3.w, r0.z + add r20.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t16.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mul r20.xyzw, r3.wwww, r20.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.xxxx, r17.xyzx + mov r17.w, r18.x + mul r17.xyzw, r3.wwww, r17.xyzw + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r19.xyzx + mul r18.xyzw, r3.wwww, r18.xyzw + else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r4.y, r0.z + endif + mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r19.xyz, r7.xzyx, -r19.xyzx + max r3.w, |r19.y|, |r19.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r6.w, |r19.z|, l(-52.000000) + mul_sat r6.w, r6.w, l(0.125000) + max r3.w, r3.w, r6.w + lt r6.w, r3.w, l(1.000000) + if_nz r6.w + mad r19.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r21.xyz, r19.xyzx, cb0[211].xyzx + round_ni r21.xyz, r21.xyzx + mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r19.xyzx, t17.yzwx, s2, l(0.000000) + add r6.w, -r3.w, l(1.000000) + mul r1.w, r1.w, r6.w + mul r6.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r6.w, r6.w, r19.y + min r6.w, r8.w, r6.w + mul r19.w, r6.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyzw, r19.xwzx, t18.xyzw, s1, l(0.000000) + mad r4.y, r22.w, r1.w, r4.y + add r23.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r23.xyzx, t18.xyzw, s1, l(0.000000) + mad r23.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r21.yyyy, r23.xyzx + mov r23.w, r21.y + mad r20.xyzw, r23.xyzw, r1.wwww, r20.xyzw + add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.xxxx, r19.xyzx + mov r19.w, r21.x + mad r17.xyzw, r19.xyzw, r1.wwww, r17.xyzw + mad r19.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r19.xyzx + mad r18.xyzw, r21.xyzw, r1.wwww, r18.xyzw + endif + lt r1.w, l(0.000000), r3.w + if_nz r1.w + mad r19.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r21.xyz, r19.xyzx, cb0[211].xyzx + mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r21.xyz, r21.xyzx + mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx + mad r21.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r19.xyz, r22.xyzx, r19.xyzx + min r19.xyz, r21.xyzx, r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r19.xyzx, t19.yzwx, s2, l(0.000000) + add r1.w, -r0.z, l(1.000000) + mul r1.w, r1.w, r3.w + max r3.w, r22.y, r19.y + min r3.w, r21.y, r3.w + mul r19.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r19.xwzx, t20.xyzw, s1, l(0.000000) + add r22.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t20.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r23.yyyy, r22.xyzx + mov r22.w, r23.y + mad r20.xyzw, r22.xyzw, r1.wwww, r20.xyzw + add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r23.xxxx, r19.xyzx + mov r19.w, r23.x + mad r17.xyzw, r19.xyzw, r1.wwww, r17.xyzw + mad r19.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r23.wwww, r19.xyzx + mad r18.xyzw, r23.xyzw, r1.wwww, r18.xyzw + mad r4.y, r21.w, r1.w, r4.y + endif + mad_sat r1.w, r4.y, l(2.000000), l(-1.000000) + add r19.x, -r0.z, r1.w + add r0.z, r0.z, r1.w + mul r19.y, r0.z, l(0.500000) +else + mov r20.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xy, l(0,1.000000,0,0) +endif +mul r21.xyzw, r19.yyyx, cb0[213].xyzw +mad r21.y, r21.w, l(0.500000), r21.y +mul r12.yz, r19.yyxy, cb0[213].wwyw +mad r21.w, r12.z, l(0.375000), r12.y +add r18.xyzw, r18.xyzw, r21.xyzw +mul r21.xyzw, r19.yyyx, cb0[214].xyzw +mad r21.y, r21.w, l(0.500000), r21.y +mul r12.yz, r19.yyxy, cb0[214].wwyw +mad r21.w, r12.z, l(0.375000), r12.y +add r17.xyzw, r17.xyzw, r21.xyzw +mul r21.xyzw, r19.yyyx, cb0[215].xyzw +mad r21.y, r21.w, l(0.500000), r21.y +mul r12.yz, r19.yyxy, cb0[215].wwyw +mad r21.w, r12.z, l(0.375000), r12.y +add r19.xyzw, r20.xyzw, r21.xyzw +ge r12.yz, r6.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r12.z, r12.y +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r20.xyzw, r6.xyxx, t14.xyzw, s1, l(0.000000) + lt r21.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r20.xyzw| + or r6.xy, r21.zwzz, r21.xyxx + or r0.z, r6.y, r6.x + if_nz r0.z + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mov r6.x, l(1.000000) + mov r6.y, r0.z + mov r1.w, l(0) + loop + ge r3.w, l(4.600000), r6.y + breakc_nz r3.w + iadd r3.w, r1.w, l(1) + mul r12.yz, r6.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000) + mov r6.xy, r12.yzyy + mov r1.w, r3.w + continue + endloop + mul r20.xyzw, r6.xxxx, r20.xyzw + dp3 r0.z, r20.yzwy, r20.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb6[3].x, cb6[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r6.x, r0.z, l(0.00390625000) + mov r6.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyxx, t13.xyzw, s1, l(0.000000) + mad r6.xy, r6.xyxx, cb6[2].xyxx, cb6[2].zwzz + mul r21.x, r6.x, l(3.54490781) + mul r21.yzw, r6.yyyy, r20.yyzw + mul r0.z, r20.x, l(0.406976730) + exp r0.z, r0.z + mul r20.xyzw, r0.zzzz, r21.xyzw + mov r21.xyzw, r20.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r1.w + breakc_nz r3.w + mul r22.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r22.xyzw, r21.xyzw + dp2 r4.y, r22.yxyy, r21.xyxx + dp2 r6.x, r22.zxzz, r21.xzxx + dp2 r6.y, r22.wxww, r21.xwxx + iadd r6.w, r0.z, l(1) + mov r21.x, r3.w + mov r21.y, r4.y + mov r21.zw, r6.xxxy + mov r0.z, r6.w + continue + endloop + mul r20.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r21.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r20.xyzw, r21.xyzw + dp2 r1.w, r20.yxyy, r21.xyxx + dp2 r3.w, r20.zxzz, r21.xzxx + dp2 r4.y, r20.wxww, r21.xwxx + mul r21.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r6.x, r20.xyzw, r21.xyzw + dp2 r6.y, r20.yxyy, r21.xyxx + dp2 r6.w, r20.zxzz, r21.xzxx + dp2 r8.w, r20.wxww, r21.xwxx + mul r21.xyzw, r19.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r20.xyzw, r21.xyzw + dp2 r11.w, r20.yxyy, r21.xyxx + dp2 r12.y, r20.zxzz, r21.xzxx + dp2 r12.z, r20.wxww, r21.xwxx + mul r18.w, r0.z, l(0.886226952) + mul r18.x, r4.y, l(-1.02332675) + mul r18.y, r1.w, l(-1.02332675) + mul r18.z, r3.w, l(1.02332675) + mul r17.x, r8.w, l(-1.02332675) + mul r17.yzw, r6.yywx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) + mul r19.w, r9.w, l(0.886226952) + mul r19.y, r11.w, l(-1.02332675) + mul r19.xz, r12.zzyz, l(-1.02332675, 0.000000, 1.02332675, 0.000000) + endif +endif +mov r5.w, l(1.000000) +dp4 r20.x, r18.xyzw, r5.xyzw +dp4 r20.y, r17.xyzw, r5.xyzw +dp4 r20.z, r19.xyzw, r5.xyzw +max r6.xyw, r20.xyxz, l(0.000000, 0.000000, 0.000000, 0.000000) +add r0.z, l(-1.000000), cb0[113].x +max r1.w, r12.w, l(0.001000) +log r1.w, r1.w +mad r1.w, -r1.w, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.w +mul r12.yz, r2.xxyx, cb1[0].wwww +round_ni r12.yz, r12.yyzy +add r1.w, |r4.w|, -cb1[2].y +round_ni r1.w, r1.w +add r3.w, l(-1.000000), cb1[1].x +max r4.y, r1.w, l(0.000000) +min r3.w, r3.w, r4.y +ge r1.w, r3.w, r1.w +mad r4.y, r12.z, cb1[0].x, r12.y +ftoi r4.y, r4.y +iadd r4.y, r4.y, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r4.y, r4.y, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r4.y +and r1.w, r1.w, r3.w +mul r12.yzw, r6.xxyw, cb0[111].xxxx +dp3 r3.w, r12.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r12.yzw, l(0,0,0,0) +mov r4.y, l(1.000000) +mov r8.w, r1.w +mov r9.w, l(0) +loop + lt r11.w, l(0.010000), r4.y + ine r13.z, r8.w, l(0) + and r13.z, r11.w, r13.z + if_nz r13.z + firstbit_lo r13.z, r8.w + ishl r13.w, l(1), r13.z + xor r8.w, r8.w, r13.w + ishl r13.z, r13.z, l(3) + dp4 r20.x, cb1[r13.z + 6].xyzw, r7.xyzw + dp4 r20.y, cb1[r13.z + 7].xyzw, r7.xyzw + dp4 r20.z, cb1[r13.z + 8].xyzw, r7.xyzw + ge r21.xyz, cb1[r13.z + 5].xyzx, |r20.xyzx| + and r13.w, r21.y, r21.x + and r13.w, r21.z, r13.w + if_nz r13.w + mul r13.w, l(0.100000), cb1[r13.z + 5].x + mul r21.xyz, |r20.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r21.xy, r21.xyxx, r21.xyxx + add r22.xyz, -|r20.xyzx|, cb1[r13.z + 5].xyzx + mul r22.xyz, r22.xyzx, cb1[r13.z + 9].xyzx + eq r14.w, l(1.000000), cb1[r13.z + 10].x + if_nz r14.w + dp3 r23.x, cb1[r13.z + 6].xyzx, r15.xyzx + dp3 r23.y, cb1[r13.z + 7].xyzx, r15.xyzx + dp3 r23.z, cb1[r13.z + 8].xyzx, r15.xyzx + add r24.xyz, -r20.xyzx, cb1[r13.z + 5].xyzx + div r24.xyz, r24.xyzx, r23.xyzx + add r25.xyz, -r20.xyzx, -cb1[r13.z + 5].xyzx + div r25.xyz, r25.xyzx, r23.xyzx + lt r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + movc r24.xyz, r26.xyzx, r24.xyzx, r25.xyzx + min r14.w, r24.y, r24.x + min r14.w, r24.z, r14.w + mad r20.xyz, r23.xyzx, r14.wwww, r20.xyzx + else + mov r20.xyz, r15.xyzx + endif + dp3 r14.w, r20.xyzx, r20.xyzx + rsq r14.w, r14.w + mul r20.xyz, r14.wwww, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + lt r24.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r23.xyz, -r23.xyzx, r24.xyzx + itof r23.xyz, r23.xyzx + dp3 r14.w, r20.xyzx, r23.xyzx + div r20.xyz, r20.xyzx, r14.wwww + lt r14.w, r20.z, l(0.000000) + add r20.zw, -|r20.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.zw, r20.zzzw, r23.xxxy + movc r20.xy, r14.wwww, r20.zwzz, r20.xyxx + dp4 r14.w, cb1[r13.z + 4].xyzw, r5.xyzw + max r14.w, r14.w, l(0.000000) + max r14.w, r14.w, l(0.000100) + min r15.w, r22.z, r22.y + min r15.w, r15.w, r22.x + add r16.w, r21.y, r21.x + mad r16.w, r21.z, r21.z, r16.w + mad r13.w, r13.w, r13.w, -r16.w + mul r13.w, r13.w, cb1[r13.z + 9].x + mul r13.w, r13.w, cb1[r13.z + 9].x + add r16.w, l(1.000000), -cb1[r13.z + 10].y + mul r13.w, r13.w, r16.w + mul r13.w, r13.w, l(100.000000) + mad_sat r13.w, r15.w, cb1[r13.z + 10].y, r13.w + mul r15.w, r13.w, cb1[r13.z + 10].w + mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r20.xy, r20.xyxx, cb1[1].wwww, cb1[2].wwww + mov r20.z, cb1[r13.z + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r20.xyz, r20.xyzx, t5.xyzw, s3, r0.z + mul r20.xyz, r20.xyzx, cb1[r13.z + 9].wwww + div r16.w, r3.w, r14.w + min r16.w, |r16.w|, l(1.000000) + mad r16.w, r16.w, l(2.000000), r3.w + add r14.w, r14.w, l(2.000000) + div r14.w, r16.w, r14.w + add r14.w, r14.w, l(-1.000000) + mad r14.w, r14.w, cb0[112].w, l(1.000000) + mul r20.xyz, r14.wwww, r20.xyzx + mul r20.xyz, r15.wwww, r20.xyzx + mad r12.yzw, r20.xxyz, r4.yyyy, r12.yyzw + mad r13.z, -r13.w, cb1[r13.z + 10].w, l(1.000000) + mul r4.y, r4.y, r13.z + endif + mov r9.w, l(-1) + continue + else + mov r9.w, r11.w + break + endif + mov r9.w, r11.w +endloop +if_nz r9.w + dp3 r1.w, r15.xyzx, r15.xyzx + rsq r1.w, r1.w + mul r15.xyz, r1.wwww, r15.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + lt r21.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r1.w, r15.xyzx, r20.xyzx + div r15.xyz, r15.xyzx, r1.wwww + lt r1.w, r15.z, l(0.000000) + add r13.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r13.zw, r13.zzzw, r20.xxxy + movc r13.zw, r1.wwww, r13.zzzw, r15.xxxy + dp4 r1.w, cb1[3].xyzw, r5.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r15.xy, r13.zwzz, cb1[1].wwww, cb1[2].wwww + mov r15.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z + div r0.z, r3.w, r1.w + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r1.w, r1.w, l(2.000000) + div r0.z, r0.z, r1.w + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r15.xyz, r0.zzzz, r15.xyzx + mad r12.yzw, r15.xxyz, r4.yyyy, r12.yyzw +endif +mul r12.yzw, r12.yyzw, cb0[112].zzzz +mul r12.yzw, r12.yyzw, cb0[111].yyyy +if_nz r10.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.w, -r0.z, l(1.000000) + mul r20.xyz, r1.wwww, r12.yzwy + mad r12.yzw, r15.xxyz, r0.zzzz, r20.xxyz +endif +mul r3.xyz, r3.xyzx, r6.xywx +mul r3.xyz, r3.xyzx, cb0[111].xxxx +mad r0.z, r2.z, r13.x, r13.y +mul r6.xyw, r0.zzzz, r12.yzyw +mul r6.xyw, r10.xzxw, r6.xyxw +mad r3.xyz, r3.xyzx, r14.xyzx, r6.xywx +mul r5.xyzw, r5.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r10.x, r18.xyzw, r5.xyzw +dp4 r10.y, r17.xyzw, r5.xyzw +dp4 r10.z, r19.xyzw, r5.xyzw +max r5.xyz, r10.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r5.xyz, r5.xyzx, cb0[111].xxxx +mul r5.xyz, r14.xyzx, r5.xyzx +mul r5.xyz, r16.xyzx, r5.xyzx +mul r0.z, r4.x, r12.x +ftou r1.w, r2.w +bfi r1.w, l(2), l(0), r1.w, r4.z +utof r1.w, r1.w +mul r1.w, r1.w, l(0.0322580636) +mad r0.z, r0.z, l(0.00787401572), r1.w +mul r4.xyz, r0.zzzz, r5.xyzx +mad r3.xyz, r4.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r3.xyzx +add r1.xyz, r1.xyzx, r3.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.z, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.z, r0.z, l(-1.442695) +exp r2.z, r2.z +add r2.z, -r2.z, l(1.000000) +div r0.z, r2.z, r0.z +mad r2.z, r7.y, cb0[156].w, cb0[158].w +mul r2.z, r2.z, l(1.442695) +exp r2.z, r2.z +mul r0.z, r0.z, r2.z +mul r0.z, r0.z, -r1.w +mul r3.xyz, r0.zzzz, cb0[155].xyzx +mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r3.xyz, r3.xyzx +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.z +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r4.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r9.xyzx + add r2.z, r7.y, -cb0[44].y + lt r2.w, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r2.w + mul r0.x, r0.x, cb0[163].w + div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.z + mul r3.w, r0.x, r2.w + mad r4.z, r3.w, r2.z, cb0[44].y + mad r2.z, -r3.w, r2.z, r2.z + mul r3.w, r2.z, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r2.z, r2.z, cb0[162].x + max r2.z, r2.z, l(-127.000000) + add r5.x, r4.z, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.y, l(5.960464478E-08), |r3.w| + exp r5.z, -r3.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.y, r5.z, r3.w + add r4.z, r4.z, -cb0[162].z + mul r4.z, r4.z, cb0[162].x + max r4.z, r4.z, l(-127.000000) + exp r4.z, -r4.z + mul r4.z, r4.z, cb0[162].y + lt r5.y, l(5.960464478E-08), |r2.z| + exp r5.z, -r2.z + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r2.z + mad r2.z, -r2.z, l(0.240226507), l(0.693147182) + movc r2.z, r5.y, r5.z, r2.z + mul r2.z, r2.z, r4.z + mad r2.z, r5.x, r3.w, r2.z + mad r0.x, -r0.x, r2.w, l(1.000000) + mul r0.x, r6.z, r0.x + mul r0.x, r0.x, r2.z + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r2.zw, r6.zzzz, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r2.z + add r0.x, r2.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r4.y, r0.w, r4.x, r0.y + ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy + mul r2.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r4.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r2.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r2.xyzw, r2.xyzx, t12.xyzw, s1, l(0.000000) + add r0.y, |r4.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r2.xyzw, r2.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r2.xyzw, r0.yyyy, r2.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r2.xyz, r4.xyzx, r2.wwww, r2.xyzx + mul r0.x, r0.x, r2.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.z, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.zzzz, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r2.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r3.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r3.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r2.xyzx +mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r8.xyzx, r8.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xEC0BE43D.cso b/src/games/endfield/deferred-lighting/0xEC0BE43D.cso new file mode 100644 index 0000000000000000000000000000000000000000..0971d7f54a00a5ad6ef38f8ea732bb82705bab71 GIT binary patch literal 57296 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0.asm new file mode 100644 index 000000000..b0f8651c6 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0.asm @@ -0,0 +1,1867 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 16:59:16 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy w +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyz 5 NONE float xyz +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 xyz 8 NONE float xyz +// TEXCOORD 8 x 9 NONE uint x +// SV_IsFrontFace 0 x 10 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[216], immediateIndexed +dcl_constantbuffer CB1[4093], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[9], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_constantbuffer CB13[13], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_comparison +dcl_sampler s3, mode_default +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_sampler s6, mode_default +dcl_resource_structured t0, 4 +dcl_resource_structured t1, 16 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_resource_texture3d (float,float,float,float) t4 +dcl_resource_texture3d (float,float,float,float) t5 +dcl_resource_texture3d (float,float,float,float) t6 +dcl_resource_texture3d (float,float,float,float) t7 +dcl_resource_texture3d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texturecube (float,float,float,float) t16 +dcl_resource_texture2d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_input_ps_siv linear noperspective v0.xyw, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps linear v8.xyz +dcl_input_ps constant v9.x +dcl_input_ps_sgv constant v10.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 32 +add r0.xyz, -v2.xyzx, cb0[44].xyzx +mov r1.x, cb0[0].z +mov r1.y, cb0[1].z +mov r1.z, cb0[2].z +add r2.xyz, -r0.xyzx, r1.xyzx +mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +max r1.w, r0.w, l(9.999999939E-09) +rsq r1.w, r1.w +mul r2.xyz, r0.xyzx, r1.wwww +ishl r2.w, v9.x, l(4) +and r3.x, l(16), cb1[r2.w + 4].w +if_nz r3.x + iadd r3.x, l(2), cb1[r2.w + 5].x + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx +else + mov r3.xy, cb1[r2.w + 3].zxzz +endif +sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t12.xyzw, s3, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t13.xyzw, s4, cb0[108].x +add r3.z, -r5.w, l(1.000000) +mul r4.xyzw, r4.xyzw, cb5[5].xyzw +mul r6.xyz, r4.xyzx, cb5[4].zzzz +dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww +mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t14.xywz, s5, cb0[108].x +mul r7.x, r7.x, r7.z +mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r3.w, r7.xyxx, r7.xyxx +min r3.w, r3.w, l(1.000000) +add r3.w, -r3.w, l(1.000000) +sqrt r3.w, r3.w +max r3.w, r3.w, l(1.000000017E-16) +mul r7.xy, r7.xyxx, cb5[0].wwww +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, v1.xyxx, t15.xyzw, s6, cb0[108].x +add r9.xz, -r3.yyxy, v2.xxzx +mov r9.y, l(0.0000610351562) +dp3 r3.x, r9.xyzx, r9.xyzx +rsq r3.x, r3.x +mul r9.xyz, r3.xxxx, r9.xyzx +mul r10.xyz, v3.zxyz, v4.yzxy +mad r10.xyz, v3.yzxy, v4.zxyz, -r10.xyzx +mul r10.xyz, r10.xyzx, v4.wwww +mul r7.yzw, r7.yyyy, r10.xxyz +mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy +mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz +mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) +movc r6.w, v10.x, l(1.000000), r6.w +dp3 r7.x, r3.xywx, r3.xywx +max r7.x, r7.x, l(1.175494351E-38) +rsq r7.x, r7.x +mul r3.xyw, r3.xyxw, r7.xxxx +mul r7.xyz, r6.wwww, r3.xywx +dp3 r8.w, v3.xyzx, v3.xyzx +rsq r8.w, r8.w +mul r10.xyz, r8.wwww, v3.xyzx +mul r10.xyz, r6.wwww, r10.xyzx +ftou r11.xy, v0.xyxx +add r8.w, l(1.000000), -cb0[111].x +mad r8.w, cb0[198].w, r8.w, cb0[111].x +mul r8.w, r8.w, cb0[109].x +lt r9.w, cb0[187].y, l(0.500000) +if_nz r9.w + mad r12.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r12.xyz, -r12.xyzx, v2.xzyx + max r9.w, |r12.y|, |r12.x| + add r9.w, r9.w, l(-464.000000) + mul_sat r9.w, r9.w, l(0.031250) + add r10.w, |r12.z|, l(-208.000000) + mul_sat r10.w, r10.w, l(0.031250) + max r9.w, r9.w, r10.w + ne r10.w, l(0.000000), cb0[210].w + lt r12.x, r9.w, l(1.000000) + and r10.w, r10.w, r12.x + if_nz r10.w + mad r12.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r12.xyz, -r12.xyzx, v2.xzyx + max r10.w, |r12.y|, |r12.x| + add r10.w, r10.w, l(-29.000000) + mul_sat r10.w, r10.w, l(0.500000) + add r12.x, |r12.z|, l(-13.000000) + mul_sat r12.x, r12.x, l(0.500000) + max r10.w, r10.w, r12.x + lt r12.x, r10.w, l(1.000000) + if_nz r12.x + mad r12.xyz, v2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r13.xyz, r12.xyzx, cb0[211].xyzx + round_ni r13.xyz, r13.xyzx + mad r12.xyz, r12.xyzx, cb0[211].xyzx, -r13.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r13.xyw, r12.xyzx, t4.yzwx, s1, l(0.000000) + add r14.x, -r10.w, l(1.000000) + mul r14.y, l(0.500000), cb0[211].y + mad r14.z, -cb0[211].y, l(0.500000), l(1.000000) + max r12.y, r12.y, r14.y + min r12.y, r14.z, r12.y + mul r12.w, r12.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r12.xwzx, t5.xyzw, s0, l(0.000000) + mad r12.y, r15.w, r14.x, r9.w + add r14.yzw, r12.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.yzw, r14.yzwy, t5.wxyz, s0, l(0.000000) + mad r14.yzw, r14.yyzw, l(0.000000, 4.000000, 4.000000, 4.000000), l(0.000000, -2.000000, -2.000000, -2.000000) + mul r16.xyz, r13.yyyy, r14.yzwy + mov r16.w, r13.y + mul r16.xyzw, r14.xxxx, r16.xyzw + add r12.xzw, r12.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xzw, r12.xzwx, t5.xwyz, s0, l(0.000000) + mad r12.xzw, r12.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r17.xyz, r13.xxxx, r12.xzwx + mov r17.w, r13.x + mul r17.xyzw, r14.xxxx, r17.xyzw + mad r12.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r13.xyz, r13.wwww, r12.xzwx + mul r13.xyzw, r14.xxxx, r13.xyzw + else + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r12.y, r9.w + endif + mad r12.xzw, cb0[6].xxzy, -cb0[212].zzzz, cb0[210].xxzy + add r12.xzw, -r12.xxzw, v2.xxzy + max r12.x, |r12.z|, |r12.x| + add r12.x, r12.x, l(-116.000000) + add r12.z, |r12.w|, l(-52.000000) + mul_sat r12.xz, r12.xxzx, l(0.125000, 0.000000, 0.125000, 0.000000) + max r12.x, r12.z, r12.x + lt r12.z, r12.x, l(1.000000) + if_nz r12.z + mad r14.xyz, v2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r15.xyw, r14.xyzx, t6.yzwx, s1, l(0.000000) + add r12.z, -r12.x, l(1.000000) + mul r10.w, r10.w, r12.z + mul r12.z, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r12.z, r12.z, r14.y + min r12.z, r12.w, r12.z + mul r14.w, r12.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r14.xwzx, t7.xyzw, s0, l(0.000000) + mad r12.y, r18.w, r10.w, r12.y + add r19.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t7.xyzw, s0, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r15.yyyy, r19.xyzx + mov r19.w, r15.y + mad r16.xyzw, r19.xyzw, r10.wwww, r16.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t7.xyzw, s0, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r15.xxxx, r14.xyzx + mov r14.w, r15.x + mad r17.xyzw, r14.xyzw, r10.wwww, r17.xyzw + mad r14.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r15.wwww, r14.xyzx + mad r13.xyzw, r15.xyzw, r10.wwww, r13.xyzw + endif + lt r10.w, l(0.000000), r12.x + if_nz r10.w + mad r14.xyz, v2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + mad r15.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r14.xyz, r18.xyzx, r14.xyzx + min r14.xyz, r15.xyzx, r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r14.xyzx, t8.yzwx, s1, l(0.000000) + add r10.w, -r9.w, l(1.000000) + mul r10.w, r10.w, r12.x + max r12.x, r18.y, r14.y + min r12.x, r15.y, r12.x + mul r14.w, r12.x, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r14.xwzx, t9.xyzw, s0, l(0.000000) + add r12.xzw, r14.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xzw, r12.xzwx, t9.xwyz, s0, l(0.000000) + mad r12.xzw, r12.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r18.xyz, r19.yyyy, r12.xzwx + mov r18.w, r19.y + mad r16.xyzw, r18.xyzw, r10.wwww, r16.xyzw + add r12.xzw, r14.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xzw, r12.xzwx, t9.xwyz, s0, l(0.000000) + mad r12.xzw, r12.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r14.xyz, r19.xxxx, r12.xzwx + mov r14.w, r19.x + mad r17.xyzw, r14.xyzw, r10.wwww, r17.xyzw + mad r12.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r19.xyz, r19.wwww, r12.xzwx + mad r13.xyzw, r19.xyzw, r10.wwww, r13.xyzw + mad r12.y, r15.w, r10.w, r12.y + endif + mad_sat r10.w, r12.y, l(2.000000), l(-1.000000) + add r12.x, -r9.w, r10.w + add r9.w, r9.w, r10.w + mul r12.y, r9.w, l(0.500000) + else + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r12.xy, l(0,1.000000,0,0) + endif + mul r14.xyzw, r12.yyyx, cb0[213].xyzw + mad r14.y, r14.w, l(0.500000), r14.y + mul r12.zw, r12.yyyx, cb0[213].wwwy + mad r14.w, r12.w, l(0.375000), r12.z + add r13.xyzw, r13.xyzw, r14.xyzw + mul r14.xyzw, r12.yyyx, cb0[214].xyzw + mad r14.y, r14.w, l(0.500000), r14.y + mul r12.zw, r12.yyyx, cb0[214].wwwy + mad r14.w, r12.w, l(0.375000), r12.z + add r14.xyzw, r14.xyzw, r17.xyzw + mul r15.xyzw, r12.yyyx, cb0[215].xyzw + mad r15.y, r15.w, l(0.500000), r15.y + mul r12.xy, r12.yxyy, cb0[215].wyww + mad r15.w, r12.y, l(0.375000), r12.x + add r12.xyzw, r15.xyzw, r16.xyzw + mov r7.w, l(1.000000) + dp4 r15.x, r13.xyzw, r7.xyzw + dp4 r15.y, r14.xyzw, r7.xyzw + dp4 r15.z, r12.xyzw, r7.xyzw + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r16.xyz, r8.wwww, r15.xyzx + mul r17.xyz, r14.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) + mad r17.xyz, r13.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r17.xyzx + mad r17.xyz, r12.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r17.xyzx + dp3 r7.w, r17.xyzx, r17.xyzx + max r7.w, r7.w, l(1.175494351E-38) + rsq r7.w, r7.w + mul r17.xyz, r7.wwww, r17.xyzx + mov r17.y, |r17.y| + mov r17.w, l(1.000000) + dp4 r13.x, r13.xyzw, r17.xyzw + dp4 r13.y, r14.xyzw, r17.xyzw + dp4 r13.z, r12.xyzw, r17.xyzw + max r12.xyz, r13.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + ge r7.w, r16.y, r16.z + and r7.w, r7.w, l(0x3f800000) + mov r13.xy, r16.zyzz + mov r13.zw, l(0,0,-1.000000,0.666666687) + mad r14.xy, r15.yzyy, r8.wwww, -r13.xyxx + mov r14.zw, l(0,0,1.000000,-1.000000) + mad r13.xyzw, r7.wwww, r14.xyzw, r13.xyzw + ge r7.w, r16.x, r13.x + and r7.w, r7.w, l(0x3f800000) + mov r14.xyz, r13.xywx + mov r14.w, r16.x + mov r13.xyw, r14.wywx + add r13.xyzw, -r14.xyzw, r13.xyzw + mad r13.xyzw, r7.wwww, r13.xyzw, r14.xyzw + min r7.w, r13.y, r13.w + add r7.w, -r7.w, r13.x + add r9.w, -r13.y, r13.w + mad r10.w, r7.w, l(6.000000), l(0.000100) + div r9.w, r9.w, r10.w + add r9.w, r9.w, r13.z + frc r9.w, |r9.w| + add r10.w, r13.x, l(0.000100) + div r7.w, r7.w, r10.w + add r14.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) + add r9.w, |r14.x|, l(-0.450000) + mul_sat r9.w, r9.w, l(-10.000001) + mad r10.w, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r10.w + mad r9.w, r9.w, l(-0.350000), l(0.700000) + mov_sat r13.x, r13.x + mul r9.w, r9.w, r13.x + min r7.w, r7.w, r9.w + add r9.w, -r7.w, l(2.000000) + div r9.w, l(2.000000), r9.w + frc r13.xyz, r14.yzwy + mad r13.xyz, r13.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) + add_sat r13.xyz, |r13.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) + add r13.xyz, r13.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) + mad r13.xyz, r7.wwww, r13.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r13.xyz, r9.wwww, r13.xyzx + max r7.w, r12.y, r12.x + max r7.w, r12.z, r7.w + mul r8.w, r8.w, r7.w + mov r7.w, l(1.000000) +else + mov r17.xyz, l(0,0,0,0) + mov r16.xyz, l(1.000000,1.000000,1.000000,0) + mov r13.xyz, cb0[188].xyzx + mov r7.w, l(0) +endif +add r9.w, -v2.y, cb1[r2.w + 12].z +add r9.w, r9.w, l(0.200000) +mul_sat r9.w, r9.w, l(2.85714269) +mad r10.w, r9.w, l(-2.000000), l(3.000000) +mul r9.w, r9.w, r9.w +mul r9.w, r9.w, r10.w +mul r9.w, r9.w, cb1[r2.w + 12].y +max r9.w, r9.w, cb1[r2.w + 12].w +add r10.w, r9.w, cb1[r2.w + 12].x +lt r10.w, l(0.010000), r10.w +if_nz r10.w + add r10.w, -r5.x, l(1.000000) + mul r12.xyz, r4.xyzx, r10.wwww + dp3 r12.x, r12.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r12.x, r12.x, l(-0.350000) + mul_sat r12.x, r12.x, l(-4.000000) + mad r12.y, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.z, r12.x, r12.y + mul r14.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) + movc r14.xyzw, cb1[r2.w + 4].wwww, r14.xyzw, v8.xzxy + mul r15.xyzw, r14.xyzw, cb0[196].zzzz + movc r18.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy + mov r18.x, v7.x + add r19.xyz, |r18.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) + mul r20.xyz, r19.xyzx, r19.xyzx + mul r19.xyz, r19.xyzx, r20.xyzx + max r19.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp3 r12.w, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r19.xyz, r19.xyzx, r12.wwww + sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r15.zyzz, t10.xyzw, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.zwzz, t10.xyzw, s3, cb0[108].x + mul r22.xyzw, r19.zzzz, r22.xyzw + mad r21.xyzw, r21.xyzw, r19.yyyy, r22.xyzw + sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.ywyy, t10.xyzw, s3, cb0[108].x + mad r19.xyzw, r22.xyzw, r19.xxxx, r21.xyzw + add r18.yw, -r19.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) + mul r21.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) + mad_sat r12.w, cb1[r2.w + 12].x, r10.w, r21.x + add r12.w, -r18.y, r12.w + mul_sat r12.w, r12.w, l(3.33333325) + mad r13.w, r12.w, l(-2.000000), l(3.000000) + mul r12.w, r12.w, r12.w + mul r12.w, r12.w, r13.w + mul_sat r10.w, r9.w, r10.w + add r10.w, -r18.w, r10.w + mul_sat r10.w, r10.w, l(1.53846145) + mad r13.w, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r13.w + max r10.w, r10.w, r12.w + add r12.w, r5.x, l(-0.500000) + mul_sat r12.w, r12.w, l(4.000000) + mad r13.w, r12.w, l(-2.000000), l(3.000000) + mul r12.w, r12.w, r12.w + mul r12.w, r12.w, r13.w + add r5.w, -r5.w, l(0.199999988) + mul_sat r5.w, r5.w, l(-5.00000048) + mad r13.w, r5.w, l(-2.000000), l(3.000000) + mul r5.w, r5.w, r5.w + mul r5.w, r5.w, r13.w + mad r13.w, r5.w, r12.z, r12.w + min r13.w, r13.w, l(1.000000) + max r9.w, r9.w, cb1[r2.w + 12].x + mad r18.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mul r19.xyw, r15.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) + mul r22.xyz, r15.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) + mul r23.xyz, r20.xyzx, r20.xyzx + mul r23.xyz, r23.xyzx, r23.xyzx + mul r20.xyz, r20.xyzx, r23.xyzx + dp3 r14.x, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r20.xyz, r20.xyzx, r14.xxxx + round_ni r23.xyzw, r19.yxyw + mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r24.xyzw, r24.xyzw + add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r14.x, r24.xyxx, r25.xyxx + add r21.xw, r14.xxxx, r24.xxxy + mul r14.x, r21.w, r21.x + add r16.w, r21.w, r21.x + frc r14.x, r14.x + frc r26.w, r16.w + add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r27.xyzw, r27.xyzw + add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r16.w, r27.xyxx, r28.xyxx + add r21.xw, r16.wwww, r27.xxxy + mul r16.w, r21.w, r21.x + add r17.w, r21.w, r21.x + frc r24.x, r16.w + frc r24.y, r17.w + mad r16.w, r14.x, l(0.399999976), l(0.600000) + mul r17.w, r16.w, l(0.250000) + mad r23.xyzw, r15.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r23.xyzw + mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.xxxy + add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r23.x, r21.x, l(1.250000) + lt r19.y, r21.w, l(0.000000) + movc r19.y, r19.y, l(1.250000), l(0.750000) + mul r23.y, r19.y, r21.w + mad r14.x, cb0[102].x, l(3.000000), r14.x + frc r14.x, r14.x + add r21.xw, r14.xxxx, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r25.xy, r21.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r21.xw, r21.xxxw, r21.xxxw + mul r21.xw, r21.xxxw, r25.xxxy + mul r14.x, r21.w, r21.x + dp2 r19.y, r23.xyxx, r23.xyxx + sqrt r19.y, r19.y + mad r16.w, -r16.w, l(0.250000), r19.y + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.w + mul_sat r16.w, r16.w, r19.y + mad r19.y, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.y + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r26.z, r14.x, r16.w + div r21.xw, r23.xxxy, r17.wwww + max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r14.x, r26.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r21.xw, r14.xxxx, r21.xxxw + mad r14.x, r24.x, l(0.250000), l(0.250000) + mul r26.xy, r14.xxxx, r21.xwxx + dp2 r14.x, r24.zwzz, r25.zwzz + add r21.xw, r14.xxxx, r24.zzzw + mul r14.x, r21.w, r21.x + add r16.w, r21.w, r21.x + frc r14.x, r14.x + frc r24.w, r16.w + dp2 r16.w, r27.zwzz, r28.zwzz + add r21.xw, r16.wwww, r27.zzzw + mul r16.w, r21.w, r21.x + add r17.w, r21.w, r21.x + frc r23.x, r16.w + frc r23.y, r17.w + mad r16.w, r14.x, l(0.399999976), l(0.600000) + mul r17.w, r16.w, l(0.250000) + mad r21.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.zzzw + add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r25.x, r21.x, l(1.250000) + lt r19.y, r21.w, l(0.000000) + movc r19.y, r19.y, l(1.250000), l(0.750000) + mul r25.y, r19.y, r21.w + mad r14.x, cb0[102].x, l(3.000000), r14.x + frc r14.x, r14.x + add r21.xw, r14.xxxx, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r23.yz, r21.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) + mul r21.xw, r21.xxxw, r21.xxxw + mul r21.xw, r21.xxxw, r23.yyyz + mul r14.x, r21.w, r21.x + dp2 r19.y, r25.xyxx, r25.xyxx + sqrt r19.y, r19.y + mad r16.w, -r16.w, l(0.250000), r19.y + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.w + mul_sat r16.w, r16.w, r19.y + mad r19.y, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.y + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r24.z, r14.x, r16.w + div r21.xw, r25.xxxy, r17.wwww + max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r14.x, r24.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r21.xw, r14.xxxx, r21.xxxw + mad r14.x, r23.x, l(0.250000), l(0.250000) + mul r24.xy, r14.xxxx, r21.xwxx + round_ni r19.xy, r19.xwxx + mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r23.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r14.x, r21.xwxx, r23.xyxx + add r21.xw, r14.xxxx, r21.xxxw + mul r14.x, r21.w, r21.x + add r16.w, r21.w, r21.x + frc r14.x, r14.x + frc r23.w, r16.w + add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r25.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r16.w, r21.xwxx, r25.xyxx + add r21.xw, r16.wwww, r21.xxxw + mul r16.w, r21.w, r21.x + add r17.w, r21.w, r21.x + frc r25.x, r16.w + frc r25.y, r17.w + mad r16.w, r14.x, l(0.399999976), l(0.600000) + mul r17.w, r16.w, l(0.250000) + mad r19.xy, r15.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r19.xyxx + mad r21.xw, r25.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx + add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r27.x, r19.x, l(1.250000) + lt r19.x, r19.y, l(0.000000) + movc r19.x, r19.x, l(1.250000), l(0.750000) + mul r27.y, r19.x, r19.y + mad r14.x, cb0[102].x, l(3.000000), r14.x + frc r14.x, r14.x + add r19.xy, r14.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.xy, r19.xyxx, r19.xyxx + mul r19.xy, r19.xyxx, r21.xwxx + mul r14.x, r19.y, r19.x + dp2 r19.x, r27.xyxx, r27.xyxx + sqrt r19.x, r19.x + mad r16.w, -r16.w, l(0.250000), r19.x + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.w + mul_sat r16.w, r16.w, r19.x + mad r19.x, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.x + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r23.z, r14.x, r16.w + div r19.xy, r27.xyxx, r17.wwww + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r14.x, r23.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r19.xy, r14.xxxx, r19.xyxx + mad r14.x, r25.x, l(0.250000), l(0.250000) + mul r23.xy, r14.xxxx, r19.xyxx + mul r24.xyzw, r20.zzzz, r24.xyzw + mad r24.xyzw, r26.xyzw, r20.yyyy, r24.xyzw + mad r23.xyzw, r23.xyzw, r20.xxxx, r24.xyzw + round_ni r24.xyzw, r22.yxyz + mul r25.xyzw, r24.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r25.xyzw, r25.xyzw + add r26.xyzw, r25.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r14.x, r25.xyxx, r26.xyxx + add r19.xy, r14.xxxx, r25.xyxx + mul r14.x, r19.y, r19.x + add r16.w, r19.y, r19.x + frc r14.x, r14.x + frc r27.w, r16.w + add r28.xyzw, r24.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r28.xyzw, r28.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r28.xyzw, r28.xyzw + add r29.xyzw, r28.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r16.w, r28.xyxx, r29.xyxx + add r19.xy, r16.wwww, r28.xyxx + mul r16.w, r19.y, r19.x + add r17.w, r19.y, r19.x + frc r19.x, r16.w + frc r19.y, r17.w + mad r16.w, r14.x, l(0.399999976), l(0.600000) + mul r17.w, r16.w, l(0.250000) + mad r24.xyzw, r15.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r24.xyzw + mad r19.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.xxxy + add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r24.x, r19.y, l(1.250000) + lt r15.x, r19.w, l(0.000000) + movc r15.x, r15.x, l(1.250000), l(0.750000) + mul r24.y, r15.x, r19.w + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r19.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.yw, r19.yyyw, r19.yyyw + mul r19.yw, r19.yyyw, r21.xxxw + mul r14.x, r19.w, r19.y + dp2 r15.x, r24.xyxx, r24.xyxx + sqrt r15.x, r15.x + mad r15.x, -r16.w, l(0.250000), r15.x + div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.w + mul_sat r15.x, r15.x, r16.w + mad r16.w, r15.x, l(-2.000000), l(3.000000) + mul r15.x, r15.x, r15.x + mul r15.x, r15.x, r16.w + ge r15.x, r15.x, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r27.z, r14.x, r15.x + div r19.yw, r24.xxxy, r17.wwww + max r19.yw, r19.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) + min r19.yw, r19.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) + ge r14.x, r27.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r19.yw, r14.xxxx, r19.yyyw + mad r14.x, r19.x, l(0.250000), l(0.250000) + mul r27.xy, r14.xxxx, r19.ywyy + dp2 r14.x, r25.zwzz, r26.zwzz + add r19.xy, r14.xxxx, r25.zwzz + mul r14.x, r19.y, r19.x + add r15.x, r19.y, r19.x + frc r14.x, r14.x + frc r25.w, r15.x + dp2 r15.x, r28.zwzz, r29.zwzz + add r19.xy, r15.xxxx, r28.zwzz + mul r15.x, r19.y, r19.x + add r16.w, r19.y, r19.x + frc r19.x, r15.x + frc r19.y, r16.w + mad r15.x, r14.x, l(0.399999976), l(0.600000) + mul r16.w, r15.x, l(0.250000) + mad r19.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.zzzw + add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r24.x, r19.y, l(1.250000) + lt r17.w, r19.w, l(0.000000) + movc r17.w, r17.w, l(1.250000), l(0.750000) + mul r24.y, r17.w, r19.w + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r19.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.yw, r19.yyyw, r19.yyyw + mul r19.yw, r19.yyyw, r21.xxxw + mul r14.x, r19.w, r19.y + dp2 r17.w, r24.xyxx, r24.xyxx + sqrt r17.w, r17.w + mad r15.x, -r15.x, l(0.250000), r17.w + div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w + mul_sat r15.x, r15.x, r17.w + mad r17.w, r15.x, l(-2.000000), l(3.000000) + mul r15.x, r15.x, r15.x + mul r15.x, r15.x, r17.w + ge r15.x, r15.x, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r25.z, r14.x, r15.x + div r19.yw, r24.xxxy, r16.wwww + max r19.yw, r19.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) + min r19.yw, r19.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) + ge r14.x, r25.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r19.yw, r14.xxxx, r19.yyyw + mad r14.x, r19.x, l(0.250000), l(0.250000) + mul r25.xy, r14.xxxx, r19.ywyy + round_ni r19.xy, r22.xzxx + mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r22.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r14.x, r21.xwxx, r22.xyxx + add r21.xw, r14.xxxx, r21.xxxw + mul r14.x, r21.w, r21.x + add r15.x, r21.w, r21.x + frc r14.x, r14.x + frc r22.w, r15.x + add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r24.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r15.x, r21.xwxx, r24.xyxx + add r21.xw, r15.xxxx, r21.xxxw + mul r15.x, r21.w, r21.x + add r16.w, r21.w, r21.x + frc r24.x, r15.x + frc r24.y, r16.w + mad r15.x, r14.x, l(0.399999976), l(0.600000) + mul r16.w, r15.x, l(0.250000) + mad r19.xy, r15.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r19.xyxx + mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx + add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r26.x, r19.x, l(1.250000) + lt r17.w, r19.y, l(0.000000) + movc r17.w, r17.w, l(1.250000), l(0.750000) + mul r26.y, r17.w, r19.y + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r19.xy, r14.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.xy, r19.xyxx, r19.xyxx + mul r19.xy, r19.xyxx, r21.xwxx + mul r14.x, r19.y, r19.x + dp2 r17.w, r26.xyxx, r26.xyxx + sqrt r17.w, r17.w + mad r15.x, -r15.x, l(0.250000), r17.w + div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w + mul_sat r15.x, r15.x, r17.w + mad r17.w, r15.x, l(-2.000000), l(3.000000) + mul r15.x, r15.x, r15.x + mul r15.x, r15.x, r17.w + ge r15.x, r15.x, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r22.z, r14.x, r15.x + div r19.xy, r26.xyxx, r16.wwww + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r14.x, r22.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r19.xy, r14.xxxx, r19.xyxx + mad r14.x, r24.x, l(0.250000), l(0.250000) + mul r22.xy, r14.xxxx, r19.xyxx + mul r24.xyzw, r20.zzzz, r25.xyzw + mad r24.xyzw, r27.xyzw, r20.yyyy, r24.xyzw + mad r20.xyzw, r22.xyzw, r20.xxxx, r24.xyzw + max r19.xy, r20.zwzz, r23.zwzz + mad r20.zw, -r13.wwww, r9.wwww, l(0.000000, 0.000000, 1.000000, 1.010000) + add r14.x, r19.y, l(-0.100000) + ge r14.x, r14.x, r20.z + and r14.x, r14.x, l(0x3f800000) + mul r14.x, r14.x, r19.x + ge r2.w, cb1[r2.w + 12].x, l(0.010000) + and r2.w, r2.w, l(0x3f800000) + mul r2.w, r2.w, r14.x + lt r14.x, l(0.001000), r2.w + add r19.xy, r20.xyxx, r23.xyxx + mul r15.x, cb0[102].x, cb0[196].z + mul r20.y, r15.x, l(0.750000) + dp2 r15.x, r18.xzxx, r18.xzxx + max r15.x, r15.x, l(1.175494351E-38) + rsq r15.x, r15.x + mul r18.xz, r15.xxxx, r18.xxzx + add r18.xz, |r18.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) + mul r21.xw, r18.xxxz, r18.xxxz + mul r18.xz, r18.xxzx, r21.xxwx + max r18.xz, r18.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp2 r15.x, r18.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + div r18.xz, r18.xxzx, r15.xxxx + sample_b_indexable(texture2d)(float,float,float,float) r22.xyz, r15.zwzz, t11.xyzw, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, r15.ywyy, t11.xyzw, s3, cb0[108].x + mul r15.xyz, r18.xxxx, r15.xyzx + mad r15.xyz, r22.xyzx, r18.zzzz, r15.xyzx + movc r18.yw, r14.xxxx, r19.xxxy, r18.yyyw + mad r15.xy, r15.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mov r20.x, l(0) + mad r14.xyzw, r14.zwyw, cb0[196].zzzz, r20.xyxy + sample_b_indexable(texture2d)(float,float,float,float) r14.x, r14.xyxx, t11.wxyz, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r14.y, r14.zwzz, t11.xwyz, s3, cb0[108].x + mul r14.y, r18.x, r14.y + mad r14.x, r14.x, r18.z, r14.y + mad r14.xy, r15.xyxx, r14.xxxx, r18.ywyy + ge r14.z, r19.z, r20.w + and r14.z, r14.z, l(0x3f800000) + max r2.w, r2.w, r14.z + add r14.z, -r15.z, l(1.000000) + mad r9.w, r13.w, r9.w, -r14.z + mul_sat r9.w, r9.w, l(9.999998) + mad r13.w, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r13.w + max r2.w, r2.w, r9.w + mad r14.zw, -r7.zzzy, l(0.000000, 0.000000, 1.000000, 0.000000), r21.yyyz + dp2 r9.w, r14.zwzz, r14.zwzz + lt r13.w, l(0.0000610351562), r9.w + rsq r9.w, r9.w + mul r14.zw, r9.wwww, r14.zzzw + mov r14.zw, -r14.zzzw + movc r15.z, r13.w, r14.z, l(-1.000000) + and r15.y, r13.w, r14.w + min r9.w, r3.z, l(0.050000) + add r13.w, -r3.z, r9.w + mad r13.w, r2.w, r13.w, r3.z + mad r12.x, -r12.y, r12.x, l(1.000000) + mul r12.x, r10.w, r12.x + mad r5.w, -r5.w, r12.z, l(1.000000) + mul r5.w, r5.w, r12.x + mad r5.w, r5.w, l(-0.500000), l(1.000000) + mov r15.x, l(0) + mad r3.xyw, -r3.xyxw, r6.wwww, r15.zxzy + mad r3.xyw, r14.xxxx, r3.xyxw, r7.xyxz + mul r14.xzw, r7.zzxy, r15.xxyz + mad r14.xzw, r7.yyzx, r15.yyzx, -r14.xxzw + add r14.xzw, -r3.xxyw, r14.xxzw + mad r3.xyw, r14.yyyy, r14.xzxw, r3.xyxw + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz + mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mul r3.xyw, r3.xyxw, r6.wwww + mul r6.w, r12.z, r10.w + mad r6.w, -r6.w, l(0.200000), r13.w + min r10.w, r13.w, l(0.200000) + max r3.z, r6.w, r10.w + mul r6.xyz, r5.wwww, r6.xyzx + dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r6.w, r6.w, l(-0.700000) + mul_sat r6.w, r6.w, l(-2.50000024) + mad r10.w, r6.w, l(-2.000000), l(3.000000) + mul r6.w, r6.w, r6.w + mul r6.w, r6.w, r10.w + mad r6.w, r6.w, l(0.500000), l(1.000000) + mul r10.w, r12.w, r2.w + mad r12.xyz, r4.xyzx, r6.wwww, -r4.xyzx + mad r12.xyz, r10.wwww, r12.xyzx, r4.xyzx + mul r4.xyz, r5.wwww, r12.xyzx +else + mov r3.xyw, r7.xyxz + mov r9.w, l(0.010000) + mov r2.w, l(0) +endif +mul r5.w, r5.y, l(0.040000) +mad r6.w, -r5.x, l(0.960000), l(0.960000) +mul r12.xyz, r4.xyzx, r6.wwww +mad r14.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx +mad r14.xyz, r5.xxxx, r14.xyzx, r5.wwww +mul r6.xyz, r6.wwww, r6.xyzx +mul r5.y, r3.z, r3.z +max r5.y, r5.y, l(0.00781250000) +max r5.w, v5.z, l(9.999999939E-09) +div r15.xy, v5.xyxx, r5.wwww +max r5.w, v6.z, l(9.999999939E-09) +div r15.zw, v6.xxxy, r5.wwww +add r15.xy, -r15.zwzz, r15.xyxx +mul r18.xy, r15.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r18.xy, |r18.xyxx| +sqrt r18.xy, r18.xyxx +mov r15.z, -r15.y +lt r15.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xxxz +lt r15.xz, r15.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r15.xy, -r15.ywyy, r15.xzxx +itof r15.xy, r15.xyxx +mul r15.xy, r15.xyxx, r18.xyxx +mad o1.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +lt r5.w, l(0.500000), r2.w +movc o1.w, r5.w, l(0.700000), l(0.400000) +add r15.xyz, cb0[197].xyzx, cb3[0].xyzx +mad r15.xyz, cb0[187].wwww, r15.xyzx, -cb3[0].xyzx +mov r15.w, l(0.0000610351562) +dp3 r5.w, r15.xzwx, r15.xzwx +rsq r5.w, r5.w +mul r18.xyz, r5.wwww, r15.xwzx +add r19.xyz, cb0[191].xyzx, -cb3[3].xyzx +mad r19.xyz, cb0[198].yyyy, r19.xyzx, cb3[3].xyzx +add r5.w, l(1.000000), -cb3[3].w +mad r5.w, cb0[198].w, r5.w, cb3[3].w +mul r20.xyz, r5.wwww, r19.xyzx +mov r11.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r21.xy, r11.xyzz, t3.xyzw +add r10.w, r21.x, l(-1.000000) +mad r10.w, cb4[34].x, r10.w, l(1.000000) +add r11.z, -r10.w, l(1.000000) +mad r10.w, cb0[187].z, r11.z, r10.w +dp3 r11.z, r7.xyzx, r15.xyzx +mul r21.xzw, r6.xxyz, cb0[186].zzzz +mul r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) +dp3 r12.w, r12.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +dp2 r13.w, cb0[6].xzxx, cb0[6].xzxx +rsq r13.w, r13.w +mul r23.xy, r13.wwww, cb0[6].xzxx +dp2 r13.w, r18.xzxx, r23.xyxx +mov_sat r13.w, -r13.w +add r23.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx +mad r14.w, r11.z, l(0.500000), l(-1.000000) +mad r14.w, -r11.z, r14.w, -r11.z +add r15.w, l(0.750000), -|cb0[6].y| +add_sat r15.w, r15.w, r15.w +mad r16.w, r15.w, l(-2.000000), l(3.000000) +mul r15.w, r15.w, r15.w +mul r15.w, r15.w, r16.w +mul r15.w, r13.w, r15.w +mul r15.w, r23.x, r15.w +add r14.w, r14.w, l(0.500000) +mad r11.z, r15.w, r14.w, r11.z +mad r11.z, cb0[197].w, cb0[198].x, r11.z +max r11.z, r11.z, l(-1.000000) +min r11.z, r11.z, l(1.000000) +add r11.z, r11.z, l(-0.250000) +mul r11.z, r11.z, l(1.33333337) +max r11.z, r11.z, l(0.000000) +mad r14.w, r11.z, l(-2.000000), l(3.000000) +mul r11.z, r11.z, r11.z +mul r11.z, r11.z, r14.w +dp3 r14.w, r7.xyzx, cb0[6].xyzx +add r14.w, r14.w, l(-0.250000) +mul_sat r14.w, r14.w, l(1.33333337) +mad r15.w, r14.w, l(-2.000000), l(3.000000) +mul r14.w, r14.w, r14.w +mul r14.w, r14.w, r15.w +mul r15.w, r5.z, r21.y +min r16.w, r5.z, r21.y +min r17.w, r11.z, r16.w +mul r18.w, r14.w, r15.w +dp3 r19.w, r7.xyzx, cb0[192].xyzx +add_sat r19.w, r19.w, cb0[193].x +mad r19.w, r19.w, cb0[193].y, cb0[193].z +mul r20.w, r17.w, cb0[187].y +add r24.xyz, -r13.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r24.xyz, r20.wwww, r24.xyzx, r13.xyzx +mul r24.xyz, r19.wwww, r24.xyzx +mad r19.w, r8.w, l(0.350000024), l(0.650000) +min r19.w, r19.w, l(1.500000) +max r25.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) +min r25.xyz, r25.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) +add r8.w, -r19.w, r25.x +mad r8.w, cb0[187].x, r8.w, r19.w +mul r26.xyz, r8.wwww, r24.xyzx +mul r26.xyz, r26.xyzx, cb0[186].wwww +dp3 r8.w, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r20.xyz, r19.xyzx, r5.wwww, -r8.wwww +mad r20.xyz, r17.wwww, r20.xyzx, r8.wwww +mul r24.xyz, r24.xyzx, r25.yyyy +mad r23.yzw, r19.xxyz, cb0[198].yyyy, r23.yyyy +mad r20.xyz, r24.xyzx, r23.yzwy, r20.xyzx +mad r20.xyz, r20.xyzx, cb0[186].yyyy, -r26.xyzx +mad r20.xyz, r10.wwww, r20.xyzx, r26.xyzx +dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww +mad r22.xyz, r22.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww +mad_sat r8.w, r14.w, r15.w, r11.z +mad r23.yzw, r6.xxyz, cb0[186].zzzz, -r22.xxyz +mad r22.xyz, r8.wwww, r23.yzwy, r22.xyzx +mad r23.yzw, r4.xxyz, r6.wwww, -r22.xxyz +mad r22.xyz, r17.wwww, r23.yzwy, r22.xyzx +mad r23.yzw, r4.xxyz, r6.wwww, -r12.wwww +mad r23.yzw, r23.yyzw, l(0.000000, 1.200000, 1.200000, 1.200000), r12.wwww +mad r23.yzw, -r6.xxyz, cb0[186].zzzz, r23.yyzw +mad r21.xzw, r18.wwww, r23.yyzw, r21.xxzw +dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +max r11.z, r8.w, l(0.001000) +div r11.z, l(1.000000, 1.000000, 1.000000, 1.000000), r11.z +mul r8.w, r8.w, r11.z +max r8.w, r8.w, l(0.000000) +min r8.w, r8.w, l(1.500000) +mad r22.xyz, r22.xyzx, r8.wwww, -r21.xzwx +mad r21.xzw, r10.wwww, r22.xxyz, r21.xxzw +mad r8.w, -r14.w, r15.w, r17.w +mad r8.w, r10.w, r8.w, r18.w +add r11.z, l(1.000000), -cb0[186].z +mad r11.z, r8.w, r11.z, cb0[186].z +add r14.w, r15.y, l(-0.500000) +mad r22.y, r10.w, r14.w, l(0.500000) +dp3_sat r24.x, r3.xywx, r2.xyzx +mov r22.xz, cb0[6].xxzx +dp3 r14.w, r22.xyzx, r22.xyzx +max r14.w, r14.w, l(1.175494351E-38) +rsq r14.w, r14.w +mul r22.xyz, r14.wwww, r22.xyzx +add r22.xyz, r22.xyzx, r22.xyzx +mad r15.xyz, r15.xyzx, r10.wwww, r22.xyzx +add r14.w, r10.w, l(2.000000) +mad r15.xyz, r2.xyzx, r14.wwww, r15.xyzx +dp3 r14.w, r15.xyzx, r15.xyzx +rsq r14.w, r14.w +mul r15.xyz, r14.wwww, r15.xyzx +dp3 r14.w, r3.xywx, r15.xyzx +mul r15.x, r5.y, r5.y +mad r15.y, r14.w, r15.x, -r14.w +mad r14.w, r15.y, r14.w, l(1.000000) +mul r14.w, r14.w, r14.w +add r15.y, l(1.000000), -cb5[1].z +mad r15.y, r4.w, cb5[1].z, r15.y +mul r22.xyz, r20.xyzx, r21.xzwx +ne r15.z, r14.w, r15.x +div r14.w, r15.x, r14.w +movc r14.w, r15.z, r14.w, l(1.000000) +mad r15.x, r24.x, l(2.000000), r5.y +add r15.x, r15.x, l(0.000100) +div r15.x, l(0.500000), r15.x +mad r14.w, r14.w, r15.x, l(-0.0000610351562) +max r14.w, r14.w, l(0.000000) +min r14.w, r14.w, l(20.000000) +mul r15.xzw, r14.wwww, r14.xxyz +mad r8.w, r8.w, l(0.500000), l(0.500000) +mul r8.w, r11.z, r8.w +mul r20.xyz, r8.wwww, r20.xyzx +mul r15.xzw, r15.xxzw, r20.xxyz +mul r15.xzw, r15.xxzw, cb0[199].wwww +mad r15.xzw, r22.xxyz, r15.yyyy, r15.xxzw +dp3 r8.w, r15.xzwx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r14.w, r8.w, l(-0.500000) +max r14.w, r14.w, l(0.000000) +min r14.w, r14.w, l(0.500000) +mov r20.y, l(0) +mov r20.xz, cb0[195].yyxy +mul r22.xyz, r20.xyzx, cb0[6].zxyz +mad r20.xyz, cb0[6].yzxy, r20.yzxy, -r22.xyzx +dp3 r17.w, r20.xyzx, r20.xyzx +rsq r17.w, r17.w +mul r20.xyz, r17.wwww, r20.xyzx +dp3 r17.w, r2.xyzx, r7.xyzx +add r22.xy, -|r17.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) +dp3 r18.x, r18.xyzx, r7.xyzx +add r18.y, -r10.w, l(1.000000) +add r9.w, -r3.z, r9.w +mad r2.w, r2.w, r9.w, r3.z +mul r26.y, r2.w, r2.w +mul r27.x, r24.x, r24.x +mul r27.z, r24.x, r27.x +mul r9.w, r26.y, r26.y +mul r26.z, r26.y, r9.w +mov r24.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r25.x, l(3.327070, 1.000000, 0.000000, 0.000000), r24.xyxx +dp2 r25.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r24.xzxx +mov r26.x, l(1.000000) +dp2 r9.w, r25.xyxx, r26.xyxx +mov r27.yw, l(0,9.044010,0,1.000000) +dp3 r28.x, l(3.596850, -1.367720, 1.000000, 0.000000), r27.xzwx +dp3 r28.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r27.xyzx +mov r29.x, l(5.565890) +mov r29.yz, r27.xxzx +dp3 r28.z, l(1.000000, 19.788601, -20.212299, 0.000000), r29.xyzx +dp3 r18.z, r28.xyzx, r26.xyzx +div r9.w, r9.w, r18.z +dp2 r25.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r24.xwxx +mov r27.x, l(1.296780) +mov r27.y, r24.x +dp2 r25.y, l(1.000000, -0.755907, 0.000000, 0.000000), r27.xyxx +dp2 r18.z, r25.xyxx, r26.xyxx +dp3 r28.x, l(2.923380, 59.418800, 1.000000, 0.000000), r27.yzwy +mov r27.xw, l(20.322500,0,0,121.563004) +dp3 r28.y, l(1.000000, -27.030199, 222.591995, 0.000000), r27.xyzx +dp3 r28.z, l(626.130005, 316.627014, 1.000000, 0.000000), r27.yzwy +dp3 r18.w, r28.xyzx, r26.xyzx +div r18.z, r18.z, r18.w +mad r23.yzw, r14.xxyz, r9.wwww, r18.zzzz +add r9.w, r9.w, r18.z +mad r14.w, r14.w, r14.w, l(1.000000) +add r15.xzw, -r8.wwww, r15.xxzw +mad r15.xzw, r14.wwww, r15.xxzw, r8.wwww +mad r18.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) +add r8.w, -r18.z, r18.w +add r14.w, -r18.z, r22.x +div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w +mul_sat r8.w, r8.w, r14.w +mad r14.w, r8.w, l(-2.000000), l(3.000000) +mul r8.w, r8.w, r8.w +mul r8.w, r8.w, r14.w +mul r24.yzw, r8.wwww, cb0[194].xxyz +mul r24.yzw, r24.yyzw, cb0[194].wwww +dp3 r8.w, r9.xyzx, r20.xyzx +add_sat r8.w, r8.w, l(1.000000) +min r5.z, r5.z, r8.w +min r5.z, r21.y, r5.z +mul r24.yzw, r5.zzzz, r24.yyzw +mad r25.xyw, r4.xyxz, r6.wwww, l(-0.250000, -0.250000, 0.000000, -0.250000) +mad r25.xyw, cb0[195].zzzz, r25.xyxw, l(0.250000, 0.250000, 0.000000, 0.250000) +dp3_sat r5.z, r20.xyzx, r7.xyzx +mul r20.xyz, r5.zzzz, r25.xywx +max r5.z, r16.y, r16.x +max r5.z, r16.z, r5.z +mul r5.z, r5.z, l(0.500000) +max r5.z, r5.z, l(1.000000) +div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z +mul r16.xyz, r5.zzzz, r16.xyzx +mad r19.xyz, r19.xyzx, r5.wwww, -r16.xyzx +mad r16.xyz, r10.wwww, r19.xyzx, r16.xyzx +dp3 r5.z, r17.xyzx, r7.xyzx +mul r5.w, r7.w, r5.z +mad r8.w, r18.x, l(0.500000), l(-1.000000) +mad r8.w, -r18.x, r8.w, l(0.500000) +mad r5.z, -r5.z, r7.w, r8.w +mad_sat r5.z, r10.w, r5.z, r5.w +mul r16.xyz, r5.zzzz, r16.xyzx +mad r5.z, r13.w, r10.w, r18.y +mul r5.z, r23.x, r5.z +mul r16.xyz, r5.zzzz, r16.xyzx +mul_sat r5.z, r22.y, l(5.00000048) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mul r16.xyz, r5.zzzz, r16.xyzx +mul r16.xyz, r16.wwww, r16.xyzx +add r5.z, r12.w, l(-0.100000) +mul_sat r5.z, r5.z, l(-16.666666) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mad r5.z, r5.z, r10.w, r18.y +mul r16.xyz, r5.zzzz, r16.xyzx +max r17.xyz, r12.xyzx, l(0.150000, 0.150000, 0.150000, 0.000000) +mul r16.xyz, r16.xyzx, r17.xyzx +mad r16.xyz, r24.yzwy, r20.xyzx, r16.xyzx +add r15.xzw, r15.xxzw, r16.xxyz +utof r5.zw, r11.xxxy +mul r16.xy, r5.zwzz, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r16.xy, r16.xyxx +mad r7.w, r16.y, cb2[1].y, r16.x +mul r7.w, r7.w, l(8.000000) +ftoi r7.w, r7.w +mad r8.w, -cb0[85].y, cb2[2].w, v0.w +round_ni r8.w, r8.w +add r10.w, l(-1.000000), cb2[1].w +max r12.w, r8.w, l(0.000000) +min r10.w, r10.w, r12.w +mul r12.w, r10.w, l(8.000000) +ftoi r12.w, r12.w +mul r8.xyz, r8.xyzx, cb5[6].xyzx +mul r8.xyz, r8.xyzx, cb5[1].wwww +mad r8.xyz, r8.xyzx, r15.yyyy, r15.xzwx +dp3 r13.w, -r2.xyzx, r3.xywx +add r13.w, r13.w, r13.w +mad r15.xzw, r3.xxyw, -r13.wwww, -r2.xxyz +max r2.w, r2.w, l(0.001000) +log r2.w, r2.w +mad r2.w, r2.w, l(1.200000), l(5.000000) +sample_l_indexable(texturecube)(float,float,float,float) r15.xzw, r15.xzwx, t16.xwyz, s0, r2.w +add r2.w, -r9.w, l(1.000000) +div r2.w, r2.w, r9.w +mul r16.xyz, r2.wwww, r14.xyzx +mad r16.xyz, r16.xyzx, r23.yzwy, r23.yzwy +mul r15.xzw, r15.xxzw, r16.xxyz +mul r2.w, r25.z, cb0[186].w +mul r2.w, r11.z, r2.w +mul r15.xzw, r2.wwww, r15.xxzw +mad r8.xyz, r15.xzwx, r13.xyzx, r8.xyzx +ge r2.w, r10.w, r8.w +iadd r8.w, r12.w, cb0[110].y +mad r9.w, r18.y, l(-0.250000), l(0.750000) +mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) +add r6.w, -r5.y, l(0.010000) +ge r5.x, r5.x, l(0.500000) +and r5.x, r5.x, l(0x3f800000) +mov r13.w, l(1.000000) +mov r15.xzw, r8.xxyz +mov r10.w, l(0) +loop + ilt r11.z, l(7), r10.w + breakc_nz r11.z + iadd r11.z, r7.w, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.z, r11.z, l(0), t0.xxxx + iadd r12.w, r8.w, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx + and r11.z, r11.z, r12.w + and r11.z, r2.w, r11.z + ishl r12.w, r10.w, l(5) + mov r16.xyz, r15.xzwx + mov r14.w, r11.z + loop + breakc_z r14.w + firstbit_lo r16.w, r14.w + ishl r17.x, l(1), r16.w + xor r17.x, r14.w, r17.x + iadd r16.w, r12.w, r16.w + bfi r18.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) + ftou r17.y, cb3[r18.y + 6].w + ieq r17.y, r17.y, l(1) + if_nz r17.y + add r13.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx + and r19.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r18.y + 6].xzyx + and r20.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r18.z + 6].yxzy + ushr r22.yzw, cb3[r18.y + 6].xxzy, l(0, 16, 16, 16) + ushr r23.xyz, cb3[r18.z + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r19.xyz, r19.xyzx + f16tof32 r20.xyz, r20.xyzx + f16tof32 r25.xyz, r22.yzwy + f16tof32 r23.xyw, r23.yxyz + mov r26.xz, r19.xxzx + mov r26.yw, r25.xxxz + dp4 r17.y, r13.xyzw, r26.xyzw + mov r25.x, r19.y + mov r25.z, r20.y + mov r25.w, r23.x + dp4 r17.z, r13.xyzw, r25.xyzw + mov r23.xz, r20.xxzx + dp4 r13.x, r13.xyzw, r23.xyzw + max r13.y, |r17.z|, |r17.y| + max r13.x, |r13.x|, r13.y + mad r13.y, cb3[r18.w + 6].x, l(0.500000), l(0.500000) + add r13.x, -r13.y, r13.x + mad r13.y, -cb3[r18.w + 6].x, l(0.500000), l(0.500000) + div_sat r13.x, r13.x, r13.y + add r13.x, -r13.x, l(1.000000) + mul r13.x, r13.x, r13.x + else + mov r13.x, l(1.000000) + endif + lt r13.y, r13.x, l(0.001000) + if_nz r13.y + mov r14.w, r17.x + continue + endif + ishl r13.y, r16.w, l(3) + lt r13.z, cb3[r13.y + 6].w, l(1.500000) + if_nz r13.z + bfi r13.z, l(29), l(3), r16.w, l(3) + ieq r17.y, l(16), cb3[r13.z + 6].w + add r17.z, cb0[198].z, cb3[r13.z + 6].z + lt r17.z, r17.z, l(0.500000) + or r17.y, r17.z, r17.y + if_z r17.y + bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) + ftou r16.w, cb3[r13.y + 6].w + and r16.w, r16.w, l(1) + ieq r18.y, r16.w, l(0) + not r18.y, r18.y + lt r19.x, l(0.000000), cb3[r17.y + 6].z + and r18.y, r18.y, r19.x + ieq r19.x, l(4), cb3[r13.z + 6].w + movc r19.y, r16.w, l(0), l(1.000000) + mad r19.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) + add r20.z, r19.z, -|cb3[r17.y + 6].x| + add r20.x, -r20.z, cb3[r17.y + 6].y + add r19.z, -|r20.z|, l(1.000000) + add r19.z, -|r20.x|, r19.z + max r19.z, r19.z, l(0.000488281250) + ge r19.w, cb3[r17.y + 6].x, l(0.000000) + movc r20.y, r19.w, r19.z, -r19.z + dp3 r19.z, r20.xyzx, r20.xyzx + rsq r19.z, r19.z + mul r20.xyz, r19.zzzz, r20.xyzx + add r19.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y + max r19.z, r19.z, l(0.100000) + and r19.w, r19.x, l(0x3f800000) + add r19.z, r19.z, -cb3[r18.z + 6].w + mad r18.z, r19.w, r19.z, cb3[r18.z + 6].w + add r22.yzw, -v2.xxyz, cb3[r18.x + 6].xxyz + dp3 r19.z, r22.zwyz, -r20.xyzx + lt r19.w, l(0.500000), cb3[r17.z + 6].z + and r19.w, r19.w, r19.x + and r19.w, r19.w, l(0x3f800000) + mul r19.w, r19.y, r19.w + mad r23.xyz, -r20.zxyz, r19.zzzz, -r22.yzwy + mad r22.yzw, r19.wwww, r23.xxyz, r22.yyzw + dp3 r19.z, r22.yzwy, r22.yzwy + rsq r19.w, r19.z + mul r23.xyz, r19.wwww, r22.yzwy + if_nz r18.y + mul r24.yzw, r20.zzxy, cb3[r17.y + 6].zzzz + mad r25.xyz, -r24.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000), r22.yzwy + mad r24.yzw, r24.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), r22.yyzw + dp3 r19.w, r25.xyzx, r25.xyzx + sqrt r19.w, r19.w + dp3 r20.w, r24.yzwy, r24.yzwy + sqrt r20.w, r20.w + mul r26.xyz, r20.xyzx, r23.xyzx + mad r26.xyz, r20.zxyz, r23.yzxy, -r26.xyzx + mul r27.xyz, r20.xyzx, r26.xyzx + mad r26.xyz, r26.zxyz, r20.yzxy, -r27.xyzx + dp3 r21.y, r26.xyzx, r26.xyzx + rsq r21.y, r21.y + mul r23.xyz, r21.yyyy, r26.xyzx + dp3 r21.y, r25.xyzx, r24.yzwy + mad r21.y, r19.w, r20.w, r21.y + mad r21.y, r21.y, l(0.500000), l(1.000000) + div r21.y, l(1.000000, 1.000000, 1.000000, 1.000000), r21.y + dp3 r23.w, r23.xyzx, r25.xyzx + div r19.w, r23.w, r19.w + dp3 r23.w, r23.xyzx, r24.yzwy + div r20.w, r23.w, r20.w + add r19.w, r19.w, r20.w + mul_sat r19.w, r19.w, l(0.500000) + mul r19.w, r19.w, r21.y + else + mov r19.w, l(1.000000) + endif + lt r20.w, r18.z, l(0.000000) + if_nz r20.w + mul r20.w, cb3[r18.x + 6].w, cb3[r18.x + 6].w + mul r20.w, r19.z, r20.w + mad r20.w, -r20.w, r20.w, l(1.000000) + max r20.w, r20.w, l(0.000000) + add r19.z, r19.z, l(1.000000) + div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z + and r21.y, r18.y, l(0x3f800000) + add r23.w, -r19.z, r19.w + mad r19.z, r21.y, r23.w, r19.z + mul r20.w, r20.w, r20.w + mul r19.z, r19.z, r20.w + else + mul r24.yzw, r22.yyzw, cb3[r18.x + 6].wwww + dp3 r20.w, r24.yzwy, r24.yzwy + min r20.w, r20.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + log r20.w, r20.w + mul r18.z, r18.z, r20.w + exp r18.z, r18.z + mul r19.z, r18.z, r19.w + endif + dp3 r18.z, r23.yzxy, -r20.xyzx + add r18.z, r18.z, -cb3[r17.y + 6].z + mul_sat r18.z, r18.z, cb3[r17.y + 6].w + mad r18.z, r18.z, r18.z, l(-1.000000) + mad r18.z, r19.y, r18.z, l(1.000000) + mul r18.z, r18.z, r19.z + ftoi r19.y, cb3[r18.w + 6].w + not r18.y, r18.y + ige r19.z, r19.y, l(0) + and r18.y, r18.y, r19.z + if_nz r18.y + if_z r16.w + ishl r18.y, r19.y, l(2) + mul r20.xyz, v2.yyyy, cb6[r18.y + 33].xywx + mad r20.xyz, cb6[r18.y + 32].xywx, v2.xxxx, r20.xyzx + mad r20.xyz, cb6[r18.y + 34].xywx, v2.zzzz, r20.xyzx + add r20.xyz, r20.xyzx, cb6[r18.y + 35].xywx + div_sat r19.zw, r20.xxxy, r20.zzzz + mad r19.zw, r19.zzzw, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy + else + ishl r18.y, r19.y, l(2) + dp3 r20.x, -r22.yzwy, cb6[r18.y + 32].xyzx + dp3 r20.y, -r22.yzwy, cb6[r18.y + 33].xyzx + dp3 r20.z, -r22.yzwy, cb6[r18.y + 34].xyzx + lt r18.y, |r20.x|, |r20.y| + and r18.y, r18.y, l(1) + dp2 r20.w, |r20.xyxx|, icb[r18.y + 0].xyxx + lt r20.w, r20.w, |r20.z| + movc r18.y, r20.w, l(2), r18.y + dp3 r20.w, r20.xyzx, icb[r18.y + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r18.y, l(31), l(1), r18.y, r20.w + ushr r20.w, r18.y, l(1) + dp3 r20.w, r20.xyzx, icb[r20.w + 0].xyzx + div r21.y, l(0.000244140625), cb6[r19.y + 0].w + add r21.y, -r21.y, l(0.500000) + utof r22.y, r18.y + ult r22.z, r18.y, l(2) + and r22.z, r22.z, l(2) + dp2 r20.x, r20.xzxx, icb[r22.z + 0].xzxx + mul r20.x, r20.x, icb[r18.y + 4].z + div r20.x, r20.x, |r20.w| + mad r20.x, r20.x, r21.y, r22.y + add r20.x, r20.x, l(0.500000) + mul_sat r25.x, r20.x, l(0.166666672) + iadd r20.x, l(-1), icb[r18.y + 4].y + dp2 r20.x, r20.yzyy, icb[r20.x + 0].xyxx + mul r18.y, r20.x, icb[r18.y + 4].w + div r18.y, r18.y, |r20.w| + mad_sat r25.y, -r18.y, r21.y, l(0.500000) + mad r19.zw, r25.xxxy, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r19.zwzz, t17.yxzw, s0, l(0.000000) + mul r18.z, r18.y, r18.z + endif + mul r13.x, r13.x, r18.z + lt r18.y, l(0.000100), r13.x + if_nz r18.y + if_nz r19.x + add r18.y, l(1.000000), -cb3[r17.z + 6].w + dp3 r18.z, r10.xyzx, r23.xyzx + add_sat r18.z, r18.z, l(0.500000) + mad r19.y, r18.z, l(-2.000000), l(3.000000) + mul r18.z, r18.z, r18.z + mul r18.z, r18.z, r19.y + mad r18.y, r18.z, cb3[r17.z + 6].w, r18.y + mul r18.y, r18.y, cb3[r17.z + 6].x + mul r18.y, r13.x, r18.y + add r19.yzw, -r16.xxyz, cb3[r13.y + 6].xxyz + mad r19.yzw, r18.yyyy, r19.yyzw, r16.xxyz + endif + if_z r19.x + dp3 r18.y, r7.xyzx, r23.xyzx + mov_sat r18.z, r18.y + if_nz cb3[r13.z + 6].w + if_z r16.w + ftoi r16.w, cb3[r13.z + 6].x + else + add r20.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx + lt r22.yzw, |r20.yyzz|, |r20.xxxy| + and r20.w, r22.z, r22.y + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + ushr r21.y, cb3[r17.y + 6].w, l(24) + ubfe r22.yz, l(0, 8, 8, 0), l(0, 16, 8, 0), cb3[r17.y + 6].wwww + movc r20.x, r20.x, r21.y, r22.y + and r17.y, l(255), cb3[r17.y + 6].w + movc r17.y, r20.y, r22.z, r17.y + ubfe r20.y, l(8), l(8), cb3[r13.z + 6].x + and r21.y, l(255), cb3[r13.z + 6].x + movc r20.y, r20.z, r20.y, r21.y + movc r17.y, r22.w, r17.y, r20.y + movc r17.y, r20.w, r20.x, r17.y + ilt r20.x, r17.y, l(80) + movc r16.w, r20.x, r17.y, l(-1) + endif + ige r17.y, r16.w, l(0) + if_nz r17.y + add r20.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx + ishl r17.y, r16.w, l(2) + dp3 r18.x, r20.xyzx, r20.xyzx + max r18.x, r18.x, l(1.175494351E-38) + rsq r18.x, r18.x + mul r20.xyz, r18.xxxx, r20.xyzx + mad r20.xyz, -r20.xyzx, cb4[r16.w + 288].xxxx, v2.xyzx + mul r18.x, l(5.000000), cb4[r16.w + 288].y + mad r20.xyz, r10.xyzx, r18.xxxx, r20.xyzx + mul r25.xyzw, r20.yyyy, cb4[r17.y + 65].xyzw + mad r25.xyzw, cb4[r17.y + 64].xyzw, r20.xxxx, r25.xyzw + mad r20.xyzw, cb4[r17.y + 66].xyzw, r20.zzzz, r25.xyzw + add r20.xyzw, r20.xyzw, cb4[r17.y + 67].xyzw + div r20.xyz, r20.xyzx, r20.wwww + ge r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xxyz + ge r24.yzw, r20.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000) + add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz + mad r20.xy, r20.xyxx, r25.xyxx, cb4[r16.w + 344].xyxx + mad r25.xy, r20.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r20.xy, r20.xyxx, cb4[400].zwzz, -r25.xyxx + add r26.xyzw, r20.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r20.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r20.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r20.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r20.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r20.xyxx + mul r30.xy, r20.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r20.xy, -r26.xzxx, r26.xzxx, r25.zwzz + add r20.xy, r20.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r20.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r20.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r30.z, r31.x + mov r30.w, r20.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r20.y + mov r28.z, r29.y + mov r28.w, r27.z + add r20.xyw, r28.zyzw, r31.zyzw + div r27.xyz, r29.xzwx, r26.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r20.xywx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r27.w, r28.x + mad r29.xyzw, r25.xyxy, cb4[400].xyxy, r27.ywxw + mad r25.zw, r25.xxxy, cb4[400].xxxy, r27.zzzw + mov r28.w, r27.y + mov r27.yw, r28.yyyz + mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r27.xyzy + mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz + mad r27.xyzw, r25.xyxy, cb4[400].xyxy, r27.xwzw + mul r31.xyzw, r20.xxxy, r26.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r29.xyxx, t2.xxxx, s2, r20.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r29.zwzz, t2.xxxx, s2, r20.z + mul r18.x, r18.x, r31.y + mad r17.y, r31.x, r17.y, r18.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r25.zwzz, t2.xxxx, s2, r20.z + mad r17.y, r31.z, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.xyxx, t2.xxxx, s2, r20.z + mad r17.y, r31.w, r18.x, r17.y + mul r25.xyzw, r20.yyww, r26.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.xyxx, t2.xxxx, s2, r20.z + mad r17.y, r25.x, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.zwzz, t2.xxxx, s2, r20.z + mad r17.y, r25.y, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.zwzz, t2.xxxx, s2, r20.z + mad r17.y, r25.z, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r27.xyxx, t2.xxxx, s2, r20.z + mad r17.y, r25.w, r18.x, r17.y + or r22.yzw, r22.yyzw, r24.yyzw + or r18.x, r22.z, r22.y + or r18.x, r22.w, r18.x + and r20.x, r20.z, l(0x7fffffff) + ult r20.x, l(0x7f800000), r20.x + or r18.x, r18.x, r20.x + mul r20.x, r20.w, r26.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.y, r27.zwzz, t2.xxxx, s2, r20.z + mad r17.y, r20.x, r20.y, r17.y + add r17.y, r17.y, l(-1.000000) + mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) + movc r16.w, r18.x, l(1.000000), r16.w + else + dp3 r17.y, r9.xyzx, r23.xyzx + add_sat r16.w, r17.y, l(1.000000) + endif + else + mov r16.w, l(1.000000) + endif + if_z cb3[r13.z + 6].w + mul r20.xyz, r13.xxxx, cb3[r13.y + 6].xyzx + add r17.y, l(1.000000), -cb3[r17.z + 6].y + max r18.x, r20.y, r20.x + max r18.x, r20.z, r18.x + mul r18.x, r9.w, r18.x + max r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + mad r17.y, r18.x, cb3[r17.z + 6].y, r17.y + mul r20.xyz, r17.yyyy, cb3[r13.y + 6].xyzx + mul r17.y, l(0.250000), cb3[r17.z + 6].x + add_sat r18.x, r18.y, l(0.500000) + mad r20.w, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) + mad r17.y, r18.x, r20.w, r17.y + mul r20.xyz, r17.yyyy, r20.xyzx + mov r22.yzw, r21.xxzw + mov r24.yzw, r21.xxzw + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r20.w, l(3), cb3[r13.z + 6].w + if_nz r20.w + mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) + add r20.w, -r25.x, r25.y + add r21.y, r22.x, -r25.x + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r20.w + mul_sat r20.w, r20.w, r21.y + mad r21.y, r20.w, l(-2.000000), l(3.000000) + mul r20.w, r20.w, r20.w + mul r20.w, r20.w, r21.y + mul r20.w, r16.w, r20.w + mul r13.x, r13.x, r20.w + mul r25.xyz, r23.zxyz, cb0[6].xyzx + mad r25.xyz, cb0[6].zxyz, r23.xyzx, -r25.xyzx + mul r26.xyz, r25.xyzx, cb0[6].zxyz + mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx + dp3 r20.w, r25.xyzx, r25.xyzx + rsq r20.w, r20.w + mul r25.xyz, r20.wwww, r25.xyzx + dp3_sat r18.z, r7.xyzx, -r25.xyzx + mad r22.yzw, cb3[r17.z + 6].yyyy, r4.xxyz, l(0.000000, 0.500000, 0.500000, 0.500000) + mov r24.yzw, l(0,0,0,0) + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r20.w, l(1), cb3[r13.z + 6].w + if_nz r20.w + add r18.y, r18.y, cb3[r17.z + 6].x + max_sat r18.y, r18.y, l(-1.000000) + mul r18.z, r16.w, r18.y + mul r24.yzw, r6.xxyz, cb3[r17.z + 6].yyyy + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r16.w, l(2), cb3[r13.z + 6].w + if_nz r16.w + add r18.y, l(0.050000), cb3[r17.z + 6].x + add r18.y, r3.z, -r18.y + mul_sat r18.y, r18.y, l(-10.000000) + mad r21.y, r18.y, l(-2.000000), l(3.000000) + mul r18.y, r18.y, r18.y + mul r18.y, r18.y, r21.y + add r21.y, l(1.000000), -cb3[r17.z + 6].z + mad r21.y, r5.x, cb3[r17.z + 6].z, r21.y + mul r17.y, r18.y, r21.y + else + mov r17.y, l(1.000000) + endif + and r18.x, r16.w, cb3[r17.z + 6].y + mov r24.yzw, l(0,0,0,0) + endif + and r22.yzw, r12.xxyz, r20.wwww + endif + mov r20.xyz, cb3[r13.y + 6].xyzx + endif + ine r13.y, l(3), cb3[r13.z + 6].w + if_nz r13.y + mad r13.y, r18.x, r6.w, r5.y + mad r23.xyz, r0.xyzx, r1.wwww, r23.xyzx + dp3 r13.z, r23.xyzx, r23.xyzx + rsq r13.z, r13.z + mul r23.xyz, r13.zzzz, r23.xyzx + dp3 r13.z, r3.xywx, r23.xyzx + mul r16.w, r13.y, r13.y + mad r17.z, r13.z, r16.w, -r13.z + mad r13.z, r17.z, r13.z, l(1.000000) + mul r13.z, r13.z, r13.z + ne r17.z, r13.z, r16.w + div r13.z, r16.w, r13.z + movc r13.z, r17.z, r13.z, l(1.000000) + mad r13.y, r24.x, l(2.000000), r13.y + add r13.y, r13.y, l(0.000100) + div r13.y, l(0.500000), r13.y + mad r13.y, r13.z, r13.y, l(-0.0000610351562) + max r13.y, r13.y, l(0.000000) + min r13.y, r13.y, l(20.000000) + mul r23.xyz, r13.yyyy, r14.xyzx + mul r23.xyz, r17.yyyy, r23.xyzx + mul r18.xyw, r23.xyxz, cb3[r18.w + 6].zzzz + else + mov r18.xyw, l(0,0,0,0) + endif + mul r13.xyz, r13.xxxx, r20.xyzx + add r20.xyz, r22.yzwy, -r24.yzwy + mad r20.xyz, r18.zzzz, r20.xyzx, r24.yzwy + mul r20.xyz, r13.xyzx, r20.xyzx + mul r13.xyz, r18.xywx, r13.xyzx + mul r13.xyz, r18.zzzz, r13.xyzx + mad r13.xyz, r20.xyzx, r15.yyyy, r13.xyzx + add r16.xyz, r13.xyzx, r16.xyzx + endif + else + mov r19.x, l(0) + endif + movc r16.xyz, r19.xxxx, r19.yzwy, r16.xyzx + endif + endif + mov r14.w, r17.x + endloop + mov r15.xzw, r16.xxyz + iadd r10.w, r10.w, l(1) +endloop +lt r0.x, l(0.500000), cb5[3].x +if_nz r0.x + dp3 r0.x, r15.xzwx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r3.xyz, -r0.xxxx, r15.xzwx + mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx + add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) + mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r3.xyz, r0.xyzx, cb5[3].yyyy + mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx + mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx + add r2.w, l(1.000000), -cb5[4].x + mov_sat r17.w, r17.w + add r3.x, -r17.w, l(1.000000) + add r3.y, -r2.w, l(1.000000) + add r2.w, -r2.w, r3.x + div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y + mul_sat r2.w, r2.w, r3.x + mad r3.x, r2.w, l(-2.000000), l(3.000000) + mul r2.w, r2.w, r2.w + mul r2.w, r2.w, r3.x + mul r3.xyz, r2.wwww, cb5[8].xyzx + mad r15.xzw, r3.xxyz, cb5[4].yyyy, r0.xxyz +endif +div r0.xyz, r15.xzwx, cb0[109].xxxx +eq r2.w, l(1.000000), cb5[2].x +movc o0.w, r2.w, r4.w, l(1.000000) +lt r2.w, cb0[198].w, l(0.500000) +if_nz r2.w + mul r0.w, r0.w, r1.w + mad r1.w, v2.y, cb0[156].w, cb0[157].w + max r1.w, r1.w, l(0.010000) + mad r2.w, r0.w, cb0[154].w, -cb0[153].w + max r2.w, r2.w, l(0.000000) + mul r3.x, r1.w, l(-1.442695) + exp r3.x, r3.x + add r3.x, -r3.x, l(1.000000) + div r1.w, r3.x, r1.w + mad r3.x, v2.y, cb0[156].w, cb0[158].w + mul r3.x, r3.x, l(1.442695) + exp r3.x, r3.x + mul r1.w, r1.w, r3.x + mul r1.w, r1.w, -r2.w + mul r3.xyz, r1.wwww, cb0[155].xyzx + mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) + exp r3.xyz, r3.xyzx + dp3 r1.w, -r2.xyzx, cb0[154].xyzx + mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) + dp2 r3.w, r1.wwww, cb0[155].wwww + add r2.w, r2.w, -r3.w + lt r3.w, l(0.000000), cb0[163].z + if_nz r3.w + and r11.w, l(7), cb0[108].w + imad r4.xyz, r11.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.w, r4.y, r4.z, r4.x + imad r4.x, r4.z, r3.w, r4.y + imad r4.y, r3.w, r4.x, r4.z + imad r5.x, r4.x, r4.y, r3.w + dp3 r1.x, -r2.xyzx, -r1.xyzx + add r1.y, v2.y, -cb0[44].y + lt r1.z, l(5.960464478E-08), r1.x + div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x + and r1.x, r1.x, r1.z + mul r1.x, r1.x, cb0[163].w + div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r2.x, r1.z, r1.x + mad r2.y, r2.x, r1.y, cb0[44].y + mad r1.y, -r2.x, r1.y, r1.y + mul r2.x, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r2.z, r2.y, -cb0[159].x + mul r2.z, r2.z, cb0[159].z + max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r2.z, -r2.z + mul r2.z, r2.z, cb0[159].y + lt r3.w, l(5.960464478E-08), |r2.x| + exp r4.z, -r2.x + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r2.x + mad r2.x, -r2.x, l(0.240226507), l(0.693147182) + movc r2.x, r3.w, r4.z, r2.x + add r2.y, r2.y, -cb0[162].z + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[162].y + lt r3.w, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r3.w, r4.z, r1.y + mul r1.y, r1.y, r2.y + mad r1.y, r2.z, r2.x, r1.y + mad r1.x, -r1.x, r1.z, l(1.000000) + mul r1.x, r0.w, r1.x + mul r1.x, r1.x, r1.y + exp r1.x, -r1.x + min r1.x, r1.x, l(1.000000) + max r1.x, r1.x, cb0[161].w + mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r1.x, r1.y, r1.x + add r1.x, r1.z, r1.x + min r1.x, r1.x, l(1.000000) + imad r5.y, r4.y, r5.x, r4.x + ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) + utof r1.yz, r1.yyzy + mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz + mul r2.xy, r1.yzyy, cb0[165].xyxx + mad r1.y, v0.w, cb0[164].x, cb0[164].y + log r1.y, r1.y + mul r1.y, r1.y, cb0[164].z + div r2.z, r1.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t18.xyzw, s0, l(0.000000) + add r1.y, v0.w, -cb0[166].z + mul_sat r1.y, r1.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.xyz, r1.yyyy, cb0[161].xyzx + mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx + mul r1.x, r1.x, r4.w + else + add r1.y, v2.y, -cb0[44].y + mul r1.z, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r1.z| + exp r4.y, -r1.z + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r1.z + mad r1.z, -r1.z, l(0.240226507), l(0.693147182) + movc r1.z, r4.x, r4.y, r1.z + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r1.z, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r1.x, r0.w, l(1.000000) + add r0.w, -r1.x, l(1.000000) + mul r2.xyz, r0.wwww, cb0[161].xyzx + endif + mul r4.xyz, r1.xxxx, r3.xyzx + mad r0.w, r1.w, r1.w, l(1.000000) + mul r0.w, r0.w, l(0.0596831031) + mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz + mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) + mul r3.w, r2.w, l(12.566371) + sqrt r2.w, r2.w + mul r2.w, r2.w, r3.w + max r2.w, r2.w, l(0.001000) + div r0.w, r0.w, r2.w + mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw + mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) + add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r1.yzw, r1.yyzw, r3.xxyz + mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r0.xyz = scene color, r4.xyz = transmittance, r1.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r1.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad o0.xyz, r0.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx +endif +// === End Fog Modification === +else + mov o0.xyz, r0.xyzx +endif +mov o1.z, l(1.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0_original_backup.asm new file mode 100644 index 000000000..72b3d4894 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0_original_backup.asm @@ -0,0 +1,1847 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 16:59:16 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy w +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 xyz 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyz 5 NONE float xyz +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 xyz 8 NONE float xyz +// TEXCOORD 8 x 9 NONE uint x +// SV_IsFrontFace 0 x 10 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[216], immediateIndexed +dcl_constantbuffer CB1[4093], dynamicIndexed +dcl_constantbuffer CB2[3], immediateIndexed +dcl_constantbuffer CB3[2054], dynamicIndexed +dcl_constantbuffer CB4[401], dynamicIndexed +dcl_constantbuffer CB5[9], immediateIndexed +dcl_constantbuffer CB6[160], dynamicIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_comparison +dcl_sampler s3, mode_default +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_sampler s6, mode_default +dcl_resource_structured t0, 4 +dcl_resource_structured t1, 16 +dcl_resource_texture2d (float,float,float,float) t2 +dcl_resource_texture2d (float,float,float,float) t3 +dcl_resource_texture3d (float,float,float,float) t4 +dcl_resource_texture3d (float,float,float,float) t5 +dcl_resource_texture3d (float,float,float,float) t6 +dcl_resource_texture3d (float,float,float,float) t7 +dcl_resource_texture3d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texturecube (float,float,float,float) t16 +dcl_resource_texture2d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_input_ps_siv linear noperspective v0.xyw, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps linear v8.xyz +dcl_input_ps constant v9.x +dcl_input_ps_sgv constant v10.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 32 +add r0.xyz, -v2.xyzx, cb0[44].xyzx +mov r1.x, cb0[0].z +mov r1.y, cb0[1].z +mov r1.z, cb0[2].z +add r2.xyz, -r0.xyzx, r1.xyzx +mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx +dp3 r0.w, r0.xyzx, r0.xyzx +max r1.w, r0.w, l(9.999999939E-09) +rsq r1.w, r1.w +mul r2.xyz, r0.xyzx, r1.wwww +ishl r2.w, v9.x, l(4) +and r3.x, l(16), cb1[r2.w + 4].w +if_nz r3.x + iadd r3.x, l(2), cb1[r2.w + 5].x + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx + ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx +else + mov r3.xy, cb1[r2.w + 3].zxzz +endif +sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t12.xyzw, s3, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t13.xyzw, s4, cb0[108].x +add r3.z, -r5.w, l(1.000000) +mul r4.xyzw, r4.xyzw, cb5[5].xyzw +mul r6.xyz, r4.xyzx, cb5[4].zzzz +dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww +mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t14.xywz, s5, cb0[108].x +mul r7.x, r7.x, r7.z +mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r3.w, r7.xyxx, r7.xyxx +min r3.w, r3.w, l(1.000000) +add r3.w, -r3.w, l(1.000000) +sqrt r3.w, r3.w +max r3.w, r3.w, l(1.000000017E-16) +mul r7.xy, r7.xyxx, cb5[0].wwww +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, v1.xyxx, t15.xyzw, s6, cb0[108].x +add r9.xz, -r3.yyxy, v2.xxzx +mov r9.y, l(0.0000610351562) +dp3 r3.x, r9.xyzx, r9.xyzx +rsq r3.x, r3.x +mul r9.xyz, r3.xxxx, r9.xyzx +mul r10.xyz, v3.zxyz, v4.yzxy +mad r10.xyz, v3.yzxy, v4.zxyz, -r10.xyzx +mul r10.xyz, r10.xyzx, v4.wwww +mul r7.yzw, r7.yyyy, r10.xxyz +mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy +mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz +mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) +movc r6.w, v10.x, l(1.000000), r6.w +dp3 r7.x, r3.xywx, r3.xywx +max r7.x, r7.x, l(1.175494351E-38) +rsq r7.x, r7.x +mul r3.xyw, r3.xyxw, r7.xxxx +mul r7.xyz, r6.wwww, r3.xywx +dp3 r8.w, v3.xyzx, v3.xyzx +rsq r8.w, r8.w +mul r10.xyz, r8.wwww, v3.xyzx +mul r10.xyz, r6.wwww, r10.xyzx +ftou r11.xy, v0.xyxx +add r8.w, l(1.000000), -cb0[111].x +mad r8.w, cb0[198].w, r8.w, cb0[111].x +mul r8.w, r8.w, cb0[109].x +lt r9.w, cb0[187].y, l(0.500000) +if_nz r9.w + mad r12.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx + add r12.xyz, -r12.xyzx, v2.xzyx + max r9.w, |r12.y|, |r12.x| + add r9.w, r9.w, l(-464.000000) + mul_sat r9.w, r9.w, l(0.031250) + add r10.w, |r12.z|, l(-208.000000) + mul_sat r10.w, r10.w, l(0.031250) + max r9.w, r9.w, r10.w + ne r10.w, l(0.000000), cb0[210].w + lt r12.x, r9.w, l(1.000000) + and r10.w, r10.w, r12.x + if_nz r10.w + mad r12.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r12.xyz, -r12.xyzx, v2.xzyx + max r10.w, |r12.y|, |r12.x| + add r10.w, r10.w, l(-29.000000) + mul_sat r10.w, r10.w, l(0.500000) + add r12.x, |r12.z|, l(-13.000000) + mul_sat r12.x, r12.x, l(0.500000) + max r10.w, r10.w, r12.x + lt r12.x, r10.w, l(1.000000) + if_nz r12.x + mad r12.xyz, v2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r13.xyz, r12.xyzx, cb0[211].xyzx + round_ni r13.xyz, r13.xyzx + mad r12.xyz, r12.xyzx, cb0[211].xyzx, -r13.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r13.xyw, r12.xyzx, t4.yzwx, s1, l(0.000000) + add r14.x, -r10.w, l(1.000000) + mul r14.y, l(0.500000), cb0[211].y + mad r14.z, -cb0[211].y, l(0.500000), l(1.000000) + max r12.y, r12.y, r14.y + min r12.y, r14.z, r12.y + mul r12.w, r12.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r12.xwzx, t5.xyzw, s0, l(0.000000) + mad r12.y, r15.w, r14.x, r9.w + add r14.yzw, r12.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.yzw, r14.yzwy, t5.wxyz, s0, l(0.000000) + mad r14.yzw, r14.yyzw, l(0.000000, 4.000000, 4.000000, 4.000000), l(0.000000, -2.000000, -2.000000, -2.000000) + mul r16.xyz, r13.yyyy, r14.yzwy + mov r16.w, r13.y + mul r16.xyzw, r14.xxxx, r16.xyzw + add r12.xzw, r12.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xzw, r12.xzwx, t5.xwyz, s0, l(0.000000) + mad r12.xzw, r12.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r17.xyz, r13.xxxx, r12.xzwx + mov r17.w, r13.x + mul r17.xyzw, r14.xxxx, r17.xyzw + mad r12.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r13.xyz, r13.wwww, r12.xzwx + mul r13.xyzw, r14.xxxx, r13.xyzw + else + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r12.y, r9.w + endif + mad r12.xzw, cb0[6].xxzy, -cb0[212].zzzz, cb0[210].xxzy + add r12.xzw, -r12.xxzw, v2.xxzy + max r12.x, |r12.z|, |r12.x| + add r12.x, r12.x, l(-116.000000) + add r12.z, |r12.w|, l(-52.000000) + mul_sat r12.xz, r12.xxzx, l(0.125000, 0.000000, 0.125000, 0.000000) + max r12.x, r12.z, r12.x + lt r12.z, r12.x, l(1.000000) + if_nz r12.z + mad r14.xyz, v2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r15.xyw, r14.xyzx, t6.yzwx, s1, l(0.000000) + add r12.z, -r12.x, l(1.000000) + mul r10.w, r10.w, r12.z + mul r12.z, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r12.z, r12.z, r14.y + min r12.z, r12.w, r12.z + mul r14.w, r12.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r14.xwzx, t7.xyzw, s0, l(0.000000) + mad r12.y, r18.w, r10.w, r12.y + add r19.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t7.xyzw, s0, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r15.yyyy, r19.xyzx + mov r19.w, r15.y + mad r16.xyzw, r19.xyzw, r10.wwww, r16.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t7.xyzw, s0, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r15.xxxx, r14.xyzx + mov r14.w, r15.x + mad r17.xyzw, r14.xyzw, r10.wwww, r17.xyzw + mad r14.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r15.wwww, r14.xyzx + mad r13.xyzw, r15.xyzw, r10.wwww, r13.xyzw + endif + lt r10.w, l(0.000000), r12.x + if_nz r10.w + mad r14.xyz, v2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + mad r15.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r14.xyz, r18.xyzx, r14.xyzx + min r14.xyz, r15.xyzx, r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r14.xyzx, t8.yzwx, s1, l(0.000000) + add r10.w, -r9.w, l(1.000000) + mul r10.w, r10.w, r12.x + max r12.x, r18.y, r14.y + min r12.x, r15.y, r12.x + mul r14.w, r12.x, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r14.xwzx, t9.xyzw, s0, l(0.000000) + add r12.xzw, r14.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xzw, r12.xzwx, t9.xwyz, s0, l(0.000000) + mad r12.xzw, r12.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r18.xyz, r19.yyyy, r12.xzwx + mov r18.w, r19.y + mad r16.xyzw, r18.xyzw, r10.wwww, r16.xyzw + add r12.xzw, r14.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xzw, r12.xzwx, t9.xwyz, s0, l(0.000000) + mad r12.xzw, r12.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r14.xyz, r19.xxxx, r12.xzwx + mov r14.w, r19.x + mad r17.xyzw, r14.xyzw, r10.wwww, r17.xyzw + mad r12.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) + mul r19.xyz, r19.wwww, r12.xzwx + mad r13.xyzw, r19.xyzw, r10.wwww, r13.xyzw + mad r12.y, r15.w, r10.w, r12.y + endif + mad_sat r10.w, r12.y, l(2.000000), l(-1.000000) + add r12.x, -r9.w, r10.w + add r9.w, r9.w, r10.w + mul r12.y, r9.w, l(0.500000) + else + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r12.xy, l(0,1.000000,0,0) + endif + mul r14.xyzw, r12.yyyx, cb0[213].xyzw + mad r14.y, r14.w, l(0.500000), r14.y + mul r12.zw, r12.yyyx, cb0[213].wwwy + mad r14.w, r12.w, l(0.375000), r12.z + add r13.xyzw, r13.xyzw, r14.xyzw + mul r14.xyzw, r12.yyyx, cb0[214].xyzw + mad r14.y, r14.w, l(0.500000), r14.y + mul r12.zw, r12.yyyx, cb0[214].wwwy + mad r14.w, r12.w, l(0.375000), r12.z + add r14.xyzw, r14.xyzw, r17.xyzw + mul r15.xyzw, r12.yyyx, cb0[215].xyzw + mad r15.y, r15.w, l(0.500000), r15.y + mul r12.xy, r12.yxyy, cb0[215].wyww + mad r15.w, r12.y, l(0.375000), r12.x + add r12.xyzw, r15.xyzw, r16.xyzw + mov r7.w, l(1.000000) + dp4 r15.x, r13.xyzw, r7.xyzw + dp4 r15.y, r14.xyzw, r7.xyzw + dp4 r15.z, r12.xyzw, r7.xyzw + max r15.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r16.xyz, r8.wwww, r15.xyzx + mul r17.xyz, r14.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) + mad r17.xyz, r13.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r17.xyzx + mad r17.xyz, r12.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r17.xyzx + dp3 r7.w, r17.xyzx, r17.xyzx + max r7.w, r7.w, l(1.175494351E-38) + rsq r7.w, r7.w + mul r17.xyz, r7.wwww, r17.xyzx + mov r17.y, |r17.y| + mov r17.w, l(1.000000) + dp4 r13.x, r13.xyzw, r17.xyzw + dp4 r13.y, r14.xyzw, r17.xyzw + dp4 r13.z, r12.xyzw, r17.xyzw + max r12.xyz, r13.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + ge r7.w, r16.y, r16.z + and r7.w, r7.w, l(0x3f800000) + mov r13.xy, r16.zyzz + mov r13.zw, l(0,0,-1.000000,0.666666687) + mad r14.xy, r15.yzyy, r8.wwww, -r13.xyxx + mov r14.zw, l(0,0,1.000000,-1.000000) + mad r13.xyzw, r7.wwww, r14.xyzw, r13.xyzw + ge r7.w, r16.x, r13.x + and r7.w, r7.w, l(0x3f800000) + mov r14.xyz, r13.xywx + mov r14.w, r16.x + mov r13.xyw, r14.wywx + add r13.xyzw, -r14.xyzw, r13.xyzw + mad r13.xyzw, r7.wwww, r13.xyzw, r14.xyzw + min r7.w, r13.y, r13.w + add r7.w, -r7.w, r13.x + add r9.w, -r13.y, r13.w + mad r10.w, r7.w, l(6.000000), l(0.000100) + div r9.w, r9.w, r10.w + add r9.w, r9.w, r13.z + frc r9.w, |r9.w| + add r10.w, r13.x, l(0.000100) + div r7.w, r7.w, r10.w + add r14.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) + add r9.w, |r14.x|, l(-0.450000) + mul_sat r9.w, r9.w, l(-10.000001) + mad r10.w, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r10.w + mad r9.w, r9.w, l(-0.350000), l(0.700000) + mov_sat r13.x, r13.x + mul r9.w, r9.w, r13.x + min r7.w, r7.w, r9.w + add r9.w, -r7.w, l(2.000000) + div r9.w, l(2.000000), r9.w + frc r13.xyz, r14.yzwy + mad r13.xyz, r13.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) + add_sat r13.xyz, |r13.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) + add r13.xyz, r13.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) + mad r13.xyz, r7.wwww, r13.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r13.xyz, r9.wwww, r13.xyzx + max r7.w, r12.y, r12.x + max r7.w, r12.z, r7.w + mul r8.w, r8.w, r7.w + mov r7.w, l(1.000000) +else + mov r17.xyz, l(0,0,0,0) + mov r16.xyz, l(1.000000,1.000000,1.000000,0) + mov r13.xyz, cb0[188].xyzx + mov r7.w, l(0) +endif +add r9.w, -v2.y, cb1[r2.w + 12].z +add r9.w, r9.w, l(0.200000) +mul_sat r9.w, r9.w, l(2.85714269) +mad r10.w, r9.w, l(-2.000000), l(3.000000) +mul r9.w, r9.w, r9.w +mul r9.w, r9.w, r10.w +mul r9.w, r9.w, cb1[r2.w + 12].y +max r9.w, r9.w, cb1[r2.w + 12].w +add r10.w, r9.w, cb1[r2.w + 12].x +lt r10.w, l(0.010000), r10.w +if_nz r10.w + add r10.w, -r5.x, l(1.000000) + mul r12.xyz, r4.xyzx, r10.wwww + dp3 r12.x, r12.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r12.x, r12.x, l(-0.350000) + mul_sat r12.x, r12.x, l(-4.000000) + mad r12.y, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.z, r12.x, r12.y + mul r14.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) + movc r14.xyzw, cb1[r2.w + 4].wwww, r14.xyzw, v8.xzxy + mul r15.xyzw, r14.xyzw, cb0[196].zzzz + movc r18.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy + mov r18.x, v7.x + add r19.xyz, |r18.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) + mul r20.xyz, r19.xyzx, r19.xyzx + mul r19.xyz, r19.xyzx, r20.xyzx + max r19.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp3 r12.w, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r19.xyz, r19.xyzx, r12.wwww + sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r15.zyzz, t10.xyzw, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.zwzz, t10.xyzw, s3, cb0[108].x + mul r22.xyzw, r19.zzzz, r22.xyzw + mad r21.xyzw, r21.xyzw, r19.yyyy, r22.xyzw + sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.ywyy, t10.xyzw, s3, cb0[108].x + mad r19.xyzw, r22.xyzw, r19.xxxx, r21.xyzw + add r18.yw, -r19.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) + mul r21.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) + mad_sat r12.w, cb1[r2.w + 12].x, r10.w, r21.x + add r12.w, -r18.y, r12.w + mul_sat r12.w, r12.w, l(3.33333325) + mad r13.w, r12.w, l(-2.000000), l(3.000000) + mul r12.w, r12.w, r12.w + mul r12.w, r12.w, r13.w + mul_sat r10.w, r9.w, r10.w + add r10.w, -r18.w, r10.w + mul_sat r10.w, r10.w, l(1.53846145) + mad r13.w, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r13.w + max r10.w, r10.w, r12.w + add r12.w, r5.x, l(-0.500000) + mul_sat r12.w, r12.w, l(4.000000) + mad r13.w, r12.w, l(-2.000000), l(3.000000) + mul r12.w, r12.w, r12.w + mul r12.w, r12.w, r13.w + add r5.w, -r5.w, l(0.199999988) + mul_sat r5.w, r5.w, l(-5.00000048) + mad r13.w, r5.w, l(-2.000000), l(3.000000) + mul r5.w, r5.w, r5.w + mul r5.w, r5.w, r13.w + mad r13.w, r5.w, r12.z, r12.w + min r13.w, r13.w, l(1.000000) + max r9.w, r9.w, cb1[r2.w + 12].x + mad r18.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mul r19.xyw, r15.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) + mul r22.xyz, r15.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) + mul r23.xyz, r20.xyzx, r20.xyzx + mul r23.xyz, r23.xyzx, r23.xyzx + mul r20.xyz, r20.xyzx, r23.xyzx + dp3 r14.x, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + div r20.xyz, r20.xyzx, r14.xxxx + round_ni r23.xyzw, r19.yxyw + mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r24.xyzw, r24.xyzw + add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r14.x, r24.xyxx, r25.xyxx + add r21.xw, r14.xxxx, r24.xxxy + mul r14.x, r21.w, r21.x + add r16.w, r21.w, r21.x + frc r14.x, r14.x + frc r26.w, r16.w + add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r27.xyzw, r27.xyzw + add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r16.w, r27.xyxx, r28.xyxx + add r21.xw, r16.wwww, r27.xxxy + mul r16.w, r21.w, r21.x + add r17.w, r21.w, r21.x + frc r24.x, r16.w + frc r24.y, r17.w + mad r16.w, r14.x, l(0.399999976), l(0.600000) + mul r17.w, r16.w, l(0.250000) + mad r23.xyzw, r15.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r23.xyzw + mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.xxxy + add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r23.x, r21.x, l(1.250000) + lt r19.y, r21.w, l(0.000000) + movc r19.y, r19.y, l(1.250000), l(0.750000) + mul r23.y, r19.y, r21.w + mad r14.x, cb0[102].x, l(3.000000), r14.x + frc r14.x, r14.x + add r21.xw, r14.xxxx, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r25.xy, r21.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r21.xw, r21.xxxw, r21.xxxw + mul r21.xw, r21.xxxw, r25.xxxy + mul r14.x, r21.w, r21.x + dp2 r19.y, r23.xyxx, r23.xyxx + sqrt r19.y, r19.y + mad r16.w, -r16.w, l(0.250000), r19.y + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.w + mul_sat r16.w, r16.w, r19.y + mad r19.y, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.y + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r26.z, r14.x, r16.w + div r21.xw, r23.xxxy, r17.wwww + max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r14.x, r26.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r21.xw, r14.xxxx, r21.xxxw + mad r14.x, r24.x, l(0.250000), l(0.250000) + mul r26.xy, r14.xxxx, r21.xwxx + dp2 r14.x, r24.zwzz, r25.zwzz + add r21.xw, r14.xxxx, r24.zzzw + mul r14.x, r21.w, r21.x + add r16.w, r21.w, r21.x + frc r14.x, r14.x + frc r24.w, r16.w + dp2 r16.w, r27.zwzz, r28.zwzz + add r21.xw, r16.wwww, r27.zzzw + mul r16.w, r21.w, r21.x + add r17.w, r21.w, r21.x + frc r23.x, r16.w + frc r23.y, r17.w + mad r16.w, r14.x, l(0.399999976), l(0.600000) + mul r17.w, r16.w, l(0.250000) + mad r21.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.zzzw + add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) + mul r25.x, r21.x, l(1.250000) + lt r19.y, r21.w, l(0.000000) + movc r19.y, r19.y, l(1.250000), l(0.750000) + mul r25.y, r19.y, r21.w + mad r14.x, cb0[102].x, l(3.000000), r14.x + frc r14.x, r14.x + add r21.xw, r14.xxxx, l(-0.200000, 0.000000, 0.000000, -0.850000) + mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) + mad r23.yz, r21.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) + mul r21.xw, r21.xxxw, r21.xxxw + mul r21.xw, r21.xxxw, r23.yyyz + mul r14.x, r21.w, r21.x + dp2 r19.y, r25.xyxx, r25.xyxx + sqrt r19.y, r19.y + mad r16.w, -r16.w, l(0.250000), r19.y + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.w + mul_sat r16.w, r16.w, r19.y + mad r19.y, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.y + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r24.z, r14.x, r16.w + div r21.xw, r25.xxxy, r17.wwww + max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) + min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + ge r14.x, r24.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r21.xw, r14.xxxx, r21.xxxw + mad r14.x, r23.x, l(0.250000), l(0.250000) + mul r24.xy, r14.xxxx, r21.xwxx + round_ni r19.xy, r19.xwxx + mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r23.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r14.x, r21.xwxx, r23.xyxx + add r21.xw, r14.xxxx, r21.xxxw + mul r14.x, r21.w, r21.x + add r16.w, r21.w, r21.x + frc r14.x, r14.x + frc r23.w, r16.w + add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r25.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r16.w, r21.xwxx, r25.xyxx + add r21.xw, r16.wwww, r21.xxxw + mul r16.w, r21.w, r21.x + add r17.w, r21.w, r21.x + frc r25.x, r16.w + frc r25.y, r17.w + mad r16.w, r14.x, l(0.399999976), l(0.600000) + mul r17.w, r16.w, l(0.250000) + mad r19.xy, r15.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r19.xyxx + mad r21.xw, r25.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx + add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r27.x, r19.x, l(1.250000) + lt r19.x, r19.y, l(0.000000) + movc r19.x, r19.x, l(1.250000), l(0.750000) + mul r27.y, r19.x, r19.y + mad r14.x, cb0[102].x, l(3.000000), r14.x + frc r14.x, r14.x + add r19.xy, r14.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.xy, r19.xyxx, r19.xyxx + mul r19.xy, r19.xyxx, r21.xwxx + mul r14.x, r19.y, r19.x + dp2 r19.x, r27.xyxx, r27.xyxx + sqrt r19.x, r19.x + mad r16.w, -r16.w, l(0.250000), r19.x + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.w + mul_sat r16.w, r16.w, r19.x + mad r19.x, r16.w, l(-2.000000), l(3.000000) + mul r16.w, r16.w, r16.w + mul r16.w, r16.w, r19.x + ge r16.w, r16.w, l(0.001000) + and r16.w, r16.w, l(0x3f800000) + mul r23.z, r14.x, r16.w + div r19.xy, r27.xyxx, r17.wwww + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r14.x, r23.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r19.xy, r14.xxxx, r19.xyxx + mad r14.x, r25.x, l(0.250000), l(0.250000) + mul r23.xy, r14.xxxx, r19.xyxx + mul r24.xyzw, r20.zzzz, r24.xyzw + mad r24.xyzw, r26.xyzw, r20.yyyy, r24.xyzw + mad r23.xyzw, r23.xyzw, r20.xxxx, r24.xyzw + round_ni r24.xyzw, r22.yxyz + mul r25.xyzw, r24.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r25.xyzw, r25.xyzw + add r26.xyzw, r25.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r14.x, r25.xyxx, r26.xyxx + add r19.xy, r14.xxxx, r25.xyxx + mul r14.x, r19.y, r19.x + add r16.w, r19.y, r19.x + frc r14.x, r14.x + frc r27.w, r16.w + add r28.xyzw, r24.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) + mul r28.xyzw, r28.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) + frc r28.xyzw, r28.xyzw + add r29.xyzw, r28.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) + dp2 r16.w, r28.xyxx, r29.xyxx + add r19.xy, r16.wwww, r28.xyxx + mul r16.w, r19.y, r19.x + add r17.w, r19.y, r19.x + frc r19.x, r16.w + frc r19.y, r17.w + mad r16.w, r14.x, l(0.399999976), l(0.600000) + mul r17.w, r16.w, l(0.250000) + mad r24.xyzw, r15.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r24.xyzw + mad r19.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.xxxy + add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r24.x, r19.y, l(1.250000) + lt r15.x, r19.w, l(0.000000) + movc r15.x, r15.x, l(1.250000), l(0.750000) + mul r24.y, r15.x, r19.w + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r19.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.yw, r19.yyyw, r19.yyyw + mul r19.yw, r19.yyyw, r21.xxxw + mul r14.x, r19.w, r19.y + dp2 r15.x, r24.xyxx, r24.xyxx + sqrt r15.x, r15.x + mad r15.x, -r16.w, l(0.250000), r15.x + div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.w + mul_sat r15.x, r15.x, r16.w + mad r16.w, r15.x, l(-2.000000), l(3.000000) + mul r15.x, r15.x, r15.x + mul r15.x, r15.x, r16.w + ge r15.x, r15.x, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r27.z, r14.x, r15.x + div r19.yw, r24.xxxy, r17.wwww + max r19.yw, r19.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) + min r19.yw, r19.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) + ge r14.x, r27.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r19.yw, r14.xxxx, r19.yyyw + mad r14.x, r19.x, l(0.250000), l(0.250000) + mul r27.xy, r14.xxxx, r19.ywyy + dp2 r14.x, r25.zwzz, r26.zwzz + add r19.xy, r14.xxxx, r25.zwzz + mul r14.x, r19.y, r19.x + add r15.x, r19.y, r19.x + frc r14.x, r14.x + frc r25.w, r15.x + dp2 r15.x, r28.zwzz, r29.zwzz + add r19.xy, r15.xxxx, r28.zwzz + mul r15.x, r19.y, r19.x + add r16.w, r19.y, r19.x + frc r19.x, r15.x + frc r19.y, r16.w + mad r15.x, r14.x, l(0.399999976), l(0.600000) + mul r16.w, r15.x, l(0.250000) + mad r19.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.zzzw + add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) + mul r24.x, r19.y, l(1.250000) + lt r17.w, r19.w, l(0.000000) + movc r17.w, r17.w, l(1.250000), l(0.750000) + mul r24.y, r17.w, r19.w + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r19.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) + mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) + mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.yw, r19.yyyw, r19.yyyw + mul r19.yw, r19.yyyw, r21.xxxw + mul r14.x, r19.w, r19.y + dp2 r17.w, r24.xyxx, r24.xyxx + sqrt r17.w, r17.w + mad r15.x, -r15.x, l(0.250000), r17.w + div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w + mul_sat r15.x, r15.x, r17.w + mad r17.w, r15.x, l(-2.000000), l(3.000000) + mul r15.x, r15.x, r15.x + mul r15.x, r15.x, r17.w + ge r15.x, r15.x, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r25.z, r14.x, r15.x + div r19.yw, r24.xxxy, r16.wwww + max r19.yw, r19.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) + min r19.yw, r19.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) + ge r14.x, r25.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r19.yw, r14.xxxx, r19.yyyw + mad r14.x, r19.x, l(0.250000), l(0.250000) + mul r25.xy, r14.xxxx, r19.ywyy + round_ni r19.xy, r22.xzxx + mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r22.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r14.x, r21.xwxx, r22.xyxx + add r21.xw, r14.xxxx, r21.xxxw + mul r14.x, r21.w, r21.x + add r15.x, r21.w, r21.x + frc r14.x, r14.x + frc r22.w, r15.x + add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) + mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) + frc r21.xw, r21.xxxw + add r24.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) + dp2 r15.x, r21.xwxx, r24.xyxx + add r21.xw, r15.xxxx, r21.xxxw + mul r15.x, r21.w, r21.x + add r16.w, r21.w, r21.x + frc r24.x, r15.x + frc r24.y, r16.w + mad r15.x, r14.x, l(0.399999976), l(0.600000) + mul r16.w, r15.x, l(0.250000) + mad r19.xy, r15.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r19.xyxx + mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx + add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) + mul r26.x, r19.x, l(1.250000) + lt r17.w, r19.y, l(0.000000) + movc r17.w, r17.w, l(1.250000), l(0.750000) + mul r26.y, r17.w, r19.y + mad r14.x, cb0[102].x, l(4.345600), r14.x + frc r14.x, r14.x + add r19.xy, r14.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) + mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) + mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) + mul r19.xy, r19.xyxx, r19.xyxx + mul r19.xy, r19.xyxx, r21.xwxx + mul r14.x, r19.y, r19.x + dp2 r17.w, r26.xyxx, r26.xyxx + sqrt r17.w, r17.w + mad r15.x, -r15.x, l(0.250000), r17.w + div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w + mul_sat r15.x, r15.x, r17.w + mad r17.w, r15.x, l(-2.000000), l(3.000000) + mul r15.x, r15.x, r15.x + mul r15.x, r15.x, r17.w + ge r15.x, r15.x, l(0.001000) + and r15.x, r15.x, l(0x3f800000) + mul r22.z, r14.x, r15.x + div r19.xy, r26.xyxx, r16.wwww + max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + ge r14.x, r22.z, l(0.001000) + and r14.x, r14.x, l(0x3f800000) + mul r19.xy, r14.xxxx, r19.xyxx + mad r14.x, r24.x, l(0.250000), l(0.250000) + mul r22.xy, r14.xxxx, r19.xyxx + mul r24.xyzw, r20.zzzz, r25.xyzw + mad r24.xyzw, r27.xyzw, r20.yyyy, r24.xyzw + mad r20.xyzw, r22.xyzw, r20.xxxx, r24.xyzw + max r19.xy, r20.zwzz, r23.zwzz + mad r20.zw, -r13.wwww, r9.wwww, l(0.000000, 0.000000, 1.000000, 1.010000) + add r14.x, r19.y, l(-0.100000) + ge r14.x, r14.x, r20.z + and r14.x, r14.x, l(0x3f800000) + mul r14.x, r14.x, r19.x + ge r2.w, cb1[r2.w + 12].x, l(0.010000) + and r2.w, r2.w, l(0x3f800000) + mul r2.w, r2.w, r14.x + lt r14.x, l(0.001000), r2.w + add r19.xy, r20.xyxx, r23.xyxx + mul r15.x, cb0[102].x, cb0[196].z + mul r20.y, r15.x, l(0.750000) + dp2 r15.x, r18.xzxx, r18.xzxx + max r15.x, r15.x, l(1.175494351E-38) + rsq r15.x, r15.x + mul r18.xz, r15.xxxx, r18.xxzx + add r18.xz, |r18.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) + mul r21.xw, r18.xxxz, r18.xxxz + mul r18.xz, r18.xxzx, r21.xxwx + max r18.xz, r18.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + dp2 r15.x, r18.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + div r18.xz, r18.xxzx, r15.xxxx + sample_b_indexable(texture2d)(float,float,float,float) r22.xyz, r15.zwzz, t11.xyzw, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, r15.ywyy, t11.xyzw, s3, cb0[108].x + mul r15.xyz, r18.xxxx, r15.xyzx + mad r15.xyz, r22.xyzx, r18.zzzz, r15.xyzx + movc r18.yw, r14.xxxx, r19.xxxy, r18.yyyw + mad r15.xy, r15.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mov r20.x, l(0) + mad r14.xyzw, r14.zwyw, cb0[196].zzzz, r20.xyxy + sample_b_indexable(texture2d)(float,float,float,float) r14.x, r14.xyxx, t11.wxyz, s3, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r14.y, r14.zwzz, t11.xwyz, s3, cb0[108].x + mul r14.y, r18.x, r14.y + mad r14.x, r14.x, r18.z, r14.y + mad r14.xy, r15.xyxx, r14.xxxx, r18.ywyy + ge r14.z, r19.z, r20.w + and r14.z, r14.z, l(0x3f800000) + max r2.w, r2.w, r14.z + add r14.z, -r15.z, l(1.000000) + mad r9.w, r13.w, r9.w, -r14.z + mul_sat r9.w, r9.w, l(9.999998) + mad r13.w, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r13.w + max r2.w, r2.w, r9.w + mad r14.zw, -r7.zzzy, l(0.000000, 0.000000, 1.000000, 0.000000), r21.yyyz + dp2 r9.w, r14.zwzz, r14.zwzz + lt r13.w, l(0.0000610351562), r9.w + rsq r9.w, r9.w + mul r14.zw, r9.wwww, r14.zzzw + mov r14.zw, -r14.zzzw + movc r15.z, r13.w, r14.z, l(-1.000000) + and r15.y, r13.w, r14.w + min r9.w, r3.z, l(0.050000) + add r13.w, -r3.z, r9.w + mad r13.w, r2.w, r13.w, r3.z + mad r12.x, -r12.y, r12.x, l(1.000000) + mul r12.x, r10.w, r12.x + mad r5.w, -r5.w, r12.z, l(1.000000) + mul r5.w, r5.w, r12.x + mad r5.w, r5.w, l(-0.500000), l(1.000000) + mov r15.x, l(0) + mad r3.xyw, -r3.xyxw, r6.wwww, r15.zxzy + mad r3.xyw, r14.xxxx, r3.xyxw, r7.xyxz + mul r14.xzw, r7.zzxy, r15.xxyz + mad r14.xzw, r7.yyzx, r15.yyzx, -r14.xxzw + add r14.xzw, -r3.xxyw, r14.xxzw + mad r3.xyw, r14.yyyy, r14.xzxw, r3.xyxw + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz + mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz + dp3 r6.w, r3.xywx, r3.xywx + rsq r6.w, r6.w + mul r3.xyw, r3.xyxw, r6.wwww + mul r6.w, r12.z, r10.w + mad r6.w, -r6.w, l(0.200000), r13.w + min r10.w, r13.w, l(0.200000) + max r3.z, r6.w, r10.w + mul r6.xyz, r5.wwww, r6.xyzx + dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r6.w, r6.w, l(-0.700000) + mul_sat r6.w, r6.w, l(-2.50000024) + mad r10.w, r6.w, l(-2.000000), l(3.000000) + mul r6.w, r6.w, r6.w + mul r6.w, r6.w, r10.w + mad r6.w, r6.w, l(0.500000), l(1.000000) + mul r10.w, r12.w, r2.w + mad r12.xyz, r4.xyzx, r6.wwww, -r4.xyzx + mad r12.xyz, r10.wwww, r12.xyzx, r4.xyzx + mul r4.xyz, r5.wwww, r12.xyzx +else + mov r3.xyw, r7.xyxz + mov r9.w, l(0.010000) + mov r2.w, l(0) +endif +mul r5.w, r5.y, l(0.040000) +mad r6.w, -r5.x, l(0.960000), l(0.960000) +mul r12.xyz, r4.xyzx, r6.wwww +mad r14.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx +mad r14.xyz, r5.xxxx, r14.xyzx, r5.wwww +mul r6.xyz, r6.wwww, r6.xyzx +mul r5.y, r3.z, r3.z +max r5.y, r5.y, l(0.00781250000) +max r5.w, v5.z, l(9.999999939E-09) +div r15.xy, v5.xyxx, r5.wwww +max r5.w, v6.z, l(9.999999939E-09) +div r15.zw, v6.xxxy, r5.wwww +add r15.xy, -r15.zwzz, r15.xyxx +mul r18.xy, r15.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r18.xy, |r18.xyxx| +sqrt r18.xy, r18.xyxx +mov r15.z, -r15.y +lt r15.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xxxz +lt r15.xz, r15.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r15.xy, -r15.ywyy, r15.xzxx +itof r15.xy, r15.xyxx +mul r15.xy, r15.xyxx, r18.xyxx +mad o1.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +lt r5.w, l(0.500000), r2.w +movc o1.w, r5.w, l(0.700000), l(0.400000) +add r15.xyz, cb0[197].xyzx, cb3[0].xyzx +mad r15.xyz, cb0[187].wwww, r15.xyzx, -cb3[0].xyzx +mov r15.w, l(0.0000610351562) +dp3 r5.w, r15.xzwx, r15.xzwx +rsq r5.w, r5.w +mul r18.xyz, r5.wwww, r15.xwzx +add r19.xyz, cb0[191].xyzx, -cb3[3].xyzx +mad r19.xyz, cb0[198].yyyy, r19.xyzx, cb3[3].xyzx +add r5.w, l(1.000000), -cb3[3].w +mad r5.w, cb0[198].w, r5.w, cb3[3].w +mul r20.xyz, r5.wwww, r19.xyzx +mov r11.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r21.xy, r11.xyzz, t3.xyzw +add r10.w, r21.x, l(-1.000000) +mad r10.w, cb4[34].x, r10.w, l(1.000000) +add r11.z, -r10.w, l(1.000000) +mad r10.w, cb0[187].z, r11.z, r10.w +dp3 r11.z, r7.xyzx, r15.xyzx +mul r21.xzw, r6.xxyz, cb0[186].zzzz +mul r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) +dp3 r12.w, r12.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +dp2 r13.w, cb0[6].xzxx, cb0[6].xzxx +rsq r13.w, r13.w +mul r23.xy, r13.wwww, cb0[6].xzxx +dp2 r13.w, r18.xzxx, r23.xyxx +mov_sat r13.w, -r13.w +add r23.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx +mad r14.w, r11.z, l(0.500000), l(-1.000000) +mad r14.w, -r11.z, r14.w, -r11.z +add r15.w, l(0.750000), -|cb0[6].y| +add_sat r15.w, r15.w, r15.w +mad r16.w, r15.w, l(-2.000000), l(3.000000) +mul r15.w, r15.w, r15.w +mul r15.w, r15.w, r16.w +mul r15.w, r13.w, r15.w +mul r15.w, r23.x, r15.w +add r14.w, r14.w, l(0.500000) +mad r11.z, r15.w, r14.w, r11.z +mad r11.z, cb0[197].w, cb0[198].x, r11.z +max r11.z, r11.z, l(-1.000000) +min r11.z, r11.z, l(1.000000) +add r11.z, r11.z, l(-0.250000) +mul r11.z, r11.z, l(1.33333337) +max r11.z, r11.z, l(0.000000) +mad r14.w, r11.z, l(-2.000000), l(3.000000) +mul r11.z, r11.z, r11.z +mul r11.z, r11.z, r14.w +dp3 r14.w, r7.xyzx, cb0[6].xyzx +add r14.w, r14.w, l(-0.250000) +mul_sat r14.w, r14.w, l(1.33333337) +mad r15.w, r14.w, l(-2.000000), l(3.000000) +mul r14.w, r14.w, r14.w +mul r14.w, r14.w, r15.w +mul r15.w, r5.z, r21.y +min r16.w, r5.z, r21.y +min r17.w, r11.z, r16.w +mul r18.w, r14.w, r15.w +dp3 r19.w, r7.xyzx, cb0[192].xyzx +add_sat r19.w, r19.w, cb0[193].x +mad r19.w, r19.w, cb0[193].y, cb0[193].z +mul r20.w, r17.w, cb0[187].y +add r24.xyz, -r13.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r24.xyz, r20.wwww, r24.xyzx, r13.xyzx +mul r24.xyz, r19.wwww, r24.xyzx +mad r19.w, r8.w, l(0.350000024), l(0.650000) +min r19.w, r19.w, l(1.500000) +max r25.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) +min r25.xyz, r25.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) +add r8.w, -r19.w, r25.x +mad r8.w, cb0[187].x, r8.w, r19.w +mul r26.xyz, r8.wwww, r24.xyzx +mul r26.xyz, r26.xyzx, cb0[186].wwww +dp3 r8.w, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r20.xyz, r19.xyzx, r5.wwww, -r8.wwww +mad r20.xyz, r17.wwww, r20.xyzx, r8.wwww +mul r24.xyz, r24.xyzx, r25.yyyy +mad r23.yzw, r19.xxyz, cb0[198].yyyy, r23.yyyy +mad r20.xyz, r24.xyzx, r23.yzwy, r20.xyzx +mad r20.xyz, r20.xyzx, cb0[186].yyyy, -r26.xyzx +mad r20.xyz, r10.wwww, r20.xyzx, r26.xyzx +dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mad r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww +mad r22.xyz, r22.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww +mad_sat r8.w, r14.w, r15.w, r11.z +mad r23.yzw, r6.xxyz, cb0[186].zzzz, -r22.xxyz +mad r22.xyz, r8.wwww, r23.yzwy, r22.xyzx +mad r23.yzw, r4.xxyz, r6.wwww, -r22.xxyz +mad r22.xyz, r17.wwww, r23.yzwy, r22.xyzx +mad r23.yzw, r4.xxyz, r6.wwww, -r12.wwww +mad r23.yzw, r23.yyzw, l(0.000000, 1.200000, 1.200000, 1.200000), r12.wwww +mad r23.yzw, -r6.xxyz, cb0[186].zzzz, r23.yyzw +mad r21.xzw, r18.wwww, r23.yyzw, r21.xxzw +dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +max r11.z, r8.w, l(0.001000) +div r11.z, l(1.000000, 1.000000, 1.000000, 1.000000), r11.z +mul r8.w, r8.w, r11.z +max r8.w, r8.w, l(0.000000) +min r8.w, r8.w, l(1.500000) +mad r22.xyz, r22.xyzx, r8.wwww, -r21.xzwx +mad r21.xzw, r10.wwww, r22.xxyz, r21.xxzw +mad r8.w, -r14.w, r15.w, r17.w +mad r8.w, r10.w, r8.w, r18.w +add r11.z, l(1.000000), -cb0[186].z +mad r11.z, r8.w, r11.z, cb0[186].z +add r14.w, r15.y, l(-0.500000) +mad r22.y, r10.w, r14.w, l(0.500000) +dp3_sat r24.x, r3.xywx, r2.xyzx +mov r22.xz, cb0[6].xxzx +dp3 r14.w, r22.xyzx, r22.xyzx +max r14.w, r14.w, l(1.175494351E-38) +rsq r14.w, r14.w +mul r22.xyz, r14.wwww, r22.xyzx +add r22.xyz, r22.xyzx, r22.xyzx +mad r15.xyz, r15.xyzx, r10.wwww, r22.xyzx +add r14.w, r10.w, l(2.000000) +mad r15.xyz, r2.xyzx, r14.wwww, r15.xyzx +dp3 r14.w, r15.xyzx, r15.xyzx +rsq r14.w, r14.w +mul r15.xyz, r14.wwww, r15.xyzx +dp3 r14.w, r3.xywx, r15.xyzx +mul r15.x, r5.y, r5.y +mad r15.y, r14.w, r15.x, -r14.w +mad r14.w, r15.y, r14.w, l(1.000000) +mul r14.w, r14.w, r14.w +add r15.y, l(1.000000), -cb5[1].z +mad r15.y, r4.w, cb5[1].z, r15.y +mul r22.xyz, r20.xyzx, r21.xzwx +ne r15.z, r14.w, r15.x +div r14.w, r15.x, r14.w +movc r14.w, r15.z, r14.w, l(1.000000) +mad r15.x, r24.x, l(2.000000), r5.y +add r15.x, r15.x, l(0.000100) +div r15.x, l(0.500000), r15.x +mad r14.w, r14.w, r15.x, l(-0.0000610351562) +max r14.w, r14.w, l(0.000000) +min r14.w, r14.w, l(20.000000) +mul r15.xzw, r14.wwww, r14.xxyz +mad r8.w, r8.w, l(0.500000), l(0.500000) +mul r8.w, r11.z, r8.w +mul r20.xyz, r8.wwww, r20.xyzx +mul r15.xzw, r15.xxzw, r20.xxyz +mul r15.xzw, r15.xxzw, cb0[199].wwww +mad r15.xzw, r22.xxyz, r15.yyyy, r15.xxzw +dp3 r8.w, r15.xzwx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r14.w, r8.w, l(-0.500000) +max r14.w, r14.w, l(0.000000) +min r14.w, r14.w, l(0.500000) +mov r20.y, l(0) +mov r20.xz, cb0[195].yyxy +mul r22.xyz, r20.xyzx, cb0[6].zxyz +mad r20.xyz, cb0[6].yzxy, r20.yzxy, -r22.xyzx +dp3 r17.w, r20.xyzx, r20.xyzx +rsq r17.w, r17.w +mul r20.xyz, r17.wwww, r20.xyzx +dp3 r17.w, r2.xyzx, r7.xyzx +add r22.xy, -|r17.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) +dp3 r18.x, r18.xyzx, r7.xyzx +add r18.y, -r10.w, l(1.000000) +add r9.w, -r3.z, r9.w +mad r2.w, r2.w, r9.w, r3.z +mul r26.y, r2.w, r2.w +mul r27.x, r24.x, r24.x +mul r27.z, r24.x, r27.x +mul r9.w, r26.y, r26.y +mul r26.z, r26.y, r9.w +mov r24.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r25.x, l(3.327070, 1.000000, 0.000000, 0.000000), r24.xyxx +dp2 r25.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r24.xzxx +mov r26.x, l(1.000000) +dp2 r9.w, r25.xyxx, r26.xyxx +mov r27.yw, l(0,9.044010,0,1.000000) +dp3 r28.x, l(3.596850, -1.367720, 1.000000, 0.000000), r27.xzwx +dp3 r28.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r27.xyzx +mov r29.x, l(5.565890) +mov r29.yz, r27.xxzx +dp3 r28.z, l(1.000000, 19.788601, -20.212299, 0.000000), r29.xyzx +dp3 r18.z, r28.xyzx, r26.xyzx +div r9.w, r9.w, r18.z +dp2 r25.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r24.xwxx +mov r27.x, l(1.296780) +mov r27.y, r24.x +dp2 r25.y, l(1.000000, -0.755907, 0.000000, 0.000000), r27.xyxx +dp2 r18.z, r25.xyxx, r26.xyxx +dp3 r28.x, l(2.923380, 59.418800, 1.000000, 0.000000), r27.yzwy +mov r27.xw, l(20.322500,0,0,121.563004) +dp3 r28.y, l(1.000000, -27.030199, 222.591995, 0.000000), r27.xyzx +dp3 r28.z, l(626.130005, 316.627014, 1.000000, 0.000000), r27.yzwy +dp3 r18.w, r28.xyzx, r26.xyzx +div r18.z, r18.z, r18.w +mad r23.yzw, r14.xxyz, r9.wwww, r18.zzzz +add r9.w, r9.w, r18.z +mad r14.w, r14.w, r14.w, l(1.000000) +add r15.xzw, -r8.wwww, r15.xxzw +mad r15.xzw, r14.wwww, r15.xxzw, r8.wwww +mad r18.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) +add r8.w, -r18.z, r18.w +add r14.w, -r18.z, r22.x +div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w +mul_sat r8.w, r8.w, r14.w +mad r14.w, r8.w, l(-2.000000), l(3.000000) +mul r8.w, r8.w, r8.w +mul r8.w, r8.w, r14.w +mul r24.yzw, r8.wwww, cb0[194].xxyz +mul r24.yzw, r24.yyzw, cb0[194].wwww +dp3 r8.w, r9.xyzx, r20.xyzx +add_sat r8.w, r8.w, l(1.000000) +min r5.z, r5.z, r8.w +min r5.z, r21.y, r5.z +mul r24.yzw, r5.zzzz, r24.yyzw +mad r25.xyw, r4.xyxz, r6.wwww, l(-0.250000, -0.250000, 0.000000, -0.250000) +mad r25.xyw, cb0[195].zzzz, r25.xyxw, l(0.250000, 0.250000, 0.000000, 0.250000) +dp3_sat r5.z, r20.xyzx, r7.xyzx +mul r20.xyz, r5.zzzz, r25.xywx +max r5.z, r16.y, r16.x +max r5.z, r16.z, r5.z +mul r5.z, r5.z, l(0.500000) +max r5.z, r5.z, l(1.000000) +div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z +mul r16.xyz, r5.zzzz, r16.xyzx +mad r19.xyz, r19.xyzx, r5.wwww, -r16.xyzx +mad r16.xyz, r10.wwww, r19.xyzx, r16.xyzx +dp3 r5.z, r17.xyzx, r7.xyzx +mul r5.w, r7.w, r5.z +mad r8.w, r18.x, l(0.500000), l(-1.000000) +mad r8.w, -r18.x, r8.w, l(0.500000) +mad r5.z, -r5.z, r7.w, r8.w +mad_sat r5.z, r10.w, r5.z, r5.w +mul r16.xyz, r5.zzzz, r16.xyzx +mad r5.z, r13.w, r10.w, r18.y +mul r5.z, r23.x, r5.z +mul r16.xyz, r5.zzzz, r16.xyzx +mul_sat r5.z, r22.y, l(5.00000048) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mul r16.xyz, r5.zzzz, r16.xyzx +mul r16.xyz, r16.wwww, r16.xyzx +add r5.z, r12.w, l(-0.100000) +mul_sat r5.z, r5.z, l(-16.666666) +mad r5.w, r5.z, l(-2.000000), l(3.000000) +mul r5.z, r5.z, r5.z +mul r5.z, r5.z, r5.w +mad r5.z, r5.z, r10.w, r18.y +mul r16.xyz, r5.zzzz, r16.xyzx +max r17.xyz, r12.xyzx, l(0.150000, 0.150000, 0.150000, 0.000000) +mul r16.xyz, r16.xyzx, r17.xyzx +mad r16.xyz, r24.yzwy, r20.xyzx, r16.xyzx +add r15.xzw, r15.xxzw, r16.xxyz +utof r5.zw, r11.xxxy +mul r16.xy, r5.zwzz, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r16.xy, r16.xyxx +mad r7.w, r16.y, cb2[1].y, r16.x +mul r7.w, r7.w, l(8.000000) +ftoi r7.w, r7.w +mad r8.w, -cb0[85].y, cb2[2].w, v0.w +round_ni r8.w, r8.w +add r10.w, l(-1.000000), cb2[1].w +max r12.w, r8.w, l(0.000000) +min r10.w, r10.w, r12.w +mul r12.w, r10.w, l(8.000000) +ftoi r12.w, r12.w +mul r8.xyz, r8.xyzx, cb5[6].xyzx +mul r8.xyz, r8.xyzx, cb5[1].wwww +mad r8.xyz, r8.xyzx, r15.yyyy, r15.xzwx +dp3 r13.w, -r2.xyzx, r3.xywx +add r13.w, r13.w, r13.w +mad r15.xzw, r3.xxyw, -r13.wwww, -r2.xxyz +max r2.w, r2.w, l(0.001000) +log r2.w, r2.w +mad r2.w, r2.w, l(1.200000), l(5.000000) +sample_l_indexable(texturecube)(float,float,float,float) r15.xzw, r15.xzwx, t16.xwyz, s0, r2.w +add r2.w, -r9.w, l(1.000000) +div r2.w, r2.w, r9.w +mul r16.xyz, r2.wwww, r14.xyzx +mad r16.xyz, r16.xyzx, r23.yzwy, r23.yzwy +mul r15.xzw, r15.xxzw, r16.xxyz +mul r2.w, r25.z, cb0[186].w +mul r2.w, r11.z, r2.w +mul r15.xzw, r2.wwww, r15.xxzw +mad r8.xyz, r15.xzwx, r13.xyzx, r8.xyzx +ge r2.w, r10.w, r8.w +iadd r8.w, r12.w, cb0[110].y +mad r9.w, r18.y, l(-0.250000), l(0.750000) +mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) +add r6.w, -r5.y, l(0.010000) +ge r5.x, r5.x, l(0.500000) +and r5.x, r5.x, l(0x3f800000) +mov r13.w, l(1.000000) +mov r15.xzw, r8.xxyz +mov r10.w, l(0) +loop + ilt r11.z, l(7), r10.w + breakc_nz r11.z + iadd r11.z, r7.w, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.z, r11.z, l(0), t0.xxxx + iadd r12.w, r8.w, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx + and r11.z, r11.z, r12.w + and r11.z, r2.w, r11.z + ishl r12.w, r10.w, l(5) + mov r16.xyz, r15.xzwx + mov r14.w, r11.z + loop + breakc_z r14.w + firstbit_lo r16.w, r14.w + ishl r17.x, l(1), r16.w + xor r17.x, r14.w, r17.x + iadd r16.w, r12.w, r16.w + bfi r18.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) + ftou r17.y, cb3[r18.y + 6].w + ieq r17.y, r17.y, l(1) + if_nz r17.y + add r13.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx + and r19.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r18.y + 6].xzyx + and r20.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r18.z + 6].yxzy + ushr r22.yzw, cb3[r18.y + 6].xxzy, l(0, 16, 16, 16) + ushr r23.xyz, cb3[r18.z + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r19.xyz, r19.xyzx + f16tof32 r20.xyz, r20.xyzx + f16tof32 r25.xyz, r22.yzwy + f16tof32 r23.xyw, r23.yxyz + mov r26.xz, r19.xxzx + mov r26.yw, r25.xxxz + dp4 r17.y, r13.xyzw, r26.xyzw + mov r25.x, r19.y + mov r25.z, r20.y + mov r25.w, r23.x + dp4 r17.z, r13.xyzw, r25.xyzw + mov r23.xz, r20.xxzx + dp4 r13.x, r13.xyzw, r23.xyzw + max r13.y, |r17.z|, |r17.y| + max r13.x, |r13.x|, r13.y + mad r13.y, cb3[r18.w + 6].x, l(0.500000), l(0.500000) + add r13.x, -r13.y, r13.x + mad r13.y, -cb3[r18.w + 6].x, l(0.500000), l(0.500000) + div_sat r13.x, r13.x, r13.y + add r13.x, -r13.x, l(1.000000) + mul r13.x, r13.x, r13.x + else + mov r13.x, l(1.000000) + endif + lt r13.y, r13.x, l(0.001000) + if_nz r13.y + mov r14.w, r17.x + continue + endif + ishl r13.y, r16.w, l(3) + lt r13.z, cb3[r13.y + 6].w, l(1.500000) + if_nz r13.z + bfi r13.z, l(29), l(3), r16.w, l(3) + ieq r17.y, l(16), cb3[r13.z + 6].w + add r17.z, cb0[198].z, cb3[r13.z + 6].z + lt r17.z, r17.z, l(0.500000) + or r17.y, r17.z, r17.y + if_z r17.y + bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) + ftou r16.w, cb3[r13.y + 6].w + and r16.w, r16.w, l(1) + ieq r18.y, r16.w, l(0) + not r18.y, r18.y + lt r19.x, l(0.000000), cb3[r17.y + 6].z + and r18.y, r18.y, r19.x + ieq r19.x, l(4), cb3[r13.z + 6].w + movc r19.y, r16.w, l(0), l(1.000000) + mad r19.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) + add r20.z, r19.z, -|cb3[r17.y + 6].x| + add r20.x, -r20.z, cb3[r17.y + 6].y + add r19.z, -|r20.z|, l(1.000000) + add r19.z, -|r20.x|, r19.z + max r19.z, r19.z, l(0.000488281250) + ge r19.w, cb3[r17.y + 6].x, l(0.000000) + movc r20.y, r19.w, r19.z, -r19.z + dp3 r19.z, r20.xyzx, r20.xyzx + rsq r19.z, r19.z + mul r20.xyz, r19.zzzz, r20.xyzx + add r19.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y + max r19.z, r19.z, l(0.100000) + and r19.w, r19.x, l(0x3f800000) + add r19.z, r19.z, -cb3[r18.z + 6].w + mad r18.z, r19.w, r19.z, cb3[r18.z + 6].w + add r22.yzw, -v2.xxyz, cb3[r18.x + 6].xxyz + dp3 r19.z, r22.zwyz, -r20.xyzx + lt r19.w, l(0.500000), cb3[r17.z + 6].z + and r19.w, r19.w, r19.x + and r19.w, r19.w, l(0x3f800000) + mul r19.w, r19.y, r19.w + mad r23.xyz, -r20.zxyz, r19.zzzz, -r22.yzwy + mad r22.yzw, r19.wwww, r23.xxyz, r22.yyzw + dp3 r19.z, r22.yzwy, r22.yzwy + rsq r19.w, r19.z + mul r23.xyz, r19.wwww, r22.yzwy + if_nz r18.y + mul r24.yzw, r20.zzxy, cb3[r17.y + 6].zzzz + mad r25.xyz, -r24.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000), r22.yzwy + mad r24.yzw, r24.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), r22.yyzw + dp3 r19.w, r25.xyzx, r25.xyzx + sqrt r19.w, r19.w + dp3 r20.w, r24.yzwy, r24.yzwy + sqrt r20.w, r20.w + mul r26.xyz, r20.xyzx, r23.xyzx + mad r26.xyz, r20.zxyz, r23.yzxy, -r26.xyzx + mul r27.xyz, r20.xyzx, r26.xyzx + mad r26.xyz, r26.zxyz, r20.yzxy, -r27.xyzx + dp3 r21.y, r26.xyzx, r26.xyzx + rsq r21.y, r21.y + mul r23.xyz, r21.yyyy, r26.xyzx + dp3 r21.y, r25.xyzx, r24.yzwy + mad r21.y, r19.w, r20.w, r21.y + mad r21.y, r21.y, l(0.500000), l(1.000000) + div r21.y, l(1.000000, 1.000000, 1.000000, 1.000000), r21.y + dp3 r23.w, r23.xyzx, r25.xyzx + div r19.w, r23.w, r19.w + dp3 r23.w, r23.xyzx, r24.yzwy + div r20.w, r23.w, r20.w + add r19.w, r19.w, r20.w + mul_sat r19.w, r19.w, l(0.500000) + mul r19.w, r19.w, r21.y + else + mov r19.w, l(1.000000) + endif + lt r20.w, r18.z, l(0.000000) + if_nz r20.w + mul r20.w, cb3[r18.x + 6].w, cb3[r18.x + 6].w + mul r20.w, r19.z, r20.w + mad r20.w, -r20.w, r20.w, l(1.000000) + max r20.w, r20.w, l(0.000000) + add r19.z, r19.z, l(1.000000) + div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z + and r21.y, r18.y, l(0x3f800000) + add r23.w, -r19.z, r19.w + mad r19.z, r21.y, r23.w, r19.z + mul r20.w, r20.w, r20.w + mul r19.z, r19.z, r20.w + else + mul r24.yzw, r22.yyzw, cb3[r18.x + 6].wwww + dp3 r20.w, r24.yzwy, r24.yzwy + min r20.w, r20.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + log r20.w, r20.w + mul r18.z, r18.z, r20.w + exp r18.z, r18.z + mul r19.z, r18.z, r19.w + endif + dp3 r18.z, r23.yzxy, -r20.xyzx + add r18.z, r18.z, -cb3[r17.y + 6].z + mul_sat r18.z, r18.z, cb3[r17.y + 6].w + mad r18.z, r18.z, r18.z, l(-1.000000) + mad r18.z, r19.y, r18.z, l(1.000000) + mul r18.z, r18.z, r19.z + ftoi r19.y, cb3[r18.w + 6].w + not r18.y, r18.y + ige r19.z, r19.y, l(0) + and r18.y, r18.y, r19.z + if_nz r18.y + if_z r16.w + ishl r18.y, r19.y, l(2) + mul r20.xyz, v2.yyyy, cb6[r18.y + 33].xywx + mad r20.xyz, cb6[r18.y + 32].xywx, v2.xxxx, r20.xyzx + mad r20.xyz, cb6[r18.y + 34].xywx, v2.zzzz, r20.xyzx + add r20.xyz, r20.xyzx, cb6[r18.y + 35].xywx + div_sat r19.zw, r20.xxxy, r20.zzzz + mad r19.zw, r19.zzzw, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy + else + ishl r18.y, r19.y, l(2) + dp3 r20.x, -r22.yzwy, cb6[r18.y + 32].xyzx + dp3 r20.y, -r22.yzwy, cb6[r18.y + 33].xyzx + dp3 r20.z, -r22.yzwy, cb6[r18.y + 34].xyzx + lt r18.y, |r20.x|, |r20.y| + and r18.y, r18.y, l(1) + dp2 r20.w, |r20.xyxx|, icb[r18.y + 0].xyxx + lt r20.w, r20.w, |r20.z| + movc r18.y, r20.w, l(2), r18.y + dp3 r20.w, r20.xyzx, icb[r18.y + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r18.y, l(31), l(1), r18.y, r20.w + ushr r20.w, r18.y, l(1) + dp3 r20.w, r20.xyzx, icb[r20.w + 0].xyzx + div r21.y, l(0.000244140625), cb6[r19.y + 0].w + add r21.y, -r21.y, l(0.500000) + utof r22.y, r18.y + ult r22.z, r18.y, l(2) + and r22.z, r22.z, l(2) + dp2 r20.x, r20.xzxx, icb[r22.z + 0].xzxx + mul r20.x, r20.x, icb[r18.y + 4].z + div r20.x, r20.x, |r20.w| + mad r20.x, r20.x, r21.y, r22.y + add r20.x, r20.x, l(0.500000) + mul_sat r25.x, r20.x, l(0.166666672) + iadd r20.x, l(-1), icb[r18.y + 4].y + dp2 r20.x, r20.yzyy, icb[r20.x + 0].xyxx + mul r18.y, r20.x, icb[r18.y + 4].w + div r18.y, r18.y, |r20.w| + mad_sat r25.y, -r18.y, r21.y, l(0.500000) + mad r19.zw, r25.xxxy, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r19.zwzz, t17.yxzw, s0, l(0.000000) + mul r18.z, r18.y, r18.z + endif + mul r13.x, r13.x, r18.z + lt r18.y, l(0.000100), r13.x + if_nz r18.y + if_nz r19.x + add r18.y, l(1.000000), -cb3[r17.z + 6].w + dp3 r18.z, r10.xyzx, r23.xyzx + add_sat r18.z, r18.z, l(0.500000) + mad r19.y, r18.z, l(-2.000000), l(3.000000) + mul r18.z, r18.z, r18.z + mul r18.z, r18.z, r19.y + mad r18.y, r18.z, cb3[r17.z + 6].w, r18.y + mul r18.y, r18.y, cb3[r17.z + 6].x + mul r18.y, r13.x, r18.y + add r19.yzw, -r16.xxyz, cb3[r13.y + 6].xxyz + mad r19.yzw, r18.yyyy, r19.yyzw, r16.xxyz + endif + if_z r19.x + dp3 r18.y, r7.xyzx, r23.xyzx + mov_sat r18.z, r18.y + if_nz cb3[r13.z + 6].w + if_z r16.w + ftoi r16.w, cb3[r13.z + 6].x + else + add r20.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx + lt r22.yzw, |r20.yyzz|, |r20.xxxy| + and r20.w, r22.z, r22.y + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + ushr r21.y, cb3[r17.y + 6].w, l(24) + ubfe r22.yz, l(0, 8, 8, 0), l(0, 16, 8, 0), cb3[r17.y + 6].wwww + movc r20.x, r20.x, r21.y, r22.y + and r17.y, l(255), cb3[r17.y + 6].w + movc r17.y, r20.y, r22.z, r17.y + ubfe r20.y, l(8), l(8), cb3[r13.z + 6].x + and r21.y, l(255), cb3[r13.z + 6].x + movc r20.y, r20.z, r20.y, r21.y + movc r17.y, r22.w, r17.y, r20.y + movc r17.y, r20.w, r20.x, r17.y + ilt r20.x, r17.y, l(80) + movc r16.w, r20.x, r17.y, l(-1) + endif + ige r17.y, r16.w, l(0) + if_nz r17.y + add r20.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx + ishl r17.y, r16.w, l(2) + dp3 r18.x, r20.xyzx, r20.xyzx + max r18.x, r18.x, l(1.175494351E-38) + rsq r18.x, r18.x + mul r20.xyz, r18.xxxx, r20.xyzx + mad r20.xyz, -r20.xyzx, cb4[r16.w + 288].xxxx, v2.xyzx + mul r18.x, l(5.000000), cb4[r16.w + 288].y + mad r20.xyz, r10.xyzx, r18.xxxx, r20.xyzx + mul r25.xyzw, r20.yyyy, cb4[r17.y + 65].xyzw + mad r25.xyzw, cb4[r17.y + 64].xyzw, r20.xxxx, r25.xyzw + mad r20.xyzw, cb4[r17.y + 66].xyzw, r20.zzzz, r25.xyzw + add r20.xyzw, r20.xyzw, cb4[r17.y + 67].xyzw + div r20.xyz, r20.xyzx, r20.wwww + ge r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xxyz + ge r24.yzw, r20.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000) + add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz + mad r20.xy, r20.xyxx, r25.xyxx, cb4[r16.w + 344].xyxx + mad r25.xy, r20.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r20.xy, r20.xyxx, cb4[400].zwzz, -r25.xyxx + add r26.xyzw, r20.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r20.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r20.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r20.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r20.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r20.xyxx + mul r30.xy, r20.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r20.xy, -r26.xzxx, r26.xzxx, r25.zwzz + add r20.xy, r20.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r20.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r20.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r30.z, r31.x + mov r30.w, r20.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r20.y + mov r28.z, r29.y + mov r28.w, r27.z + add r20.xyw, r28.zyzw, r31.zyzw + div r27.xyz, r29.xzwx, r26.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.yxzy, cb4[400].xxxx + div r28.xyz, r28.zywz, r20.xywx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb4[400].yyyy + mov r27.w, r28.x + mad r29.xyzw, r25.xyxy, cb4[400].xyxy, r27.ywxw + mad r25.zw, r25.xxxy, cb4[400].xxxy, r27.zzzw + mov r28.w, r27.y + mov r27.yw, r28.yyyz + mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r27.xyzy + mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz + mad r27.xyzw, r25.xyxy, cb4[400].xyxy, r27.xwzw + mul r31.xyzw, r20.xxxy, r26.zwyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r29.xyxx, t2.xxxx, s2, r20.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r29.zwzz, t2.xxxx, s2, r20.z + mul r18.x, r18.x, r31.y + mad r17.y, r31.x, r17.y, r18.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r25.zwzz, t2.xxxx, s2, r20.z + mad r17.y, r31.z, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.xyxx, t2.xxxx, s2, r20.z + mad r17.y, r31.w, r18.x, r17.y + mul r25.xyzw, r20.yyww, r26.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.xyxx, t2.xxxx, s2, r20.z + mad r17.y, r25.x, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.zwzz, t2.xxxx, s2, r20.z + mad r17.y, r25.y, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.zwzz, t2.xxxx, s2, r20.z + mad r17.y, r25.z, r18.x, r17.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r27.xyxx, t2.xxxx, s2, r20.z + mad r17.y, r25.w, r18.x, r17.y + or r22.yzw, r22.yyzw, r24.yyzw + or r18.x, r22.z, r22.y + or r18.x, r22.w, r18.x + and r20.x, r20.z, l(0x7fffffff) + ult r20.x, l(0x7f800000), r20.x + or r18.x, r18.x, r20.x + mul r20.x, r20.w, r26.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.y, r27.zwzz, t2.xxxx, s2, r20.z + mad r17.y, r20.x, r20.y, r17.y + add r17.y, r17.y, l(-1.000000) + mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) + movc r16.w, r18.x, l(1.000000), r16.w + else + dp3 r17.y, r9.xyzx, r23.xyzx + add_sat r16.w, r17.y, l(1.000000) + endif + else + mov r16.w, l(1.000000) + endif + if_z cb3[r13.z + 6].w + mul r20.xyz, r13.xxxx, cb3[r13.y + 6].xyzx + add r17.y, l(1.000000), -cb3[r17.z + 6].y + max r18.x, r20.y, r20.x + max r18.x, r20.z, r18.x + mul r18.x, r9.w, r18.x + max r18.x, r18.x, l(1.000000) + div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x + mad r17.y, r18.x, cb3[r17.z + 6].y, r17.y + mul r20.xyz, r17.yyyy, cb3[r13.y + 6].xyzx + mul r17.y, l(0.250000), cb3[r17.z + 6].x + add_sat r18.x, r18.y, l(0.500000) + mad r20.w, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) + mad r17.y, r18.x, r20.w, r17.y + mul r20.xyz, r17.yyyy, r20.xyzx + mov r22.yzw, r21.xxzw + mov r24.yzw, r21.xxzw + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r20.w, l(3), cb3[r13.z + 6].w + if_nz r20.w + mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) + add r20.w, -r25.x, r25.y + add r21.y, r22.x, -r25.x + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r20.w + mul_sat r20.w, r20.w, r21.y + mad r21.y, r20.w, l(-2.000000), l(3.000000) + mul r20.w, r20.w, r20.w + mul r20.w, r20.w, r21.y + mul r20.w, r16.w, r20.w + mul r13.x, r13.x, r20.w + mul r25.xyz, r23.zxyz, cb0[6].xyzx + mad r25.xyz, cb0[6].zxyz, r23.xyzx, -r25.xyzx + mul r26.xyz, r25.xyzx, cb0[6].zxyz + mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx + dp3 r20.w, r25.xyzx, r25.xyzx + rsq r20.w, r20.w + mul r25.xyz, r20.wwww, r25.xyzx + dp3_sat r18.z, r7.xyzx, -r25.xyzx + mad r22.yzw, cb3[r17.z + 6].yyyy, r4.xxyz, l(0.000000, 0.500000, 0.500000, 0.500000) + mov r24.yzw, l(0,0,0,0) + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r20.w, l(1), cb3[r13.z + 6].w + if_nz r20.w + add r18.y, r18.y, cb3[r17.z + 6].x + max_sat r18.y, r18.y, l(-1.000000) + mul r18.z, r16.w, r18.y + mul r24.yzw, r6.xxyz, cb3[r17.z + 6].yyyy + mov r17.y, l(1.000000) + mov r18.x, l(0) + else + ieq r16.w, l(2), cb3[r13.z + 6].w + if_nz r16.w + add r18.y, l(0.050000), cb3[r17.z + 6].x + add r18.y, r3.z, -r18.y + mul_sat r18.y, r18.y, l(-10.000000) + mad r21.y, r18.y, l(-2.000000), l(3.000000) + mul r18.y, r18.y, r18.y + mul r18.y, r18.y, r21.y + add r21.y, l(1.000000), -cb3[r17.z + 6].z + mad r21.y, r5.x, cb3[r17.z + 6].z, r21.y + mul r17.y, r18.y, r21.y + else + mov r17.y, l(1.000000) + endif + and r18.x, r16.w, cb3[r17.z + 6].y + mov r24.yzw, l(0,0,0,0) + endif + and r22.yzw, r12.xxyz, r20.wwww + endif + mov r20.xyz, cb3[r13.y + 6].xyzx + endif + ine r13.y, l(3), cb3[r13.z + 6].w + if_nz r13.y + mad r13.y, r18.x, r6.w, r5.y + mad r23.xyz, r0.xyzx, r1.wwww, r23.xyzx + dp3 r13.z, r23.xyzx, r23.xyzx + rsq r13.z, r13.z + mul r23.xyz, r13.zzzz, r23.xyzx + dp3 r13.z, r3.xywx, r23.xyzx + mul r16.w, r13.y, r13.y + mad r17.z, r13.z, r16.w, -r13.z + mad r13.z, r17.z, r13.z, l(1.000000) + mul r13.z, r13.z, r13.z + ne r17.z, r13.z, r16.w + div r13.z, r16.w, r13.z + movc r13.z, r17.z, r13.z, l(1.000000) + mad r13.y, r24.x, l(2.000000), r13.y + add r13.y, r13.y, l(0.000100) + div r13.y, l(0.500000), r13.y + mad r13.y, r13.z, r13.y, l(-0.0000610351562) + max r13.y, r13.y, l(0.000000) + min r13.y, r13.y, l(20.000000) + mul r23.xyz, r13.yyyy, r14.xyzx + mul r23.xyz, r17.yyyy, r23.xyzx + mul r18.xyw, r23.xyxz, cb3[r18.w + 6].zzzz + else + mov r18.xyw, l(0,0,0,0) + endif + mul r13.xyz, r13.xxxx, r20.xyzx + add r20.xyz, r22.yzwy, -r24.yzwy + mad r20.xyz, r18.zzzz, r20.xyzx, r24.yzwy + mul r20.xyz, r13.xyzx, r20.xyzx + mul r13.xyz, r18.xywx, r13.xyzx + mul r13.xyz, r18.zzzz, r13.xyzx + mad r13.xyz, r20.xyzx, r15.yyyy, r13.xyzx + add r16.xyz, r13.xyzx, r16.xyzx + endif + else + mov r19.x, l(0) + endif + movc r16.xyz, r19.xxxx, r19.yzwy, r16.xyzx + endif + endif + mov r14.w, r17.x + endloop + mov r15.xzw, r16.xxyz + iadd r10.w, r10.w, l(1) +endloop +lt r0.x, l(0.500000), cb5[3].x +if_nz r0.x + dp3 r0.x, r15.xzwx, l(0.212672904, 0.715152204, 0.072175, 0.000000) + add r3.xyz, -r0.xxxx, r15.xzwx + mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx + add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) + mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r3.xyz, r0.xyzx, cb5[3].yyyy + mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx + mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx + add r2.w, l(1.000000), -cb5[4].x + mov_sat r17.w, r17.w + add r3.x, -r17.w, l(1.000000) + add r3.y, -r2.w, l(1.000000) + add r2.w, -r2.w, r3.x + div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y + mul_sat r2.w, r2.w, r3.x + mad r3.x, r2.w, l(-2.000000), l(3.000000) + mul r2.w, r2.w, r2.w + mul r2.w, r2.w, r3.x + mul r3.xyz, r2.wwww, cb5[8].xyzx + mad r15.xzw, r3.xxyz, cb5[4].yyyy, r0.xxyz +endif +div r0.xyz, r15.xzwx, cb0[109].xxxx +eq r2.w, l(1.000000), cb5[2].x +movc o0.w, r2.w, r4.w, l(1.000000) +lt r2.w, cb0[198].w, l(0.500000) +if_nz r2.w + mul r0.w, r0.w, r1.w + mad r1.w, v2.y, cb0[156].w, cb0[157].w + max r1.w, r1.w, l(0.010000) + mad r2.w, r0.w, cb0[154].w, -cb0[153].w + max r2.w, r2.w, l(0.000000) + mul r3.x, r1.w, l(-1.442695) + exp r3.x, r3.x + add r3.x, -r3.x, l(1.000000) + div r1.w, r3.x, r1.w + mad r3.x, v2.y, cb0[156].w, cb0[158].w + mul r3.x, r3.x, l(1.442695) + exp r3.x, r3.x + mul r1.w, r1.w, r3.x + mul r1.w, r1.w, -r2.w + mul r3.xyz, r1.wwww, cb0[155].xyzx + mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) + exp r3.xyz, r3.xyzx + dp3 r1.w, -r2.xyzx, cb0[154].xyzx + mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) + dp2 r3.w, r1.wwww, cb0[155].wwww + add r2.w, r2.w, -r3.w + lt r3.w, l(0.000000), cb0[163].z + if_nz r3.w + and r11.w, l(7), cb0[108].w + imad r4.xyz, r11.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.w, r4.y, r4.z, r4.x + imad r4.x, r4.z, r3.w, r4.y + imad r4.y, r3.w, r4.x, r4.z + imad r5.x, r4.x, r4.y, r3.w + dp3 r1.x, -r2.xyzx, -r1.xyzx + add r1.y, v2.y, -cb0[44].y + lt r1.z, l(5.960464478E-08), r1.x + div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x + and r1.x, r1.x, r1.z + mul r1.x, r1.x, cb0[163].w + div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r2.x, r1.z, r1.x + mad r2.y, r2.x, r1.y, cb0[44].y + mad r1.y, -r2.x, r1.y, r1.y + mul r2.x, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r2.z, r2.y, -cb0[159].x + mul r2.z, r2.z, cb0[159].z + max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r2.z, -r2.z + mul r2.z, r2.z, cb0[159].y + lt r3.w, l(5.960464478E-08), |r2.x| + exp r4.z, -r2.x + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r2.x + mad r2.x, -r2.x, l(0.240226507), l(0.693147182) + movc r2.x, r3.w, r4.z, r2.x + add r2.y, r2.y, -cb0[162].z + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + exp r2.y, -r2.y + mul r2.y, r2.y, cb0[162].y + lt r3.w, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r3.w, r4.z, r1.y + mul r1.y, r1.y, r2.y + mad r1.y, r2.z, r2.x, r1.y + mad r1.x, -r1.x, r1.z, l(1.000000) + mul r1.x, r0.w, r1.x + mul r1.x, r1.x, r1.y + exp r1.x, -r1.x + min r1.x, r1.x, l(1.000000) + max r1.x, r1.x, cb0[161].w + mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r1.x, r1.y, r1.x + add r1.x, r1.z, r1.x + min r1.x, r1.x, l(1.000000) + imad r5.y, r4.y, r5.x, r4.x + ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) + utof r1.yz, r1.yyzy + mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz + mul r2.xy, r1.yzyy, cb0[165].xyxx + mad r1.y, v0.w, cb0[164].x, cb0[164].y + log r1.y, r1.y + mul r1.y, r1.y, cb0[164].z + div r2.z, r1.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t18.xyzw, s0, l(0.000000) + add r1.y, v0.w, -cb0[166].z + mul_sat r1.y, r1.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r1.y, -r1.x, l(1.000000) + mul r2.xyz, r1.yyyy, cb0[161].xyzx + mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx + mul r1.x, r1.x, r4.w + else + add r1.y, v2.y, -cb0[44].y + mul r1.z, r1.y, cb0[159].z + mul r1.y, r1.y, cb0[162].x + max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r1.z| + exp r4.y, -r1.z + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r1.z + mad r1.z, -r1.z, l(0.240226507), l(0.693147182) + movc r1.z, r4.x, r4.y, r1.z + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r1.z, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r1.x, r0.w, l(1.000000) + add r0.w, -r1.x, l(1.000000) + mul r2.xyz, r0.wwww, cb0[161].xyzx + endif + mul r4.xyz, r1.xxxx, r3.xyzx + mad r0.w, r1.w, r1.w, l(1.000000) + mul r0.w, r0.w, l(0.0596831031) + mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz + mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) + mul r3.w, r2.w, l(12.566371) + sqrt r2.w, r2.w + mul r2.w, r2.w, r3.w + max r2.w, r2.w, l(0.001000) + div r0.w, r0.w, r2.w + mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw + mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) + add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mul r1.yzw, r1.yyzw, r3.xxyz + mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx + mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx +else + mov o0.xyz, r0.xyzx +endif +mov o1.z, l(1.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xF901F0EC.cso b/src/games/endfield/deferred-lighting/0xF901F0EC.cso new file mode 100644 index 0000000000000000000000000000000000000000..e49e28b8933534b3935b54d5add55ae95eb2dd34 GIT binary patch literal 29572 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0.asm new file mode 100644 index 000000000..96446dd9a --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0.asm @@ -0,0 +1,993 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 22:35:08 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[5], immediateIndexed +dcl_constantbuffer CB4[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 25 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t23.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t24.xyzw +mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) +ftou r1.xz, r1.xxzx +ubfe r4.x, l(7), l(3), r1.x +utof r4.x, r4.x +round_ne r1.y, r1.y +ftou r1.y, r1.y +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.y, l(1.000000) +lt r4.y, r5.y, l(0.000000) +ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) +movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) +mul r4.zw, r4.zzzw, r6.xxxy +movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r6.xyz, r2.xxxx, r5.xyzx +and r2.y, r1.y, l(7) +utof r2.y, r2.y +mad r2.y, r2.y, l(0.107142866), l(0.500000) +utof r4.yz, r0.xxyx +mul r5.xz, v0.xxyx, cb0[82].zzwz +mad r7.xy, r5.xzxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r7.zw, r4.yyyz, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r7.zw, r7.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r4.w, r7.zwzz, t1.yzwx, s0, l(0.000000) +mul r8.xyzw, -r7.yyyy, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r7.xxxx, r8.xyzw +mad r7.xyzw, cb0[26].xyzw, r4.wwww, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r4.w, r7.y, cb0[1].z +mad r4.w, cb0[0].z, r7.x, r4.w +mad r4.w, cb0[2].z, r7.z, r4.w +add r4.w, r4.w, cb0[3].z +eq r5.w, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r8.xyz, r5.wwww, r8.xyzx, r9.xyzx +dp3 r5.w, r8.xyzx, r8.xyzx +max r8.w, r5.w, l(9.999999939E-09) +rsq r8.w, r8.w +mul r10.xyz, r8.wwww, r8.xyzx +mul r5.w, r5.w, r8.w +lt r9.w, l(0.000488281250), cb0[234].x +if_nz r9.w + sample_b_indexable(texture2d)(float,float,float,float) r9.w, v1.xyxx, t21.yzwx, s1, cb0[108].x +else + mov r9.w, l(1.000000) +endif +lt r11.xy, l(0.500000, 0.500000, 0.000000, 0.000000), cb0[226].xyxx +if_nz r11.x + add r10.w, |r6.y|, |r6.x| + add r10.w, |r6.z|, r10.w + div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w + mul r11.xzw, |r6.xxyz|, r10.wwww + mul r12.xyzw, r11.xxzz, l(0.000000, 1.000000, 0.707106, 0.000000) + add r12.xyz, r12.zwzz, r12.xxyx + mad r11.xzw, r11.wwww, l(1.000000, 0.000000, 0.000000, 0.000000), r12.xxyz + mul r12.xyz, r7.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r10.w, r12.xyzx, t9.yzwx, s2, l(0.000000) + mad r10.w, r10.w, l(2.000000), l(-1.000000) + mul r11.xzw, r10.wwww, r11.xxzw + mov r10.w, |r6.y| + add r10.w, r10.w, l(-0.700000) + mul_sat r10.w, r10.w, l(4.000000) + mad r12.x, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r12.x + add r12.x, -cb0[229].z, cb0[229].y + mad r10.w, r10.w, r12.x, cb0[229].z + mul r11.xzw, r10.wwww, r11.xxzw +else + mov r11.xzw, l(0,0,0,0) +endif +if_nz r11.y + mul r12.xyz, r6.xyzx, cb0[233].zzzz + mul r13.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r12.xyz, r12.xyzx, cb0[225].xxxx, r13.xyzx + max r10.w, -r6.y, l(0.000000) + min r10.w, r10.w, l(0.900000) + add r10.w, -r10.w, l(1.000000) + mad r2.x, -r5.y, r2.x, l(-0.200000) + mul_sat r2.x, r2.x, l(-10.000000) + mad r5.y, r2.x, l(-2.000000), l(3.000000) + mul r2.x, r2.x, r2.x + mul r2.x, r2.x, r5.y + max r2.x, r2.x, l(0.100000) + min r2.x, r2.x, l(1.000000) + mul r2.x, r2.x, r10.w + mad r12.xyz, r12.xyzx, r2.xxxx, r7.xyzx + add r11.xyz, r11.xzwx, r12.xyzx + mul r12.xyz, r11.yyyy, cb3[1].xyzx + mad r11.xyw, cb3[0].xyxz, r11.xxxx, r12.xyxz + mad r11.xyz, cb3[2].xyzx, r11.zzzz, r11.xywx + add r11.xyz, r11.xyzx, cb3[3].xyzx + mad r12.x, r11.x, l(0.500000), cb3[4].x + mad r2.x, r11.y, l(0.500000), l(0.500000) + add r12.z, -r2.x, cb3[4].y + add r11.xy, r12.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r2.x, r11.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r11.xyxx, t8.xxxx, s4, r2.x +else + mov r2.x, l(1.000000) +endif +mov_sat r5.y, r6.y +add r10.w, l(1.000000), -cb0[230].w +mad r5.y, r5.y, r10.w, cb0[230].w +add r11.xy, r7.xzxx, -cb0[44].xzxx +max r10.w, |r11.y|, |r11.x| +mul r11.x, r5.y, cb0[230].z +mul r11.y, r2.x, r5.y +mul r11.z, l(0.0500000119), cb0[222].w +mad r11.w, -cb0[222].w, l(0.700000), r10.w +div r11.z, l(1.000000, 1.000000, 1.000000, 1.000000), r11.z +mul_sat r11.z, r11.z, r11.w +mad r11.w, r11.z, l(-2.000000), l(3.000000) +mul r11.z, r11.z, r11.z +mul r11.z, r11.z, r11.w +mad r2.x, -r5.y, r2.x, l(1.000000) +mad r2.x, r11.z, r2.x, r11.y +mad r5.y, -cb0[230].z, r5.y, l(1.000000) +mad r2.x, r2.x, r5.y, r11.x +mad r5.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r10.w, r10.w, -cb0[222].w +div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y +mul_sat r5.y, r5.y, r10.w +mad r10.w, r5.y, l(-2.000000), l(3.000000) +mul r5.y, r5.y, r5.y +mul r5.y, r5.y, r10.w +add r10.w, -r2.x, cb0[230].y +mad r2.x, r5.y, r10.w, r2.x +add r2.x, -r2.x, l(1.000000) +mad r2.x, -r9.w, r2.x, l(1.000000) +mad_sat r5.y, r2.z, l(0.300000), l(0.250000) +mul r5.y, r5.y, cb0[222].x +mul r5.y, r2.x, r5.y +mad r5.y, r5.y, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r5.yyyy +min r5.y, r2.z, l(0.300000) +mul r2.x, r2.x, cb0[222].x +mul r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 3.000000) +add r5.y, -r2.z, r5.y +mad r11.z, r2.x, r5.y, r2.z +mul r2.x, r2.y, l(0.080000) +dp3 r2.z, r6.xyzx, r10.xyzx +max r5.y, r2.z, l(0.000000) +mad r12.xyzw, r11.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r9.w, r12.x, r12.x +mul r10.w, r5.y, l(-9.280000) +exp r10.w, r10.w +min r9.w, r9.w, r10.w +mad r9.w, r9.w, r12.x, r12.y +mad r12.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r12.zwzz +ld_indexable(texture2d)(float,float,float,float) r12.z, r0.xyzz, t6.zwxy +lt r0.z, l(0.001000), r12.z +if_nz r0.z + bfi r0.z, l(3), l(2), r1.x, l(0) + mul r1.x, r1.w, l(3.000000) + ftou r1.x, r1.x + bfi r0.z, l(2), l(0), r1.x, r0.z + utof r0.z, r0.z + mul r1.x, r0.z, l(0.0322580636) + ubfe r1.y, l(7), l(3), r1.y + utof r1.y, r1.y + mul r1.y, r1.y, l(0.00787401572) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xzxx, t11.yzwx, s1, l(0.000000) + dp3 r9.w, -r10.xyzx, r6.xyzx + add r9.w, r9.w, r9.w + mad r13.xyz, r6.xyzx, -r9.wwww, -r10.xyzx + dp3 r9.w, -cb2[0].xyzx, r13.xyzx + mad r14.xyz, cb2[0].xyzx, r9.wwww, r13.xyzx + lt r9.w, r9.w, cb2[4].z + dp3 r10.w, r14.xyzx, r14.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r14.xyz, r10.wwww, r14.xyzx + mul r14.xyz, r14.xyzx, cb2[4].yyyy + mad r14.xyz, -cb2[0].xyzx, cb2[4].zzzz, r14.xyzx + dp3 r10.w, r14.xyzx, r14.xyzx + rsq r10.w, r10.w + mul r14.xyz, r10.wwww, r14.xyzx + movc r13.xyz, r9.wwww, r14.xyzx, r13.xyzx + mad r8.xyz, r8.xyzx, r8.wwww, r13.xyzx + dp3 r8.w, r8.xyzx, r8.xyzx + max r8.w, r8.w, l(0.0000610351562) + rsq r8.w, r8.w + mul r8.xyz, r8.wwww, r8.xyzx + dp3 r8.w, r6.xyzx, r13.xyzx + mov_sat r11.x, r8.w + dp3_sat r9.w, r6.xyzx, r8.xyzx + dp3 r10.w, r10.xyzx, r13.xyzx + min r11.y, r5.y, l(1.000000) + mul r11.w, r11.z, r11.z + mul r11.w, r11.w, r11.w + mad r13.x, r9.w, r11.w, -r9.w + mad r9.w, r13.x, r9.w, l(1.000000) + dp3_sat r8.x, r10.xyzx, r8.xyzx + add r8.x, -r8.x, l(1.000000) + mul r8.y, r8.x, r8.x + mul r8.y, r8.y, r8.y + mul r8.z, r8.x, r8.y + add r13.x, -r11.z, l(1.000000) + mad r13.y, -r13.x, l(0.383026), l(-0.0761947036) + mad r13.y, r13.x, r13.y, l(1.049970) + mad r13.x, r13.x, r13.y, l(0.409255) + min r13.x, r13.x, l(0.999000) + add r13.y, -r13.x, l(1.000000) + mad r2.y, -r2.y, l(0.080000), l(1.000000) + mad r2.y, r2.y, l(0.0476190485), r2.x + mov_sat r13.z, -r10.w + mul r13.z, r13.z, r13.z + mad r13.z, r13.z, l(-0.640000), l(1.000000) + mul r13.z, r13.z, r13.z + mad r8.x, -r8.y, r8.x, l(1.000000) + mad r8.x, r2.x, r8.x, r8.z + mul r8.y, r9.w, r9.w + div r8.y, r11.w, r8.y + mad r14.xy, -r11.yxyy, r11.wwww, r11.yxyy + mad r14.xy, r14.xyxx, r11.yxyy, r11.wwww + sqrt r14.xy, r14.xyxx + mul r14.xy, r11.xyxx, r14.xyxx + add r8.z, r14.y, r14.x + add r8.z, r8.z, l(0.000100) + div r8.z, l(0.500000), r8.z + mul r8.y, r8.z, r8.y + mul r8.x, r8.y, r8.x + min r8.x, r8.x, l(2048.000000) + mad r14.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r8.y, r14.xyxx, t10.yxzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r8.z, r14.zwzz, t10.yzxw, s1, l(0.000000) + mul r8.y, r8.z, r8.y + mul r8.y, r13.x, r8.y + div r8.y, r8.y, r13.y + mul r8.z, r2.y, r2.y + mul r8.y, r8.y, r8.z + mad r2.y, -r2.y, r13.y, l(1.000000) + div r2.y, r8.y, r2.y + add r2.y, r2.y, r8.x + add_sat r2.z, r2.z, l(0.200000) + mov_sat r8.x, r10.w + add r8.x, r8.x, l(0.500000) + min r8.x, r8.x, l(1.000000) + mul r8.y, r2.z, r8.x + add_sat r8.z, r10.w, l(1.000000) + mad r2.z, -r2.z, r8.x, l(1.000000) + mad r2.z, r8.z, r2.z, r8.y + mul r2.y, r2.z, r2.y + mul r2.y, r1.y, r2.y + mul r8.xyz, r1.yyyy, r3.xyzx + ubfe r2.z, l(7), l(3), r1.z + utof r2.z, r2.z + mul r2.z, r2.z, l(0.00787401572) + mul r2.y, r2.y, cb2[4].x + max r2.y, r2.y, l(0.000000) + min r2.y, r2.y, l(1000.000000) + mul r2.y, r11.x, r2.y + mad r8.xyz, r8.xyzx, r2.zzzz, r2.yyyy + max r2.y, r3.y, r3.x + max r2.y, r3.z, r2.y + max r2.y, r2.y, l(0.010000) + div r13.xyw, r3.xyxz, r2.yyyy + mul r2.y, r4.x, l(0.00393700786) + mul r13.xyw, r2.yyyy, r13.xyxw + add_sat r2.y, -r8.w, l(0.500000) + ne r2.z, r13.z, l(0.360000) + div r9.w, l(0.360000), r13.z + movc r2.z, r2.z, r9.w, l(1.000000) + mul r2.y, r2.z, r2.y + mad_sat r0.z, r0.z, l(0.0322580636), r8.w + add r0.z, -r11.x, r0.z + mul r11.xyw, r0.zzzz, r3.xyxz + mad r11.xyw, r13.xyxw, r2.yyyy, r11.xyxw + mad r8.xyz, r11.xywx, r1.yyyy, r8.xyzx + mul r8.xyz, r8.xyzx, cb2[1].xyzx + mov r12.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r12.zwzz, t7.xywz, s1, cb0[108].x + add r0.z, -r12.z, l(1.000000) + mad r11.xyw, r8.xyxz, r11.xyxw, -r8.xyxz + mad r8.xyz, r0.zzzz, r11.xywx, r8.xyzx + max r0.z, r1.y, r1.w + add r0.z, -r1.w, r0.z + mad r0.z, r1.x, r0.z, r1.w + mul r1.xyw, r0.zzzz, r8.xyxz +else + mov r1.xyw, l(0,0,0,0) +endif +ne r2.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r2.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r2.y, r0.z, r5.y + mad r8.x, r11.z, l(-16.000000), l(-1.000000) + exp r8.x, r8.x + log r2.y, |r2.y| + mul r2.y, r2.y, r8.x + exp r2.y, r2.y + add r2.y, r0.z, r2.y + add r2.y, r2.y, l(-1.000000) + mov_sat r8.xyz, r2.yyyy + mad r11.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) + mul r11.xyw, r0.zzzz, r11.xyxw + mad r11.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r11.xyxw + add r11.xyw, r11.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) + mul r11.xyw, r0.zzzz, r11.xyxw + mad r11.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r11.xyxw + add r11.xyw, r11.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) + mul r11.xyw, r0.zzzz, r11.xyxw + max r11.xyw, r0.zzzz, r11.xyxw +else + mov r8.xyz, r3.wwww + mov r11.xyw, r3.wwww +endif +mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r13.xyz, r7.xzyx, -r13.xyzx +max r0.z, |r13.y|, |r13.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r2.y, |r13.z|, l(-208.000000) +mul_sat r2.y, r2.y, l(0.031250) +max r0.z, r0.z, r2.y +ne r2.y, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r2.y, r2.y, r3.w +if_nz r2.y + mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r13.xyz, r7.xzyx, -r13.xyzx + max r2.y, |r13.y|, |r13.x| + add r2.y, r2.y, l(-29.000000) + mul_sat r2.y, r2.y, l(0.500000) + add r3.w, |r13.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r2.y, r2.y, r3.w + lt r3.w, r2.y, l(1.000000) + if_nz r3.w + mad r13.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r13.xyzx, cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r14.xyw, r13.xyzx, t15.yzwx, s2, l(0.000000) + add r3.w, -r2.y, l(1.000000) + mul r8.w, l(0.500000), cb0[211].y + mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) + max r8.w, r8.w, r13.y + min r8.w, r9.w, r8.w + mul r13.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t16.xyzw, s1, l(0.000000) + mad r8.w, r15.w, r3.w, r0.z + add r16.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t16.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r14.yyyy, r16.xyzx + mov r16.w, r14.y + mul r16.xyzw, r3.wwww, r16.xyzw + add r13.xyz, r13.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xyz, r13.xyzx, t16.xyzw, s1, l(0.000000) + mad r13.xyz, r13.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r13.xyz, r14.xxxx, r13.xyzx + mov r13.w, r14.x + mul r13.xyzw, r3.wwww, r13.xyzw + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r14.wwww, r15.xyzx + mul r14.xyzw, r3.wwww, r14.xyzw + else + mov r16.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r8.w, r0.z + endif + mad r15.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r15.xyz, r7.xzyx, -r15.xyzx + max r3.w, |r15.y|, |r15.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r9.w, |r15.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r3.w, r3.w, r9.w + lt r9.w, r3.w, l(1.000000) + if_nz r9.w + mad r15.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r15.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) + add r9.w, -r3.w, l(1.000000) + mul r2.y, r2.y, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r15.y + min r9.w, r10.w, r9.w + mul r15.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) + mad r8.w, r18.w, r2.y, r8.w + add r19.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mad r16.xyzw, r19.xyzw, r2.yyyy, r16.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r17.xxxx, r15.xyzx + mov r15.w, r17.x + mad r13.xyzw, r15.xyzw, r2.yyyy, r13.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r15.xyzx + mad r14.xyzw, r17.xyzw, r2.yyyy, r14.xyzw + endif + lt r2.y, l(0.000000), r3.w + if_nz r2.y + mad r15.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r15.xyzx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r17.xyzx + mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r18.xyzx, r15.xyzx + min r15.xyz, r17.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r15.xyzx, t19.yzwx, s2, l(0.000000) + add r2.y, -r0.z, l(1.000000) + mul r2.y, r2.y, r3.w + max r3.w, r18.y, r15.y + min r3.w, r17.y, r3.w + mul r15.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t20.xyzw, s1, l(0.000000) + add r18.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t20.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.yyyy, r18.xyzx + mov r18.w, r19.y + mad r16.xyzw, r18.xyzw, r2.yyyy, r16.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t20.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r19.xxxx, r15.xyzx + mov r15.w, r19.x + mad r13.xyzw, r15.xyzw, r2.yyyy, r13.xyzw + mad r15.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r15.xyzx + mad r14.xyzw, r19.xyzw, r2.yyyy, r14.xyzw + mad r8.w, r17.w, r2.y, r8.w + endif + mad_sat r2.y, r8.w, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r2.y + add r0.z, r0.z, r2.y + mul r15.y, r0.z, l(0.500000) +else + mov r16.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r17.xyzw, r15.yyyx, cb0[213].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[213].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r14.xyzw, r14.xyzw, r17.xyzw +mul r17.xyzw, r15.yyyx, cb0[214].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[214].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r13.xyzw, r13.xyzw, r17.xyzw +mul r17.xyzw, r15.yyyx, cb0[215].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[215].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r15.xyzw, r16.xyzw, r17.xyzw +ge r12.zw, r5.xxxz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r12.w, r12.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r16.xyzw, r5.xzxx, t14.xyzw, s1, l(0.000000) + lt r17.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r16.xyzw| + or r5.xz, r17.zzwz, r17.xxyx + or r0.z, r5.z, r5.x + if_nz r0.z + dp3 r0.z, r16.yzwy, r16.yzwy + sqrt r0.z, r0.z + mov r5.x, l(1.000000) + mov r5.z, r0.z + mov r2.y, l(0) + loop + ge r3.w, l(4.600000), r5.z + breakc_nz r3.w + iadd r3.w, r2.y, l(1) + mul r12.zw, r5.xxxz, l(0.000000, 0.000000, 0.500000, 0.500000) + mov r5.xz, r12.zzwz + mov r2.y, r3.w + continue + endloop + mul r16.xyzw, r5.xxxx, r16.xyzw + dp3 r0.z, r16.yzwy, r16.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb4[3].x, cb4[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r17.x, r0.z, l(0.00390625000) + mov r17.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r5.xz, r17.xyxx, t13.xzyw, s1, l(0.000000) + mad r5.xz, r5.xxzx, cb4[2].xxyx, cb4[2].zzwz + mul r17.x, r5.x, l(3.54490781) + mul r17.yzw, r5.zzzz, r16.yyzw + mul r0.z, r16.x, l(0.406976730) + exp r0.z, r0.z + mul r16.xyzw, r0.zzzz, r17.xyzw + mov r17.xyzw, r16.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r2.y + breakc_nz r3.w + mul r18.xyzw, r17.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r18.xyzw, r17.xyzw + dp2 r5.x, r18.yxyy, r17.xyxx + dp2 r5.z, r18.zxzz, r17.xzxx + dp2 r8.w, r18.wxww, r17.xwxx + iadd r9.w, r0.z, l(1) + mov r17.x, r3.w + mov r17.yz, r5.xxzx + mov r17.w, r8.w + mov r0.z, r9.w + continue + endloop + mul r16.xyzw, r17.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r17.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r16.xyzw, r17.xyzw + dp2 r2.y, r16.yxyy, r17.xyxx + dp2 r3.w, r16.zxzz, r17.xzxx + dp2 r5.x, r16.wxww, r17.xwxx + mul r17.xyzw, r13.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r5.z, r16.xyzw, r17.xyzw + dp2 r8.w, r16.yxyy, r17.xyxx + dp2 r9.w, r16.zxzz, r17.xzxx + dp2 r10.w, r16.wxww, r17.xwxx + mul r17.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r12.z, r16.xyzw, r17.xyzw + dp2 r12.w, r16.yxyy, r17.xyxx + dp2 r16.y, r16.zxzz, r17.xzxx + dp2 r16.x, r16.wxww, r17.xwxx + mul r14.w, r0.z, l(0.886226952) + mul r14.x, r5.x, l(-1.02332675) + mul r14.y, r2.y, l(-1.02332675) + mul r14.z, r3.w, l(1.02332675) + mul r13.w, r5.z, l(0.886226952) + mul r13.x, r10.w, l(-1.02332675) + mul r13.y, r8.w, l(-1.02332675) + mul r13.z, r9.w, l(1.02332675) + mul r15.yw, r12.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r15.xz, r16.xxyx, l(-1.02332675, 0.000000, 1.02332675, 0.000000) + endif +endif +mov r6.w, l(1.000000) +dp4 r16.x, r14.xyzw, r6.xyzw +dp4 r16.y, r13.xyzw, r6.xyzw +dp4 r16.z, r15.xyzw, r6.xyzw +max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +dp3 r0.z, -r10.xyzx, r6.xyzx +add r0.z, r0.z, r0.z +mad r17.xyz, r6.xyzx, -r0.zzzz, -r10.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r2.y, r11.z, l(0.001000) +log r2.y, r2.y +mad r2.y, -r2.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r2.y +mul r5.xz, r4.yyzy, cb1[0].wwww +round_ni r5.xz, r5.xxzx +add r2.y, |r4.w|, -cb1[2].y +round_ni r2.y, r2.y +add r3.w, l(-1.000000), cb1[1].x +max r8.w, r2.y, l(0.000000) +min r3.w, r3.w, r8.w +ge r2.y, r3.w, r2.y +mad r5.x, r5.z, cb1[0].x, r5.x +ftoi r5.x, r5.x +iadd r5.x, r5.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.x, r5.x, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r5.x +and r2.y, r2.y, r3.w +mul r18.xyz, r16.xyzx, cb0[111].xxxx +dp3 r3.w, r18.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r18.xyz, l(0,0,0,0) +mov r5.x, l(1.000000) +mov r5.z, r2.y +mov r8.w, l(0) +loop + lt r9.w, l(0.010000), r5.x + ine r10.w, r5.z, l(0) + and r10.w, r9.w, r10.w + if_nz r10.w + firstbit_lo r10.w, r5.z + ishl r11.z, l(1), r10.w + xor r5.z, r5.z, r11.z + ishl r10.w, r10.w, l(3) + dp4 r19.x, cb1[r10.w + 6].xyzw, r7.xyzw + dp4 r19.y, cb1[r10.w + 7].xyzw, r7.xyzw + dp4 r19.z, cb1[r10.w + 8].xyzw, r7.xyzw + ge r20.xyz, cb1[r10.w + 5].xyzx, |r19.xyzx| + and r11.z, r20.y, r20.x + and r11.z, r20.z, r11.z + if_nz r11.z + mul r11.z, l(0.100000), cb1[r10.w + 5].x + mul r20.xyz, |r19.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r12.zw, r20.xxxy, r20.xxxy + add r20.xyw, -|r19.xyxz|, cb1[r10.w + 5].xyxz + mul r20.xyw, r20.xyxw, cb1[r10.w + 9].xyxz + eq r16.w, l(1.000000), cb1[r10.w + 10].x + if_nz r16.w + dp3 r21.x, cb1[r10.w + 6].xyzx, r17.xyzx + dp3 r21.y, cb1[r10.w + 7].xyzx, r17.xyzx + dp3 r21.z, cb1[r10.w + 8].xyzx, r17.xyzx + add r22.xyz, -r19.xyzx, cb1[r10.w + 5].xyzx + div r22.xyz, r22.xyzx, r21.xyzx + add r23.xyz, -r19.xyzx, -cb1[r10.w + 5].xyzx + div r23.xyz, r23.xyzx, r21.xyzx + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + movc r22.xyz, r24.xyzx, r22.xyzx, r23.xyzx + min r16.w, r22.y, r22.x + min r16.w, r22.z, r16.w + mad r19.xyz, r21.xyzx, r16.wwww, r19.xyzx + else + mov r19.xyz, r17.xyzx + endif + dp3 r16.w, r19.xyzx, r19.xyzx + rsq r16.w, r16.w + mul r19.xyz, r16.wwww, r19.xyzx + lt r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + lt r22.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r21.xyz, -r21.xyzx, r22.xyzx + itof r21.xyz, r21.xyzx + dp3 r16.w, r19.xyzx, r21.xyzx + div r19.xyz, r19.xyzx, r16.wwww + lt r16.w, r19.z, l(0.000000) + add r19.zw, -|r19.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r19.zw, r19.zzzw, r21.xxxy + movc r19.xy, r16.wwww, r19.zwzz, r19.xyxx + dp4 r16.w, cb1[r10.w + 4].xyzw, r6.xyzw + max r16.w, r16.w, l(0.000000) + max r16.w, r16.w, l(0.000100) + min r17.w, r20.w, r20.y + min r17.w, r17.w, r20.x + add r12.z, r12.w, r12.z + mad r12.z, r20.z, r20.z, r12.z + mad r11.z, r11.z, r11.z, -r12.z + mul r11.z, r11.z, cb1[r10.w + 9].x + mul r11.z, r11.z, cb1[r10.w + 9].x + add r12.z, l(1.000000), -cb1[r10.w + 10].y + mul r11.z, r11.z, r12.z + mul r11.z, r11.z, l(100.000000) + mad_sat r11.z, r17.w, cb1[r10.w + 10].y, r11.z + mul r12.z, r11.z, cb1[r10.w + 10].w + mad r19.xy, r19.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r19.xy, r19.xyxx, cb1[1].wwww, cb1[2].wwww + mov r19.z, cb1[r10.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r19.xyz, r19.xyzx, t5.xyzw, s3, r0.z + mul r19.xyz, r19.xyzx, cb1[r10.w + 9].wwww + div r12.w, r3.w, r16.w + min r12.w, |r12.w|, l(1.000000) + mad r12.w, r12.w, l(2.000000), r3.w + add r16.w, r16.w, l(2.000000) + div r12.w, r12.w, r16.w + add r12.w, r12.w, l(-1.000000) + mad r12.w, r12.w, cb0[112].w, l(1.000000) + mul r19.xyz, r12.wwww, r19.xyzx + mul r19.xyz, r12.zzzz, r19.xyzx + mad r18.xyz, r19.xyzx, r5.xxxx, r18.xyzx + mad r10.w, -r11.z, cb1[r10.w + 10].w, l(1.000000) + mul r5.x, r5.x, r10.w + endif + mov r8.w, l(-1) + continue + else + mov r8.w, r9.w + break + endif + mov r8.w, r9.w +endloop +if_nz r8.w + dp3 r2.y, r17.xyzx, r17.xyzx + rsq r2.y, r2.y + mul r7.xzw, r2.yyyy, r17.xxyz + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r7.xzwx + lt r19.xyz, r7.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r19.xyzx + itof r17.xyz, r17.xyzx + dp3 r2.y, r7.xzwx, r17.xyzx + div r7.xzw, r7.xxzw, r2.yyyy + lt r2.y, r7.w, l(0.000000) + add r12.zw, -|r7.zzzx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r12.zw, r12.zzzw, r17.xxxy + movc r7.xz, r2.yyyy, r12.zzwz, r7.xxzx + dp4 r2.y, cb1[3].xyzw, r6.xyzw + max r2.y, r2.y, l(0.000000) + max r2.y, r2.y, l(0.000100) + mad r7.xz, r7.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) + mad r17.xy, r7.xzxx, cb1[1].wwww, cb1[2].wwww + mov r17.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r7.xzw, r17.xyzx, t5.xwyz, s3, r0.z + div r0.z, r3.w, r2.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r2.y, r2.y, l(2.000000) + div r0.z, r0.z, r2.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r7.xzw, r0.zzzz, r7.xxzw + mad r18.xyz, r7.xzwx, r5.xxxx, r18.xyzx +endif +mul r7.xzw, r18.xxyz, cb0[112].zzzz +mul r7.xzw, r7.xxzw, cb0[111].yyyy +if_nz r2.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r17.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r2.y, -r0.z, l(1.000000) + mul r18.xyz, r2.yyyy, r7.xzwx + mad r7.xzw, r17.xxyz, r0.zzzz, r18.xxyz +endif +mul r16.xyz, r3.xyzx, r16.xyzx +mul r16.xyz, r16.xyzx, cb0[111].xxxx +mad r0.z, r2.x, r12.x, r12.y +mul r2.xyz, r0.zzzz, r7.xzwx +mul r2.xyz, r8.xyzx, r2.xyzx +mad r2.xyz, r16.xyzx, r11.xywx, r2.xyzx +mul r6.xyzw, r6.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r8.x, r14.xyzw, r6.xyzw +dp4 r8.y, r13.xyzw, r6.xyzw +dp4 r8.z, r15.xyzw, r6.xyzw +max r6.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mul r6.xyz, r11.xywx, r6.xyzx +max r0.z, r3.y, r3.x +max r0.z, r3.z, r0.z +max r0.z, r0.z, l(0.010000) +div r3.xyz, r3.xyzx, r0.zzzz +mul r3.xyz, r3.xyzx, r6.xyzx +mul r0.z, r4.x, l(0.00787401572) +min r3.w, r5.y, l(1.000000) +bfi r1.z, l(3), l(2), r1.z, l(0) +ftou r2.w, r2.w +bfi r1.z, l(2), l(0), r2.w, r1.z +utof r1.z, r1.z +mul r1.z, r1.z, l(0.0322580636) +mad r0.z, r0.z, r3.w, r1.z +mul r3.xyz, r0.zzzz, r3.xyzx +mad r2.xyz, r3.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r2.xyzx +add r1.xyz, r1.xywx, r2.xyzx +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r5.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r7.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r10.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r10.xyzx, -r9.xyzx + add r2.w, r7.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w + mul r3.w, r0.x, r3.z + mad r4.x, r3.w, r2.w, cb0[44].y + mad r2.w, -r3.w, r2.w, r2.w + mul r3.w, r2.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.x, r4.x, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.y, l(5.960464478E-08), |r3.w| + exp r5.z, -r3.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.y, r5.z, r3.w + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r5.y, l(5.960464478E-08), |r2.w| + exp r5.z, -r2.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r5.y, r5.z, r2.w + mul r2.w, r2.w, r4.x + mad r2.w, r5.x, r3.w, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r5.w, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r5.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r4.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t12.xyzw, s1, l(0.000000) + add r0.y, |r4.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r5.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r5.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r0.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad o0.xyz, r1.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +endif +// === End Fog Modification === +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0_original_backup.asm new file mode 100644 index 000000000..7c374cb42 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0_original_backup.asm @@ -0,0 +1,973 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sat Jan 31 22:35:08 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[5], immediateIndexed +dcl_constantbuffer CB4[4], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 25 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t23.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t24.xyzw +mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) +ftou r1.xz, r1.xxzx +ubfe r4.x, l(7), l(3), r1.x +utof r4.x, r4.x +round_ne r1.y, r1.y +ftou r1.y, r1.y +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.y, l(1.000000) +lt r4.y, r5.y, l(0.000000) +ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) +movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) +mul r4.zw, r4.zzzw, r6.xxxy +movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r6.xyz, r2.xxxx, r5.xyzx +and r2.y, r1.y, l(7) +utof r2.y, r2.y +mad r2.y, r2.y, l(0.107142866), l(0.500000) +utof r4.yz, r0.xxyx +mul r5.xz, v0.xxyx, cb0[82].zzwz +mad r7.xy, r5.xzxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r7.zw, r4.yyyz, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r7.zw, r7.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r4.w, r7.zwzz, t1.yzwx, s0, l(0.000000) +mul r8.xyzw, -r7.yyyy, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r7.xxxx, r8.xyzw +mad r7.xyzw, cb0[26].xyzw, r4.wwww, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r4.w, r7.y, cb0[1].z +mad r4.w, cb0[0].z, r7.x, r4.w +mad r4.w, cb0[2].z, r7.z, r4.w +add r4.w, r4.w, cb0[3].z +eq r5.w, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r8.xyz, r5.wwww, r8.xyzx, r9.xyzx +dp3 r5.w, r8.xyzx, r8.xyzx +max r8.w, r5.w, l(9.999999939E-09) +rsq r8.w, r8.w +mul r10.xyz, r8.wwww, r8.xyzx +mul r5.w, r5.w, r8.w +lt r9.w, l(0.000488281250), cb0[234].x +if_nz r9.w + sample_b_indexable(texture2d)(float,float,float,float) r9.w, v1.xyxx, t21.yzwx, s1, cb0[108].x +else + mov r9.w, l(1.000000) +endif +lt r11.xy, l(0.500000, 0.500000, 0.000000, 0.000000), cb0[226].xyxx +if_nz r11.x + add r10.w, |r6.y|, |r6.x| + add r10.w, |r6.z|, r10.w + div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w + mul r11.xzw, |r6.xxyz|, r10.wwww + mul r12.xyzw, r11.xxzz, l(0.000000, 1.000000, 0.707106, 0.000000) + add r12.xyz, r12.zwzz, r12.xxyx + mad r11.xzw, r11.wwww, l(1.000000, 0.000000, 0.000000, 0.000000), r12.xxyz + mul r12.xyz, r7.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r10.w, r12.xyzx, t9.yzwx, s2, l(0.000000) + mad r10.w, r10.w, l(2.000000), l(-1.000000) + mul r11.xzw, r10.wwww, r11.xxzw + mov r10.w, |r6.y| + add r10.w, r10.w, l(-0.700000) + mul_sat r10.w, r10.w, l(4.000000) + mad r12.x, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r12.x + add r12.x, -cb0[229].z, cb0[229].y + mad r10.w, r10.w, r12.x, cb0[229].z + mul r11.xzw, r10.wwww, r11.xxzw +else + mov r11.xzw, l(0,0,0,0) +endif +if_nz r11.y + mul r12.xyz, r6.xyzx, cb0[233].zzzz + mul r13.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r12.xyz, r12.xyzx, cb0[225].xxxx, r13.xyzx + max r10.w, -r6.y, l(0.000000) + min r10.w, r10.w, l(0.900000) + add r10.w, -r10.w, l(1.000000) + mad r2.x, -r5.y, r2.x, l(-0.200000) + mul_sat r2.x, r2.x, l(-10.000000) + mad r5.y, r2.x, l(-2.000000), l(3.000000) + mul r2.x, r2.x, r2.x + mul r2.x, r2.x, r5.y + max r2.x, r2.x, l(0.100000) + min r2.x, r2.x, l(1.000000) + mul r2.x, r2.x, r10.w + mad r12.xyz, r12.xyzx, r2.xxxx, r7.xyzx + add r11.xyz, r11.xzwx, r12.xyzx + mul r12.xyz, r11.yyyy, cb3[1].xyzx + mad r11.xyw, cb3[0].xyxz, r11.xxxx, r12.xyxz + mad r11.xyz, cb3[2].xyzx, r11.zzzz, r11.xywx + add r11.xyz, r11.xyzx, cb3[3].xyzx + mad r12.x, r11.x, l(0.500000), cb3[4].x + mad r2.x, r11.y, l(0.500000), l(0.500000) + add r12.z, -r2.x, cb3[4].y + add r11.xy, r12.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r2.x, r11.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r11.xyxx, t8.xxxx, s4, r2.x +else + mov r2.x, l(1.000000) +endif +mov_sat r5.y, r6.y +add r10.w, l(1.000000), -cb0[230].w +mad r5.y, r5.y, r10.w, cb0[230].w +add r11.xy, r7.xzxx, -cb0[44].xzxx +max r10.w, |r11.y|, |r11.x| +mul r11.x, r5.y, cb0[230].z +mul r11.y, r2.x, r5.y +mul r11.z, l(0.0500000119), cb0[222].w +mad r11.w, -cb0[222].w, l(0.700000), r10.w +div r11.z, l(1.000000, 1.000000, 1.000000, 1.000000), r11.z +mul_sat r11.z, r11.z, r11.w +mad r11.w, r11.z, l(-2.000000), l(3.000000) +mul r11.z, r11.z, r11.z +mul r11.z, r11.z, r11.w +mad r2.x, -r5.y, r2.x, l(1.000000) +mad r2.x, r11.z, r2.x, r11.y +mad r5.y, -cb0[230].z, r5.y, l(1.000000) +mad r2.x, r2.x, r5.y, r11.x +mad r5.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r10.w, r10.w, -cb0[222].w +div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y +mul_sat r5.y, r5.y, r10.w +mad r10.w, r5.y, l(-2.000000), l(3.000000) +mul r5.y, r5.y, r5.y +mul r5.y, r5.y, r10.w +add r10.w, -r2.x, cb0[230].y +mad r2.x, r5.y, r10.w, r2.x +add r2.x, -r2.x, l(1.000000) +mad r2.x, -r9.w, r2.x, l(1.000000) +mad_sat r5.y, r2.z, l(0.300000), l(0.250000) +mul r5.y, r5.y, cb0[222].x +mul r5.y, r2.x, r5.y +mad r5.y, r5.y, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r5.yyyy +min r5.y, r2.z, l(0.300000) +mul r2.x, r2.x, cb0[222].x +mul r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 3.000000) +add r5.y, -r2.z, r5.y +mad r11.z, r2.x, r5.y, r2.z +mul r2.x, r2.y, l(0.080000) +dp3 r2.z, r6.xyzx, r10.xyzx +max r5.y, r2.z, l(0.000000) +mad r12.xyzw, r11.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r9.w, r12.x, r12.x +mul r10.w, r5.y, l(-9.280000) +exp r10.w, r10.w +min r9.w, r9.w, r10.w +mad r9.w, r9.w, r12.x, r12.y +mad r12.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r12.zwzz +ld_indexable(texture2d)(float,float,float,float) r12.z, r0.xyzz, t6.zwxy +lt r0.z, l(0.001000), r12.z +if_nz r0.z + bfi r0.z, l(3), l(2), r1.x, l(0) + mul r1.x, r1.w, l(3.000000) + ftou r1.x, r1.x + bfi r0.z, l(2), l(0), r1.x, r0.z + utof r0.z, r0.z + mul r1.x, r0.z, l(0.0322580636) + ubfe r1.y, l(7), l(3), r1.y + utof r1.y, r1.y + mul r1.y, r1.y, l(0.00787401572) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xzxx, t11.yzwx, s1, l(0.000000) + dp3 r9.w, -r10.xyzx, r6.xyzx + add r9.w, r9.w, r9.w + mad r13.xyz, r6.xyzx, -r9.wwww, -r10.xyzx + dp3 r9.w, -cb2[0].xyzx, r13.xyzx + mad r14.xyz, cb2[0].xyzx, r9.wwww, r13.xyzx + lt r9.w, r9.w, cb2[4].z + dp3 r10.w, r14.xyzx, r14.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r14.xyz, r10.wwww, r14.xyzx + mul r14.xyz, r14.xyzx, cb2[4].yyyy + mad r14.xyz, -cb2[0].xyzx, cb2[4].zzzz, r14.xyzx + dp3 r10.w, r14.xyzx, r14.xyzx + rsq r10.w, r10.w + mul r14.xyz, r10.wwww, r14.xyzx + movc r13.xyz, r9.wwww, r14.xyzx, r13.xyzx + mad r8.xyz, r8.xyzx, r8.wwww, r13.xyzx + dp3 r8.w, r8.xyzx, r8.xyzx + max r8.w, r8.w, l(0.0000610351562) + rsq r8.w, r8.w + mul r8.xyz, r8.wwww, r8.xyzx + dp3 r8.w, r6.xyzx, r13.xyzx + mov_sat r11.x, r8.w + dp3_sat r9.w, r6.xyzx, r8.xyzx + dp3 r10.w, r10.xyzx, r13.xyzx + min r11.y, r5.y, l(1.000000) + mul r11.w, r11.z, r11.z + mul r11.w, r11.w, r11.w + mad r13.x, r9.w, r11.w, -r9.w + mad r9.w, r13.x, r9.w, l(1.000000) + dp3_sat r8.x, r10.xyzx, r8.xyzx + add r8.x, -r8.x, l(1.000000) + mul r8.y, r8.x, r8.x + mul r8.y, r8.y, r8.y + mul r8.z, r8.x, r8.y + add r13.x, -r11.z, l(1.000000) + mad r13.y, -r13.x, l(0.383026), l(-0.0761947036) + mad r13.y, r13.x, r13.y, l(1.049970) + mad r13.x, r13.x, r13.y, l(0.409255) + min r13.x, r13.x, l(0.999000) + add r13.y, -r13.x, l(1.000000) + mad r2.y, -r2.y, l(0.080000), l(1.000000) + mad r2.y, r2.y, l(0.0476190485), r2.x + mov_sat r13.z, -r10.w + mul r13.z, r13.z, r13.z + mad r13.z, r13.z, l(-0.640000), l(1.000000) + mul r13.z, r13.z, r13.z + mad r8.x, -r8.y, r8.x, l(1.000000) + mad r8.x, r2.x, r8.x, r8.z + mul r8.y, r9.w, r9.w + div r8.y, r11.w, r8.y + mad r14.xy, -r11.yxyy, r11.wwww, r11.yxyy + mad r14.xy, r14.xyxx, r11.yxyy, r11.wwww + sqrt r14.xy, r14.xyxx + mul r14.xy, r11.xyxx, r14.xyxx + add r8.z, r14.y, r14.x + add r8.z, r8.z, l(0.000100) + div r8.z, l(0.500000), r8.z + mul r8.y, r8.z, r8.y + mul r8.x, r8.y, r8.x + min r8.x, r8.x, l(2048.000000) + mad r14.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r8.y, r14.xyxx, t10.yxzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r8.z, r14.zwzz, t10.yzxw, s1, l(0.000000) + mul r8.y, r8.z, r8.y + mul r8.y, r13.x, r8.y + div r8.y, r8.y, r13.y + mul r8.z, r2.y, r2.y + mul r8.y, r8.y, r8.z + mad r2.y, -r2.y, r13.y, l(1.000000) + div r2.y, r8.y, r2.y + add r2.y, r2.y, r8.x + add_sat r2.z, r2.z, l(0.200000) + mov_sat r8.x, r10.w + add r8.x, r8.x, l(0.500000) + min r8.x, r8.x, l(1.000000) + mul r8.y, r2.z, r8.x + add_sat r8.z, r10.w, l(1.000000) + mad r2.z, -r2.z, r8.x, l(1.000000) + mad r2.z, r8.z, r2.z, r8.y + mul r2.y, r2.z, r2.y + mul r2.y, r1.y, r2.y + mul r8.xyz, r1.yyyy, r3.xyzx + ubfe r2.z, l(7), l(3), r1.z + utof r2.z, r2.z + mul r2.z, r2.z, l(0.00787401572) + mul r2.y, r2.y, cb2[4].x + max r2.y, r2.y, l(0.000000) + min r2.y, r2.y, l(1000.000000) + mul r2.y, r11.x, r2.y + mad r8.xyz, r8.xyzx, r2.zzzz, r2.yyyy + max r2.y, r3.y, r3.x + max r2.y, r3.z, r2.y + max r2.y, r2.y, l(0.010000) + div r13.xyw, r3.xyxz, r2.yyyy + mul r2.y, r4.x, l(0.00393700786) + mul r13.xyw, r2.yyyy, r13.xyxw + add_sat r2.y, -r8.w, l(0.500000) + ne r2.z, r13.z, l(0.360000) + div r9.w, l(0.360000), r13.z + movc r2.z, r2.z, r9.w, l(1.000000) + mul r2.y, r2.z, r2.y + mad_sat r0.z, r0.z, l(0.0322580636), r8.w + add r0.z, -r11.x, r0.z + mul r11.xyw, r0.zzzz, r3.xyxz + mad r11.xyw, r13.xyxw, r2.yyyy, r11.xyxw + mad r8.xyz, r11.xywx, r1.yyyy, r8.xyzx + mul r8.xyz, r8.xyzx, cb2[1].xyzx + mov r12.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r12.zwzz, t7.xywz, s1, cb0[108].x + add r0.z, -r12.z, l(1.000000) + mad r11.xyw, r8.xyxz, r11.xyxw, -r8.xyxz + mad r8.xyz, r0.zzzz, r11.xywx, r8.xyzx + max r0.z, r1.y, r1.w + add r0.z, -r1.w, r0.z + mad r0.z, r1.x, r0.z, r1.w + mul r1.xyw, r0.zzzz, r8.xyxz +else + mov r1.xyw, l(0,0,0,0) +endif +ne r2.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r2.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r2.y, r0.z, r5.y + mad r8.x, r11.z, l(-16.000000), l(-1.000000) + exp r8.x, r8.x + log r2.y, |r2.y| + mul r2.y, r2.y, r8.x + exp r2.y, r2.y + add r2.y, r0.z, r2.y + add r2.y, r2.y, l(-1.000000) + mov_sat r8.xyz, r2.yyyy + mad r11.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) + mul r11.xyw, r0.zzzz, r11.xyxw + mad r11.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r11.xyxw + add r11.xyw, r11.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) + mul r11.xyw, r0.zzzz, r11.xyxw + mad r11.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r11.xyxw + add r11.xyw, r11.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) + mul r11.xyw, r0.zzzz, r11.xyxw + max r11.xyw, r0.zzzz, r11.xyxw +else + mov r8.xyz, r3.wwww + mov r11.xyw, r3.wwww +endif +mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r13.xyz, r7.xzyx, -r13.xyzx +max r0.z, |r13.y|, |r13.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r2.y, |r13.z|, l(-208.000000) +mul_sat r2.y, r2.y, l(0.031250) +max r0.z, r0.z, r2.y +ne r2.y, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r2.y, r2.y, r3.w +if_nz r2.y + mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r13.xyz, r7.xzyx, -r13.xyzx + max r2.y, |r13.y|, |r13.x| + add r2.y, r2.y, l(-29.000000) + mul_sat r2.y, r2.y, l(0.500000) + add r3.w, |r13.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r2.y, r2.y, r3.w + lt r3.w, r2.y, l(1.000000) + if_nz r3.w + mad r13.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r13.xyzx, cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r14.xyw, r13.xyzx, t15.yzwx, s2, l(0.000000) + add r3.w, -r2.y, l(1.000000) + mul r8.w, l(0.500000), cb0[211].y + mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) + max r8.w, r8.w, r13.y + min r8.w, r9.w, r8.w + mul r13.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t16.xyzw, s1, l(0.000000) + mad r8.w, r15.w, r3.w, r0.z + add r16.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t16.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r14.yyyy, r16.xyzx + mov r16.w, r14.y + mul r16.xyzw, r3.wwww, r16.xyzw + add r13.xyz, r13.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xyz, r13.xyzx, t16.xyzw, s1, l(0.000000) + mad r13.xyz, r13.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r13.xyz, r14.xxxx, r13.xyzx + mov r13.w, r14.x + mul r13.xyzw, r3.wwww, r13.xyzw + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r14.wwww, r15.xyzx + mul r14.xyzw, r3.wwww, r14.xyzw + else + mov r16.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r8.w, r0.z + endif + mad r15.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r15.xyz, r7.xzyx, -r15.xyzx + max r3.w, |r15.y|, |r15.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r9.w, |r15.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r3.w, r3.w, r9.w + lt r9.w, r3.w, l(1.000000) + if_nz r9.w + mad r15.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r15.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) + add r9.w, -r3.w, l(1.000000) + mul r2.y, r2.y, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r15.y + min r9.w, r10.w, r9.w + mul r15.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) + mad r8.w, r18.w, r2.y, r8.w + add r19.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mad r16.xyzw, r19.xyzw, r2.yyyy, r16.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r17.xxxx, r15.xyzx + mov r15.w, r17.x + mad r13.xyzw, r15.xyzw, r2.yyyy, r13.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r15.xyzx + mad r14.xyzw, r17.xyzw, r2.yyyy, r14.xyzw + endif + lt r2.y, l(0.000000), r3.w + if_nz r2.y + mad r15.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r15.xyzx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r17.xyzx + mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r18.xyzx, r15.xyzx + min r15.xyz, r17.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r15.xyzx, t19.yzwx, s2, l(0.000000) + add r2.y, -r0.z, l(1.000000) + mul r2.y, r2.y, r3.w + max r3.w, r18.y, r15.y + min r3.w, r17.y, r3.w + mul r15.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t20.xyzw, s1, l(0.000000) + add r18.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t20.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.yyyy, r18.xyzx + mov r18.w, r19.y + mad r16.xyzw, r18.xyzw, r2.yyyy, r16.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t20.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r19.xxxx, r15.xyzx + mov r15.w, r19.x + mad r13.xyzw, r15.xyzw, r2.yyyy, r13.xyzw + mad r15.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r15.xyzx + mad r14.xyzw, r19.xyzw, r2.yyyy, r14.xyzw + mad r8.w, r17.w, r2.y, r8.w + endif + mad_sat r2.y, r8.w, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r2.y + add r0.z, r0.z, r2.y + mul r15.y, r0.z, l(0.500000) +else + mov r16.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r17.xyzw, r15.yyyx, cb0[213].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[213].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r14.xyzw, r14.xyzw, r17.xyzw +mul r17.xyzw, r15.yyyx, cb0[214].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[214].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r13.xyzw, r13.xyzw, r17.xyzw +mul r17.xyzw, r15.yyyx, cb0[215].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r12.zw, r15.yyyx, cb0[215].wwwy +mad r17.w, r12.w, l(0.375000), r12.z +add r15.xyzw, r16.xyzw, r17.xyzw +ge r12.zw, r5.xxxz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r12.w, r12.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r16.xyzw, r5.xzxx, t14.xyzw, s1, l(0.000000) + lt r17.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r16.xyzw| + or r5.xz, r17.zzwz, r17.xxyx + or r0.z, r5.z, r5.x + if_nz r0.z + dp3 r0.z, r16.yzwy, r16.yzwy + sqrt r0.z, r0.z + mov r5.x, l(1.000000) + mov r5.z, r0.z + mov r2.y, l(0) + loop + ge r3.w, l(4.600000), r5.z + breakc_nz r3.w + iadd r3.w, r2.y, l(1) + mul r12.zw, r5.xxxz, l(0.000000, 0.000000, 0.500000, 0.500000) + mov r5.xz, r12.zzwz + mov r2.y, r3.w + continue + endloop + mul r16.xyzw, r5.xxxx, r16.xyzw + dp3 r0.z, r16.yzwy, r16.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb4[3].x, cb4[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r17.x, r0.z, l(0.00390625000) + mov r17.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r5.xz, r17.xyxx, t13.xzyw, s1, l(0.000000) + mad r5.xz, r5.xxzx, cb4[2].xxyx, cb4[2].zzwz + mul r17.x, r5.x, l(3.54490781) + mul r17.yzw, r5.zzzz, r16.yyzw + mul r0.z, r16.x, l(0.406976730) + exp r0.z, r0.z + mul r16.xyzw, r0.zzzz, r17.xyzw + mov r17.xyzw, r16.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r2.y + breakc_nz r3.w + mul r18.xyzw, r17.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r18.xyzw, r17.xyzw + dp2 r5.x, r18.yxyy, r17.xyxx + dp2 r5.z, r18.zxzz, r17.xzxx + dp2 r8.w, r18.wxww, r17.xwxx + iadd r9.w, r0.z, l(1) + mov r17.x, r3.w + mov r17.yz, r5.xxzx + mov r17.w, r8.w + mov r0.z, r9.w + continue + endloop + mul r16.xyzw, r17.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r17.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r16.xyzw, r17.xyzw + dp2 r2.y, r16.yxyy, r17.xyxx + dp2 r3.w, r16.zxzz, r17.xzxx + dp2 r5.x, r16.wxww, r17.xwxx + mul r17.xyzw, r13.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r5.z, r16.xyzw, r17.xyzw + dp2 r8.w, r16.yxyy, r17.xyxx + dp2 r9.w, r16.zxzz, r17.xzxx + dp2 r10.w, r16.wxww, r17.xwxx + mul r17.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r12.z, r16.xyzw, r17.xyzw + dp2 r12.w, r16.yxyy, r17.xyxx + dp2 r16.y, r16.zxzz, r17.xzxx + dp2 r16.x, r16.wxww, r17.xwxx + mul r14.w, r0.z, l(0.886226952) + mul r14.x, r5.x, l(-1.02332675) + mul r14.y, r2.y, l(-1.02332675) + mul r14.z, r3.w, l(1.02332675) + mul r13.w, r5.z, l(0.886226952) + mul r13.x, r10.w, l(-1.02332675) + mul r13.y, r8.w, l(-1.02332675) + mul r13.z, r9.w, l(1.02332675) + mul r15.yw, r12.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r15.xz, r16.xxyx, l(-1.02332675, 0.000000, 1.02332675, 0.000000) + endif +endif +mov r6.w, l(1.000000) +dp4 r16.x, r14.xyzw, r6.xyzw +dp4 r16.y, r13.xyzw, r6.xyzw +dp4 r16.z, r15.xyzw, r6.xyzw +max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +dp3 r0.z, -r10.xyzx, r6.xyzx +add r0.z, r0.z, r0.z +mad r17.xyz, r6.xyzx, -r0.zzzz, -r10.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r2.y, r11.z, l(0.001000) +log r2.y, r2.y +mad r2.y, -r2.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r2.y +mul r5.xz, r4.yyzy, cb1[0].wwww +round_ni r5.xz, r5.xxzx +add r2.y, |r4.w|, -cb1[2].y +round_ni r2.y, r2.y +add r3.w, l(-1.000000), cb1[1].x +max r8.w, r2.y, l(0.000000) +min r3.w, r3.w, r8.w +ge r2.y, r3.w, r2.y +mad r5.x, r5.z, cb1[0].x, r5.x +ftoi r5.x, r5.x +iadd r5.x, r5.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.x, r5.x, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r5.x +and r2.y, r2.y, r3.w +mul r18.xyz, r16.xyzx, cb0[111].xxxx +dp3 r3.w, r18.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r18.xyz, l(0,0,0,0) +mov r5.x, l(1.000000) +mov r5.z, r2.y +mov r8.w, l(0) +loop + lt r9.w, l(0.010000), r5.x + ine r10.w, r5.z, l(0) + and r10.w, r9.w, r10.w + if_nz r10.w + firstbit_lo r10.w, r5.z + ishl r11.z, l(1), r10.w + xor r5.z, r5.z, r11.z + ishl r10.w, r10.w, l(3) + dp4 r19.x, cb1[r10.w + 6].xyzw, r7.xyzw + dp4 r19.y, cb1[r10.w + 7].xyzw, r7.xyzw + dp4 r19.z, cb1[r10.w + 8].xyzw, r7.xyzw + ge r20.xyz, cb1[r10.w + 5].xyzx, |r19.xyzx| + and r11.z, r20.y, r20.x + and r11.z, r20.z, r11.z + if_nz r11.z + mul r11.z, l(0.100000), cb1[r10.w + 5].x + mul r20.xyz, |r19.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r12.zw, r20.xxxy, r20.xxxy + add r20.xyw, -|r19.xyxz|, cb1[r10.w + 5].xyxz + mul r20.xyw, r20.xyxw, cb1[r10.w + 9].xyxz + eq r16.w, l(1.000000), cb1[r10.w + 10].x + if_nz r16.w + dp3 r21.x, cb1[r10.w + 6].xyzx, r17.xyzx + dp3 r21.y, cb1[r10.w + 7].xyzx, r17.xyzx + dp3 r21.z, cb1[r10.w + 8].xyzx, r17.xyzx + add r22.xyz, -r19.xyzx, cb1[r10.w + 5].xyzx + div r22.xyz, r22.xyzx, r21.xyzx + add r23.xyz, -r19.xyzx, -cb1[r10.w + 5].xyzx + div r23.xyz, r23.xyzx, r21.xyzx + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + movc r22.xyz, r24.xyzx, r22.xyzx, r23.xyzx + min r16.w, r22.y, r22.x + min r16.w, r22.z, r16.w + mad r19.xyz, r21.xyzx, r16.wwww, r19.xyzx + else + mov r19.xyz, r17.xyzx + endif + dp3 r16.w, r19.xyzx, r19.xyzx + rsq r16.w, r16.w + mul r19.xyz, r16.wwww, r19.xyzx + lt r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + lt r22.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r21.xyz, -r21.xyzx, r22.xyzx + itof r21.xyz, r21.xyzx + dp3 r16.w, r19.xyzx, r21.xyzx + div r19.xyz, r19.xyzx, r16.wwww + lt r16.w, r19.z, l(0.000000) + add r19.zw, -|r19.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r19.zw, r19.zzzw, r21.xxxy + movc r19.xy, r16.wwww, r19.zwzz, r19.xyxx + dp4 r16.w, cb1[r10.w + 4].xyzw, r6.xyzw + max r16.w, r16.w, l(0.000000) + max r16.w, r16.w, l(0.000100) + min r17.w, r20.w, r20.y + min r17.w, r17.w, r20.x + add r12.z, r12.w, r12.z + mad r12.z, r20.z, r20.z, r12.z + mad r11.z, r11.z, r11.z, -r12.z + mul r11.z, r11.z, cb1[r10.w + 9].x + mul r11.z, r11.z, cb1[r10.w + 9].x + add r12.z, l(1.000000), -cb1[r10.w + 10].y + mul r11.z, r11.z, r12.z + mul r11.z, r11.z, l(100.000000) + mad_sat r11.z, r17.w, cb1[r10.w + 10].y, r11.z + mul r12.z, r11.z, cb1[r10.w + 10].w + mad r19.xy, r19.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r19.xy, r19.xyxx, cb1[1].wwww, cb1[2].wwww + mov r19.z, cb1[r10.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r19.xyz, r19.xyzx, t5.xyzw, s3, r0.z + mul r19.xyz, r19.xyzx, cb1[r10.w + 9].wwww + div r12.w, r3.w, r16.w + min r12.w, |r12.w|, l(1.000000) + mad r12.w, r12.w, l(2.000000), r3.w + add r16.w, r16.w, l(2.000000) + div r12.w, r12.w, r16.w + add r12.w, r12.w, l(-1.000000) + mad r12.w, r12.w, cb0[112].w, l(1.000000) + mul r19.xyz, r12.wwww, r19.xyzx + mul r19.xyz, r12.zzzz, r19.xyzx + mad r18.xyz, r19.xyzx, r5.xxxx, r18.xyzx + mad r10.w, -r11.z, cb1[r10.w + 10].w, l(1.000000) + mul r5.x, r5.x, r10.w + endif + mov r8.w, l(-1) + continue + else + mov r8.w, r9.w + break + endif + mov r8.w, r9.w +endloop +if_nz r8.w + dp3 r2.y, r17.xyzx, r17.xyzx + rsq r2.y, r2.y + mul r7.xzw, r2.yyyy, r17.xxyz + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r7.xzwx + lt r19.xyz, r7.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r19.xyzx + itof r17.xyz, r17.xyzx + dp3 r2.y, r7.xzwx, r17.xyzx + div r7.xzw, r7.xxzw, r2.yyyy + lt r2.y, r7.w, l(0.000000) + add r12.zw, -|r7.zzzx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r12.zw, r12.zzzw, r17.xxxy + movc r7.xz, r2.yyyy, r12.zzwz, r7.xxzx + dp4 r2.y, cb1[3].xyzw, r6.xyzw + max r2.y, r2.y, l(0.000000) + max r2.y, r2.y, l(0.000100) + mad r7.xz, r7.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) + mad r17.xy, r7.xzxx, cb1[1].wwww, cb1[2].wwww + mov r17.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r7.xzw, r17.xyzx, t5.xwyz, s3, r0.z + div r0.z, r3.w, r2.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r2.y, r2.y, l(2.000000) + div r0.z, r0.z, r2.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r7.xzw, r0.zzzz, r7.xxzw + mad r18.xyz, r7.xzwx, r5.xxxx, r18.xyzx +endif +mul r7.xzw, r18.xxyz, cb0[112].zzzz +mul r7.xzw, r7.xxzw, cb0[111].yyyy +if_nz r2.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r17.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r2.y, -r0.z, l(1.000000) + mul r18.xyz, r2.yyyy, r7.xzwx + mad r7.xzw, r17.xxyz, r0.zzzz, r18.xxyz +endif +mul r16.xyz, r3.xyzx, r16.xyzx +mul r16.xyz, r16.xyzx, cb0[111].xxxx +mad r0.z, r2.x, r12.x, r12.y +mul r2.xyz, r0.zzzz, r7.xzwx +mul r2.xyz, r8.xyzx, r2.xyzx +mad r2.xyz, r16.xyzx, r11.xywx, r2.xyzx +mul r6.xyzw, r6.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r8.x, r14.xyzw, r6.xyzw +dp4 r8.y, r13.xyzw, r6.xyzw +dp4 r8.z, r15.xyzw, r6.xyzw +max r6.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mul r6.xyz, r11.xywx, r6.xyzx +max r0.z, r3.y, r3.x +max r0.z, r3.z, r0.z +max r0.z, r0.z, l(0.010000) +div r3.xyz, r3.xyzx, r0.zzzz +mul r3.xyz, r3.xyzx, r6.xyzx +mul r0.z, r4.x, l(0.00787401572) +min r3.w, r5.y, l(1.000000) +bfi r1.z, l(3), l(2), r1.z, l(0) +ftou r2.w, r2.w +bfi r1.z, l(2), l(0), r2.w, r1.z +utof r1.z, r1.z +mul r1.z, r1.z, l(0.0322580636) +mad r0.z, r0.z, r3.w, r1.z +mul r3.xyz, r0.zzzz, r3.xyzx +mad r2.xyz, r3.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r2.xyzx +add r1.xyz, r1.xywx, r2.xyzx +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r5.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r7.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r10.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r10.xyzx, -r9.xyzx + add r2.w, r7.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w + mul r3.w, r0.x, r3.z + mad r4.x, r3.w, r2.w, cb0[44].y + mad r2.w, -r3.w, r2.w, r2.w + mul r3.w, r2.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.x, r4.x, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.y, l(5.960464478E-08), |r3.w| + exp r5.z, -r3.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.y, r5.z, r3.w + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r5.y, l(5.960464478E-08), |r2.w| + exp r5.z, -r2.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r5.y, r5.z, r2.w + mul r2.w, r2.w, r4.x + mad r2.w, r5.x, r3.w, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r5.w, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r5.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r4.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t12.xyzw, s1, l(0.000000) + add r0.y, |r4.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r5.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r5.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/fog_blend_test.cso b/src/games/endfield/deferred-lighting/fog_blend_test.cso new file mode 100644 index 0000000000000000000000000000000000000000..805c3de3b1b9c7fbed2603595181fe4970e671bb GIT binary patch literal 1052 zcmZ`%Jxe1|6uo&aMqSZh69mEe0b3=4L2>4p#AIzYVuC~vL_u7(jJvIl;tvpPjE!Jt zQo68gFJkF}m9Ulg2Q0SO%5&b#HEQ(2nfK=2bH87)o-h2oJvl8_%fIg~&vv&)GqVX1 z8T%m8gYy$`09*j`)$*4WoYeOL3xEoBlw>l}GX{lv-c@g?giy~r^|iTrp;B2aO1s^z zAO~~OhdDezMRN>8QC(WCtu;0`zQd{dd9JVzV%6BJtaMjRLZ&PoiX*!+#4w4 z!HYOwQ4U&`oX9{!B3)@Db zG51u=Pk@*H^(U9}B&ji;+eEJNL-1oA^ee^jd*gq^bTz7tr?L3FlI**@(26KJJ#!}P znPRNSkNfPj0xHT!*2F!47tZ3OkFoej7<3?#5gB~qqJH`qD{|ay`UI2+cXZ^OM?uVW*}SbSus&_O&y= 0.05f && uv.x <= 0.13f) && (uv.y >= 0.97f); - if (isUuid) { - o0.xyzw = 0.0f; - } - } - if (PING_TEXT_OPACITY < 0.5f) { - bool isPing = (uv.x >= 0.02f && uv.x <= 0.05f) && (uv.y >= 0.97f); - if (isPing) { - o0.xyzw = 0.0f; - } } return; } \ No newline at end of file From 21734902fc9a208dc6cb77fee7c17031fd801691 Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Sun, 1 Feb 2026 22:41:50 +0000 Subject: [PATCH 08/19] feat(endfield) Added more deferred shaders, added missing UI shader for UI hiding toggle --- .../endfield/deferred-lighting/0xA4113DE8.cso | Bin 0 -> 39092 bytes .../deferred-lighting/0xA4113DE8.ps_5_0.asm | 1299 +++++++++++++++++ .../0xA4113DE8.ps_5_0_original_backup.asm | 1279 ++++++++++++++++ .../endfield/deferred-lighting/0xBD99F0C4.cso | Bin 0 -> 30100 bytes .../deferred-lighting/0xBD99F0C4.ps_5_0.asm | 1010 +++++++++++++ .../0xBD99F0C4.ps_5_0_original_backup.asm | 990 +++++++++++++ .../endfield/ui/ui13_0xFB212B37.ps_5_0.hlsl | 142 ++ .../endfield/ui/uid_0x6B8E9049.ps_5_0.hlsl | 3 +- 8 files changed, 4721 insertions(+), 2 deletions(-) create mode 100644 src/games/endfield/deferred-lighting/0xA4113DE8.cso create mode 100644 src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/0xBD99F0C4.cso create mode 100644 src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm create mode 100644 src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/ui/ui13_0xFB212B37.ps_5_0.hlsl diff --git a/src/games/endfield/deferred-lighting/0xA4113DE8.cso b/src/games/endfield/deferred-lighting/0xA4113DE8.cso new file mode 100644 index 0000000000000000000000000000000000000000..74ea597fdff8800487741bd5ce7b1c06f4b3d419 GIT binary patch literal 39092 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 Ds^f`7 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm new file mode 100644 index 000000000..4c47fa406 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm @@ -0,0 +1,1299 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sun Feb 1 03:43:52 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[5], immediateIndexed +dcl_constantbuffer CB4[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture3d (float,float,float,float) t27 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 24 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t24.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t25.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r2.xyw, r1.wwww, r3.xyxz +utof r4.xy, r0.xyxx +mul r4.zw, v0.xxxy, cb0[82].zzzw +mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r5.zw, r5.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.yyyy, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw +mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r3.w, r5.y, cb0[1].z +mad r3.w, cb0[0].z, r5.x, r3.w +mad r3.w, cb0[2].z, r5.z, r3.w +add r3.w, r3.w, cb0[3].z +eq r6.x, l(0.000000), cb0[86].w +add r6.yzw, -r5.xxyz, cb0[44].xxyz +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r8.xyz, r6.xxxx, r6.yzwy, r7.xyzx +dp3 r6.x, r8.xyzx, r8.xyzx +max r7.w, r6.x, l(9.999999939E-09) +rsq r7.w, r7.w +mul r9.xyz, r7.wwww, r8.xyzx +mul r6.x, r6.x, r7.w +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r10.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x +else + mov r10.xy, l(1.000000,1.000000,0,0) +endif +lt r10.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy +if_nz r10.z + add r9.w, |r2.y|, |r2.x| + add r9.w, |r2.w|, r9.w + div r9.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w + mul r11.xyz, |r2.xywx|, r9.wwww + mul r12.xyz, r5.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r9.w, r12.xyzx, t9.yzwx, s2, l(0.000000) + mul r12.xyzw, r11.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) + add r11.xyw, r12.zwzz, r12.xxxy + mad r11.xyz, r11.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r11.xywx + mad r10.z, r9.w, l(2.000000), l(-1.000000) + mul r11.xyz, r10.zzzz, r11.xyzx + mov r10.z, |r2.y| + add r10.z, r10.z, l(-0.700000) + mul_sat r10.z, r10.z, l(4.000000) + mad r11.w, r10.z, l(-2.000000), l(3.000000) + mul r10.z, r10.z, r10.z + mul r10.z, r10.z, r11.w + add r11.w, -cb0[229].z, cb0[229].y + mad r10.z, r10.z, r11.w, cb0[229].z + mul r11.xyz, r10.zzzz, r11.xyzx +else + mov r11.xyz, l(0,0,0,0) + mov r9.w, l(0) +endif +mad r10.z, -r3.y, r1.w, l(-0.200000) +if_nz r10.w + mul r12.xyz, r2.xywx, cb0[233].zzzz + mul r13.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r12.xyz, r12.xyzx, cb0[225].xxxx, r13.xyzx + max r10.w, -r2.y, l(0.000000) + min r10.w, r10.w, l(0.900000) + add r10.w, -r10.w, l(1.000000) + mul_sat r11.w, r10.z, l(-10.000000) + mad r12.w, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.w + max r11.w, r11.w, l(0.100000) + min r11.w, r11.w, l(1.000000) + mul r10.w, r10.w, r11.w + mad r12.xyz, r12.xyzx, r10.wwww, r5.xyzx + add r11.xyz, r11.xyzx, r12.xyzx + mul r12.xyz, r11.yyyy, cb3[1].xyzx + mad r11.xyw, cb3[0].xyxz, r11.xxxx, r12.xyxz + mad r11.xyz, cb3[2].xyzx, r11.zzzz, r11.xywx + add r11.xyz, r11.xyzx, cb3[3].xyzx + mad r12.x, r11.x, l(0.500000), cb3[4].x + mad r10.w, r11.y, l(0.500000), l(0.500000) + add r12.z, -r10.w, cb3[4].y + add r11.xy, r12.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r10.w, r11.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r10.w, r11.xyxx, t8.xxxx, s4, r10.w +else + mov r10.w, l(1.000000) +endif +mov_sat r11.x, r2.y +add r11.y, l(1.000000), -cb0[230].w +mad r11.x, r11.x, r11.y, cb0[230].w +add r11.yz, r5.xxzx, -cb0[44].xxzx +max r11.y, |r11.z|, |r11.y| +mul r11.z, r10.w, r11.x +mul r11.w, l(0.0500000119), cb0[222].w +mad r12.x, -cb0[222].w, l(0.700000), r11.y +div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul_sat r11.w, r11.w, r12.x +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mad r10.w, -r11.x, r10.w, l(1.000000) +mad r10.w, r11.w, r10.w, r11.z +ge r11.z, r1.z, l(0.045000) +and r11.z, r11.z, l(0x3f800000) +mul r11.z, r10.w, r11.z +deriv_rty_coarse r12.xyz, r5.xyzx +deriv_rtx_coarse r13.xyz, r5.zxyz +mul r14.xyz, r12.xyzx, r13.xyzx +mad r12.xyz, r12.zxyz, r13.yzxy, -r14.xyzx +dp3 r11.w, r12.xyzx, r12.xyzx +max r11.w, r11.w, l(1.175494351E-38) +rsq r11.w, r11.w +mul r12.yzw, r11.wwww, r12.xxzy +mov_sat r13.x, r12.y +add r13.y, r13.x, l(-0.988000) +mul_sat r13.y, r13.y, l(1000.012878) +mad r13.z, r13.y, l(-2.000000), l(3.000000) +mul r13.y, r13.y, r13.y +mul r13.y, r13.y, r13.z +add r13.z, |r3.w|, l(-15.000000) +mul_sat r13.z, r13.z, l(0.015000) +add r13.z, -r13.z, l(1.000000) +lt r13.w, l(0.000488281250), cb0[223].y +mad r14.x, cb0[223].z, l(0.300000), l(0.687000) +add r13.x, r13.x, -r14.x +mul_sat r13.x, r13.x, l(-1000.012878) +mad r14.x, r13.x, l(-2.000000), l(3.000000) +mul r13.x, r13.x, r13.x +mul r13.x, r13.x, r14.x +mad r11.w, r12.x, r11.w, l(0.500000) +mul_sat r11.w, r11.w, l(2.500000) +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mul r11.w, r11.w, r13.x +lt r11.w, l(0.000488281250), r11.w +and r11.w, r11.w, r13.w +if_nz r11.w + mul r13.xw, |r12.zzzw|, |r12.zzzw| + add r11.w, r13.w, r13.x + div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w + mul r13.xw, r11.wwww, r13.xxxw + mul r14.xyz, r12.ywzy, l(0.000000, 1.000000, 0.000000, 0.000000) + mad r14.xyz, r12.zywz, l(1.000000, 0.000000, 0.000000, 0.000000), -r14.xyzx + dp2 r11.w, r14.xyxx, r14.xyxx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + mul r15.xyz, r12.ywzy, r14.xyzx + mad r15.xyz, r14.zxyz, r12.wzyw, -r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + add r16.xyz, r5.xyzx, r5.xyzx + round_ni r16.xyz, r16.xyzx + add r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + add r14.zw, r16.yyyy, r16.xxxz + dp2 r11.w, r14.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + lt r14.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.wwwz + lt r16.xy, r12.wzww, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r14.zw, r14.zzzw, -r16.xxxy + itof r14.zw, r14.zzzw + mul r16.xy, r5.xzxx, r14.zwzz + mul r12.x, r9.w, r11.w + add r14.z, -r11.w, l(1.000000) + mad r14.z, r14.z, l(0.700000), l(0.300000) + mul r17.xy, r12.xxxx, l(3.000000, 6.000000, 0.000000, 0.000000) + mad r12.x, -cb0[223].x, r14.z, r17.x + frc r18.x, r12.x + mad r12.x, cb0[223].x, l(-0.300000), r17.y + frc r18.y, r12.x + mul r11.w, r11.w, l(5.000000) + round_ni r11.w, r11.w + add r17.x, r11.w, l(1.000000) + mul r17.y, r5.y, r17.x + mov r5.w, l(0.100000) + mul r14.zw, r5.yyyw, r17.xxxy + frc r14.zw, r14.zzzw + add r17.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + add r17.xy, r14.zwzz, -r17.xyxx + add r17.xy, r17.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) + mul_sat r17.xy, r17.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) + mad r17.zw, r17.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) + mul r17.xy, r17.xyxx, r17.xyxx + mul r17.xy, r17.xyxx, r17.zwzz + add r17.zw, -r14.zzzw, r18.xxxy + max r17.xy, r17.zwzz, r17.xyxx + add r18.zw, -r18.xxxy, r14.zzzw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) + mul r18.zw, r18.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) + max r18.zw, r18.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r18.zw, r18.zzzw, r18.zzzw + mul r18.zw, r18.zzzw, r19.xxxy + add r17.zw, r17.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + max r17.zw, r17.zzzw, r18.zzzw + ge r14.zw, r14.zzzw, r18.xxxy + and r14.zw, r14.zzzw, l(0, 0, 0x3f800000, 0x3f800000) + add r17.zw, -r17.xxxy, r17.zzzw + mad r14.zw, r14.zzzw, r17.zzzw, r17.xxxy + mad r11.w, r14.z, r14.z, l(-0.400000) + mul_sat r11.w, r11.w, l(1.66666663) + mad r12.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.x + mad r12.x, r14.w, l(2.000000), l(-1.000000) + mul r14.z, r11.w, l(0.010000) + mul r17.x, r12.x, r14.z + mad r17.x, r9.w, l(0.100000), r17.x + mul r14.z, r11.w, r14.z + mad r14.z, r14.z, r12.x, r9.w + mul r17.y, r9.w, r14.z + mov r16.z, r5.y + mad r17.zw, r16.yyyz, cb0[224].xxxy, r17.xxxy + sample_b_indexable(texture2d)(float,float,float,float) r18.xyzw, r17.zwzz, t10.xyzw, s2, cb0[108].x + mov r16.w, -r16.x + mad r16.xy, r16.wzww, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t10.xyzw, s2, cb0[108].x + mul r16.xyzw, r13.wwww, r16.xyzw + mad r16.xyzw, r18.xyzw, r13.xxxx, r16.xyzw + mad r13.xw, r16.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r9.w, r11.w, l(2.000000), l(-1.000000) + mad_sat r9.w, r9.w, l(0.800000), r14.w + mad r14.z, -r16.w, l(0.500000), l(1.000000) + mad r9.w, r9.w, r14.z, l(-0.700000) + mul_sat r9.w, r9.w, l(3.33333325) + mad r14.z, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r14.z + mul r12.x, r12.x, r16.w + mad_sat r11.w, r12.x, l(0.500000), r11.w + mad r11.w, r11.w, l(0.500000), l(0.100000) + max r9.w, r9.w, r11.w + add r11.w, -r9.w, l(1.000000) + max r11.w, r11.w, l(0.000000) + mul r12.x, r11.w, r11.w + mul r12.x, r12.x, r12.x + mul r11.w, r11.w, r12.x + ge r11.w, r16.z, r11.w + and r11.w, r11.w, l(0x3f800000) + mad r9.w, r9.w, l(0.700000), l(0.200000018) + mad r9.w, r11.w, r9.w, l(0.100000) + mul r9.w, r16.z, r9.w + mul r9.w, r9.w, cb0[223].y + mul r9.w, r9.w, l(0.330000) + mul r11.w, r11.z, cb0[222].x + mul r11.w, r13.z, r11.w + mul r9.w, r9.w, r11.w + dp2 r11.w, r13.xwxx, r13.xwxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r11.w, r11.w, l(0.000488281250) + mul_sat r12.x, r9.w, l(10.000000) + mad r14.z, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.x, r12.x, r14.z + mul r12.x, r12.x, cb0[223].y + mul r16.xy, r12.xxxx, r13.xwxx + add r12.x, l(-1.500000), cb0[223].y + mul_sat r12.x, r12.x, l(0.666666687) + mad r13.x, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.x, r12.x, r13.x + mul r13.x, r12.x, l(-0.200000) + mad r11.w, -r12.x, l(-0.200000), r11.w + mad r16.z, r9.w, r11.w, r13.x + dp3 r11.w, r16.xyzx, r16.xyzx + max r11.w, r11.w, l(1.175494351E-38) + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + mov r17.x, r14.y + mov r17.y, r15.x + mov r17.z, r12.z + dp3 r17.x, r17.xyzx, r16.xyzx + mov r15.w, r12.y + dp2 r17.y, r15.ywyy, r16.yzyy + mov r12.y, r14.x + mov r12.z, r15.z + dp3 r17.z, r12.yzwy, r16.xyzx + mad r12.xyz, -r3.xyzx, r1.wwww, r17.xyzx + mad r12.xyz, r9.wwww, r12.xyzx, r2.xywx + mul r9.w, r9.w, cb0[223].y + mul r9.w, r9.w, l(0.330000) +else + mov r12.xyz, r2.xywx + mov r9.w, l(0) +endif +lt r13.xw, l(0.000488281250, 0.000000, 0.000000, 0.000488281250), cb0[227].yyyw +or r11.w, r13.w, r13.x +lt r13.x, l(0.000488281250), r13.y +and r11.w, r11.w, r13.x +if_nz r11.w + mul r14.xyz, r2.ywxy, l(1.000000, 0.000000, 0.000000, 0.000000) + mad r14.xyz, r2.xywx, l(0.000000, 0.000000, 1.000000, 0.000000), -r14.xyzx + dp2 r11.w, r14.xzxx, r14.xzxx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + mul r15.xyz, r2.ywxy, r14.xyzx + mad r15.xyz, r14.zxyz, r2.wxyw, -r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xzyx + mul r13.xw, -r5.xxxz, cb0[228].xxxy + frc r14.yw, r13.xxxw + round_ni r13.xw, r13.xxxw + dp2 r11.w, r13.xwxx, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + add r13.x, r11.w, cb0[227].x + frc r13.x, r13.x + mul r13.w, cb0[228].z, cb0[228].z + mul r13.x, r13.w, r13.x + round_ni r13.x, r13.x + div r13.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z + mad r16.xy, -r5.xzxx, cb0[228].xyxx, cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r16.xyxx, t11.zwxy, s2, cb0[108].x + mad r17.xy, -r5.xzxx, cb0[228].xyxx, -cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r17.xyxx, t11.xyzw, s2, cb0[108].x + mul r16.xyzw, r16.xyzw, cb0[227].wwww + mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww + ge r11.w, l(0.500000), r11.w + and r11.w, r11.w, l(0x3f800000) + add r17.xy, -r14.ywyy, r14.wyww + mad r14.yw, r11.wwww, r17.xxxy, r14.yyyw + div r11.w, r13.x, cb0[228].z + ge r17.x, r11.w, -r11.w + frc r11.w, |r11.w| + movc r11.w, r17.x, r11.w, -r11.w + mul r11.w, r11.w, cb0[228].z + mul r17.x, r11.w, r13.w + add r17.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz + mul r11.w, r13.w, r13.x + round_ni r11.w, r11.w + add r11.w, -r11.w, r17.w + mul r17.y, r11.w, r13.w + mad r13.xw, r14.yyyw, r13.wwww, r17.xxxy + frc r13.xw, r13.xxxw + sample_b_indexable(texture2d)(float,float,float,float) r13.xw, r13.xwxx, t11.xzwy, s1, cb0[108].x + mul r13.xw, r13.xxxw, cb0[227].yyyy + mad r13.xw, r13.xxxw, l(2.000000, 0.000000, 0.000000, 2.000000), -cb0[227].yyyy + add r14.yw, r16.zzzw, r16.xxxy + add r16.xy, r13.xwxx, r14.ywyy + dp2 r11.w, r16.xyxx, r16.xyxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r16.z, r11.w, l(0.000488281250) + dp3 r11.w, r16.xyzx, r16.xyzx + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + mov r15.w, r2.x + dp2 r18.x, r15.xwxx, r16.yzyy + mov r19.x, r14.z + mov r19.y, r15.z + mov r19.z, r2.y + dp3 r18.y, r19.xyzx, r16.xyzx + mov r15.x, r14.x + mov r15.z, r2.w + dp3 r18.z, r15.xyzx, r16.xyzx + mul r11.z, r11.z, cb0[222].x + mul r11.z, r13.y, r11.z + max r11.w, l(0.000488281250), cb0[228].w + mov_sat r17.z, r17.z + add r13.x, -r11.w, r17.z + add r11.w, r2.z, -r11.w + div r13.x, l(1.000000, 1.000000, 1.000000, 1.000000), r13.x + mul_sat r11.w, r11.w, r13.x + mad r13.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r13.x + mul r11.z, r11.w, r11.z + mul r11.z, r13.z, r11.z + mad r3.xyz, -r3.xyzx, r1.wwww, r18.xyzx + mad r12.xyz, r11.zzzz, r3.xyzx, r2.xywx +endif +min r1.w, r10.y, r10.x +mul r3.x, r11.x, cb0[230].z +mad r3.y, -cb0[230].z, r11.x, l(1.000000) +mad r3.x, r10.w, r3.y, r3.x +mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r3.z, r11.y, -cb0[222].w +div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y +mul_sat r3.y, r3.y, r3.z +mad r3.z, r3.y, l(-2.000000), l(3.000000) +mul r3.y, r3.y, r3.y +mul r3.y, r3.y, r3.z +add r3.z, -r3.x, cb0[230].y +mad r3.x, r3.y, r3.z, r3.x +add r3.x, -r3.x, l(1.000000) +mul r3.y, r3.x, r10.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r3.z, -r2.z, l(1.000000) +mad_sat r10.w, r3.z, cb0[222].z, cb0[222].y +mad_sat r10.w, r9.w, cb0[224].z, r10.w +add r11.x, -r10.w, l(1.000000) +mad r10.w, r1.x, r11.x, r10.w +mul_sat r10.z, r10.z, l(3.33333325) +mad r11.x, r10.z, l(-2.000000), l(3.000000) +mul r10.z, r10.z, r10.z +mad r10.z, -r11.x, r10.z, l(1.000000) +mul r11.x, r10.w, cb0[222].x +add r11.y, -r1.x, l(1.000000) +mul r11.x, r11.y, r11.x +mul r11.x, r10.z, r11.x +mad r11.x, r11.x, l(-0.750000), l(1.000000) +mad r10.w, r10.w, l(-0.299999952), l(0.900000) +sqrt r11.y, r3.z +add r10.w, r10.w, r11.y +add_sat r10.w, r10.w, l(-0.600000) +max r10.w, r3.z, r10.w +min r10.w, r10.w, l(0.990000) +add_sat r11.y, l(2.000000), -cb0[222].x +mul r11.y, r11.y, cb0[222].x +mul r10.z, r10.z, r11.y +mad r3.x, -r10.x, r3.x, l(1.000000) +mul r3.x, r3.x, r10.z +add r10.x, -r3.z, r10.w +mad r3.x, r3.x, r10.x, r3.z +add r3.x, -r3.x, l(1.000000) +mul_sat r3.z, r9.w, l(20.000000) +mad r9.w, r3.z, l(-2.000000), l(3.000000) +mul r3.z, r3.z, r3.z +mul r3.z, r3.z, r9.w +mad r3.z, r3.z, l(-0.900000), l(1.000000) +mul r9.w, r3.z, r3.x +add r10.x, r10.y, l(-1.000000) +mad r10.x, r1.z, r10.x, l(1.000000) +add r10.y, -r1.z, l(1.000000) +movc r10.xy, r8.wwww, r10.xyxx, l(1.000000,1.000000,0,0) +min r1.z, r9.w, r10.x +mad r3.x, r3.x, r3.z, -r1.z +mad r1.z, r1.w, r3.x, r1.z +add r2.z, -r1.z, r2.z +mad r13.z, r3.y, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r10.xzw, r0.xyzz, t26.xwyz +min r1.z, r11.x, r10.y +add r2.z, -r1.z, r11.x +mad r1.z, r1.w, r2.z, r1.z +add r1.w, -r1.z, l(1.000000) +mad r1.z, r3.y, r1.w, r1.z +mul r3.xyz, r1.zzzz, r10.xzwx +mul r11.xyz, r1.xxxx, r3.xyzx +mad r10.xyz, r10.xzwx, r1.zzzz, -r11.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz +dp3 r2.z, r12.xyzx, r9.xyzx +max r11.x, r2.z, l(0.000000) +mul r3.y, r13.z, r13.z +mul r14.x, r11.x, r11.x +mul r14.z, r11.x, r14.x +mul r2.z, r3.y, r3.y +mul r3.z, r3.y, r2.z +mov r11.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r15.x, l(3.327070, 1.000000, 0.000000, 0.000000), r11.xyxx +dp2 r15.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r11.xzxx +mov r3.x, l(1.000000) +dp2 r8.w, r15.xyxx, r3.xyxx +mov r14.yw, l(0,9.044010,0,1.000000) +dp3 r15.x, l(3.596850, -1.367720, 1.000000, 0.000000), r14.xzwx +dp3 r15.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r14.xyzx +mov r16.x, l(5.565890) +mov r16.yz, r14.xxzx +dp3 r15.z, l(1.000000, 19.788601, -20.212299, 0.000000), r16.xyzx +dp3 r9.w, r15.xyzx, r3.xyzx +div r8.w, r8.w, r9.w +dp2 r15.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r11.xwxx +mov r14.x, l(1.296780) +mov r14.y, r11.x +dp2 r15.y, l(1.000000, -0.755907, 0.000000, 0.000000), r14.xyxx +dp2 r9.w, r15.xyxx, r3.xyxx +dp3 r15.x, l(2.923380, 59.418800, 1.000000, 0.000000), r14.yzwy +mov r14.xw, l(20.322500,0,0,121.563004) +dp3 r15.y, l(1.000000, -27.030199, 222.591995, 0.000000), r14.xyzx +dp3 r15.z, l(626.130005, 316.627014, 1.000000, 0.000000), r14.yzwy +dp3 r3.x, r15.xyzx, r3.xyzx +div r3.x, r9.w, r3.x +mad r11.yzw, r1.xxzw, r8.wwww, r3.xxxx +add r3.x, r3.x, r8.w +ld_indexable(texture2d)(float,float,float,float) r3.y, r0.xyzz, t6.zxyw +lt r0.z, l(0.001000), r3.y +if_nz r0.z + dp3 r0.z, -r9.xyzx, r12.xyzx + add r0.z, r0.z, r0.z + mad r14.xyz, r12.xyzx, -r0.zzzz, -r9.xyzx + dp3 r0.z, -cb2[0].xyzx, r14.xyzx + mad r15.xyz, cb2[0].xyzx, r0.zzzz, r14.xyzx + lt r0.z, r0.z, cb2[4].z + dp3 r8.w, r15.xyzx, r15.xyzx + max r8.w, r8.w, l(0.0000610351562) + rsq r8.w, r8.w + mul r15.xyz, r8.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb2[4].yyyy + mad r15.xyz, -cb2[0].xyzx, cb2[4].zzzz, r15.xyzx + dp3 r8.w, r15.xyzx, r15.xyzx + rsq r8.w, r8.w + mul r15.xyz, r8.wwww, r15.xyzx + movc r14.xyz, r0.zzzz, r15.xyzx, r14.xyzx + mad r8.xyz, r8.xyzx, r7.wwww, r14.xyzx + dp3 r0.z, r8.xyzx, r8.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r8.xyz, r0.zzzz, r8.xyzx + dp3_sat r13.x, r14.xyzx, r12.xyzx + dp3_sat r0.z, r12.xyzx, r8.xyzx + min r13.y, r11.x, l(1.000000) + mad r7.w, r0.z, r2.z, -r0.z + mad r0.z, r7.w, r0.z, l(1.000000) + dp3_sat r7.w, r9.xyzx, r8.xyzx + add r7.w, -r7.w, l(1.000000) + mul r8.x, r7.w, r7.w + mul r8.x, r8.x, r8.x + mul r8.y, r7.w, r8.x + add r8.z, -r13.z, l(1.000000) + mad r8.w, -r8.z, l(0.383026), l(-0.0761947036) + mad r8.w, r8.z, r8.w, l(1.049970) + mad r8.z, r8.z, r8.w, l(0.409255) + min r8.z, r8.z, l(0.999000) + add r8.w, -r8.z, l(1.000000) + add r15.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx + mad r7.w, -r8.x, r7.w, l(1.000000) + mad r16.xyz, r1.xzwx, r7.wwww, r8.yyyy + mul r0.z, r0.z, r0.z + div r0.z, r2.z, r0.z + mad r8.xy, -r13.yxyy, r2.zzzz, r13.yxyy + mad r8.xy, r8.xyxx, r13.yxyy, r2.zzzz + sqrt r8.xy, r8.xyxx + mul r8.xy, r8.xyxx, r13.xyxx + add r2.z, r8.y, r8.x + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.z, r0.z, r2.z + mul r16.xyz, r0.zzzz, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r17.xyzw, r13.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r17.xyxx, t12.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r17.zwzz, t12.yzxw, s1, l(0.000000) + mul r0.z, r0.z, r2.z + mul r0.z, r8.z, r0.z + div r0.z, r0.z, r8.w + mul r8.xyz, r15.xyzx, r15.xyzx + mul r8.xyz, r0.zzzz, r8.xyzx + mad r15.xyz, -r15.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r8.xyz, r8.xyzx, r15.xyzx + add r8.xyz, r8.xyzx, r16.xyzx + mul r8.xyz, r8.xyzx, cb2[4].xxxx + max r8.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r8.xyz, r8.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + dp3_sat r0.z, r14.xyzx, r2.xywx + mul r14.xyz, r0.zzzz, r10.xyzx + mad r8.xyz, r8.xyzx, r13.xxxx, r14.xyzx + mul r8.xyz, r8.xyzx, cb2[1].xyzx + mov r3.z, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r13.xyw, r3.yzyy, t7.xywz, s1, cb0[108].x + add r0.z, -r3.y, l(1.000000) + mad r13.xyw, r8.xyxz, r13.xyxw, -r8.xyxz + mad r8.xyz, r0.zzzz, r13.xywx, r8.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t13.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r8.xyz, r0.zzzz, r8.xyzx +else + mov r8.xyz, l(0,0,0,0) +endif +ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r3.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + dp3 r2.z, r2.xywx, r9.xyzx + max r2.z, r2.z, l(0.000000) + add r2.z, r0.z, r2.z + mad r3.y, r13.z, l(-16.000000), l(-1.000000) + exp r3.y, r3.y + log r2.z, |r2.z| + mul r2.z, r2.z, r3.y + exp r2.z, r2.z + add r2.z, r0.z, r2.z + add r2.z, r2.z, l(-1.000000) + mov_sat r13.xyw, r2.zzzz + mad r14.xyz, r10.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r10.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r10.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r13.xyw, r1.yyyy + mov r14.xyz, r1.yyyy +endif +mad r15.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r16.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx +dp2 r0.z, r16.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx +mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r16.xyz, r15.xzyx, -r16.xyzx +max r0.z, |r16.y|, |r16.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.y, |r16.z|, l(-208.000000) +mul_sat r1.y, r1.y, l(0.031250) +max r0.z, r0.z, r1.y +ne r1.y, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.y, r1.y, r2.z +if_nz r1.y + mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r16.xyz, r15.xzyx, -r16.xyzx + max r1.y, |r16.y|, |r16.x| + add r1.y, r1.y, l(-29.000000) + mul_sat r1.y, r1.y, l(0.500000) + add r2.z, |r16.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.y, r1.y, r2.z + lt r2.z, r1.y, l(1.000000) + if_nz r2.z + mad r16.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) + add r2.z, -r1.y, l(1.000000) + mul r3.y, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.y, r3.y, r16.y + min r3.y, r7.w, r3.y + mul r16.w, r3.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) + mad r3.y, r18.w, r2.z, r0.z + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mul r19.xyzw, r2.zzzz, r19.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.xxxx, r16.xyzx + mov r16.w, r17.x + mul r16.xyzw, r2.zzzz, r16.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r18.xyzx + mul r17.xyzw, r2.zzzz, r17.xyzw + else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r3.y, r0.z + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r15.xzyx, -r18.xyzx + max r2.z, |r18.y|, |r18.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r7.w, |r18.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r2.z, r2.z, r7.w + lt r7.w, r2.z, l(1.000000) + if_nz r7.w + mad r18.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t19.yzwx, s2, l(0.000000) + add r7.w, -r2.z, l(1.000000) + mul r1.y, r1.y, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r18.y + min r7.w, r8.w, r7.w + mul r18.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.y, r21.w, r1.y, r3.y + add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t20.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r20.yyyy, r22.xyzx + mov r22.w, r20.y + mad r19.xyzw, r22.xyzw, r1.yyyy, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t20.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r1.yyyy, r16.xyzw + mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r18.xyzx + mad r17.xyzw, r20.xyzw, r1.yyyy, r17.xyzw + endif + lt r1.y, l(0.000000), r2.z + if_nz r1.y + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r18.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r15.xyzx, t21.yzwx, s2, l(0.000000) + add r1.y, -r0.z, l(1.000000) + mul r1.y, r1.y, r2.z + max r2.z, r20.y, r15.y + min r2.z, r18.y, r2.z + mul r15.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t22.xyzw, s1, l(0.000000) + add r20.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t22.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r21.yyyy, r20.xyzx + mov r20.w, r21.y + mad r19.xyzw, r20.xyzw, r1.yyyy, r19.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t22.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r21.xxxx, r15.xyzx + mov r15.w, r21.x + mad r16.xyzw, r15.xyzw, r1.yyyy, r16.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r15.xyzx + mad r17.xyzw, r21.xyzw, r1.yyyy, r17.xyzw + mad r3.y, r18.w, r1.y, r3.y + endif + mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.y + add r0.z, r0.z, r1.y + mul r15.y, r0.z, l(0.500000) +else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r15.yxyy, cb0[213].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.zw, r15.yyyx, cb0[213].wwwy +mad r18.x, r15.w, l(0.375000), r15.z +add r17.xyzw, r17.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[214].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.zw, r15.yyyx, cb0[214].wwwy +mad r18.x, r15.w, l(0.375000), r15.z +add r16.xyzw, r16.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[215].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.xy, r15.yxyy, cb0[215].wyww +mad r18.x, r15.y, l(0.375000), r15.x +add r15.xyzw, r18.wyzx, r19.xyzw +ge r18.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r18.y, r18.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r18.xyzw, r4.zwzz, t16.xyzw, s1, l(0.000000) + lt r19.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r18.xyzw| + or r4.zw, r19.zzzw, r19.xxxy + or r0.z, r4.w, r4.z + if_nz r0.z + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mov r4.z, l(1.000000) + mov r4.w, r0.z + mov r1.y, l(0) + loop + ge r2.z, l(4.600000), r4.w + breakc_nz r2.z + iadd r2.z, r1.y, l(1) + mul r19.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r4.zw, r19.xxxy + mov r1.y, r2.z + continue + endloop + mul r18.xyzw, r4.zzzz, r18.xyzw + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb4[3].x, cb4[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r19.x, r0.z, l(0.00390625000) + mov r19.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r19.xyxx, t15.zwxy, s1, l(0.000000) + mad r4.zw, r4.zzzw, cb4[2].xxxy, cb4[2].zzzw + mul r19.x, r4.z, l(3.54490781) + mul r19.yzw, r4.wwww, r18.yyzw + mul r0.z, r18.x, l(0.406976730) + exp r0.z, r0.z + mul r18.xyzw, r0.zzzz, r19.xyzw + mov r19.xyzw, r18.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.y + breakc_nz r2.z + mul r20.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r20.xyzw, r19.xyzw + dp2 r3.y, r20.yxyy, r19.xyxx + dp2 r4.z, r20.zxzz, r19.xzxx + dp2 r4.w, r20.wxww, r19.xwxx + iadd r7.w, r0.z, l(1) + mov r19.x, r2.z + mov r19.y, r3.y + mov r19.zw, r4.zzzw + mov r0.z, r7.w + continue + endloop + mul r18.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r19.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r18.xyzw, r19.xyzw + dp2 r1.y, r18.yxyy, r19.xyxx + dp2 r2.z, r18.zxzz, r19.xzxx + dp2 r3.y, r18.wxww, r19.xwxx + mul r19.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.z, r18.xyzw, r19.xyzw + dp2 r4.w, r18.yxyy, r19.xyxx + dp2 r7.w, r18.zxzz, r19.xzxx + dp2 r8.w, r18.wxww, r19.xwxx + mul r19.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r18.xyzw, r19.xyzw + dp2 r10.w, r18.yxyy, r19.xyxx + dp2 r11.x, r18.zxzz, r19.xzxx + dp2 r14.w, r18.wxww, r19.xwxx + mul r17.w, r0.z, l(0.886226952) + mul r17.x, r3.y, l(-1.02332675) + mul r17.y, r1.y, l(-1.02332675) + mul r17.z, r2.z, l(1.02332675) + mul r16.x, r8.w, l(-1.02332675) + mul r16.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r16.z, r7.w, l(1.02332675) + mul r15.w, r9.w, l(0.886226952) + mul r15.x, r14.w, l(-1.02332675) + mul r15.y, r10.w, l(-1.02332675) + mul r15.z, r11.x, l(1.02332675) + endif +endif +dp3 r0.z, r17.xyzx, r2.xywx +add r0.z, r17.w, r0.z +max r17.x, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r2.xywx +add r0.z, r16.w, r0.z +max r17.y, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r2.xywx +add r0.z, r15.w, r0.z +max r17.z, r0.z, l(0.000000) +dp3 r0.z, -r9.xyzx, r12.xyzx +add r0.z, r0.z, r0.z +mad r2.xyz, r12.xyzx, -r0.zzzz, -r9.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r1.y, r13.z, l(0.001000) +log r1.y, r1.y +mad r1.y, -r1.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.y +mul r4.zw, r4.xxxy, cb1[0].wwww +round_ni r4.zw, r4.zzzw +add r1.y, |r3.w|, -cb1[2].y +round_ni r1.y, r1.y +add r2.w, l(-1.000000), cb1[1].x +max r3.y, r1.y, l(0.000000) +min r2.w, r2.w, r3.y +ge r1.y, r2.w, r1.y +mad r3.y, r4.w, cb1[0].x, r4.z +ftoi r3.y, r3.y +iadd r3.y, r3.y, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.y, r3.y, l(0), t0.xxxx +ftoi r2.w, r2.w +iadd r2.w, r2.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.w, r2.w, l(0), t0.xxxx +and r2.w, r2.w, r3.y +and r1.y, r1.y, r2.w +mul r15.xyz, r17.xyzx, cb0[111].xxxx +dp3 r2.w, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r12.w, l(1.000000) +mov r15.xyz, l(0,0,0,0) +mov r3.y, l(1.000000) +mov r4.z, r1.y +mov r4.w, l(0) +loop + lt r7.w, l(0.010000), r3.y + ine r8.w, r4.z, l(0) + and r8.w, r7.w, r8.w + if_nz r8.w + firstbit_lo r8.w, r4.z + ishl r9.w, l(1), r8.w + xor r4.z, r4.z, r9.w + ishl r8.w, r8.w, l(3) + dp4 r16.x, cb1[r8.w + 6].xyzw, r5.xyzw + dp4 r16.y, cb1[r8.w + 7].xyzw, r5.xyzw + dp4 r16.z, cb1[r8.w + 8].xyzw, r5.xyzw + ge r18.xyz, cb1[r8.w + 5].xyzx, |r16.xyzx| + and r9.w, r18.y, r18.x + and r9.w, r18.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb1[r8.w + 5].x + mul r18.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r16.xyzx|, cb1[r8.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb1[r8.w + 9].xyzx + eq r10.w, l(1.000000), cb1[r8.w + 10].x + if_nz r10.w + dp3 r20.x, cb1[r8.w + 6].xyzx, r2.xyzx + dp3 r20.y, cb1[r8.w + 7].xyzx, r2.xyzx + dp3 r20.z, cb1[r8.w + 8].xyzx, r2.xyzx + add r21.xyz, -r16.xyzx, cb1[r8.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r16.xyzx, -cb1[r8.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r10.w, r21.y, r21.x + min r10.w, r21.z, r10.w + mad r16.xyz, r20.xyzx, r10.wwww, r16.xyzx + else + mov r16.xyz, r2.xyzx + endif + dp3 r10.w, r16.xyzx, r16.xyzx + rsq r10.w, r10.w + mul r16.xyz, r10.wwww, r16.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r21.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r10.w, r16.xyzx, r20.xyzx + div r16.xyz, r16.xyzx, r10.wwww + lt r10.w, r16.z, l(0.000000) + add r16.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r16.zw, r16.zzzw, r20.xxxy + movc r16.xy, r10.wwww, r16.zwzz, r16.xyxx + dp4 r10.w, cb1[r8.w + 4].xyzw, r12.xyzw + max r10.w, r10.w, l(0.000000) + max r10.w, r10.w, l(0.000100) + min r11.x, r19.z, r19.y + min r11.x, r11.x, r19.x + add r13.z, r18.y, r18.x + mad r13.z, r18.z, r18.z, r13.z + mad r9.w, r9.w, r9.w, -r13.z + mul r9.w, r9.w, cb1[r8.w + 9].x + mul r9.w, r9.w, cb1[r8.w + 9].x + add r13.z, l(1.000000), -cb1[r8.w + 10].y + mul r9.w, r9.w, r13.z + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r11.x, cb1[r8.w + 10].y, r9.w + mul r11.x, r9.w, cb1[r8.w + 10].w + mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r16.xy, r16.xyxx, cb1[1].wwww, cb1[2].wwww + mov r16.z, cb1[r8.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s3, r0.z + mul r16.xyz, r16.xyzx, cb1[r8.w + 9].wwww + div r13.z, r2.w, r10.w + min r13.z, |r13.z|, l(1.000000) + mad r13.z, r13.z, l(2.000000), r2.w + add r10.w, r10.w, l(2.000000) + div r10.w, r13.z, r10.w + add r10.w, r10.w, l(-1.000000) + mad r10.w, r10.w, cb0[112].w, l(1.000000) + mul r16.xyz, r10.wwww, r16.xyzx + mul r16.xyz, r11.xxxx, r16.xyzx + mad r15.xyz, r16.xyzx, r3.yyyy, r15.xyzx + mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) + mul r3.y, r3.y, r8.w + endif + mov r4.w, l(-1) + continue + else + mov r4.w, r7.w + break + endif + mov r4.w, r7.w +endloop +if_nz r4.w + dp3 r1.y, r2.xyzx, r2.xyzx + rsq r1.y, r1.y + mul r2.xyz, r1.yyyy, r2.xyzx + lt r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xyzx + lt r18.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r16.xyz, -r16.xyzx, r18.xyzx + itof r16.xyz, r16.xyzx + dp3 r1.y, r2.xyzx, r16.xyzx + div r2.xyz, r2.xyzx, r1.yyyy + lt r1.y, r2.z, l(0.000000) + add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r4.zw, r4.zzzw, r16.xxxy + movc r2.xy, r1.yyyy, r4.zwzz, r2.xyxx + mov r12.w, l(1.000000) + dp4 r1.y, cb1[3].xyzw, r12.xyzw + max r1.y, r1.y, l(0.000000) + max r1.y, r1.y, l(0.000100) + mad r2.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r2.xy, r2.xyxx, cb1[1].wwww, cb1[2].wwww + mov r2.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r2.xyz, r2.xyzx, t5.xyzw, s3, r0.z + div r0.z, r2.w, r1.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.w + add r1.y, r1.y, l(2.000000) + div r0.z, r0.z, r1.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r2.xyz, r0.zzzz, r2.xyzx + mad r15.xyz, r2.xyzx, r3.yyyy, r15.xyzx +endif +mul r2.xyz, r15.xyzx, cb0[112].zzzz +mul r2.xyz, r2.xyzx, cb0[111].yyyy +if_nz r3.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r12.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.y, -r0.z, l(1.000000) + mul r15.xyz, r1.yyyy, r2.xyzx + mad r2.xyz, r12.xyzx, r0.zzzz, r15.xyzx +endif +mul r10.xyz, r10.xyzx, r17.xyzx +mul r10.xyz, r10.xyzx, cb0[111].xxxx +add r0.z, -r3.x, l(1.000000) +div r0.z, r0.z, r3.x +mul r1.xyz, r0.zzzz, r1.xzwx +mad r1.xyz, r1.xyzx, r11.yzwy, r11.yzwy +mul r1.xyz, r1.xyzx, r2.xyzx +mul r1.xyz, r13.xywx, r1.xyzx +mad r1.xyz, r10.xyzx, r14.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r8.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.x, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r5.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r9.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r9.xyzx, -r7.xyzx + add r2.w, r5.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.x + mul r4.z, r0.x, r3.z + mad r4.w, r4.z, r2.w, cb0[44].y + mad r2.w, -r4.z, r2.w, r2.w + mul r4.z, r2.w, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.w, r4.w, -cb0[159].x + mul r5.w, r5.w, cb0[159].z + max r5.w, r5.w, l(-127.000000) + exp r5.w, -r5.w + mul r5.w, r5.w, cb0[159].y + lt r7.x, l(5.960464478E-08), |r4.z| + exp r7.y, -r4.z + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r7.x, r7.y, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r7.x, l(5.960464478E-08), |r2.w| + exp r7.y, -r2.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r7.x, r7.y, r2.w + mul r2.w, r2.w, r4.w + mad r2.w, r5.w, r4.z, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r6.x, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r6.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r3.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r3.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.x, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r1.xyz = scene color, r4.xyz = transmittance, r0.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r0.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad r0.xyz, r1.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +endif +// === End Fog Modification === +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r6.yzwy, r6.yzwy +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t27.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0_original_backup.asm new file mode 100644 index 000000000..5e400f196 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0_original_backup.asm @@ -0,0 +1,1279 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sun Feb 1 03:43:52 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[5], immediateIndexed +dcl_constantbuffer CB4[4], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture2d (float,float,float,float) t25 +dcl_resource_texture2d (float,float,float,float) t26 +dcl_resource_texture3d (float,float,float,float) t27 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 24 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t24.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t25.xyzw +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r3.y, -r1.w, l(1.000000) +lt r1.w, r3.y, l(0.000000) +ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) +movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) +mul r4.xy, r4.xyxx, r4.zwzz +movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx +dp3 r1.w, r3.xyzx, r3.xyzx +rsq r1.w, r1.w +mul r2.xyw, r1.wwww, r3.xyxz +utof r4.xy, r0.xyxx +mul r4.zw, v0.xxxy, cb0[82].zzzw +mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r5.zw, r5.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) +mul r6.xyzw, -r5.yyyy, cb0[25].xyzw +mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw +mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw +add r5.xyzw, r5.xyzw, cb0[27].xyzw +div r5.xyz, r5.xyzx, r5.wwww +mul r3.w, r5.y, cb0[1].z +mad r3.w, cb0[0].z, r5.x, r3.w +mad r3.w, cb0[2].z, r5.z, r3.w +add r3.w, r3.w, cb0[3].z +eq r6.x, l(0.000000), cb0[86].w +add r6.yzw, -r5.xxyz, cb0[44].xxyz +mov r7.x, cb0[0].z +mov r7.y, cb0[1].z +mov r7.z, cb0[2].z +movc r8.xyz, r6.xxxx, r6.yzwy, r7.xyzx +dp3 r6.x, r8.xyzx, r8.xyzx +max r7.w, r6.x, l(9.999999939E-09) +rsq r7.w, r7.w +mul r9.xyz, r7.wwww, r8.xyzx +mul r6.x, r6.x, r7.w +lt r8.w, l(0.000488281250), cb0[234].x +if_nz r8.w + sample_b_indexable(texture2d)(float,float,float,float) r10.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x +else + mov r10.xy, l(1.000000,1.000000,0,0) +endif +lt r10.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy +if_nz r10.z + add r9.w, |r2.y|, |r2.x| + add r9.w, |r2.w|, r9.w + div r9.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w + mul r11.xyz, |r2.xywx|, r9.wwww + mul r12.xyz, r5.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r9.w, r12.xyzx, t9.yzwx, s2, l(0.000000) + mul r12.xyzw, r11.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) + add r11.xyw, r12.zwzz, r12.xxxy + mad r11.xyz, r11.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r11.xywx + mad r10.z, r9.w, l(2.000000), l(-1.000000) + mul r11.xyz, r10.zzzz, r11.xyzx + mov r10.z, |r2.y| + add r10.z, r10.z, l(-0.700000) + mul_sat r10.z, r10.z, l(4.000000) + mad r11.w, r10.z, l(-2.000000), l(3.000000) + mul r10.z, r10.z, r10.z + mul r10.z, r10.z, r11.w + add r11.w, -cb0[229].z, cb0[229].y + mad r10.z, r10.z, r11.w, cb0[229].z + mul r11.xyz, r10.zzzz, r11.xyzx +else + mov r11.xyz, l(0,0,0,0) + mov r9.w, l(0) +endif +mad r10.z, -r3.y, r1.w, l(-0.200000) +if_nz r10.w + mul r12.xyz, r2.xywx, cb0[233].zzzz + mul r13.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r12.xyz, r12.xyzx, cb0[225].xxxx, r13.xyzx + max r10.w, -r2.y, l(0.000000) + min r10.w, r10.w, l(0.900000) + add r10.w, -r10.w, l(1.000000) + mul_sat r11.w, r10.z, l(-10.000000) + mad r12.w, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.w + max r11.w, r11.w, l(0.100000) + min r11.w, r11.w, l(1.000000) + mul r10.w, r10.w, r11.w + mad r12.xyz, r12.xyzx, r10.wwww, r5.xyzx + add r11.xyz, r11.xyzx, r12.xyzx + mul r12.xyz, r11.yyyy, cb3[1].xyzx + mad r11.xyw, cb3[0].xyxz, r11.xxxx, r12.xyxz + mad r11.xyz, cb3[2].xyzx, r11.zzzz, r11.xywx + add r11.xyz, r11.xyzx, cb3[3].xyzx + mad r12.x, r11.x, l(0.500000), cb3[4].x + mad r10.w, r11.y, l(0.500000), l(0.500000) + add r12.z, -r10.w, cb3[4].y + add r11.xy, r12.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r10.w, r11.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r10.w, r11.xyxx, t8.xxxx, s4, r10.w +else + mov r10.w, l(1.000000) +endif +mov_sat r11.x, r2.y +add r11.y, l(1.000000), -cb0[230].w +mad r11.x, r11.x, r11.y, cb0[230].w +add r11.yz, r5.xxzx, -cb0[44].xxzx +max r11.y, |r11.z|, |r11.y| +mul r11.z, r10.w, r11.x +mul r11.w, l(0.0500000119), cb0[222].w +mad r12.x, -cb0[222].w, l(0.700000), r11.y +div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul_sat r11.w, r11.w, r12.x +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mad r10.w, -r11.x, r10.w, l(1.000000) +mad r10.w, r11.w, r10.w, r11.z +ge r11.z, r1.z, l(0.045000) +and r11.z, r11.z, l(0x3f800000) +mul r11.z, r10.w, r11.z +deriv_rty_coarse r12.xyz, r5.xyzx +deriv_rtx_coarse r13.xyz, r5.zxyz +mul r14.xyz, r12.xyzx, r13.xyzx +mad r12.xyz, r12.zxyz, r13.yzxy, -r14.xyzx +dp3 r11.w, r12.xyzx, r12.xyzx +max r11.w, r11.w, l(1.175494351E-38) +rsq r11.w, r11.w +mul r12.yzw, r11.wwww, r12.xxzy +mov_sat r13.x, r12.y +add r13.y, r13.x, l(-0.988000) +mul_sat r13.y, r13.y, l(1000.012878) +mad r13.z, r13.y, l(-2.000000), l(3.000000) +mul r13.y, r13.y, r13.y +mul r13.y, r13.y, r13.z +add r13.z, |r3.w|, l(-15.000000) +mul_sat r13.z, r13.z, l(0.015000) +add r13.z, -r13.z, l(1.000000) +lt r13.w, l(0.000488281250), cb0[223].y +mad r14.x, cb0[223].z, l(0.300000), l(0.687000) +add r13.x, r13.x, -r14.x +mul_sat r13.x, r13.x, l(-1000.012878) +mad r14.x, r13.x, l(-2.000000), l(3.000000) +mul r13.x, r13.x, r13.x +mul r13.x, r13.x, r14.x +mad r11.w, r12.x, r11.w, l(0.500000) +mul_sat r11.w, r11.w, l(2.500000) +mad r12.x, r11.w, l(-2.000000), l(3.000000) +mul r11.w, r11.w, r11.w +mul r11.w, r11.w, r12.x +mul r11.w, r11.w, r13.x +lt r11.w, l(0.000488281250), r11.w +and r11.w, r11.w, r13.w +if_nz r11.w + mul r13.xw, |r12.zzzw|, |r12.zzzw| + add r11.w, r13.w, r13.x + div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w + mul r13.xw, r11.wwww, r13.xxxw + mul r14.xyz, r12.ywzy, l(0.000000, 1.000000, 0.000000, 0.000000) + mad r14.xyz, r12.zywz, l(1.000000, 0.000000, 0.000000, 0.000000), -r14.xyzx + dp2 r11.w, r14.xyxx, r14.xyxx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + mul r15.xyz, r12.ywzy, r14.xyzx + mad r15.xyz, r14.zxyz, r12.wzyw, -r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xyzx + add r16.xyz, r5.xyzx, r5.xyzx + round_ni r16.xyz, r16.xyzx + add r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + add r14.zw, r16.yyyy, r16.xxxz + dp2 r11.w, r14.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + lt r14.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.wwwz + lt r16.xy, r12.wzww, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r14.zw, r14.zzzw, -r16.xxxy + itof r14.zw, r14.zzzw + mul r16.xy, r5.xzxx, r14.zwzz + mul r12.x, r9.w, r11.w + add r14.z, -r11.w, l(1.000000) + mad r14.z, r14.z, l(0.700000), l(0.300000) + mul r17.xy, r12.xxxx, l(3.000000, 6.000000, 0.000000, 0.000000) + mad r12.x, -cb0[223].x, r14.z, r17.x + frc r18.x, r12.x + mad r12.x, cb0[223].x, l(-0.300000), r17.y + frc r18.y, r12.x + mul r11.w, r11.w, l(5.000000) + round_ni r11.w, r11.w + add r17.x, r11.w, l(1.000000) + mul r17.y, r5.y, r17.x + mov r5.w, l(0.100000) + mul r14.zw, r5.yyyw, r17.xxxy + frc r14.zw, r14.zzzw + add r17.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) + add r17.xy, r14.zwzz, -r17.xyxx + add r17.xy, r17.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) + mul_sat r17.xy, r17.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) + mad r17.zw, r17.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) + mul r17.xy, r17.xyxx, r17.xyxx + mul r17.xy, r17.xyxx, r17.zwzz + add r17.zw, -r14.zzzw, r18.xxxy + max r17.xy, r17.zwzz, r17.xyxx + add r18.zw, -r18.xxxy, r14.zzzw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) + mul r18.zw, r18.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) + max r18.zw, r18.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) + mul r18.zw, r18.zzzw, r18.zzzw + mul r18.zw, r18.zzzw, r19.xxxy + add r17.zw, r17.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + max r17.zw, r17.zzzw, r18.zzzw + ge r14.zw, r14.zzzw, r18.xxxy + and r14.zw, r14.zzzw, l(0, 0, 0x3f800000, 0x3f800000) + add r17.zw, -r17.xxxy, r17.zzzw + mad r14.zw, r14.zzzw, r17.zzzw, r17.xxxy + mad r11.w, r14.z, r14.z, l(-0.400000) + mul_sat r11.w, r11.w, l(1.66666663) + mad r12.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r12.x + mad r12.x, r14.w, l(2.000000), l(-1.000000) + mul r14.z, r11.w, l(0.010000) + mul r17.x, r12.x, r14.z + mad r17.x, r9.w, l(0.100000), r17.x + mul r14.z, r11.w, r14.z + mad r14.z, r14.z, r12.x, r9.w + mul r17.y, r9.w, r14.z + mov r16.z, r5.y + mad r17.zw, r16.yyyz, cb0[224].xxxy, r17.xxxy + sample_b_indexable(texture2d)(float,float,float,float) r18.xyzw, r17.zwzz, t10.xyzw, s2, cb0[108].x + mov r16.w, -r16.x + mad r16.xy, r16.wzww, cb0[224].xyxx, r17.xyxx + sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t10.xyzw, s2, cb0[108].x + mul r16.xyzw, r13.wwww, r16.xyzw + mad r16.xyzw, r18.xyzw, r13.xxxx, r16.xyzw + mad r13.xw, r16.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) + mad r9.w, r11.w, l(2.000000), l(-1.000000) + mad_sat r9.w, r9.w, l(0.800000), r14.w + mad r14.z, -r16.w, l(0.500000), l(1.000000) + mad r9.w, r9.w, r14.z, l(-0.700000) + mul_sat r9.w, r9.w, l(3.33333325) + mad r14.z, r9.w, l(-2.000000), l(3.000000) + mul r9.w, r9.w, r9.w + mul r9.w, r9.w, r14.z + mul r12.x, r12.x, r16.w + mad_sat r11.w, r12.x, l(0.500000), r11.w + mad r11.w, r11.w, l(0.500000), l(0.100000) + max r9.w, r9.w, r11.w + add r11.w, -r9.w, l(1.000000) + max r11.w, r11.w, l(0.000000) + mul r12.x, r11.w, r11.w + mul r12.x, r12.x, r12.x + mul r11.w, r11.w, r12.x + ge r11.w, r16.z, r11.w + and r11.w, r11.w, l(0x3f800000) + mad r9.w, r9.w, l(0.700000), l(0.200000018) + mad r9.w, r11.w, r9.w, l(0.100000) + mul r9.w, r16.z, r9.w + mul r9.w, r9.w, cb0[223].y + mul r9.w, r9.w, l(0.330000) + mul r11.w, r11.z, cb0[222].x + mul r11.w, r13.z, r11.w + mul r9.w, r9.w, r11.w + dp2 r11.w, r13.xwxx, r13.xwxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r11.w, r11.w, l(0.000488281250) + mul_sat r12.x, r9.w, l(10.000000) + mad r14.z, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.x, r12.x, r14.z + mul r12.x, r12.x, cb0[223].y + mul r16.xy, r12.xxxx, r13.xwxx + add r12.x, l(-1.500000), cb0[223].y + mul_sat r12.x, r12.x, l(0.666666687) + mad r13.x, r12.x, l(-2.000000), l(3.000000) + mul r12.x, r12.x, r12.x + mul r12.x, r12.x, r13.x + mul r13.x, r12.x, l(-0.200000) + mad r11.w, -r12.x, l(-0.200000), r11.w + mad r16.z, r9.w, r11.w, r13.x + dp3 r11.w, r16.xyzx, r16.xyzx + max r11.w, r11.w, l(1.175494351E-38) + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + mov r17.x, r14.y + mov r17.y, r15.x + mov r17.z, r12.z + dp3 r17.x, r17.xyzx, r16.xyzx + mov r15.w, r12.y + dp2 r17.y, r15.ywyy, r16.yzyy + mov r12.y, r14.x + mov r12.z, r15.z + dp3 r17.z, r12.yzwy, r16.xyzx + mad r12.xyz, -r3.xyzx, r1.wwww, r17.xyzx + mad r12.xyz, r9.wwww, r12.xyzx, r2.xywx + mul r9.w, r9.w, cb0[223].y + mul r9.w, r9.w, l(0.330000) +else + mov r12.xyz, r2.xywx + mov r9.w, l(0) +endif +lt r13.xw, l(0.000488281250, 0.000000, 0.000000, 0.000488281250), cb0[227].yyyw +or r11.w, r13.w, r13.x +lt r13.x, l(0.000488281250), r13.y +and r11.w, r11.w, r13.x +if_nz r11.w + mul r14.xyz, r2.ywxy, l(1.000000, 0.000000, 0.000000, 0.000000) + mad r14.xyz, r2.xywx, l(0.000000, 0.000000, 1.000000, 0.000000), -r14.xyzx + dp2 r11.w, r14.xzxx, r14.xzxx + rsq r11.w, r11.w + mul r14.xyz, r11.wwww, r14.xyzx + mul r15.xyz, r2.ywxy, r14.xyzx + mad r15.xyz, r14.zxyz, r2.wxyw, -r15.xyzx + dp3 r11.w, r15.xyzx, r15.xyzx + rsq r11.w, r11.w + mul r15.xyz, r11.wwww, r15.xzyx + mul r13.xw, -r5.xxxz, cb0[228].xxxy + frc r14.yw, r13.xxxw + round_ni r13.xw, r13.xxxw + dp2 r11.w, r13.xwxx, l(12.989800, 78.233002, 0.000000, 0.000000) + sincos r11.w, null, r11.w + mul r11.w, r11.w, l(43758.546875) + frc r11.w, r11.w + add r13.x, r11.w, cb0[227].x + frc r13.x, r13.x + mul r13.w, cb0[228].z, cb0[228].z + mul r13.x, r13.w, r13.x + round_ni r13.x, r13.x + div r13.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z + mad r16.xy, -r5.xzxx, cb0[228].xyxx, cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r16.xyxx, t11.zwxy, s2, cb0[108].x + mad r17.xy, -r5.xzxx, cb0[228].xyxx, -cb0[227].zzzz + sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r17.xyxx, t11.xyzw, s2, cb0[108].x + mul r16.xyzw, r16.xyzw, cb0[227].wwww + mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww + ge r11.w, l(0.500000), r11.w + and r11.w, r11.w, l(0x3f800000) + add r17.xy, -r14.ywyy, r14.wyww + mad r14.yw, r11.wwww, r17.xxxy, r14.yyyw + div r11.w, r13.x, cb0[228].z + ge r17.x, r11.w, -r11.w + frc r11.w, |r11.w| + movc r11.w, r17.x, r11.w, -r11.w + mul r11.w, r11.w, cb0[228].z + mul r17.x, r11.w, r13.w + add r17.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz + mul r11.w, r13.w, r13.x + round_ni r11.w, r11.w + add r11.w, -r11.w, r17.w + mul r17.y, r11.w, r13.w + mad r13.xw, r14.yyyw, r13.wwww, r17.xxxy + frc r13.xw, r13.xxxw + sample_b_indexable(texture2d)(float,float,float,float) r13.xw, r13.xwxx, t11.xzwy, s1, cb0[108].x + mul r13.xw, r13.xxxw, cb0[227].yyyy + mad r13.xw, r13.xxxw, l(2.000000, 0.000000, 0.000000, 2.000000), -cb0[227].yyyy + add r14.yw, r16.zzzw, r16.xxxy + add r16.xy, r13.xwxx, r14.ywyy + dp2 r11.w, r16.xyxx, r16.xyxx + min r11.w, r11.w, l(1.000000) + add r11.w, -r11.w, l(1.000000) + sqrt r11.w, r11.w + max r16.z, r11.w, l(0.000488281250) + dp3 r11.w, r16.xyzx, r16.xyzx + rsq r11.w, r11.w + mul r16.xyz, r11.wwww, r16.xyzx + mov r15.w, r2.x + dp2 r18.x, r15.xwxx, r16.yzyy + mov r19.x, r14.z + mov r19.y, r15.z + mov r19.z, r2.y + dp3 r18.y, r19.xyzx, r16.xyzx + mov r15.x, r14.x + mov r15.z, r2.w + dp3 r18.z, r15.xyzx, r16.xyzx + mul r11.z, r11.z, cb0[222].x + mul r11.z, r13.y, r11.z + max r11.w, l(0.000488281250), cb0[228].w + mov_sat r17.z, r17.z + add r13.x, -r11.w, r17.z + add r11.w, r2.z, -r11.w + div r13.x, l(1.000000, 1.000000, 1.000000, 1.000000), r13.x + mul_sat r11.w, r11.w, r13.x + mad r13.x, r11.w, l(-2.000000), l(3.000000) + mul r11.w, r11.w, r11.w + mul r11.w, r11.w, r13.x + mul r11.z, r11.w, r11.z + mul r11.z, r13.z, r11.z + mad r3.xyz, -r3.xyzx, r1.wwww, r18.xyzx + mad r12.xyz, r11.zzzz, r3.xyzx, r2.xywx +endif +min r1.w, r10.y, r10.x +mul r3.x, r11.x, cb0[230].z +mad r3.y, -cb0[230].z, r11.x, l(1.000000) +mad r3.x, r10.w, r3.y, r3.x +mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r3.z, r11.y, -cb0[222].w +div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y +mul_sat r3.y, r3.y, r3.z +mad r3.z, r3.y, l(-2.000000), l(3.000000) +mul r3.y, r3.y, r3.y +mul r3.y, r3.y, r3.z +add r3.z, -r3.x, cb0[230].y +mad r3.x, r3.y, r3.z, r3.x +add r3.x, -r3.x, l(1.000000) +mul r3.y, r3.x, r10.x +add r1.z, r1.z, l(-0.050000) +mul_sat r1.z, r1.z, l(1.052600) +add r3.z, -r2.z, l(1.000000) +mad_sat r10.w, r3.z, cb0[222].z, cb0[222].y +mad_sat r10.w, r9.w, cb0[224].z, r10.w +add r11.x, -r10.w, l(1.000000) +mad r10.w, r1.x, r11.x, r10.w +mul_sat r10.z, r10.z, l(3.33333325) +mad r11.x, r10.z, l(-2.000000), l(3.000000) +mul r10.z, r10.z, r10.z +mad r10.z, -r11.x, r10.z, l(1.000000) +mul r11.x, r10.w, cb0[222].x +add r11.y, -r1.x, l(1.000000) +mul r11.x, r11.y, r11.x +mul r11.x, r10.z, r11.x +mad r11.x, r11.x, l(-0.750000), l(1.000000) +mad r10.w, r10.w, l(-0.299999952), l(0.900000) +sqrt r11.y, r3.z +add r10.w, r10.w, r11.y +add_sat r10.w, r10.w, l(-0.600000) +max r10.w, r3.z, r10.w +min r10.w, r10.w, l(0.990000) +add_sat r11.y, l(2.000000), -cb0[222].x +mul r11.y, r11.y, cb0[222].x +mul r10.z, r10.z, r11.y +mad r3.x, -r10.x, r3.x, l(1.000000) +mul r3.x, r3.x, r10.z +add r10.x, -r3.z, r10.w +mad r3.x, r3.x, r10.x, r3.z +add r3.x, -r3.x, l(1.000000) +mul_sat r3.z, r9.w, l(20.000000) +mad r9.w, r3.z, l(-2.000000), l(3.000000) +mul r3.z, r3.z, r3.z +mul r3.z, r3.z, r9.w +mad r3.z, r3.z, l(-0.900000), l(1.000000) +mul r9.w, r3.z, r3.x +add r10.x, r10.y, l(-1.000000) +mad r10.x, r1.z, r10.x, l(1.000000) +add r10.y, -r1.z, l(1.000000) +movc r10.xy, r8.wwww, r10.xyxx, l(1.000000,1.000000,0,0) +min r1.z, r9.w, r10.x +mad r3.x, r3.x, r3.z, -r1.z +mad r1.z, r1.w, r3.x, r1.z +add r2.z, -r1.z, r2.z +mad r13.z, r3.y, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r10.xzw, r0.xyzz, t26.xwyz +min r1.z, r11.x, r10.y +add r2.z, -r1.z, r11.x +mad r1.z, r1.w, r2.z, r1.z +add r1.w, -r1.z, l(1.000000) +mad r1.z, r3.y, r1.w, r1.z +mul r3.xyz, r1.zzzz, r10.xzwx +mul r11.xyz, r1.xxxx, r3.xyzx +mad r10.xyz, r10.xzwx, r1.zzzz, -r11.xyzx +mad r1.z, -r1.x, l(0.040000), l(0.040000) +mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz +dp3 r2.z, r12.xyzx, r9.xyzx +max r11.x, r2.z, l(0.000000) +mul r3.y, r13.z, r13.z +mul r14.x, r11.x, r11.x +mul r14.z, r11.x, r14.x +mul r2.z, r3.y, r3.y +mul r3.z, r3.y, r2.z +mov r11.yzw, l(0,0.0365463011,9.063200,0.990440) +dp2 r15.x, l(3.327070, 1.000000, 0.000000, 0.000000), r11.xyxx +dp2 r15.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r11.xzxx +mov r3.x, l(1.000000) +dp2 r8.w, r15.xyxx, r3.xyxx +mov r14.yw, l(0,9.044010,0,1.000000) +dp3 r15.x, l(3.596850, -1.367720, 1.000000, 0.000000), r14.xzwx +dp3 r15.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r14.xyzx +mov r16.x, l(5.565890) +mov r16.yz, r14.xxzx +dp3 r15.z, l(1.000000, 19.788601, -20.212299, 0.000000), r16.xyzx +dp3 r9.w, r15.xyzx, r3.xyzx +div r8.w, r8.w, r9.w +dp2 r15.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r11.xwxx +mov r14.x, l(1.296780) +mov r14.y, r11.x +dp2 r15.y, l(1.000000, -0.755907, 0.000000, 0.000000), r14.xyxx +dp2 r9.w, r15.xyxx, r3.xyxx +dp3 r15.x, l(2.923380, 59.418800, 1.000000, 0.000000), r14.yzwy +mov r14.xw, l(20.322500,0,0,121.563004) +dp3 r15.y, l(1.000000, -27.030199, 222.591995, 0.000000), r14.xyzx +dp3 r15.z, l(626.130005, 316.627014, 1.000000, 0.000000), r14.yzwy +dp3 r3.x, r15.xyzx, r3.xyzx +div r3.x, r9.w, r3.x +mad r11.yzw, r1.xxzw, r8.wwww, r3.xxxx +add r3.x, r3.x, r8.w +ld_indexable(texture2d)(float,float,float,float) r3.y, r0.xyzz, t6.zxyw +lt r0.z, l(0.001000), r3.y +if_nz r0.z + dp3 r0.z, -r9.xyzx, r12.xyzx + add r0.z, r0.z, r0.z + mad r14.xyz, r12.xyzx, -r0.zzzz, -r9.xyzx + dp3 r0.z, -cb2[0].xyzx, r14.xyzx + mad r15.xyz, cb2[0].xyzx, r0.zzzz, r14.xyzx + lt r0.z, r0.z, cb2[4].z + dp3 r8.w, r15.xyzx, r15.xyzx + max r8.w, r8.w, l(0.0000610351562) + rsq r8.w, r8.w + mul r15.xyz, r8.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb2[4].yyyy + mad r15.xyz, -cb2[0].xyzx, cb2[4].zzzz, r15.xyzx + dp3 r8.w, r15.xyzx, r15.xyzx + rsq r8.w, r8.w + mul r15.xyz, r8.wwww, r15.xyzx + movc r14.xyz, r0.zzzz, r15.xyzx, r14.xyzx + mad r8.xyz, r8.xyzx, r7.wwww, r14.xyzx + dp3 r0.z, r8.xyzx, r8.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r8.xyz, r0.zzzz, r8.xyzx + dp3_sat r13.x, r14.xyzx, r12.xyzx + dp3_sat r0.z, r12.xyzx, r8.xyzx + min r13.y, r11.x, l(1.000000) + mad r7.w, r0.z, r2.z, -r0.z + mad r0.z, r7.w, r0.z, l(1.000000) + dp3_sat r7.w, r9.xyzx, r8.xyzx + add r7.w, -r7.w, l(1.000000) + mul r8.x, r7.w, r7.w + mul r8.x, r8.x, r8.x + mul r8.y, r7.w, r8.x + add r8.z, -r13.z, l(1.000000) + mad r8.w, -r8.z, l(0.383026), l(-0.0761947036) + mad r8.w, r8.z, r8.w, l(1.049970) + mad r8.z, r8.z, r8.w, l(0.409255) + min r8.z, r8.z, l(0.999000) + add r8.w, -r8.z, l(1.000000) + add r15.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx + mad r7.w, -r8.x, r7.w, l(1.000000) + mad r16.xyz, r1.xzwx, r7.wwww, r8.yyyy + mul r0.z, r0.z, r0.z + div r0.z, r2.z, r0.z + mad r8.xy, -r13.yxyy, r2.zzzz, r13.yxyy + mad r8.xy, r8.xyxx, r13.yxyy, r2.zzzz + sqrt r8.xy, r8.xyxx + mul r8.xy, r8.xyxx, r13.xyxx + add r2.z, r8.y, r8.x + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.z, r0.z, r2.z + mul r16.xyz, r0.zzzz, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r17.xyzw, r13.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r17.xyxx, t12.yzxw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r17.zwzz, t12.yzxw, s1, l(0.000000) + mul r0.z, r0.z, r2.z + mul r0.z, r8.z, r0.z + div r0.z, r0.z, r8.w + mul r8.xyz, r15.xyzx, r15.xyzx + mul r8.xyz, r0.zzzz, r8.xyzx + mad r15.xyz, -r15.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r8.xyz, r8.xyzx, r15.xyzx + add r8.xyz, r8.xyzx, r16.xyzx + mul r8.xyz, r8.xyzx, cb2[4].xxxx + max r8.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r8.xyz, r8.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + dp3_sat r0.z, r14.xyzx, r2.xywx + mul r14.xyz, r0.zzzz, r10.xyzx + mad r8.xyz, r8.xyzx, r13.xxxx, r14.xyzx + mul r8.xyz, r8.xyzx, cb2[1].xyzx + mov r3.z, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r13.xyw, r3.yzyy, t7.xywz, s1, cb0[108].x + add r0.z, -r3.y, l(1.000000) + mad r13.xyw, r8.xyxz, r13.xyxw, -r8.xyxz + mad r8.xyz, r0.zzzz, r13.xywx, r8.xyzx + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t13.yzxw, s1, l(0.000000) + min r0.z, r0.z, l(1.000000) + mul r8.xyz, r0.zzzz, r8.xyzx +else + mov r8.xyz, l(0,0,0,0) +endif +ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r3.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + min r0.z, r1.y, r0.z + dp3 r2.z, r2.xywx, r9.xyzx + max r2.z, r2.z, l(0.000000) + add r2.z, r0.z, r2.z + mad r3.y, r13.z, l(-16.000000), l(-1.000000) + exp r3.y, r3.y + log r2.z, |r2.z| + mul r2.z, r2.z, r3.y + exp r2.z, r2.z + add r2.z, r0.z, r2.z + add r2.z, r2.z, l(-1.000000) + mov_sat r13.xyw, r2.zzzz + mad r14.xyz, r10.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r10.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + mad r14.xyz, r10.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx + add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) + mul r14.xyz, r0.zzzz, r14.xyzx + max r14.xyz, r0.zzzz, r14.xyzx +else + mov r13.xyw, r1.yyyy + mov r14.xyz, r1.yyyy +endif +mad r15.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx +round_z r0.z, cb0[212].x +mad r16.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx +dp2 r0.z, r16.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +mad r0.z, r0.z, l(2.000000), l(-1.000000) +mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx +mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r16.xyz, r15.xzyx, -r16.xyzx +max r0.z, |r16.y|, |r16.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r1.y, |r16.z|, l(-208.000000) +mul_sat r1.y, r1.y, l(0.031250) +max r0.z, r0.z, r1.y +ne r1.y, l(0.000000), cb0[210].w +lt r2.z, r0.z, l(1.000000) +and r1.y, r1.y, r2.z +if_nz r1.y + mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r16.xyz, r15.xzyx, -r16.xyzx + max r1.y, |r16.y|, |r16.x| + add r1.y, r1.y, l(-29.000000) + mul_sat r1.y, r1.y, l(0.500000) + add r2.z, |r16.z|, l(-13.000000) + mul_sat r2.z, r2.z, l(0.500000) + max r1.y, r1.y, r2.z + lt r2.z, r1.y, l(1.000000) + if_nz r2.z + mad r16.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) + add r2.z, -r1.y, l(1.000000) + mul r3.y, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r3.y, r3.y, r16.y + min r3.y, r7.w, r3.y + mul r16.w, r3.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) + mad r3.y, r18.w, r2.z, r0.z + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.yyyy, r19.xyzx + mov r19.w, r17.y + mul r19.xyzw, r2.zzzz, r19.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.xxxx, r16.xyzx + mov r16.w, r17.x + mul r16.xyzw, r2.zzzz, r16.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r18.xyzx + mul r17.xyzw, r2.zzzz, r17.xyzw + else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r3.y, r0.z + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r15.xzyx, -r18.xyzx + max r2.z, |r18.y|, |r18.x| + add r2.z, r2.z, l(-116.000000) + mul_sat r2.z, r2.z, l(0.125000) + add r7.w, |r18.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r2.z, r2.z, r7.w + lt r7.w, r2.z, l(1.000000) + if_nz r7.w + mad r18.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r18.xyzx, cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t19.yzwx, s2, l(0.000000) + add r7.w, -r2.z, l(1.000000) + mul r1.y, r1.y, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r18.y + min r7.w, r8.w, r7.w + mul r18.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t20.xyzw, s1, l(0.000000) + mad r3.y, r21.w, r1.y, r3.y + add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t20.xyzw, s1, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r20.yyyy, r22.xyzx + mov r22.w, r20.y + mad r19.xyzw, r22.xyzw, r1.yyyy, r19.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t20.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r1.yyyy, r16.xyzw + mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r18.xyzx + mad r17.xyzw, r20.xyzw, r1.yyyy, r17.xyzw + endif + lt r1.y, l(0.000000), r2.z + if_nz r1.y + mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r15.xyzx, cb0[211].xyzx + mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r15.xyz, r20.xyzx, r15.xyzx + min r15.xyz, r18.xyzx, r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r15.xyzx, t21.yzwx, s2, l(0.000000) + add r1.y, -r0.z, l(1.000000) + mul r1.y, r1.y, r2.z + max r2.z, r20.y, r15.y + min r2.z, r18.y, r2.z + mul r15.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t22.xyzw, s1, l(0.000000) + add r20.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t22.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r21.yyyy, r20.xyzx + mov r20.w, r21.y + mad r19.xyzw, r20.xyzw, r1.yyyy, r19.xyzw + add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t22.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r21.xxxx, r15.xyzx + mov r15.w, r21.x + mad r16.xyzw, r15.xyzw, r1.yyyy, r16.xyzw + mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r15.xyzx + mad r17.xyzw, r21.xyzw, r1.yyyy, r17.xyzw + mad r3.y, r18.w, r1.y, r3.y + endif + mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) + add r15.x, -r0.z, r1.y + add r0.z, r0.z, r1.y + mul r15.y, r0.z, l(0.500000) +else + mov r19.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r15.yxyy, cb0[213].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.zw, r15.yyyx, cb0[213].wwwy +mad r18.x, r15.w, l(0.375000), r15.z +add r17.xyzw, r17.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[214].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.zw, r15.yyyx, cb0[214].wwwy +mad r18.x, r15.w, l(0.375000), r15.z +add r16.xyzw, r16.xyzw, r18.wyzx +mul r18.xyzw, r15.yxyy, cb0[215].ywzx +mad r18.y, r18.y, l(0.500000), r18.x +mul r15.xy, r15.yxyy, cb0[215].wyww +mad r18.x, r15.y, l(0.375000), r15.x +add r15.xyzw, r18.wyzx, r19.xyzw +ge r18.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r18.y, r18.x +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r18.xyzw, r4.zwzz, t16.xyzw, s1, l(0.000000) + lt r19.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r18.xyzw| + or r4.zw, r19.zzzw, r19.xxxy + or r0.z, r4.w, r4.z + if_nz r0.z + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mov r4.z, l(1.000000) + mov r4.w, r0.z + mov r1.y, l(0) + loop + ge r2.z, l(4.600000), r4.w + breakc_nz r2.z + iadd r2.z, r1.y, l(1) + mul r19.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + mov r4.zw, r19.xxxy + mov r1.y, r2.z + continue + endloop + mul r18.xyzw, r4.zzzz, r18.xyzw + dp3 r0.z, r18.yzwy, r18.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb4[3].x, cb4[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r19.x, r0.z, l(0.00390625000) + mov r19.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r19.xyxx, t15.zwxy, s1, l(0.000000) + mad r4.zw, r4.zzzw, cb4[2].xxxy, cb4[2].zzzw + mul r19.x, r4.z, l(3.54490781) + mul r19.yzw, r4.wwww, r18.yyzw + mul r0.z, r18.x, l(0.406976730) + exp r0.z, r0.z + mul r18.xyzw, r0.zzzz, r19.xyzw + mov r19.xyzw, r18.xyzw + mov r0.z, l(0) + loop + uge r2.z, r0.z, r1.y + breakc_nz r2.z + mul r20.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r2.z, r20.xyzw, r19.xyzw + dp2 r3.y, r20.yxyy, r19.xyxx + dp2 r4.z, r20.zxzz, r19.xzxx + dp2 r4.w, r20.wxww, r19.xwxx + iadd r7.w, r0.z, l(1) + mov r19.x, r2.z + mov r19.y, r3.y + mov r19.zw, r4.zzzw + mov r0.z, r7.w + continue + endloop + mul r18.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r19.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r18.xyzw, r19.xyzw + dp2 r1.y, r18.yxyy, r19.xyxx + dp2 r2.z, r18.zxzz, r19.xzxx + dp2 r3.y, r18.wxww, r19.xwxx + mul r19.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.z, r18.xyzw, r19.xyzw + dp2 r4.w, r18.yxyy, r19.xyxx + dp2 r7.w, r18.zxzz, r19.xzxx + dp2 r8.w, r18.wxww, r19.xwxx + mul r19.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r9.w, r18.xyzw, r19.xyzw + dp2 r10.w, r18.yxyy, r19.xyxx + dp2 r11.x, r18.zxzz, r19.xzxx + dp2 r14.w, r18.wxww, r19.xwxx + mul r17.w, r0.z, l(0.886226952) + mul r17.x, r3.y, l(-1.02332675) + mul r17.y, r1.y, l(-1.02332675) + mul r17.z, r2.z, l(1.02332675) + mul r16.x, r8.w, l(-1.02332675) + mul r16.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) + mul r16.z, r7.w, l(1.02332675) + mul r15.w, r9.w, l(0.886226952) + mul r15.x, r14.w, l(-1.02332675) + mul r15.y, r10.w, l(-1.02332675) + mul r15.z, r11.x, l(1.02332675) + endif +endif +dp3 r0.z, r17.xyzx, r2.xywx +add r0.z, r17.w, r0.z +max r17.x, r0.z, l(0.000000) +dp3 r0.z, r16.xyzx, r2.xywx +add r0.z, r16.w, r0.z +max r17.y, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r2.xywx +add r0.z, r15.w, r0.z +max r17.z, r0.z, l(0.000000) +dp3 r0.z, -r9.xyzx, r12.xyzx +add r0.z, r0.z, r0.z +mad r2.xyz, r12.xyzx, -r0.zzzz, -r9.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r1.y, r13.z, l(0.001000) +log r1.y, r1.y +mad r1.y, -r1.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r1.y +mul r4.zw, r4.xxxy, cb1[0].wwww +round_ni r4.zw, r4.zzzw +add r1.y, |r3.w|, -cb1[2].y +round_ni r1.y, r1.y +add r2.w, l(-1.000000), cb1[1].x +max r3.y, r1.y, l(0.000000) +min r2.w, r2.w, r3.y +ge r1.y, r2.w, r1.y +mad r3.y, r4.w, cb1[0].x, r4.z +ftoi r3.y, r3.y +iadd r3.y, r3.y, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.y, r3.y, l(0), t0.xxxx +ftoi r2.w, r2.w +iadd r2.w, r2.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.w, r2.w, l(0), t0.xxxx +and r2.w, r2.w, r3.y +and r1.y, r1.y, r2.w +mul r15.xyz, r17.xyzx, cb0[111].xxxx +dp3 r2.w, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r5.w, l(1.000000) +mov r12.w, l(1.000000) +mov r15.xyz, l(0,0,0,0) +mov r3.y, l(1.000000) +mov r4.z, r1.y +mov r4.w, l(0) +loop + lt r7.w, l(0.010000), r3.y + ine r8.w, r4.z, l(0) + and r8.w, r7.w, r8.w + if_nz r8.w + firstbit_lo r8.w, r4.z + ishl r9.w, l(1), r8.w + xor r4.z, r4.z, r9.w + ishl r8.w, r8.w, l(3) + dp4 r16.x, cb1[r8.w + 6].xyzw, r5.xyzw + dp4 r16.y, cb1[r8.w + 7].xyzw, r5.xyzw + dp4 r16.z, cb1[r8.w + 8].xyzw, r5.xyzw + ge r18.xyz, cb1[r8.w + 5].xyzx, |r16.xyzx| + and r9.w, r18.y, r18.x + and r9.w, r18.z, r9.w + if_nz r9.w + mul r9.w, l(0.100000), cb1[r8.w + 5].x + mul r18.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r16.xyzx|, cb1[r8.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb1[r8.w + 9].xyzx + eq r10.w, l(1.000000), cb1[r8.w + 10].x + if_nz r10.w + dp3 r20.x, cb1[r8.w + 6].xyzx, r2.xyzx + dp3 r20.y, cb1[r8.w + 7].xyzx, r2.xyzx + dp3 r20.z, cb1[r8.w + 8].xyzx, r2.xyzx + add r21.xyz, -r16.xyzx, cb1[r8.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r16.xyzx, -cb1[r8.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r10.w, r21.y, r21.x + min r10.w, r21.z, r10.w + mad r16.xyz, r20.xyzx, r10.wwww, r16.xyzx + else + mov r16.xyz, r2.xyzx + endif + dp3 r10.w, r16.xyzx, r16.xyzx + rsq r10.w, r10.w + mul r16.xyz, r10.wwww, r16.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r21.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r10.w, r16.xyzx, r20.xyzx + div r16.xyz, r16.xyzx, r10.wwww + lt r10.w, r16.z, l(0.000000) + add r16.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r16.zw, r16.zzzw, r20.xxxy + movc r16.xy, r10.wwww, r16.zwzz, r16.xyxx + dp4 r10.w, cb1[r8.w + 4].xyzw, r12.xyzw + max r10.w, r10.w, l(0.000000) + max r10.w, r10.w, l(0.000100) + min r11.x, r19.z, r19.y + min r11.x, r11.x, r19.x + add r13.z, r18.y, r18.x + mad r13.z, r18.z, r18.z, r13.z + mad r9.w, r9.w, r9.w, -r13.z + mul r9.w, r9.w, cb1[r8.w + 9].x + mul r9.w, r9.w, cb1[r8.w + 9].x + add r13.z, l(1.000000), -cb1[r8.w + 10].y + mul r9.w, r9.w, r13.z + mul r9.w, r9.w, l(100.000000) + mad_sat r9.w, r11.x, cb1[r8.w + 10].y, r9.w + mul r11.x, r9.w, cb1[r8.w + 10].w + mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r16.xy, r16.xyxx, cb1[1].wwww, cb1[2].wwww + mov r16.z, cb1[r8.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s3, r0.z + mul r16.xyz, r16.xyzx, cb1[r8.w + 9].wwww + div r13.z, r2.w, r10.w + min r13.z, |r13.z|, l(1.000000) + mad r13.z, r13.z, l(2.000000), r2.w + add r10.w, r10.w, l(2.000000) + div r10.w, r13.z, r10.w + add r10.w, r10.w, l(-1.000000) + mad r10.w, r10.w, cb0[112].w, l(1.000000) + mul r16.xyz, r10.wwww, r16.xyzx + mul r16.xyz, r11.xxxx, r16.xyzx + mad r15.xyz, r16.xyzx, r3.yyyy, r15.xyzx + mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) + mul r3.y, r3.y, r8.w + endif + mov r4.w, l(-1) + continue + else + mov r4.w, r7.w + break + endif + mov r4.w, r7.w +endloop +if_nz r4.w + dp3 r1.y, r2.xyzx, r2.xyzx + rsq r1.y, r1.y + mul r2.xyz, r1.yyyy, r2.xyzx + lt r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xyzx + lt r18.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r16.xyz, -r16.xyzx, r18.xyzx + itof r16.xyz, r16.xyzx + dp3 r1.y, r2.xyzx, r16.xyzx + div r2.xyz, r2.xyzx, r1.yyyy + lt r1.y, r2.z, l(0.000000) + add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r4.zw, r4.zzzw, r16.xxxy + movc r2.xy, r1.yyyy, r4.zwzz, r2.xyxx + mov r12.w, l(1.000000) + dp4 r1.y, cb1[3].xyzw, r12.xyzw + max r1.y, r1.y, l(0.000000) + max r1.y, r1.y, l(0.000100) + mad r2.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r2.xy, r2.xyxx, cb1[1].wwww, cb1[2].wwww + mov r2.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r2.xyz, r2.xyzx, t5.xyzw, s3, r0.z + div r0.z, r2.w, r1.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r2.w + add r1.y, r1.y, l(2.000000) + div r0.z, r0.z, r1.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r2.xyz, r0.zzzz, r2.xyzx + mad r15.xyz, r2.xyzx, r3.yyyy, r15.xyzx +endif +mul r2.xyz, r15.xyzx, cb0[112].zzzz +mul r2.xyz, r2.xyzx, cb0[111].yyyy +if_nz r3.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r12.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r1.y, -r0.z, l(1.000000) + mul r15.xyz, r1.yyyy, r2.xyzx + mad r2.xyz, r12.xyzx, r0.zzzz, r15.xyzx +endif +mul r10.xyz, r10.xyzx, r17.xyzx +mul r10.xyz, r10.xyzx, cb0[111].xxxx +add r0.z, -r3.x, l(1.000000) +div r0.z, r0.z, r3.x +mul r1.xyz, r0.zzzz, r1.xzwx +mad r1.xyz, r1.xyzx, r11.yzwy, r11.yzwy +mul r1.xyz, r1.xyzx, r2.xyzx +mul r1.xyz, r13.xywx, r1.xyzx +mad r1.xyz, r10.xyzx, r14.xyzx, r1.xyzx +add r1.xyz, r1.xyzx, r8.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r5.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r6.x, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r5.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r9.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r9.xyzx, -r7.xyzx + add r2.w, r5.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.x + mul r4.z, r0.x, r3.z + mad r4.w, r4.z, r2.w, cb0[44].y + mad r2.w, -r4.z, r2.w, r2.w + mul r4.z, r2.w, cb0[159].z + max r4.z, r4.z, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.w, r4.w, -cb0[159].x + mul r5.w, r5.w, cb0[159].z + max r5.w, r5.w, l(-127.000000) + exp r5.w, -r5.w + mul r5.w, r5.w, cb0[159].y + lt r7.x, l(5.960464478E-08), |r4.z| + exp r7.y, -r4.z + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r4.z + mad r4.z, -r4.z, l(0.240226507), l(0.693147182) + movc r4.z, r7.x, r7.y, r4.z + add r4.w, r4.w, -cb0[162].z + mul r4.w, r4.w, cb0[162].x + max r4.w, r4.w, l(-127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[162].y + lt r7.x, l(5.960464478E-08), |r2.w| + exp r7.y, -r2.w + add r7.y, -r7.y, l(1.000000) + div r7.y, r7.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r7.x, r7.y, r2.w + mul r2.w, r2.w, r4.w + mad r2.w, r5.w, r4.z, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r6.x, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r4.zw, r6.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r4.z + add r0.x, r4.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r3.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t14.xyzw, s1, l(0.000000) + add r0.y, |r3.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r5.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r6.x, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r6.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r6.yzwy, r6.yzwy +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r5.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t27.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xBD99F0C4.cso b/src/games/endfield/deferred-lighting/0xBD99F0C4.cso new file mode 100644 index 0000000000000000000000000000000000000000..173ffb4f866d8ee41284ed2c3377cce0b022f619 GIT binary patch literal 30100 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm new file mode 100644 index 000000000..ded914070 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm @@ -0,0 +1,1010 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sun Feb 1 03:51:02 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[5], immediateIndexed +dcl_constantbuffer CB4[4], immediateIndexed +dcl_constantbuffer CB13[13], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture3d (float,float,float,float) t25 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 26 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t23.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t24.xyzw +mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) +ftou r1.xz, r1.xxzx +ubfe r4.x, l(7), l(3), r1.x +utof r4.x, r4.x +round_ne r1.y, r1.y +ftou r1.y, r1.y +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.y, l(1.000000) +lt r4.y, r5.y, l(0.000000) +ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) +movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) +mul r4.zw, r4.zzzw, r6.xxxy +movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r6.xyz, r2.xxxx, r5.xyzx +and r2.y, r1.y, l(7) +utof r2.y, r2.y +mad r2.y, r2.y, l(0.107142866), l(0.500000) +utof r4.yz, r0.xxyx +mul r5.xz, v0.xxyx, cb0[82].zzwz +mad r7.xy, r5.xzxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r7.zw, r4.yyyz, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r7.zw, r7.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r4.w, r7.zwzz, t1.yzwx, s0, l(0.000000) +mul r8.xyzw, -r7.yyyy, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r7.xxxx, r8.xyzw +mad r7.xyzw, cb0[26].xyzw, r4.wwww, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r4.w, r7.y, cb0[1].z +mad r4.w, cb0[0].z, r7.x, r4.w +mad r4.w, cb0[2].z, r7.z, r4.w +add r4.w, r4.w, cb0[3].z +eq r5.w, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r10.xyz, r5.wwww, r8.xyzx, r9.xyzx +dp3 r5.w, r10.xyzx, r10.xyzx +max r8.w, r5.w, l(9.999999939E-09) +rsq r8.w, r8.w +mul r11.xyz, r8.wwww, r10.xyzx +mul r5.w, r5.w, r8.w +lt r9.w, l(0.000488281250), cb0[234].x +if_nz r9.w + sample_b_indexable(texture2d)(float,float,float,float) r9.w, v1.xyxx, t21.yzwx, s1, cb0[108].x +else + mov r9.w, l(1.000000) +endif +lt r12.xy, l(0.500000, 0.500000, 0.000000, 0.000000), cb0[226].xyxx +if_nz r12.x + add r10.w, |r6.y|, |r6.x| + add r10.w, |r6.z|, r10.w + div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w + mul r12.xzw, |r6.xxyz|, r10.wwww + mul r13.xyzw, r12.xxzz, l(0.000000, 1.000000, 0.707106, 0.000000) + add r13.xyz, r13.zwzz, r13.xxyx + mad r12.xzw, r12.wwww, l(1.000000, 0.000000, 0.000000, 0.000000), r13.xxyz + mul r13.xyz, r7.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r10.w, r13.xyzx, t9.yzwx, s2, l(0.000000) + mad r10.w, r10.w, l(2.000000), l(-1.000000) + mul r12.xzw, r10.wwww, r12.xxzw + mov r10.w, |r6.y| + add r10.w, r10.w, l(-0.700000) + mul_sat r10.w, r10.w, l(4.000000) + mad r11.w, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r11.w + add r11.w, -cb0[229].z, cb0[229].y + mad r10.w, r10.w, r11.w, cb0[229].z + mul r12.xzw, r10.wwww, r12.xxzw +else + mov r12.xzw, l(0,0,0,0) +endif +if_nz r12.y + mul r13.xyz, r6.xyzx, cb0[233].zzzz + mul r14.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r13.xyz, r13.xyzx, cb0[225].xxxx, r14.xyzx + max r10.w, -r6.y, l(0.000000) + min r10.w, r10.w, l(0.900000) + add r10.w, -r10.w, l(1.000000) + mad r2.x, -r5.y, r2.x, l(-0.200000) + mul_sat r2.x, r2.x, l(-10.000000) + mad r5.y, r2.x, l(-2.000000), l(3.000000) + mul r2.x, r2.x, r2.x + mul r2.x, r2.x, r5.y + max r2.x, r2.x, l(0.100000) + min r2.x, r2.x, l(1.000000) + mul r2.x, r2.x, r10.w + mad r13.xyz, r13.xyzx, r2.xxxx, r7.xyzx + add r12.xyz, r12.xzwx, r13.xyzx + mul r13.xyz, r12.yyyy, cb3[1].xyzx + mad r12.xyw, cb3[0].xyxz, r12.xxxx, r13.xyxz + mad r12.xyz, cb3[2].xyzx, r12.zzzz, r12.xywx + add r12.xyz, r12.xyzx, cb3[3].xyzx + mad r13.x, r12.x, l(0.500000), cb3[4].x + mad r2.x, r12.y, l(0.500000), l(0.500000) + add r13.z, -r2.x, cb3[4].y + add r12.xy, r13.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r2.x, r12.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r12.xyxx, t8.xxxx, s4, r2.x +else + mov r2.x, l(1.000000) +endif +mov_sat r5.y, r6.y +add r10.w, l(1.000000), -cb0[230].w +mad r5.y, r5.y, r10.w, cb0[230].w +add r12.xy, r7.xzxx, -cb0[44].xzxx +max r10.w, |r12.y|, |r12.x| +mul r11.w, r5.y, cb0[230].z +mul r12.x, r2.x, r5.y +mul r12.y, l(0.0500000119), cb0[222].w +mad r12.z, -cb0[222].w, l(0.700000), r10.w +div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), r12.y +mul_sat r12.y, r12.y, r12.z +mad r12.z, r12.y, l(-2.000000), l(3.000000) +mul r12.y, r12.y, r12.y +mul r12.y, r12.y, r12.z +mad r2.x, -r5.y, r2.x, l(1.000000) +mad r2.x, r12.y, r2.x, r12.x +mad r5.y, -cb0[230].z, r5.y, l(1.000000) +mad r2.x, r2.x, r5.y, r11.w +mad r5.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r10.w, r10.w, -cb0[222].w +div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y +mul_sat r5.y, r5.y, r10.w +mad r10.w, r5.y, l(-2.000000), l(3.000000) +mul r5.y, r5.y, r5.y +mul r5.y, r5.y, r10.w +add r10.w, -r2.x, cb0[230].y +mad r2.x, r5.y, r10.w, r2.x +add r2.x, -r2.x, l(1.000000) +mad r2.x, -r9.w, r2.x, l(1.000000) +mad_sat r5.y, r2.z, l(0.300000), l(0.250000) +mul r5.y, r5.y, cb0[222].x +mul r5.y, r2.x, r5.y +mad r5.y, r5.y, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r5.yyyy +min r5.y, r2.z, l(0.300000) +mul r2.x, r2.x, cb0[222].x +mul r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 3.000000) +add r5.y, -r2.z, r5.y +mad r12.z, r2.x, r5.y, r2.z +mul r2.x, r2.y, l(0.080000) +dp3 r2.z, r6.xyzx, r11.xyzx +max r5.y, r2.z, l(0.000000) +mad r13.xyzw, r12.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r9.w, r13.x, r13.x +mul r10.w, r5.y, l(-9.280000) +exp r10.w, r10.w +min r9.w, r9.w, r10.w +mad r9.w, r9.w, r13.x, r13.y +mad r13.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t6.zwxy +lt r0.z, l(0.001000), r13.z +if_nz r0.z + bfi r0.z, l(3), l(2), r1.x, l(0) + mul r1.x, r1.w, l(3.000000) + ftou r1.x, r1.x + bfi r0.z, l(2), l(0), r1.x, r0.z + utof r0.z, r0.z + mul r1.x, r0.z, l(0.0322580636) + ubfe r1.y, l(7), l(3), r1.y + utof r1.y, r1.y + mul r1.y, r1.y, l(0.00787401572) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xzxx, t11.yzwx, s1, l(0.000000) + dp3 r9.w, -r11.xyzx, r6.xyzx + add r9.w, r9.w, r9.w + mad r14.xyz, r6.xyzx, -r9.wwww, -r11.xyzx + dp3 r9.w, -cb2[0].xyzx, r14.xyzx + mad r15.xyz, cb2[0].xyzx, r9.wwww, r14.xyzx + lt r9.w, r9.w, cb2[4].z + dp3 r10.w, r15.xyzx, r15.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb2[4].yyyy + mad r15.xyz, -cb2[0].xyzx, cb2[4].zzzz, r15.xyzx + dp3 r10.w, r15.xyzx, r15.xyzx + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + movc r14.xyz, r9.wwww, r15.xyzx, r14.xyzx + mad r10.xyz, r10.xyzx, r8.wwww, r14.xyzx + dp3 r8.w, r10.xyzx, r10.xyzx + max r8.w, r8.w, l(0.0000610351562) + rsq r8.w, r8.w + mul r10.xyz, r8.wwww, r10.xyzx + dp3 r8.w, r6.xyzx, r14.xyzx + mov_sat r12.x, r8.w + dp3_sat r9.w, r6.xyzx, r10.xyzx + dp3 r10.w, r11.xyzx, r14.xyzx + min r12.y, r5.y, l(1.000000) + mul r11.w, r12.z, r12.z + mul r11.w, r11.w, r11.w + mad r12.w, r9.w, r11.w, -r9.w + mad r9.w, r12.w, r9.w, l(1.000000) + dp3_sat r10.x, r11.xyzx, r10.xyzx + add r10.x, -r10.x, l(1.000000) + mul r10.y, r10.x, r10.x + mul r10.y, r10.y, r10.y + mul r10.z, r10.x, r10.y + add r12.w, -r12.z, l(1.000000) + mad r14.x, -r12.w, l(0.383026), l(-0.0761947036) + mad r14.x, r12.w, r14.x, l(1.049970) + mad r12.w, r12.w, r14.x, l(0.409255) + min r12.w, r12.w, l(0.999000) + add r14.x, -r12.w, l(1.000000) + mad r2.y, -r2.y, l(0.080000), l(1.000000) + mad r2.y, r2.y, l(0.0476190485), r2.x + mov_sat r14.y, -r10.w + mul r14.y, r14.y, r14.y + mad r14.y, r14.y, l(-0.640000), l(1.000000) + mul r14.y, r14.y, r14.y + mad r10.x, -r10.y, r10.x, l(1.000000) + mad r10.x, r2.x, r10.x, r10.z + mul r9.w, r9.w, r9.w + div r9.w, r11.w, r9.w + mad r10.yz, -r12.yyxy, r11.wwww, r12.yyxy + mad r10.yz, r10.yyzy, r12.yyxy, r11.wwww + sqrt r10.yz, r10.yyzy + mul r10.yz, r10.yyzy, r12.xxyx + add r10.y, r10.z, r10.y + add r10.y, r10.y, l(0.000100) + div r10.y, l(0.500000), r10.y + mul r9.w, r9.w, r10.y + mul r9.w, r9.w, r10.x + min r9.w, r9.w, l(2048.000000) + mad r15.xyzw, r12.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r10.x, r15.xyxx, t10.xyzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r10.y, r15.zwzz, t10.yxzw, s1, l(0.000000) + mul r10.x, r10.y, r10.x + mul r10.x, r12.w, r10.x + div r10.x, r10.x, r14.x + mul r10.y, r2.y, r2.y + mul r10.x, r10.x, r10.y + mad r2.y, -r2.y, r14.x, l(1.000000) + div r2.y, r10.x, r2.y + add r2.y, r2.y, r9.w + add_sat r2.z, r2.z, l(0.200000) + mov_sat r9.w, r10.w + add r9.w, r9.w, l(0.500000) + min r9.w, r9.w, l(1.000000) + mul r10.x, r2.z, r9.w + add_sat r10.y, r10.w, l(1.000000) + mad r2.z, -r2.z, r9.w, l(1.000000) + mad r2.z, r10.y, r2.z, r10.x + mul r2.y, r2.z, r2.y + mul r2.y, r1.y, r2.y + mul r10.xyz, r1.yyyy, r3.xyzx + ubfe r2.z, l(7), l(3), r1.z + utof r2.z, r2.z + mul r2.z, r2.z, l(0.00787401572) + mul r2.y, r2.y, cb2[4].x + max r2.y, r2.y, l(0.000000) + min r2.y, r2.y, l(1000.000000) + mul r2.y, r12.x, r2.y + mad r10.xyz, r10.xyzx, r2.zzzz, r2.yyyy + max r2.y, r3.y, r3.x + max r2.y, r3.z, r2.y + max r2.y, r2.y, l(0.010000) + div r14.xzw, r3.xxyz, r2.yyyy + mul r2.y, r4.x, l(0.00393700786) + mul r14.xzw, r2.yyyy, r14.xxzw + add_sat r2.y, -r8.w, l(0.500000) + ne r2.z, r14.y, l(0.360000) + div r9.w, l(0.360000), r14.y + movc r2.z, r2.z, r9.w, l(1.000000) + mul r2.y, r2.z, r2.y + mad_sat r0.z, r0.z, l(0.0322580636), r8.w + add r0.z, -r12.x, r0.z + mul r12.xyw, r0.zzzz, r3.xyxz + mad r12.xyw, r14.xzxw, r2.yyyy, r12.xyxw + mad r10.xyz, r12.xywx, r1.yyyy, r10.xyzx + mul r10.xyz, r10.xyzx, cb2[1].xyzx + mov r13.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r12.xyw, r13.zwzz, t7.xywz, s1, cb0[108].x + add r0.z, -r13.z, l(1.000000) + mad r12.xyw, r10.xyxz, r12.xyxw, -r10.xyxz + mad r10.xyz, r0.zzzz, r12.xywx, r10.xyzx + max r0.z, r1.y, r1.w + add r0.z, -r1.w, r0.z + mad r0.z, r1.x, r0.z, r1.w + mul r1.xyw, r0.zzzz, r10.xyxz +else + mov r1.xyw, l(0,0,0,0) +endif +ne r2.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r2.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r2.y, r0.z, r5.y + mad r8.w, r12.z, l(-16.000000), l(-1.000000) + exp r8.w, r8.w + log r2.y, |r2.y| + mul r2.y, r2.y, r8.w + exp r2.y, r2.y + add r2.y, r0.z, r2.y + add r2.y, r2.y, l(-1.000000) + mov_sat r10.xyz, r2.yyyy + mad r12.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) + mul r12.xyw, r0.zzzz, r12.xyxw + mad r12.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r12.xyxw + add r12.xyw, r12.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) + mul r12.xyw, r0.zzzz, r12.xyxw + mad r12.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r12.xyxw + add r12.xyw, r12.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) + mul r12.xyw, r0.zzzz, r12.xyxw + max r12.xyw, r0.zzzz, r12.xyxw +else + mov r10.xyz, r3.wwww + mov r12.xyw, r3.wwww +endif +mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r14.xyz, r7.xzyx, -r14.xyzx +max r0.z, |r14.y|, |r14.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r2.y, |r14.z|, l(-208.000000) +mul_sat r2.y, r2.y, l(0.031250) +max r0.z, r0.z, r2.y +ne r2.y, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r2.y, r2.y, r3.w +if_nz r2.y + mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r14.xyz, r7.xzyx, -r14.xyzx + max r2.y, |r14.y|, |r14.x| + add r2.y, r2.y, l(-29.000000) + mul_sat r2.y, r2.y, l(0.500000) + add r3.w, |r14.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r2.y, r2.y, r3.w + lt r3.w, r2.y, l(1.000000) + if_nz r3.w + mad r14.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r15.xyw, r14.xyzx, t15.yzwx, s2, l(0.000000) + add r3.w, -r2.y, l(1.000000) + mul r8.w, l(0.500000), cb0[211].y + mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) + max r8.w, r8.w, r14.y + min r8.w, r9.w, r8.w + mul r14.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t16.xyzw, s1, l(0.000000) + mad r8.w, r16.w, r3.w, r0.z + add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r15.yyyy, r17.xyzx + mov r17.w, r15.y + mul r17.xyzw, r3.wwww, r17.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t16.xyzw, s1, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r15.xxxx, r14.xyzx + mov r14.w, r15.x + mul r14.xyzw, r3.wwww, r14.xyzw + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r15.wwww, r16.xyzx + mul r15.xyzw, r3.wwww, r15.xyzw + else + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r8.w, r0.z + endif + mad r16.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r16.xyz, r7.xzyx, -r16.xyzx + max r3.w, |r16.y|, |r16.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r9.w, |r16.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r3.w, r3.w, r9.w + lt r9.w, r3.w, l(1.000000) + if_nz r9.w + mad r16.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r16.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) + add r9.w, -r3.w, l(1.000000) + mul r2.y, r2.y, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r16.y + min r9.w, r10.w, r9.w + mul r16.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) + mad r8.w, r19.w, r2.y, r8.w + add r20.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t18.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mad r17.xyzw, r20.xyzw, r2.yyyy, r17.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r18.xxxx, r16.xyzx + mov r16.w, r18.x + mad r14.xyzw, r16.xyzw, r2.yyyy, r14.xyzw + mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r16.xyzx + mad r15.xyzw, r18.xyzw, r2.yyyy, r15.xyzw + endif + lt r2.y, l(0.000000), r3.w + if_nz r2.y + mad r16.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r16.xyzx, cb0[211].xyzx + mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r16.xyz, r19.xyzx, r16.xyzx + min r16.xyz, r18.xyzx, r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r16.xyzx, t19.yzwx, s2, l(0.000000) + add r2.y, -r0.z, l(1.000000) + mul r2.y, r2.y, r3.w + max r3.w, r19.y, r16.y + min r3.w, r18.y, r3.w + mul r16.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t20.xyzw, s1, l(0.000000) + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r20.yyyy, r19.xyzx + mov r19.w, r20.y + mad r17.xyzw, r19.xyzw, r2.yyyy, r17.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t20.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r20.xxxx, r16.xyzx + mov r16.w, r20.x + mad r14.xyzw, r16.xyzw, r2.yyyy, r14.xyzw + mad r16.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r16.xyzx + mad r15.xyzw, r20.xyzw, r2.yyyy, r15.xyzw + mad r8.w, r18.w, r2.y, r8.w + endif + mad_sat r2.y, r8.w, l(2.000000), l(-1.000000) + add r16.x, -r0.z, r2.y + add r0.z, r0.z, r2.y + mul r16.y, r0.z, l(0.500000) +else + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r16.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r16.yyyx, cb0[213].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[213].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r15.xyzw, r15.xyzw, r18.xyzw +mul r18.xyzw, r16.yyyx, cb0[214].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[214].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r14.xyzw, r14.xyzw, r18.xyzw +mul r18.xyzw, r16.yyyx, cb0[215].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[215].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r16.xyzw, r17.xyzw, r18.xyzw +ge r13.zw, r5.xxxz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r13.w, r13.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r5.xzxx, t14.xyzw, s1, l(0.000000) + lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| + or r5.xz, r18.zzwz, r18.xxyx + or r0.z, r5.z, r5.x + if_nz r0.z + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mov r5.x, l(1.000000) + mov r5.z, r0.z + mov r2.y, l(0) + loop + ge r3.w, l(4.600000), r5.z + breakc_nz r3.w + iadd r3.w, r2.y, l(1) + mul r13.zw, r5.xxxz, l(0.000000, 0.000000, 0.500000, 0.500000) + mov r5.xz, r13.zzwz + mov r2.y, r3.w + continue + endloop + mul r17.xyzw, r5.xxxx, r17.xyzw + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb4[3].x, cb4[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r18.x, r0.z, l(0.00390625000) + mov r18.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r5.xz, r18.xyxx, t13.xzyw, s1, l(0.000000) + mad r5.xz, r5.xxzx, cb4[2].xxyx, cb4[2].zzwz + mul r18.x, r5.x, l(3.54490781) + mul r18.yzw, r5.zzzz, r17.yyzw + mul r0.z, r17.x, l(0.406976730) + exp r0.z, r0.z + mul r17.xyzw, r0.zzzz, r18.xyzw + mov r18.xyzw, r17.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r2.y + breakc_nz r3.w + mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r19.xyzw, r18.xyzw + dp2 r5.x, r19.yxyy, r18.xyxx + dp2 r5.z, r19.zxzz, r18.xzxx + dp2 r8.w, r19.wxww, r18.xwxx + iadd r9.w, r0.z, l(1) + mov r18.x, r3.w + mov r18.yz, r5.xxzx + mov r18.w, r8.w + mov r0.z, r9.w + continue + endloop + mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r17.xyzw, r18.xyzw + dp2 r2.y, r17.yxyy, r18.xyxx + dp2 r3.w, r17.zxzz, r18.xzxx + dp2 r5.x, r17.wxww, r18.xwxx + mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r5.z, r17.xyzw, r18.xyzw + dp2 r8.w, r17.yxyy, r18.xyxx + dp2 r9.w, r17.zxzz, r18.xzxx + dp2 r10.w, r17.wxww, r18.xwxx + mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r11.w, r17.xyzw, r18.xyzw + dp2 r13.z, r17.yxyy, r18.xyxx + dp2 r13.w, r17.zxzz, r18.xzxx + dp2 r17.x, r17.wxww, r18.xwxx + mul r15.w, r0.z, l(0.886226952) + mul r15.x, r5.x, l(-1.02332675) + mul r15.y, r2.y, l(-1.02332675) + mul r15.z, r3.w, l(1.02332675) + mul r14.w, r5.z, l(0.886226952) + mul r14.x, r10.w, l(-1.02332675) + mul r14.y, r8.w, l(-1.02332675) + mul r14.z, r9.w, l(1.02332675) + mul r16.w, r11.w, l(0.886226952) + mul r16.x, r17.x, l(-1.02332675) + mul r16.yz, r13.zzwz, l(0.000000, -1.02332675, 1.02332675, 0.000000) + endif +endif +mov r6.w, l(1.000000) +dp4 r17.x, r15.xyzw, r6.xyzw +dp4 r17.y, r14.xyzw, r6.xyzw +dp4 r17.z, r16.xyzw, r6.xyzw +max r17.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +dp3 r0.z, -r11.xyzx, r6.xyzx +add r0.z, r0.z, r0.z +mad r18.xyz, r6.xyzx, -r0.zzzz, -r11.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r2.y, r12.z, l(0.001000) +log r2.y, r2.y +mad r2.y, -r2.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r2.y +mul r5.xz, r4.yyzy, cb1[0].wwww +round_ni r5.xz, r5.xxzx +add r2.y, |r4.w|, -cb1[2].y +round_ni r2.y, r2.y +add r3.w, l(-1.000000), cb1[1].x +max r8.w, r2.y, l(0.000000) +min r3.w, r3.w, r8.w +ge r2.y, r3.w, r2.y +mad r5.x, r5.z, cb1[0].x, r5.x +ftoi r5.x, r5.x +iadd r5.x, r5.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.x, r5.x, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r5.x +and r2.y, r2.y, r3.w +mul r19.xyz, r17.xyzx, cb0[111].xxxx +dp3 r3.w, r19.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r19.xyz, l(0,0,0,0) +mov r5.x, l(1.000000) +mov r5.z, r2.y +mov r8.w, l(0) +loop + lt r9.w, l(0.010000), r5.x + ine r10.w, r5.z, l(0) + and r10.w, r9.w, r10.w + if_nz r10.w + firstbit_lo r10.w, r5.z + ishl r11.w, l(1), r10.w + xor r5.z, r5.z, r11.w + ishl r10.w, r10.w, l(3) + dp4 r20.x, cb1[r10.w + 6].xyzw, r7.xyzw + dp4 r20.y, cb1[r10.w + 7].xyzw, r7.xyzw + dp4 r20.z, cb1[r10.w + 8].xyzw, r7.xyzw + ge r21.xyz, cb1[r10.w + 5].xyzx, |r20.xyzx| + and r11.w, r21.y, r21.x + and r11.w, r21.z, r11.w + if_nz r11.w + mul r11.w, l(0.100000), cb1[r10.w + 5].x + mul r21.xyz, |r20.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r13.zw, r21.xxxy, r21.xxxy + add r21.xyw, -|r20.xyxz|, cb1[r10.w + 5].xyxz + mul r21.xyw, r21.xyxw, cb1[r10.w + 9].xyxz + eq r12.z, l(1.000000), cb1[r10.w + 10].x + if_nz r12.z + dp3 r22.x, cb1[r10.w + 6].xyzx, r18.xyzx + dp3 r22.y, cb1[r10.w + 7].xyzx, r18.xyzx + dp3 r22.z, cb1[r10.w + 8].xyzx, r18.xyzx + add r23.xyz, -r20.xyzx, cb1[r10.w + 5].xyzx + div r23.xyz, r23.xyzx, r22.xyzx + add r24.xyz, -r20.xyzx, -cb1[r10.w + 5].xyzx + div r24.xyz, r24.xyzx, r22.xyzx + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + movc r23.xyz, r25.xyzx, r23.xyzx, r24.xyzx + min r12.z, r23.y, r23.x + min r12.z, r23.z, r12.z + mad r20.xyz, r22.xyzx, r12.zzzz, r20.xyzx + else + mov r20.xyz, r18.xyzx + endif + dp3 r12.z, r20.xyzx, r20.xyzx + rsq r12.z, r12.z + mul r20.xyz, r12.zzzz, r20.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + lt r23.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r22.xyz, -r22.xyzx, r23.xyzx + itof r22.xyz, r22.xyzx + dp3 r12.z, r20.xyzx, r22.xyzx + div r20.xyz, r20.xyzx, r12.zzzz + lt r12.z, r20.z, l(0.000000) + add r20.zw, -|r20.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.zw, r20.zzzw, r22.xxxy + movc r20.xy, r12.zzzz, r20.zwzz, r20.xyxx + dp4 r12.z, cb1[r10.w + 4].xyzw, r6.xyzw + max r12.z, r12.z, l(0.000000) + max r12.z, r12.z, l(0.000100) + min r17.w, r21.w, r21.y + min r17.w, r17.w, r21.x + add r13.z, r13.w, r13.z + mad r13.z, r21.z, r21.z, r13.z + mad r11.w, r11.w, r11.w, -r13.z + mul r11.w, r11.w, cb1[r10.w + 9].x + mul r11.w, r11.w, cb1[r10.w + 9].x + add r13.z, l(1.000000), -cb1[r10.w + 10].y + mul r11.w, r11.w, r13.z + mul r11.w, r11.w, l(100.000000) + mad_sat r11.w, r17.w, cb1[r10.w + 10].y, r11.w + mul r13.z, r11.w, cb1[r10.w + 10].w + mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r20.xy, r20.xyxx, cb1[1].wwww, cb1[2].wwww + mov r20.z, cb1[r10.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r20.xyz, r20.xyzx, t5.xyzw, s3, r0.z + mul r20.xyz, r20.xyzx, cb1[r10.w + 9].wwww + div r13.w, r3.w, r12.z + min r13.w, |r13.w|, l(1.000000) + mad r13.w, r13.w, l(2.000000), r3.w + add r12.z, r12.z, l(2.000000) + div r12.z, r13.w, r12.z + add r12.z, r12.z, l(-1.000000) + mad r12.z, r12.z, cb0[112].w, l(1.000000) + mul r20.xyz, r12.zzzz, r20.xyzx + mul r20.xyz, r13.zzzz, r20.xyzx + mad r19.xyz, r20.xyzx, r5.xxxx, r19.xyzx + mad r10.w, -r11.w, cb1[r10.w + 10].w, l(1.000000) + mul r5.x, r5.x, r10.w + endif + mov r8.w, l(-1) + continue + else + mov r8.w, r9.w + break + endif + mov r8.w, r9.w +endloop +if_nz r8.w + dp3 r2.y, r18.xyzx, r18.xyzx + rsq r2.y, r2.y + mul r18.xyz, r2.yyyy, r18.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + lt r21.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r2.y, r18.xyzx, r20.xyzx + div r18.xyz, r18.xyzx, r2.yyyy + lt r2.y, r18.z, l(0.000000) + add r13.zw, -|r18.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r13.zw, r13.zzzw, r20.xxxy + movc r13.zw, r2.yyyy, r13.zzzw, r18.xxxy + dp4 r2.y, cb1[3].xyzw, r6.xyzw + max r2.y, r2.y, l(0.000000) + max r2.y, r2.y, l(0.000100) + mad r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r18.xy, r13.zwzz, cb1[1].wwww, cb1[2].wwww + mov r18.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r18.xyz, r18.xyzx, t5.xyzw, s3, r0.z + div r0.z, r3.w, r2.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r2.y, r2.y, l(2.000000) + div r0.z, r0.z, r2.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r18.xyz, r0.zzzz, r18.xyzx + mad r19.xyz, r18.xyzx, r5.xxxx, r19.xyzx +endif +mul r18.xyz, r19.xyzx, cb0[112].zzzz +mul r18.xyz, r18.xyzx, cb0[111].yyyy +if_nz r2.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r19.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r2.y, -r0.z, l(1.000000) + mul r20.xyz, r2.yyyy, r18.xyzx + mad r18.xyz, r19.xyzx, r0.zzzz, r20.xyzx +endif +mul r17.xyz, r3.xyzx, r17.xyzx +mul r17.xyz, r17.xyzx, cb0[111].xxxx +mad r0.z, r2.x, r13.x, r13.y +mul r2.xyz, r0.zzzz, r18.xyzx +mul r2.xyz, r10.xyzx, r2.xyzx +mad r2.xyz, r17.xyzx, r12.xywx, r2.xyzx +mul r6.xyzw, r6.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r10.x, r15.xyzw, r6.xyzw +dp4 r10.y, r14.xyzw, r6.xyzw +dp4 r10.z, r16.xyzw, r6.xyzw +max r6.xyz, r10.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mul r6.xyz, r12.xywx, r6.xyzx +max r0.z, r3.y, r3.x +max r0.z, r3.z, r0.z +max r0.z, r0.z, l(0.010000) +div r3.xyz, r3.xyzx, r0.zzzz +mul r3.xyz, r3.xyzx, r6.xyzx +mul r0.z, r4.x, l(0.00787401572) +min r3.w, r5.y, l(1.000000) +bfi r1.z, l(3), l(2), r1.z, l(0) +ftou r2.w, r2.w +bfi r1.z, l(2), l(0), r2.w, r1.z +utof r1.z, r1.z +mul r1.z, r1.z, l(0.0322580636) +mad r0.z, r0.z, r3.w, r1.z +mul r3.xyz, r0.zzzz, r3.xyzx +mad r2.xyz, r3.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r2.xyzx +add r1.xyz, r1.xywx, r2.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r5.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r7.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r9.xyzx + add r2.w, r7.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w + mul r3.w, r0.x, r3.z + mad r4.x, r3.w, r2.w, cb0[44].y + mad r2.w, -r3.w, r2.w, r2.w + mul r3.w, r2.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.x, r4.x, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.y, l(5.960464478E-08), |r3.w| + exp r5.z, -r3.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.y, r5.z, r3.w + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r5.y, l(5.960464478E-08), |r2.w| + exp r5.z, -r2.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r5.y, r5.z, r2.w + mul r2.w, r2.w, r4.x + mad r2.w, r5.x, r3.w, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r5.w, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r5.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r4.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t12.xyzw, s1, l(0.000000) + add r0.y, |r4.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r5.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r5.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx + +// === Simplified Fog Modification (Anti-Banding) === +// Check if fog modification is enabled via cb13[12].y +lt r15.x, l(0.500000), cb13[12].y +if_nz r15.x + // r1.xyz = scene color, r4.xyz = transmittance, r0.xyz = fog inscatter + // Boost transmittance: lerp(trans, 1, 0.35) to reduce fog density + add r15.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + + // Reduce fog inscatter intensity + mul r16.xyz, r0.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + + // Modified fog blend: scene * boostedTrans + reducedInscatter + mad r0.xyz, r1.xyzx, r15.xyzx, r16.xyzx +else + // Original fog blend + mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +endif +// === End Fog Modification === +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r8.xyzx, r8.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0_original_backup.asm new file mode 100644 index 000000000..86cb2ba1e --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0_original_backup.asm @@ -0,0 +1,990 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Sun Feb 1 03:51:02 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xy +// TEXCOORD 0 xy 1 NONE float xy +// +// +// 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[235], immediateIndexed +dcl_constantbuffer CB1[259], dynamicIndexed +dcl_constantbuffer CB2[5], immediateIndexed +dcl_constantbuffer CB3[5], immediateIndexed +dcl_constantbuffer CB4[4], 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_comparison +dcl_resource_structured t0, 4 +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_texture2darray (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_resource_texture2d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_resource_texture2d (float,float,float,float) t24 +dcl_resource_texture3d (float,float,float,float) t25 +dcl_input_ps_siv linear noperspective v0.xy, position +dcl_input_ps linear v1.xy +dcl_output o0.xyzw +dcl_temps 26 +ftou r0.xy, v0.xyxx +mov r0.z, l(0) +ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw +ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t23.xyzw +ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t24.xyzw +mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) +ftou r1.xz, r1.xxzx +ubfe r4.x, l(7), l(3), r1.x +utof r4.x, r4.x +round_ne r1.y, r1.y +ftou r1.y, r1.y +mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| +add r5.y, -r4.y, l(1.000000) +lt r4.y, r5.y, l(0.000000) +ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) +add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) +movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) +mul r4.zw, r4.zzzw, r6.xxxy +movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx +dp3 r2.x, r5.xyzx, r5.xyzx +rsq r2.x, r2.x +mul r6.xyz, r2.xxxx, r5.xyzx +and r2.y, r1.y, l(7) +utof r2.y, r2.y +mad r2.y, r2.y, l(0.107142866), l(0.500000) +utof r4.yz, r0.xxyx +mul r5.xz, v0.xxyx, cb0[82].zzwz +mad r7.xy, r5.xzxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r7.zw, r4.yyyz, l(0.000000, 0.000000, 0.500000, 0.500000) +mul r7.zw, r7.zzzw, cb0[82].zzzw +sample_l_indexable(texture2d)(float,float,float,float) r4.w, r7.zwzz, t1.yzwx, s0, l(0.000000) +mul r8.xyzw, -r7.yyyy, cb0[25].xyzw +mad r7.xyzw, cb0[24].xyzw, r7.xxxx, r8.xyzw +mad r7.xyzw, cb0[26].xyzw, r4.wwww, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +div r7.xyz, r7.xyzx, r7.wwww +mul r4.w, r7.y, cb0[1].z +mad r4.w, cb0[0].z, r7.x, r4.w +mad r4.w, cb0[2].z, r7.z, r4.w +add r4.w, r4.w, cb0[3].z +eq r5.w, l(0.000000), cb0[86].w +add r8.xyz, -r7.xyzx, cb0[44].xyzx +mov r9.x, cb0[0].z +mov r9.y, cb0[1].z +mov r9.z, cb0[2].z +movc r10.xyz, r5.wwww, r8.xyzx, r9.xyzx +dp3 r5.w, r10.xyzx, r10.xyzx +max r8.w, r5.w, l(9.999999939E-09) +rsq r8.w, r8.w +mul r11.xyz, r8.wwww, r10.xyzx +mul r5.w, r5.w, r8.w +lt r9.w, l(0.000488281250), cb0[234].x +if_nz r9.w + sample_b_indexable(texture2d)(float,float,float,float) r9.w, v1.xyxx, t21.yzwx, s1, cb0[108].x +else + mov r9.w, l(1.000000) +endif +lt r12.xy, l(0.500000, 0.500000, 0.000000, 0.000000), cb0[226].xyxx +if_nz r12.x + add r10.w, |r6.y|, |r6.x| + add r10.w, |r6.z|, r10.w + div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w + mul r12.xzw, |r6.xxyz|, r10.wwww + mul r13.xyzw, r12.xxzz, l(0.000000, 1.000000, 0.707106, 0.000000) + add r13.xyz, r13.zwzz, r13.xxyx + mad r12.xzw, r12.wwww, l(1.000000, 0.000000, 0.000000, 0.000000), r13.xxyz + mul r13.xyz, r7.xyzx, cb0[229].xxxx + sample_l_indexable(texture3d)(float,float,float,float) r10.w, r13.xyzx, t9.yzwx, s2, l(0.000000) + mad r10.w, r10.w, l(2.000000), l(-1.000000) + mul r12.xzw, r10.wwww, r12.xxzw + mov r10.w, |r6.y| + add r10.w, r10.w, l(-0.700000) + mul_sat r10.w, r10.w, l(4.000000) + mad r11.w, r10.w, l(-2.000000), l(3.000000) + mul r10.w, r10.w, r10.w + mul r10.w, r10.w, r11.w + add r11.w, -cb0[229].z, cb0[229].y + mad r10.w, r10.w, r11.w, cb0[229].z + mul r12.xzw, r10.wwww, r12.xxzw +else + mov r12.xzw, l(0,0,0,0) +endif +if_nz r12.y + mul r13.xyz, r6.xyzx, cb0[233].zzzz + mul r14.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy + mad r13.xyz, r13.xyzx, cb0[225].xxxx, r14.xyzx + max r10.w, -r6.y, l(0.000000) + min r10.w, r10.w, l(0.900000) + add r10.w, -r10.w, l(1.000000) + mad r2.x, -r5.y, r2.x, l(-0.200000) + mul_sat r2.x, r2.x, l(-10.000000) + mad r5.y, r2.x, l(-2.000000), l(3.000000) + mul r2.x, r2.x, r2.x + mul r2.x, r2.x, r5.y + max r2.x, r2.x, l(0.100000) + min r2.x, r2.x, l(1.000000) + mul r2.x, r2.x, r10.w + mad r13.xyz, r13.xyzx, r2.xxxx, r7.xyzx + add r12.xyz, r12.xzwx, r13.xyzx + mul r13.xyz, r12.yyyy, cb3[1].xyzx + mad r12.xyw, cb3[0].xyxz, r12.xxxx, r13.xyxz + mad r12.xyz, cb3[2].xyzx, r12.zzzz, r12.xywx + add r12.xyz, r12.xyzx, cb3[3].xyzx + mad r13.x, r12.x, l(0.500000), cb3[4].x + mad r2.x, r12.y, l(0.500000), l(0.500000) + add r13.z, -r2.x, cb3[4].y + add r12.xy, r13.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) + max r2.x, r12.z, l(0.000488281250) + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r12.xyxx, t8.xxxx, s4, r2.x +else + mov r2.x, l(1.000000) +endif +mov_sat r5.y, r6.y +add r10.w, l(1.000000), -cb0[230].w +mad r5.y, r5.y, r10.w, cb0[230].w +add r12.xy, r7.xzxx, -cb0[44].xzxx +max r10.w, |r12.y|, |r12.x| +mul r11.w, r5.y, cb0[230].z +mul r12.x, r2.x, r5.y +mul r12.y, l(0.0500000119), cb0[222].w +mad r12.z, -cb0[222].w, l(0.700000), r10.w +div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), r12.y +mul_sat r12.y, r12.y, r12.z +mad r12.z, r12.y, l(-2.000000), l(3.000000) +mul r12.y, r12.y, r12.y +mul r12.y, r12.y, r12.z +mad r2.x, -r5.y, r2.x, l(1.000000) +mad r2.x, r12.y, r2.x, r12.x +mad r5.y, -cb0[230].z, r5.y, l(1.000000) +mad r2.x, r2.x, r5.y, r11.w +mad r5.y, cb0[230].x, cb0[222].w, -cb0[222].w +add r10.w, r10.w, -cb0[222].w +div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y +mul_sat r5.y, r5.y, r10.w +mad r10.w, r5.y, l(-2.000000), l(3.000000) +mul r5.y, r5.y, r5.y +mul r5.y, r5.y, r10.w +add r10.w, -r2.x, cb0[230].y +mad r2.x, r5.y, r10.w, r2.x +add r2.x, -r2.x, l(1.000000) +mad r2.x, -r9.w, r2.x, l(1.000000) +mad_sat r5.y, r2.z, l(0.300000), l(0.250000) +mul r5.y, r5.y, cb0[222].x +mul r5.y, r2.x, r5.y +mad r5.y, r5.y, l(-0.750000), l(1.000000) +mul r3.xyz, r3.xyzx, r5.yyyy +min r5.y, r2.z, l(0.300000) +mul r2.x, r2.x, cb0[222].x +mul r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 3.000000) +add r5.y, -r2.z, r5.y +mad r12.z, r2.x, r5.y, r2.z +mul r2.x, r2.y, l(0.080000) +dp3 r2.z, r6.xyzx, r11.xyzx +max r5.y, r2.z, l(0.000000) +mad r13.xyzw, r12.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r9.w, r13.x, r13.x +mul r10.w, r5.y, l(-9.280000) +exp r10.w, r10.w +min r9.w, r9.w, r10.w +mad r9.w, r9.w, r13.x, r13.y +mad r13.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t6.zwxy +lt r0.z, l(0.001000), r13.z +if_nz r0.z + bfi r0.z, l(3), l(2), r1.x, l(0) + mul r1.x, r1.w, l(3.000000) + ftou r1.x, r1.x + bfi r0.z, l(2), l(0), r1.x, r0.z + utof r0.z, r0.z + mul r1.x, r0.z, l(0.0322580636) + ubfe r1.y, l(7), l(3), r1.y + utof r1.y, r1.y + mul r1.y, r1.y, l(0.00787401572) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xzxx, t11.yzwx, s1, l(0.000000) + dp3 r9.w, -r11.xyzx, r6.xyzx + add r9.w, r9.w, r9.w + mad r14.xyz, r6.xyzx, -r9.wwww, -r11.xyzx + dp3 r9.w, -cb2[0].xyzx, r14.xyzx + mad r15.xyz, cb2[0].xyzx, r9.wwww, r14.xyzx + lt r9.w, r9.w, cb2[4].z + dp3 r10.w, r15.xyzx, r15.xyzx + max r10.w, r10.w, l(0.0000610351562) + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb2[4].yyyy + mad r15.xyz, -cb2[0].xyzx, cb2[4].zzzz, r15.xyzx + dp3 r10.w, r15.xyzx, r15.xyzx + rsq r10.w, r10.w + mul r15.xyz, r10.wwww, r15.xyzx + movc r14.xyz, r9.wwww, r15.xyzx, r14.xyzx + mad r10.xyz, r10.xyzx, r8.wwww, r14.xyzx + dp3 r8.w, r10.xyzx, r10.xyzx + max r8.w, r8.w, l(0.0000610351562) + rsq r8.w, r8.w + mul r10.xyz, r8.wwww, r10.xyzx + dp3 r8.w, r6.xyzx, r14.xyzx + mov_sat r12.x, r8.w + dp3_sat r9.w, r6.xyzx, r10.xyzx + dp3 r10.w, r11.xyzx, r14.xyzx + min r12.y, r5.y, l(1.000000) + mul r11.w, r12.z, r12.z + mul r11.w, r11.w, r11.w + mad r12.w, r9.w, r11.w, -r9.w + mad r9.w, r12.w, r9.w, l(1.000000) + dp3_sat r10.x, r11.xyzx, r10.xyzx + add r10.x, -r10.x, l(1.000000) + mul r10.y, r10.x, r10.x + mul r10.y, r10.y, r10.y + mul r10.z, r10.x, r10.y + add r12.w, -r12.z, l(1.000000) + mad r14.x, -r12.w, l(0.383026), l(-0.0761947036) + mad r14.x, r12.w, r14.x, l(1.049970) + mad r12.w, r12.w, r14.x, l(0.409255) + min r12.w, r12.w, l(0.999000) + add r14.x, -r12.w, l(1.000000) + mad r2.y, -r2.y, l(0.080000), l(1.000000) + mad r2.y, r2.y, l(0.0476190485), r2.x + mov_sat r14.y, -r10.w + mul r14.y, r14.y, r14.y + mad r14.y, r14.y, l(-0.640000), l(1.000000) + mul r14.y, r14.y, r14.y + mad r10.x, -r10.y, r10.x, l(1.000000) + mad r10.x, r2.x, r10.x, r10.z + mul r9.w, r9.w, r9.w + div r9.w, r11.w, r9.w + mad r10.yz, -r12.yyxy, r11.wwww, r12.yyxy + mad r10.yz, r10.yyzy, r12.yyxy, r11.wwww + sqrt r10.yz, r10.yyzy + mul r10.yz, r10.yyzy, r12.xxyx + add r10.y, r10.z, r10.y + add r10.y, r10.y, l(0.000100) + div r10.y, l(0.500000), r10.y + mul r9.w, r9.w, r10.y + mul r9.w, r9.w, r10.x + min r9.w, r9.w, l(2048.000000) + mad r15.xyzw, r12.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r10.x, r15.xyxx, t10.xyzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r10.y, r15.zwzz, t10.yxzw, s1, l(0.000000) + mul r10.x, r10.y, r10.x + mul r10.x, r12.w, r10.x + div r10.x, r10.x, r14.x + mul r10.y, r2.y, r2.y + mul r10.x, r10.x, r10.y + mad r2.y, -r2.y, r14.x, l(1.000000) + div r2.y, r10.x, r2.y + add r2.y, r2.y, r9.w + add_sat r2.z, r2.z, l(0.200000) + mov_sat r9.w, r10.w + add r9.w, r9.w, l(0.500000) + min r9.w, r9.w, l(1.000000) + mul r10.x, r2.z, r9.w + add_sat r10.y, r10.w, l(1.000000) + mad r2.z, -r2.z, r9.w, l(1.000000) + mad r2.z, r10.y, r2.z, r10.x + mul r2.y, r2.z, r2.y + mul r2.y, r1.y, r2.y + mul r10.xyz, r1.yyyy, r3.xyzx + ubfe r2.z, l(7), l(3), r1.z + utof r2.z, r2.z + mul r2.z, r2.z, l(0.00787401572) + mul r2.y, r2.y, cb2[4].x + max r2.y, r2.y, l(0.000000) + min r2.y, r2.y, l(1000.000000) + mul r2.y, r12.x, r2.y + mad r10.xyz, r10.xyzx, r2.zzzz, r2.yyyy + max r2.y, r3.y, r3.x + max r2.y, r3.z, r2.y + max r2.y, r2.y, l(0.010000) + div r14.xzw, r3.xxyz, r2.yyyy + mul r2.y, r4.x, l(0.00393700786) + mul r14.xzw, r2.yyyy, r14.xxzw + add_sat r2.y, -r8.w, l(0.500000) + ne r2.z, r14.y, l(0.360000) + div r9.w, l(0.360000), r14.y + movc r2.z, r2.z, r9.w, l(1.000000) + mul r2.y, r2.z, r2.y + mad_sat r0.z, r0.z, l(0.0322580636), r8.w + add r0.z, -r12.x, r0.z + mul r12.xyw, r0.zzzz, r3.xyxz + mad r12.xyw, r14.xzxw, r2.yyyy, r12.xyxw + mad r10.xyz, r12.xywx, r1.yyyy, r10.xyzx + mul r10.xyz, r10.xyzx, cb2[1].xyzx + mov r13.w, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r12.xyw, r13.zwzz, t7.xywz, s1, cb0[108].x + add r0.z, -r13.z, l(1.000000) + mad r12.xyw, r10.xyxz, r12.xyxw, -r10.xyxz + mad r10.xyz, r0.zzzz, r12.xywx, r10.xyzx + max r0.z, r1.y, r1.w + add r0.z, -r1.w, r0.z + mad r0.z, r1.x, r0.z, r1.w + mul r1.xyw, r0.zzzz, r10.xyxz +else + mov r1.xyw, l(0,0,0,0) +endif +ne r2.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +if_nz r2.y + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x + mad r0.z, r0.z, l(0.750000), l(0.250000) + min r0.z, r3.w, r0.z + add r2.y, r0.z, r5.y + mad r8.w, r12.z, l(-16.000000), l(-1.000000) + exp r8.w, r8.w + log r2.y, |r2.y| + mul r2.y, r2.y, r8.w + exp r2.y, r2.y + add r2.y, r0.z, r2.y + add r2.y, r2.y, l(-1.000000) + mov_sat r10.xyz, r2.yyyy + mad r12.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) + mul r12.xyw, r0.zzzz, r12.xyxw + mad r12.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r12.xyxw + add r12.xyw, r12.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) + mul r12.xyw, r0.zzzz, r12.xyxw + mad r12.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r12.xyxw + add r12.xyw, r12.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) + mul r12.xyw, r0.zzzz, r12.xyxw + max r12.xyw, r0.zzzz, r12.xyxw +else + mov r10.xyz, r3.wwww + mov r12.xyw, r3.wwww +endif +mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r14.xyz, r7.xzyx, -r14.xyzx +max r0.z, |r14.y|, |r14.x| +add r0.z, r0.z, l(-464.000000) +mul_sat r0.z, r0.z, l(0.031250) +add r2.y, |r14.z|, l(-208.000000) +mul_sat r2.y, r2.y, l(0.031250) +max r0.z, r0.z, r2.y +ne r2.y, l(0.000000), cb0[210].w +lt r3.w, r0.z, l(1.000000) +and r2.y, r2.y, r3.w +if_nz r2.y + mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r14.xyz, r7.xzyx, -r14.xyzx + max r2.y, |r14.y|, |r14.x| + add r2.y, r2.y, l(-29.000000) + mul_sat r2.y, r2.y, l(0.500000) + add r3.w, |r14.z|, l(-13.000000) + mul_sat r3.w, r3.w, l(0.500000) + max r2.y, r2.y, r3.w + lt r3.w, r2.y, l(1.000000) + if_nz r3.w + mad r14.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r15.xyw, r14.xyzx, t15.yzwx, s2, l(0.000000) + add r3.w, -r2.y, l(1.000000) + mul r8.w, l(0.500000), cb0[211].y + mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) + max r8.w, r8.w, r14.y + min r8.w, r9.w, r8.w + mul r14.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t16.xyzw, s1, l(0.000000) + mad r8.w, r16.w, r3.w, r0.z + add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r15.yyyy, r17.xyzx + mov r17.w, r15.y + mul r17.xyzw, r3.wwww, r17.xyzw + add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t16.xyzw, s1, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r15.xxxx, r14.xyzx + mov r14.w, r15.x + mul r14.xyzw, r3.wwww, r14.xyzw + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r15.wwww, r16.xyzx + mul r15.xyzw, r3.wwww, r15.xyzw + else + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r8.w, r0.z + endif + mad r16.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r16.xyz, r7.xzyx, -r16.xyzx + max r3.w, |r16.y|, |r16.x| + add r3.w, r3.w, l(-116.000000) + mul_sat r3.w, r3.w, l(0.125000) + add r9.w, |r16.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r3.w, r3.w, r9.w + lt r9.w, r3.w, l(1.000000) + if_nz r9.w + mad r16.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r16.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) + add r9.w, -r3.w, l(1.000000) + mul r2.y, r2.y, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r16.y + min r9.w, r10.w, r9.w + mul r16.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) + mad r8.w, r19.w, r2.y, r8.w + add r20.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t18.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.yyyy, r20.xyzx + mov r20.w, r18.y + mad r17.xyzw, r20.xyzw, r2.yyyy, r17.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r18.xxxx, r16.xyzx + mov r16.w, r18.x + mad r14.xyzw, r16.xyzw, r2.yyyy, r14.xyzw + mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r16.xyzx + mad r15.xyzw, r18.xyzw, r2.yyyy, r15.xyzw + endif + lt r2.y, l(0.000000), r3.w + if_nz r2.y + mad r16.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r16.xyzx, cb0[211].xyzx + mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r16.xyz, r19.xyzx, r16.xyzx + min r16.xyz, r18.xyzx, r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r16.xyzx, t19.yzwx, s2, l(0.000000) + add r2.y, -r0.z, l(1.000000) + mul r2.y, r2.y, r3.w + max r3.w, r19.y, r16.y + min r3.w, r18.y, r3.w + mul r16.w, r3.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t20.xyzw, s1, l(0.000000) + add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r20.yyyy, r19.xyzx + mov r19.w, r20.y + mad r17.xyzw, r19.xyzw, r2.yyyy, r17.xyzw + add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t20.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r20.xxxx, r16.xyzx + mov r16.w, r20.x + mad r14.xyzw, r16.xyzw, r2.yyyy, r14.xyzw + mad r16.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r16.xyzx + mad r15.xyzw, r20.xyzw, r2.yyyy, r15.xyzw + mad r8.w, r18.w, r2.y, r8.w + endif + mad_sat r2.y, r8.w, l(2.000000), l(-1.000000) + add r16.x, -r0.z, r2.y + add r0.z, r0.z, r2.y + mul r16.y, r0.z, l(0.500000) +else + mov r17.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r16.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r16.yyyx, cb0[213].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[213].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r15.xyzw, r15.xyzw, r18.xyzw +mul r18.xyzw, r16.yyyx, cb0[214].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[214].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r14.xyzw, r14.xyzw, r18.xyzw +mul r18.xyzw, r16.yyyx, cb0[215].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r13.zw, r16.yyyx, cb0[215].wwwy +mad r18.w, r13.w, l(0.375000), r13.z +add r16.xyzw, r17.xyzw, r18.xyzw +ge r13.zw, r5.xxxz, l(0.000000, 0.000000, 0.000000, 0.000000) +and r0.z, r13.w, r13.z +if_nz r0.z + sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r5.xzxx, t14.xyzw, s1, l(0.000000) + lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| + or r5.xz, r18.zzwz, r18.xxyx + or r0.z, r5.z, r5.x + if_nz r0.z + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mov r5.x, l(1.000000) + mov r5.z, r0.z + mov r2.y, l(0) + loop + ge r3.w, l(4.600000), r5.z + breakc_nz r3.w + iadd r3.w, r2.y, l(1) + mul r13.zw, r5.xxxz, l(0.000000, 0.000000, 0.500000, 0.500000) + mov r5.xz, r13.zzwz + mov r2.y, r3.w + continue + endloop + mul r17.xyzw, r5.xxxx, r17.xyzw + dp3 r0.z, r17.yzwy, r17.yzwy + sqrt r0.z, r0.z + mad r0.z, r0.z, cb4[3].x, cb4[3].y + mad r0.z, r0.z, l(255.000000), l(0.500000) + mul r18.x, r0.z, l(0.00390625000) + mov r18.y, l(0.500000) + sample_l_indexable(texture2d)(float,float,float,float) r5.xz, r18.xyxx, t13.xzyw, s1, l(0.000000) + mad r5.xz, r5.xxzx, cb4[2].xxyx, cb4[2].zzwz + mul r18.x, r5.x, l(3.54490781) + mul r18.yzw, r5.zzzz, r17.yyzw + mul r0.z, r17.x, l(0.406976730) + exp r0.z, r0.z + mul r17.xyzw, r0.zzzz, r18.xyzw + mov r18.xyzw, r17.xyzw + mov r0.z, l(0) + loop + uge r3.w, r0.z, r2.y + breakc_nz r3.w + mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r3.w, r19.xyzw, r18.xyzw + dp2 r5.x, r19.yxyy, r18.xyxx + dp2 r5.z, r19.zxzz, r18.xzxx + dp2 r8.w, r19.wxww, r18.xwxx + iadd r9.w, r0.z, l(1) + mov r18.x, r3.w + mov r18.yz, r5.xxzx + mov r18.w, r8.w + mov r0.z, r9.w + continue + endloop + mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r0.z, r17.xyzw, r18.xyzw + dp2 r2.y, r17.yxyy, r18.xyxx + dp2 r3.w, r17.zxzz, r18.xzxx + dp2 r5.x, r17.wxww, r18.xwxx + mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r5.z, r17.xyzw, r18.xyzw + dp2 r8.w, r17.yxyy, r18.xyxx + dp2 r9.w, r17.zxzz, r18.xzxx + dp2 r10.w, r17.wxww, r18.xwxx + mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r11.w, r17.xyzw, r18.xyzw + dp2 r13.z, r17.yxyy, r18.xyxx + dp2 r13.w, r17.zxzz, r18.xzxx + dp2 r17.x, r17.wxww, r18.xwxx + mul r15.w, r0.z, l(0.886226952) + mul r15.x, r5.x, l(-1.02332675) + mul r15.y, r2.y, l(-1.02332675) + mul r15.z, r3.w, l(1.02332675) + mul r14.w, r5.z, l(0.886226952) + mul r14.x, r10.w, l(-1.02332675) + mul r14.y, r8.w, l(-1.02332675) + mul r14.z, r9.w, l(1.02332675) + mul r16.w, r11.w, l(0.886226952) + mul r16.x, r17.x, l(-1.02332675) + mul r16.yz, r13.zzwz, l(0.000000, -1.02332675, 1.02332675, 0.000000) + endif +endif +mov r6.w, l(1.000000) +dp4 r17.x, r15.xyzw, r6.xyzw +dp4 r17.y, r14.xyzw, r6.xyzw +dp4 r17.z, r16.xyzw, r6.xyzw +max r17.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +dp3 r0.z, -r11.xyzx, r6.xyzx +add r0.z, r0.z, r0.z +mad r18.xyz, r6.xyzx, -r0.zzzz, -r11.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r2.y, r12.z, l(0.001000) +log r2.y, r2.y +mad r2.y, -r2.y, l(1.200000), l(1.000000) +add r0.z, r0.z, -r2.y +mul r5.xz, r4.yyzy, cb1[0].wwww +round_ni r5.xz, r5.xxzx +add r2.y, |r4.w|, -cb1[2].y +round_ni r2.y, r2.y +add r3.w, l(-1.000000), cb1[1].x +max r8.w, r2.y, l(0.000000) +min r3.w, r3.w, r8.w +ge r2.y, r3.w, r2.y +mad r5.x, r5.z, cb1[0].x, r5.x +ftoi r5.x, r5.x +iadd r5.x, r5.x, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.x, r5.x, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r5.x +and r2.y, r2.y, r3.w +mul r19.xyz, r17.xyzx, cb0[111].xxxx +dp3 r3.w, r19.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r7.w, l(1.000000) +mov r19.xyz, l(0,0,0,0) +mov r5.x, l(1.000000) +mov r5.z, r2.y +mov r8.w, l(0) +loop + lt r9.w, l(0.010000), r5.x + ine r10.w, r5.z, l(0) + and r10.w, r9.w, r10.w + if_nz r10.w + firstbit_lo r10.w, r5.z + ishl r11.w, l(1), r10.w + xor r5.z, r5.z, r11.w + ishl r10.w, r10.w, l(3) + dp4 r20.x, cb1[r10.w + 6].xyzw, r7.xyzw + dp4 r20.y, cb1[r10.w + 7].xyzw, r7.xyzw + dp4 r20.z, cb1[r10.w + 8].xyzw, r7.xyzw + ge r21.xyz, cb1[r10.w + 5].xyzx, |r20.xyzx| + and r11.w, r21.y, r21.x + and r11.w, r21.z, r11.w + if_nz r11.w + mul r11.w, l(0.100000), cb1[r10.w + 5].x + mul r21.xyz, |r20.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r13.zw, r21.xxxy, r21.xxxy + add r21.xyw, -|r20.xyxz|, cb1[r10.w + 5].xyxz + mul r21.xyw, r21.xyxw, cb1[r10.w + 9].xyxz + eq r12.z, l(1.000000), cb1[r10.w + 10].x + if_nz r12.z + dp3 r22.x, cb1[r10.w + 6].xyzx, r18.xyzx + dp3 r22.y, cb1[r10.w + 7].xyzx, r18.xyzx + dp3 r22.z, cb1[r10.w + 8].xyzx, r18.xyzx + add r23.xyz, -r20.xyzx, cb1[r10.w + 5].xyzx + div r23.xyz, r23.xyzx, r22.xyzx + add r24.xyz, -r20.xyzx, -cb1[r10.w + 5].xyzx + div r24.xyz, r24.xyzx, r22.xyzx + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + movc r23.xyz, r25.xyzx, r23.xyzx, r24.xyzx + min r12.z, r23.y, r23.x + min r12.z, r23.z, r12.z + mad r20.xyz, r22.xyzx, r12.zzzz, r20.xyzx + else + mov r20.xyz, r18.xyzx + endif + dp3 r12.z, r20.xyzx, r20.xyzx + rsq r12.z, r12.z + mul r20.xyz, r12.zzzz, r20.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + lt r23.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r22.xyz, -r22.xyzx, r23.xyzx + itof r22.xyz, r22.xyzx + dp3 r12.z, r20.xyzx, r22.xyzx + div r20.xyz, r20.xyzx, r12.zzzz + lt r12.z, r20.z, l(0.000000) + add r20.zw, -|r20.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.zw, r20.zzzw, r22.xxxy + movc r20.xy, r12.zzzz, r20.zwzz, r20.xyxx + dp4 r12.z, cb1[r10.w + 4].xyzw, r6.xyzw + max r12.z, r12.z, l(0.000000) + max r12.z, r12.z, l(0.000100) + min r17.w, r21.w, r21.y + min r17.w, r17.w, r21.x + add r13.z, r13.w, r13.z + mad r13.z, r21.z, r21.z, r13.z + mad r11.w, r11.w, r11.w, -r13.z + mul r11.w, r11.w, cb1[r10.w + 9].x + mul r11.w, r11.w, cb1[r10.w + 9].x + add r13.z, l(1.000000), -cb1[r10.w + 10].y + mul r11.w, r11.w, r13.z + mul r11.w, r11.w, l(100.000000) + mad_sat r11.w, r17.w, cb1[r10.w + 10].y, r11.w + mul r13.z, r11.w, cb1[r10.w + 10].w + mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r20.xy, r20.xyxx, cb1[1].wwww, cb1[2].wwww + mov r20.z, cb1[r10.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r20.xyz, r20.xyzx, t5.xyzw, s3, r0.z + mul r20.xyz, r20.xyzx, cb1[r10.w + 9].wwww + div r13.w, r3.w, r12.z + min r13.w, |r13.w|, l(1.000000) + mad r13.w, r13.w, l(2.000000), r3.w + add r12.z, r12.z, l(2.000000) + div r12.z, r13.w, r12.z + add r12.z, r12.z, l(-1.000000) + mad r12.z, r12.z, cb0[112].w, l(1.000000) + mul r20.xyz, r12.zzzz, r20.xyzx + mul r20.xyz, r13.zzzz, r20.xyzx + mad r19.xyz, r20.xyzx, r5.xxxx, r19.xyzx + mad r10.w, -r11.w, cb1[r10.w + 10].w, l(1.000000) + mul r5.x, r5.x, r10.w + endif + mov r8.w, l(-1) + continue + else + mov r8.w, r9.w + break + endif + mov r8.w, r9.w +endloop +if_nz r8.w + dp3 r2.y, r18.xyzx, r18.xyzx + rsq r2.y, r2.y + mul r18.xyz, r2.yyyy, r18.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + lt r21.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r2.y, r18.xyzx, r20.xyzx + div r18.xyz, r18.xyzx, r2.yyyy + lt r2.y, r18.z, l(0.000000) + add r13.zw, -|r18.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r13.zw, r13.zzzw, r20.xxxy + movc r13.zw, r2.yyyy, r13.zzzw, r18.xxxy + dp4 r2.y, cb1[3].xyzw, r6.xyzw + max r2.y, r2.y, l(0.000000) + max r2.y, r2.y, l(0.000100) + mad r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r18.xy, r13.zwzz, cb1[1].wwww, cb1[2].wwww + mov r18.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r18.xyz, r18.xyzx, t5.xyzw, s3, r0.z + div r0.z, r3.w, r2.y + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r3.w + add r2.y, r2.y, l(2.000000) + div r0.z, r0.z, r2.y + add r0.z, r0.z, l(-1.000000) + mad r0.z, r0.z, cb0[112].w, l(1.000000) + mul r18.xyz, r0.zzzz, r18.xyzx + mad r19.xyz, r18.xyzx, r5.xxxx, r19.xyzx +endif +mul r18.xyz, r19.xyzx, cb0[112].zzzz +mul r18.xyz, r18.xyzx, cb0[111].yyyy +if_nz r2.z + sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r19.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x + add r2.y, -r0.z, l(1.000000) + mul r20.xyz, r2.yyyy, r18.xyzx + mad r18.xyz, r19.xyzx, r0.zzzz, r20.xyzx +endif +mul r17.xyz, r3.xyzx, r17.xyzx +mul r17.xyz, r17.xyzx, cb0[111].xxxx +mad r0.z, r2.x, r13.x, r13.y +mul r2.xyz, r0.zzzz, r18.xyzx +mul r2.xyz, r10.xyzx, r2.xyzx +mad r2.xyz, r17.xyzx, r12.xywx, r2.xyzx +mul r6.xyzw, r6.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) +dp4 r10.x, r15.xyzw, r6.xyzw +dp4 r10.y, r14.xyzw, r6.xyzw +dp4 r10.z, r16.xyzw, r6.xyzw +max r6.xyz, r10.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +mul r6.xyz, r6.xyzx, cb0[111].xxxx +mul r6.xyz, r12.xywx, r6.xyzx +max r0.z, r3.y, r3.x +max r0.z, r3.z, r0.z +max r0.z, r0.z, l(0.010000) +div r3.xyz, r3.xyzx, r0.zzzz +mul r3.xyz, r3.xyzx, r6.xyzx +mul r0.z, r4.x, l(0.00787401572) +min r3.w, r5.y, l(1.000000) +bfi r1.z, l(3), l(2), r1.z, l(0) +ftou r2.w, r2.w +bfi r1.z, l(2), l(0), r2.w, r1.z +utof r1.z, r1.z +mul r1.z, r1.z, l(0.0322580636) +mad r0.z, r0.z, r3.w, r1.z +mul r3.xyz, r0.zzzz, r3.xyzx +mad r2.xyz, r3.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r2.xyzx +add r1.xyz, r1.xywx, r2.xyzx +max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +mad r0.z, r7.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r5.w, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.z, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.z, r2.x, r0.z +mad r2.x, r7.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.z, r0.z, r2.x +mul r0.z, r0.z, -r1.w +mul r2.xyz, r0.zzzz, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.z, -r11.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.zzzz, cb0[155].wwww +add r1.w, r1.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r0.w, l(7), cb0[108].w + imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) + imad r0.x, r0.y, r0.w, r0.x + imad r0.y, r0.w, r0.x, r0.y + imad r0.w, r0.x, r0.y, r0.w + imad r3.x, r0.y, r0.w, r0.x + dp3 r0.x, -r11.xyzx, -r9.xyzx + add r2.w, r7.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r0.x + div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x + and r0.x, r0.x, r3.z + mul r0.x, r0.x, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w + mul r3.w, r0.x, r3.z + mad r4.x, r3.w, r2.w, cb0[44].y + mad r2.w, -r3.w, r2.w, r2.w + mul r3.w, r2.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r2.w, r2.w, cb0[162].x + max r2.w, r2.w, l(-127.000000) + add r5.x, r4.x, -cb0[159].x + mul r5.x, r5.x, cb0[159].z + max r5.x, r5.x, l(-127.000000) + exp r5.x, -r5.x + mul r5.x, r5.x, cb0[159].y + lt r5.y, l(5.960464478E-08), |r3.w| + exp r5.z, -r3.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.y, r5.z, r3.w + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r5.y, l(5.960464478E-08), |r2.w| + exp r5.z, -r2.w + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r5.y, r5.z, r2.w + mul r2.w, r2.w, r4.x + mad r2.w, r5.x, r3.w, r2.w + mad r0.x, -r0.x, r3.z, l(1.000000) + mul r0.x, r5.w, r0.x + mul r0.x, r0.x, r2.w + exp r0.x, -r0.x + min r0.x, r0.x, l(1.000000) + max r0.x, r0.x, cb0[161].w + mad_sat r3.zw, r5.wwww, cb0[160].yyyw, cb0[160].xxxz + add r0.x, r0.x, r3.z + add r0.x, r3.w, r0.x + min r0.x, r0.x, l(1.000000) + imad r3.y, r0.w, r3.x, r0.y + ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) + utof r0.yw, r0.yyyw + mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) + mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz + mul r3.xy, r0.ywyy, cb0[165].xyxx + mad r0.y, |r4.w|, cb0[164].x, cb0[164].y + log r0.y, r0.y + mul r0.y, r0.y, cb0[164].z + div r3.z, r0.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t12.xyzw, s1, l(0.000000) + add r0.y, |r4.w|, -cb0[166].z + mul_sat r0.y, r0.y, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r0.y, -r0.x, l(1.000000) + mul r4.xyz, r0.yyyy, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r0.x, r0.x, r3.w +else + add r0.y, r7.y, -cb0[44].y + mul r0.w, r0.y, cb0[159].z + mul r0.y, r0.y, cb0[162].x + max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r2.w, cb0[44].y, -cb0[159].x + mul r2.w, r2.w, cb0[159].z + max r2.w, r2.w, l(-127.000000) + exp r2.w, -r2.w + mul r2.w, r2.w, cb0[159].y + lt r3.w, l(5.960464478E-08), |r0.w| + exp r4.x, -r0.w + add r4.x, -r4.x, l(1.000000) + div r4.x, r4.x, r0.w + mad r0.w, -r0.w, l(0.240226507), l(0.693147182) + movc r0.w, r3.w, r4.x, r0.w + add r3.w, cb0[44].y, -cb0[162].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[162].y + lt r4.x, l(5.960464478E-08), |r0.y| + exp r4.y, -r0.y + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.x, r4.y, r0.y + mul r0.y, r0.y, r3.w + mad r0.y, r2.w, r0.w, r0.y + mul r0.y, r5.w, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r4.xy, r5.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r0.x, r0.y, l(1.000000) + add r0.y, -r0.x, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r0.xxxx, r2.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz +mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r3.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r1.w, r1.w, r3.w +max r1.w, r1.w, l(0.001000) +div r1.w, r2.w, r1.w +mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw +mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.yzw, r0.yyzw, r2.xxyz +mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx +mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx +dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) +dp3 r1.w, r8.xyzx, r8.xyzx +sqrt r1.w, r1.w +mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) +mul r2.x, r1.w, cb0[169].x +mad r1.w, -cb0[169].x, r1.w, l(1.000000) +mul r2.yzw, cb0[168].xxyz, cb0[183].wwww +mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw +sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) +dp2 r2.x, r2.yyyy, r2.xxxx +add r1.w, r1.w, r2.x +add r2.x, r0.w, l(1.000000) +min r1.w, r1.w, r2.x +add r0.xyz, -r1.xyzx, r0.xyzx +mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx +mov o0.w, r0.w +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/ui/ui13_0xFB212B37.ps_5_0.hlsl b/src/games/endfield/ui/ui13_0xFB212B37.ps_5_0.hlsl new file mode 100644 index 000000000..91725bd19 --- /dev/null +++ b/src/games/endfield/ui/ui13_0xFB212B37.ps_5_0.hlsl @@ -0,0 +1,142 @@ +// ---- Created with 3Dmigoto v1.4.1 on Sun Feb 1 19:44:23 2026 + +#include "../shared.h" + +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb1 : register(b1) +{ + float4 cb1[12]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[1]; +} + + + + +// 3Dmigoto declarations +#define cmp - + + +void main( + float4 v0 : SV_Position0, + float4 v1 : TEXCOORD0, + float4 v2 : TEXCOORD1, + float4 v3 : TEXCOORD2, + float4 v4 : TEXCOORD3, + float4 v5 : TEXCOORD4, + out float4 o0 : SV_Target0) +{ + float4 r0,r1,r2; + uint4 bitmask, uiDest; + float4 fDest; + + r0.x = cb0[0].x * 0.00999999978; + r0.y = cmp(r0.x >= -r0.x); + r0.x = frac(abs(r0.x)); + r0.x = r0.y ? r0.x : -r0.x; + r0.y = 4000 * r0.x; + r0.y = floor(r0.y); + r0.y = 25 * r0.y; + r0.z = 8 * v2.y; + r0.z = floor(r0.z); + r0.y = r0.z * 0.125 + r0.y; + r0.y = dot(r0.yy, float2(12.9898005,78.2330017)); + r0.y = sin(r0.y); + r0.y = 43758.5469 * r0.y; + r0.y = frac(r0.y); + r0.y = 24 * r0.y; + r0.x = r0.x * r0.y; + r0.x = 1000 * r0.x; + r0.x = floor(r0.x); + r0.x = r0.x / r0.y; + r0.x = r0.x * 6 + v2.y; + r0.y = max(cb1[10].w, 0.00999999978); + r0.y = 8 * r0.y; + r0.z = r0.x * r0.y; + r0.x = 7 * r0.x; + r0.xz = floor(r0.xz); + r0.x = 0.142857149 * r0.x; + r0.x = dot(r0.xx, float2(12.9898005,78.2330017)); + r0.x = sin(r0.x); + r0.y = r0.z / r0.y; + r0.y = dot(r0.yy, float2(12.9898005,78.2330017)); + r0.y = sin(r0.y); + r0.xy = float2(43758.5469,43758.5469) * r0.xy; + r0.xy = frac(r0.xy); + r0.x = r0.y + r0.x; + r0.x = -1 + r0.x; + r0.y = cmp(0 < r0.x); + r0.z = cmp(r0.x < 0); + r0.x = -cb1[11].x + abs(r0.x); + r0.x = saturate(2.5 * r0.x); + r0.y = (int)-r0.y + (int)r0.z; + r0.y = (int)r0.y; + r0.x = r0.y * r0.x; + r0.x = cb1[11].y * r0.x; + r0.y = ceil(r0.x); + r1.x = 0.100000001 * r0.x; + r0.x = 1 + -r0.y; + r0.y = cmp(0.000000 == cb1[10].w); + r0.x = r0.y ? 1 : r0.x; + r1.yw = float2(0,0); + r0.yz = saturate(v2.xy + r1.xy); + r1.x = v2.y; + r1.y = cb0[0].x; + r0.w = dot(r1.xy, float2(12.9898005,78.2330017)); + r0.w = sin(r0.w); + r0.w = 43758.5469 * r0.w; + r0.w = frac(r0.w); + r0.w = r0.w * 2 + -1; + r1.x = cmp(abs(r0.w) >= cb1[11].z); + r1.x = r1.x ? 1.000000 : 0; + r1.x = cb1[11].w * r1.x; + r1.z = r1.x * r0.w; + r0.yz = r0.yz + r1.zw; + r0.yz = frac(r0.yz); + r1.xy = v2.xy + -r0.yz; + r0.xy = r0.xx * r1.xy + r0.yz; + r0.xyzw = t0.Sample(s0_s, r0.xy).xyzw; + r1.x = cmp(0.000000 != cb1[10].z); + r0.w = r1.x ? 1 : r0.w; + r0.xyzw = cb1[3].xyzw + r0.xyzw; + r1.x = 255 * v1.w; + r1.x = round(r1.x); + r1.w = 0.00392156886 * r1.x; + r1.xyz = v1.xyz; + r0.xyzw = r1.xyzw * r0.xyzw; + r1.xy = cb1[4].zw + -cb1[4].xy; + r1.xy = -abs(v4.xy) + r1.xy; + r1.xy = saturate(v4.zw * r1.xy); + r1.x = r1.x * r1.y; + r0.w = r1.x * r0.w; + r1.xyzw = max(cb1[4].xyzw, float4(-2e+10,-2e+10,-2e+10,-2e+10)); + r1.xyzw = min(float4(2e+10,2e+10,2e+10,2e+10), r1.xyzw); + r2.xy = v4.xy + r1.xy; + r2.xy = r2.xy + r1.zw; + r1.xy = r2.xy * float2(0.5,0.5) + -r1.xy; + r1.zw = -r2.xy * float2(0.5,0.5) + r1.zw; + r2.xyzw = float4(1,1,1,1) / cb1[8].xzyw; + r1.xyzw = saturate(r2.xzyw * r1.xyzw); + r2.xy = r1.xy * float2(-2,-2) + float2(3,3); + r1.xy = r1.xy * r1.xy; + r1.xy = r2.xy * r1.xy; + r2.xy = r1.zw * float2(-2,-2) + float2(3,3); + r1.zw = r1.zw * r1.zw; + r1.zw = r2.xy * r1.zw; + r1.x = r1.x * r1.z; + r1.x = r1.x * r1.y; + r1.x = r1.x * r1.w; + r0.w = r1.x * r0.w; + o0.xyz = r0.xyz * r0.www; + o0.w = cb1[9].z * -r0.w + r0.w; + + if (UI_VISIBILITY < 0.5f) o0 = 0; + + return; +} \ No newline at end of file diff --git a/src/games/endfield/ui/uid_0x6B8E9049.ps_5_0.hlsl b/src/games/endfield/ui/uid_0x6B8E9049.ps_5_0.hlsl index cedf2abf5..650708640 100644 --- a/src/games/endfield/ui/uid_0x6B8E9049.ps_5_0.hlsl +++ b/src/games/endfield/ui/uid_0x6B8E9049.ps_5_0.hlsl @@ -78,8 +78,7 @@ void main( r0.x = 1 + -r0.x; r0.xyzw = r2.xyzw * r0.xxxx; o0.xyzw = v1.wwww * r0.xyzw; - - // UI visibility toggle (heuristic-based ping/UID hiding is handled by on_draw callbacks) + if (UI_VISIBILITY < 0.5f) { o0 = 0; } From 4332192b9cab8485c3dc6d6e46c34b4e10cf044e Mon Sep 17 00:00:00 2001 From: spiwar <92001312+spiwar@users.noreply.github.com> Date: Sun, 1 Feb 2026 23:16:06 -0700 Subject: [PATCH 09/19] fix(endfield): change default white clip to 65.f --- src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl | 2 +- src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl index cb4f105ff..76fba7310 100644 --- a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl @@ -225,7 +225,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl index 0b7177229..30d139f79 100644 --- a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl @@ -253,7 +253,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl index 456684e8e..7cc9546d2 100644 --- a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl @@ -192,7 +192,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl index 933e10242..743eabf6b 100644 --- a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl @@ -263,7 +263,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl index 69b6c57dc..48dd70fd0 100644 --- a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl @@ -207,7 +207,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl index ac3ea9efa..770a60c0e 100644 --- a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl @@ -297,7 +297,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl index ba1649e85..ddf8e6571 100644 --- a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl @@ -204,7 +204,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl index 62a0d96c4..6e1aa5df1 100644 --- a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl @@ -234,7 +234,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl index 1d01934cf..46ed1b3db 100644 --- a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl @@ -209,7 +209,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl index 2f1a82342..fe612e499 100644 --- a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl @@ -318,7 +318,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl index 17c70cb72..54afc1b0f 100644 --- a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl @@ -195,7 +195,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl index 541c0165d..69596eab8 100644 --- a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl @@ -250,7 +250,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl index 1a8d342f4..46eeac4a2 100644 --- a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl @@ -271,7 +271,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl index 116477eca..b06e85284 100644 --- a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl @@ -179,7 +179,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl index 33404169f..1caed954e 100644 --- a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl @@ -219,7 +219,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl index 4f1d353c5..ae8b8d247 100644 --- a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl @@ -154,7 +154,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl index 85ae862da..8deb6a674 100644 --- a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl @@ -156,7 +156,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl index 470836b4b..3aefbecaa 100644 --- a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl @@ -176,7 +176,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl index 4e8a53fce..897dd371d 100644 --- a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl @@ -264,7 +264,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl index ae3724137..61ed70f1a 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl @@ -109,7 +109,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl index 2120a0047..b6bfa9ca5 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl @@ -231,7 +231,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl index 2f105ee84..6ebba85a6 100644 --- a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl @@ -169,7 +169,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl index 1ea2d938d..a1e1682af 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl @@ -185,7 +185,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl index 9e8ff513a..ed87501a6 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl @@ -234,7 +234,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl index 8138b25ac..206cbea6e 100644 --- a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl @@ -93,7 +93,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl index f8f3fd293..3844e7fed 100644 --- a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl @@ -189,7 +189,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { diff --git a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl index b82b2ea78..806262a93 100644 --- a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl @@ -128,7 +128,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } // Apply vignette after tonemapping diff --git a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl index 69a5e0302..82cca5936 100644 --- a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl @@ -126,7 +126,7 @@ void main( float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 50.f); + o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( From a28845a55fe1b698eb9231cabca05e0259fc987d Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Wed, 4 Feb 2026 05:57:42 +0000 Subject: [PATCH 10/19] feat(endfield): Added cubemap luminance, glass transparency, AO toggle, fixed contact shadow edge fading --- src/games/endfield/addon.cpp | 240 ++- .../endfield/ao-blur_0x80CD64F6.cs_5_0.hlsl | 71 + .../endfield/deferred-lighting/0x0E84DFD1.cso | Bin 59992 -> 60116 bytes .../deferred-lighting/0x0E84DFD1.ps_5_0.asm | 9 +- .../endfield/deferred-lighting/0x1E8A471E.cso | Bin 47020 -> 47144 bytes .../deferred-lighting/0x1E8A471E.ps_5_0.asm | 9 +- .../endfield/deferred-lighting/0x7010AF4B.cso | Bin 27140 -> 27264 bytes .../deferred-lighting/0x7010AF4B.ps_5_0.asm | 9 +- .../endfield/deferred-lighting/0x8BA3C806.cso | Bin 48028 -> 48152 bytes .../deferred-lighting/0x8BA3C806.ps_5_0.asm | 9 +- .../endfield/deferred-lighting/0x99725481.cso | Bin 60512 -> 60636 bytes .../deferred-lighting/0x99725481.ps_5_0.asm | 9 +- .../endfield/deferred-lighting/0xA4113DE8.cso | Bin 39092 -> 39216 bytes .../deferred-lighting/0xA4113DE8.ps_5_0.asm | 9 +- .../endfield/deferred-lighting/0xD88CD7C9.cso | Bin 26132 -> 26256 bytes .../deferred-lighting/0xD88CD7C9.ps_5_0.asm | 9 +- .../endfield/glass/0xB317E9E1.ps_5_0.hlsl | 1807 +++++++++++++++++ .../cloud-shadows_0x61FA72DD.ps_5_0.hlsl | 14 +- .../grass-shadowing_0x0C02AB31.cs_5_0.hlsl | 16 +- src/games/endfield/shared.h | 10 +- src/games/endfield/ssr/0xE92EE541.cs_5_0.hlsl | 465 +++++ .../ui/latencybar_0x9BDC181F.vs_5_0.hlsl | 148 ++ 22 files changed, 2793 insertions(+), 41 deletions(-) create mode 100644 src/games/endfield/ao-blur_0x80CD64F6.cs_5_0.hlsl create mode 100644 src/games/endfield/glass/0xB317E9E1.ps_5_0.hlsl create mode 100644 src/games/endfield/ssr/0xE92EE541.cs_5_0.hlsl create mode 100644 src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index 9d44b0be0..e98c0a6d7 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -8,6 +8,7 @@ #define DEBUG_LEVEL_0 #include +#include #include #include @@ -44,6 +45,85 @@ bool UsingSwapchainUtil() { || UsingSwapchainUpgrade()); } +// Helper to update resolution-based uniform variables in ReShade effects +void UpdateReshadeResolutionUniforms(reshade::api::effect_runtime* runtime, uint32_t width, uint32_t height) { + float fwidth = static_cast(width); + float fheight = static_cast(height); + + // Enumerate all uniform variables and update those with resolution-related source annotations + runtime->enumerate_uniform_variables(nullptr, [fwidth, fheight](reshade::api::effect_runtime* rt, reshade::api::effect_uniform_variable variable) { + char source[64] = {}; + if (rt->get_annotation_string_from_uniform_variable(variable, "source", source)) { + // Update BUFFER_WIDTH uniform + if (std::strcmp(source, "bufwidth") == 0) { + rt->set_uniform_value_float(variable, fwidth); + } + // Update BUFFER_HEIGHT uniform + else if (std::strcmp(source, "bufheight") == 0) { + rt->set_uniform_value_float(variable, fheight); + } + // Update reciprocal width (1.0 / BUFFER_WIDTH) + else if (std::strcmp(source, "rcpwidth") == 0 || std::strcmp(source, "bufwidth_rcp") == 0) { + rt->set_uniform_value_float(variable, 1.0f / fwidth); + } + // Update reciprocal height (1.0 / BUFFER_HEIGHT) + else if (std::strcmp(source, "rcpheight") == 0 || std::strcmp(source, "bufheight_rcp") == 0) { + rt->set_uniform_value_float(variable, 1.0f / fheight); + } + // Update BUFFER_RCP_WIDTH (alternative naming convention) + else if (std::strcmp(source, "buffer_rcp_width") == 0) { + rt->set_uniform_value_float(variable, 1.0f / fwidth); + } + // Update BUFFER_RCP_HEIGHT (alternative naming convention) + else if (std::strcmp(source, "buffer_rcp_height") == 0) { + rt->set_uniform_value_float(variable, 1.0f / fheight); + } + // Update pixel size (float2 with 1/width, 1/height) + else if (std::strcmp(source, "pixelsize") == 0) { + float pixel_size[2] = { 1.0f / fwidth, 1.0f / fheight }; + rt->set_uniform_value_float(variable, pixel_size, 2); + } + // Update screen size (float2 with width, height) + else if (std::strcmp(source, "screensize") == 0) { + float screen_size[2] = { fwidth, fheight }; + rt->set_uniform_value_float(variable, screen_size, 2); + } + } + }); +} + +// Track the last known RTV resolution to detect resolution changes +static uint32_t last_rtv_width = 0; +static uint32_t last_rtv_height = 0; + +// Flag to track if we're currently executing our bypass render +// This prevents ReShade from rendering during normal present while allowing our bypass to work +static bool bypass_render_active = false; + +// Callback to disable effects during normal present when bypass is enabled +// This prevents double-rendering (once via bypass, once via normal present) +void OnReshadeBeginEffects(reshade::api::effect_runtime* runtime, + reshade::api::command_list* cmd_list, + reshade::api::resource_view rtv, + reshade::api::resource_view rtv_srgb) { + // Only intercept if bypass is enabled AND we're not currently in bypass render + // When bypass is disabled (current_render_reshade_before_ui == 0), let ReShade render normally + if (current_render_reshade_before_ui != 0.f && !bypass_render_active) { + runtime->set_effects_state(false); + } +} + +// Callback to re-enable effects after present (keeps effects available for bypass) +void OnReshadeFinishEffects(reshade::api::effect_runtime* runtime, + reshade::api::command_list* cmd_list, + reshade::api::resource_view rtv, + reshade::api::resource_view rtv_srgb) { + // Only re-enable if bypass is enabled AND we disabled them + if (current_render_reshade_before_ui != 0.f && !bypass_render_active) { + runtime->set_effects_state(true); + } +} + bool ExecuteReshadeEffects(reshade::api::command_list* cmd_list) { if (current_render_reshade_before_ui == 0.f) return true; if (!UsingSwapchainUtil()) return true; @@ -52,42 +132,65 @@ bool ExecuteReshadeEffects(reshade::api::command_list* cmd_list) { if (cmd_list_data == nullptr) return true; if (cmd_list_data->current_render_targets.empty()) return true; + // Get the ORIGINAL RTV from deferred lighting - do NOT use the clone here + // The clone is at swapchain resolution (e.g., 3840x2160) but we want to render + // ReShade effects at the pre-upscale resolution auto rtv0 = cmd_list_data->current_render_targets[0]; if (rtv0.handle == 0) return true; - if (UsingSwapchainUpgrade()) { - auto* info = renodx::utils::resource::GetResourceViewInfo(rtv0); - if (info->clone.handle != 0u) { - rtv0 = info->clone; - } - } - - auto* data = renodx::utils::data::Get(cmd_list->get_device()); + auto* device = cmd_list->get_device(); + auto* data = renodx::utils::data::Get(device); if (data == nullptr) return true; + + // Get the render target resolution + auto resource = device->get_resource_from_view(rtv0); + auto resource_desc = device->get_resource_desc(resource); + uint32_t rtv_width = resource_desc.texture.width; + uint32_t rtv_height = resource_desc.texture.height; + const std::shared_lock lock(data->mutex); for (auto* runtime : data->effect_runtimes) { + if (rtv_width != last_rtv_width || rtv_height != last_rtv_height) { + uint32_t swapchain_width = 0, swapchain_height = 0; + runtime->get_screenshot_width_and_height(&swapchain_width, &swapchain_height); + + std::stringstream ss; + ss << "[Endfield] ExecuteReshadeEffects: Rendering at RTV=" << rtv_width << "x" << rtv_height + << " (Swapchain=" << swapchain_width << "x" << swapchain_height << ")"; + reshade::log::message(reshade::log::level::info, ss.str().c_str()); + + last_rtv_width = rtv_width; + last_rtv_height = rtv_height; + } + + UpdateReshadeResolutionUniforms(runtime, rtv_width, rtv_height); + bypass_render_active = true; + runtime->set_effects_state(true); runtime->render_effects(cmd_list, rtv0, rtv0); + bypass_render_active = false; } return true; } -// Hotkey state tracking (defined before settings array for use in on_draw lambdas) +// Hotkey state tracking bool ui_toggle_key_was_pressed = false; int ui_toggle_hotkey = 0; bool hotkey_input_active = false; -// Heuristic tracking for ping/UID UI +// Heuristic tracking for UID UI bool is_ping_input_candidate = false; bool is_ping_drawn = false; bool is_uid_input_candidate = false; +uint32_t draw_call_vertex_count = 0; // Track vertex count from draw calls (not draw_indexed) // on_draw callback for ping/latency bar shader (0xEF07F89A) +// Only used to set is_ping_drawn flag for UID detection - latency bar icon hiding is done in vertex shader bool OnPingDraw(reshade::api::command_list* cmd_list) { if (is_ping_input_candidate) { is_ping_drawn = true; - return shader_injection.ping_text_opacity >= 0.5f; + } else { + is_ping_drawn = false; } - is_ping_drawn = false; return true; } @@ -655,6 +758,16 @@ renodx::utils::settings::Settings settings = { .tooltip = "Executes ReShade effects before UI is drawn.", .labels = {"Off", "On"}, }, + new renodx::utils::settings::Setting{ + .key = "DisableGameAO", + .binding = &shader_injection.disable_game_ao, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 0.f, + .label = "Disable Game GTAO", + .section = "Effects", + .tooltip = "Disables the game's built-in GTAO (Ground Truth Ambient Occlusion).\nUseful when using ReShade-based AO instead.", + .labels = {"Off", "On"}, + }, new renodx::utils::settings::Setting{ .key = "HDRSun", .binding = &shader_injection.sun_intensity, @@ -696,6 +809,37 @@ renodx::utils::settings::Settings settings = { .tooltip = "Toggles alternative hue-preserving fog", .labels = {"Original", "Alt"}, }, + new renodx::utils::settings::Setting{ + .key = "MetallicIBLIntensity", + .binding = &shader_injection.metallic_ibl_intensity, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 0.f, + .label = "Metallic IBL Intensity", + .section = "Rendering Improvements", + .tooltip = "Controls image-based lighting intensity on metallic surfaces", + .labels = {"Vanilla", "Alt"}, + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "CubemapAmbientLink", + .binding = &shader_injection.cubemap_ambient_link, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 1.f, + .label = "Cubemap Ambient Link", + .section = "Rendering Improvements", + .tooltip = "Modulates cubemap reflections by ambient luminance", + .labels = {"Off", "On"}, + }, + new renodx::utils::settings::Setting{ + .key = "GlassTransparency", + .binding = &shader_injection.glass_transparency, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 1.f, + .label = "Glass Transparency", + .section = "Rendering Improvements", + .tooltip = "Improves glass rendering to look more transparent and less cloudy/glowing", + .labels = {"Vanilla", "Improved"}, + }, new renodx::utils::settings::Setting{ .key = "SwapChainCustomColorSpace", .binding = &shader_injection.swap_chain_custom_color_space, @@ -835,6 +979,17 @@ void OnPresetOff() { // renodx::utils::settings::UpdateSetting("colorGradeLUTScaling", 0.f); } +// OnDraw handler to track vertex count from draw calls +bool OnDraw( + reshade::api::command_list* cmd_list, + uint32_t vertex_count, + uint32_t instance_count, + uint32_t first_vertex, + uint32_t first_instance) { + draw_call_vertex_count = vertex_count; + return false; +} + // OnDrawIndexed event handler for heuristic-based ping/UID detection bool OnDrawIndexed( reshade::api::command_list* cmd_list, @@ -843,13 +998,34 @@ bool OnDrawIndexed( uint32_t first_index, int32_t vertex_offset, uint32_t first_instance) { - // Detect ping/latency bar: drawn with index_count=18, first_index=0, vertex_offset=0 - is_ping_input_candidate = ((index_count == 18) && (first_index == 0) && (vertex_offset == 0)); + // Constants for ping/latency bar detection + constexpr uint32_t PING_INDEX_COUNT = 18; + constexpr uint32_t PING_FIRST_INDEX = 0; + constexpr int32_t PING_VERTEX_OFFSET = 0; + + // Detect ping/latency bar + // This distinguishes it from menu backgrounds that also have 18 indices but have a preceding draw + is_ping_input_candidate = (index_count == PING_INDEX_COUNT) && + (first_index == PING_FIRST_INDEX) && + (vertex_offset == PING_VERTEX_OFFSET) && + (draw_call_vertex_count == 0); + + // Constants for UID text detection + constexpr uint32_t UID_FIRST_INDEX = 18; + constexpr uint32_t UID_MIN_INDEX_COUNT = 100; + constexpr int32_t UID_VERTEX_OFFSET = 12; + + // Detect UID text: drawn right after ping with specific parameters + // Use is_ping_drawn (set by OnPingDraw) since ping shader draws before UID shader + is_uid_input_candidate = (first_index == UID_FIRST_INDEX) && + (index_count > UID_MIN_INDEX_COUNT) && + (vertex_offset == UID_VERTEX_OFFSET) && + is_ping_drawn; - // Detect UID text: drawn right after ping (first_index=18) when ping was drawn - is_uid_input_candidate = ((first_index == 18) && is_ping_drawn); + // Reset vertex count after processing + draw_call_vertex_count = 0; - return false; // Don't skip the draw call + return false; } void OnPresent(reshade::api::command_queue* queue, @@ -867,6 +1043,7 @@ void OnPresent(reshade::api::command_queue* queue, is_ping_input_candidate = false; is_uid_input_candidate = false; is_ping_drawn = false; + draw_call_vertex_count = 0; // Check UI visibility hotkey (skip if user is currently setting a new hotkey) if (ui_toggle_hotkey != 0 && !hotkey_input_active) { @@ -990,6 +1167,10 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { shader_injection.custom_flip_uv_y = 0.f; } reshade::register_event(OnPresent); + // Register callbacks to ALWAYS disable ReShade during normal present + // This ensures ReShade only ever renders at internal resolution via bypass + reshade::register_event(OnReshadeBeginEffects); + reshade::register_event(OnReshadeFinishEffects); settings.push_back(setting); } @@ -1067,6 +1248,20 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { }); */ const uint32_t target_crcs[] = { + // Enviroment deferred (doesnt apply to grass/foliage) + /* + 0xD88CD7C9u, + 0x1E8A471Eu, + 0x8BA3C806u, + 0x7010AF4Bu, + 0x0E84DFD1u, + 0x99725481u, + 0xA4113DE8u, + }; + */ + + // grass/foliage deferred (grass, plants, trees will be included in AO) + 0x37837806u, 0xD3FA93FCu, 0x620A40FDu, @@ -1074,8 +1269,10 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { 0xB094C87Eu, 0xF901F0ECu, 0x518D3855u, - }; + 0xBD99F0C4u, + }; + // Uberpost /* 0x00C16AFBu, 0x039C28DAu, @@ -1107,6 +1304,7 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { 0xF8FA587Fu, */ + for (uint32_t crc : target_crcs) { // Ensure an entry exists for the shader hash even if we don't have compiled HLSL auto it = custom_shaders.find(crc); @@ -1136,7 +1334,8 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { } } - // Register draw_indexed event for heuristic ping/UID detection + // Register draw and draw_indexed events for heuristic ping/UID detection + reshade::register_event(OnDraw); reshade::register_event(OnDrawIndexed); initialized = true; @@ -1144,8 +1343,11 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { break; case DLL_PROCESS_DETACH: + reshade::unregister_event(OnDraw); reshade::unregister_event(OnDrawIndexed); reshade::unregister_event(OnPresent); + reshade::unregister_event(OnReshadeBeginEffects); + reshade::unregister_event(OnReshadeFinishEffects); reshade::unregister_addon(h_module); break; } diff --git a/src/games/endfield/ao-blur_0x80CD64F6.cs_5_0.hlsl b/src/games/endfield/ao-blur_0x80CD64F6.cs_5_0.hlsl new file mode 100644 index 000000000..9f1054fe8 --- /dev/null +++ b/src/games/endfield/ao-blur_0x80CD64F6.cs_5_0.hlsl @@ -0,0 +1,71 @@ +// AO Blur Shader with toggle - Replacement for 0x80CD64F6 +// When disable_game_ao is enabled, outputs 1.0 (no occlusion) +// Otherwise runs normal blur + +#include "./shared.h" + +Texture2D t2 : register(t2); +Texture2D t1 : register(t1); +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb0 : register(b0) { + float4 cb0[4]; +} + +RWTexture2D u0 : register(u0); + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) { + // If game AO is disabled, just write 1.0 (no occlusion) + if (shader_injection.disable_game_ao >= 0.5f) { + u0[vThreadID.xy] = 1.0; + return; + } + + // Original ao-blur logic + float2 r0xy = float2(vThreadID.xy) + float2(0.5, 0.5); + float2 r0zw = cb0[3].zw * r0xy; + + float r1x = t1.SampleLevel(s0_s, r0zw, 0).z; + r1x = 1.0 - r1x; + r1x = saturate(r1x + r1x); + + float r1y = t0.SampleLevel(s0_s, r0zw, 0).x; + float r1z = cb0[3].z; + + float2 r2; + r2.y = 0; + + float3 r3 = float3(-3, 0, 0); + + [loop] + while (true) { + if (3 < r3.x) break; + + float r1w = r3.x * r1z; + r2.x = r1w * r1x; + float2 r2zw = r2.xy * cb0[3].zw + r0zw; + + r1w = t0.SampleLevel(s0_s, r2zw, 0).x; + r1w = r1w - r1y; + r1w = min(1.0, abs(r1w)); + r1w = 1.0 - r1w; + + float3 r4; + r4.x = r3.y + r1w; + + float2 r2xz = r0xy * cb0[3].zw + r2.xy; + float r2x_sample = t2.SampleLevel(s0_s, r2xz, 0).x; + r4.y = r2x_sample * r1w + r3.z; + r4.z = 1.0 + r3.x; + + r3 = r4.zxy; + } + + float result = max(9.99999975e-05, r3.y); + result = r3.z / result; + + u0[vThreadID.xy] = result; +} diff --git a/src/games/endfield/deferred-lighting/0x0E84DFD1.cso b/src/games/endfield/deferred-lighting/0x0E84DFD1.cso index 3be72fa0c524b9bba3a836d68adab5596d6f412d..bfdbc5a283965666e403caaf74dd2f10037c18b2 100644 GIT binary patch delta 164 zcmca{h55==W=WR_CugBQI)avGEVA^&Rg=G!Gp%K0U|_g1QF1Y-$SVeh03fGz<56oy zM!wCAO!0>}Re=Ir3<3;Hn?sLO@msN2H7GFf0>wbsgn@y*2`C3rV+Exd9e^AlFh-Y~ fe9>E2f(a<&#soACNPpvp=oDpOVBCD>a*r4QaGM{M delta 66 zcmca|mHEaMW=WR_Cuh!*r9MKzhHsdHwQr?-T78|7fq@}nqU2)E87~6@ah_0|R>#g8+jvkZlE}86AKeATUOk jo6NgFT*Qq@fPon(`;8x>OO%0uaq^Pyhe` dyRpS90RauO@c}=NvqX_^50j$_6|*p*_!b9a90ULW diff --git a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm index 6da5862a3..47ef11916 100644 --- a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm @@ -37,7 +37,7 @@ dcl_constantbuffer CB3[2054], dynamicIndexed dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[160], dynamicIndexed dcl_constantbuffer CB6[4], immediateIndexed -dcl_constantbuffer CB13[13], immediateIndexed +dcl_constantbuffer CB13[14], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -1210,6 +1210,7 @@ and r1.x, r1.y, r1.x and r1.x, r1.x, r2.z mul r15.xyz, r4.xyzx, cb0[111].xxxx dp3 r1.y, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r35.w, r1.y // Store ambient luminance for cubemap modulation mov r5.w, l(1.000000) mov r3.w, l(1.000000) mov r15.xyz, l(0,0,0,0) @@ -1342,6 +1343,12 @@ if_nz r7.w endif mul r3.xyz, r15.xyzx, cb0[112].zzzz mul r3.xyz, r3.xyzx, cb0[111].yyyy +// Cubemap ambient link modulation (cb13[13].w) +if_nz cb13[13].w + max r35.w, r35.w, l(0.000000) // saturate step 1 + min r35.w, r35.w, l(1.000000) // saturate step 2 + mul r3.xyz, r3.xyzx, r35.wwww // cubemap *= saturate(ambient_luminance) +endif if_nz r4.w sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x sample_b_indexable(texture2d)(float,float,float,float) r5.xzw, v1.xyxx, t2.xwyz, s1, cb0[108].x diff --git a/src/games/endfield/deferred-lighting/0x7010AF4B.cso b/src/games/endfield/deferred-lighting/0x7010AF4B.cso index 849917eb70e6f4148116f248d1ba84b739d24fdc..00e90042e5145ce2d7bb3eaa65bd21e6f112b36b 100644 GIT binary patch delta 172 zcmZp3_S#X#7Efq}gVCh5#V%+Qy^W zjEsDnKQj9FPv)`XU}W5EIihfq~)9M9IZmGH)0d0)QNL>y5{( z7#aCCGcuJQ;#32Qa4`rlFm28~QpIn@V%4C)zzY-uVH2R@CZHThjTMw;bO3UIz!+U_ f@d`@wofE9xP1JmY%1y%fVELIH)47@-w5H?|8U~dA-!PJOP4&)U!f%AYW j7#)BFLxa5qP-PLw6d=!y2||D4hv*aqD%)()P$K~VALAi5 delta 74 zcmdn6iD}D5CMlN)Cua*+R@1_5b{6S2Ob@zLt>hRP7#Oz9m?*V~>&tWoh5#V%uj<5O eNsPRkH5nJ@Z+=ja&(FlHH96K>ee;8c00{t!uNcb! diff --git a/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm index 4c47fa406..461d62fd0 100644 --- a/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm @@ -25,7 +25,7 @@ dcl_constantbuffer CB1[259], dynamicIndexed dcl_constantbuffer CB2[5], immediateIndexed dcl_constantbuffer CB3[5], immediateIndexed dcl_constantbuffer CB4[4], immediateIndexed -dcl_constantbuffer CB13[13], immediateIndexed +dcl_constantbuffer CB13[14], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -958,6 +958,7 @@ and r2.w, r2.w, r3.y and r1.y, r1.y, r2.w mul r15.xyz, r17.xyzx, cb0[111].xxxx dp3 r2.w, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r23.w, r2.w // Store ambient luminance for cubemap modulation mov r5.w, l(1.000000) mov r12.w, l(1.000000) mov r15.xyz, l(0,0,0,0) @@ -1090,6 +1091,12 @@ if_nz r4.w endif mul r2.xyz, r15.xyzx, cb0[112].zzzz mul r2.xyz, r2.xyzx, cb0[111].yyyy +// Cubemap ambient link modulation (cb13[13].w) +if_nz cb13[13].w + max r23.w, r23.w, l(0.000000) // saturate step 1 + min r23.w, r23.w, l(1.000000) // saturate step 2 + mul r2.xyz, r2.xyzx, r23.wwww // cubemap *= saturate(ambient_luminance) +endif if_nz r3.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x sample_b_indexable(texture2d)(float,float,float,float) r12.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.cso b/src/games/endfield/deferred-lighting/0xD88CD7C9.cso index 1b1a4f927eedc448aff36428c96821d0811308c3..b519a48d687c47be52c68c7ae3ec5ede4839d69f 100644 GIT binary patch delta 172 zcmbPohH=7KMoE_lC+G6q^^devT9|vkls~QfASBGlz`!tJqU2)E3#kkY0YFa4#G}EC ze48a1>+LwjfP5(i0S3m+z4lf7RxDNx3JknJF%ULkU|??o%7N5aL1{(@AO{GH(d8x^ nN(sv{17+Np1Q t18 : register(t18); + +Texture3D t17 : register(t17); + +Texture3D t16 : register(t16); + +Texture3D t15 : register(t15); + +Texture3D t14 : register(t14); + +Texture3D t13 : register(t13); + +Texture3D t12 : register(t12); + +Texture3D t11 : register(t11); + +Texture2D t10 : register(t10); + +Texture2D t9 : register(t9); + +Texture2D t8 : register(t8); + +Texture2D t7 : register(t7); + +Texture2D t6 : register(t6); + +Texture2D t5 : register(t5); + +Texture2D t4 : register(t4); + +Texture2D t3 : register(t3); + +Texture2D t2 : register(t2); + +Texture2DArray t1 : register(t1); + +struct t0_t { + float val[1]; +}; +StructuredBuffer t0 : register(t0); + +SamplerState s6_s : register(s6); + +SamplerState s5_s : register(s5); + +SamplerState s4_s : register(s4); + +SamplerComparisonState s3_s : register(s3); + +SamplerState s2_s : register(s2); + +SamplerState s1_s : register(s1); + +SamplerState s0_s : register(s0); + +cbuffer cb7 : register(b7) +{ + float4 cb7[160]; +} + +cbuffer cb6 : register(b6) +{ + float4 cb6[715]; +} + +cbuffer cb5 : register(b5) +{ + float4 cb5[2054]; +} + +cbuffer cb4 : register(b4) +{ + float4 cb4[3]; +} + +cbuffer cb3 : register(b3) +{ + float4 cb3[259]; +} + +cbuffer cb2 : register(b2) +{ + float4 cb2[20]; +} + +cbuffer cb1 : register(b1) +{ + float4 cb1[4085]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[244]; +} + + + + +// 3Dmigoto declarations +#define cmp - + + +void main( + float4 v0 : SV_Position0, + float2 v1 : TEXCOORD0, + float2 w1 : TEXCOORD1, + float4 v2 : TEXCOORD2, + float4 v3 : TEXCOORD3, + float4 v4 : TEXCOORD4, + float4 v5 : TEXCOORD5, + float4 v6 : TEXCOORD6, + nointerpolation uint v7 : TEXCOORD7, + uint v8 : SV_IsFrontFace0, + out float4 o0 : SV_Target0, + out float4 o1 : SV_Target1) +{ + const float4 icb[] = { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} }; + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xy = cb0[82].zw * v0.xy; + r0.xy = r0.xy * float2(2,2) + float2(-1,-1); + r1.xyzw = cb0[25].xyzw * -r0.yyyy; + r0.xyzw = cb0[24].xyzw * r0.xxxx + r1.xyzw; + r0.xyzw = cb0[26].xyzw * v0.zzzz + r0.xyzw; + r0.xyzw = cb0[27].xyzw + r0.xyzw; + r0.xyz = r0.xyz / r0.www; + r1.x = cmp(0 < v3.w); + r1.x = r1.x ? 1 : -1; + r1.y = cmp(0.000000 == cb0[86].w); + r2.xyz = cb0[44].xyz + -r0.xyz; + r3.x = cb0[0].z; + r3.y = cb0[1].z; + r3.z = cb0[2].z; + r1.yzw = r1.yyy ? r2.xyz : r3.xyz; + r2.x = dot(r1.yzw, r1.yzw); + r2.y = max(9.99999994e-09, r2.x); + r2.y = rsqrt(r2.y); + r4.xyz = r2.yyy * r1.yzw; + r2.x = r2.x * r2.y; + r2.zw = w1.xy + -v1.xy; + r5.xy = cb2[3].xx * r2.zw + v1.xy; + r5.xy = r5.xy * cb2[12].xy + cb2[12].zw; + r2.zw = cb2[2].ww * r2.zw + v1.xy; + r2.zw = r2.zw * cb2[11].xy + cb2[11].zw; + r6.xyzw = t2.SampleBias(s4_s, r2.zw, cb0[108].x).xyzw; + r2.z = cb2[3].y + cb0[108].x; + r7.xyz = t3.SampleBias(s5_s, r5.xy, r2.z).xyw; + r7.x = r7.z * r7.x; + r2.zw = r7.xy * float2(2,2) + float2(-1,-1); + r5.zw = cb2[0].xx * r2.zw; + r7.xyz = t4.SampleBias(s6_s, r5.xy, cb0[108].x).xyz; + r6.xyzw = cb2[8].xyzw * r6.xyzw; + r6.xyz = saturate(cb2[4].zzz * r6.xyz); + r8.xyz = cb2[8].xyz + -r6.xyz; + r6.xyz = cb2[4].xxx * r8.xyz + r6.xyz; + r3.w = r6.w * v4.x + -r6.w; + r8.w = cb2[19].x * r3.w + r6.w; + r3.w = cb2[0].w + -cb2[0].z; + r9.w = r7.y * r3.w + cb2[0].z; + r3.w = saturate(cb2[3].w + -1); + r4.w = cb2[4].y + -r7.x; + r3.w = r3.w * r4.w + r7.x; + r7.xyw = v3.yzx * v2.zxy; + r7.xyw = v2.yzx * v3.zxy + -r7.xyw; + r7.xyw = r7.xyw * r1.xxx; + r5.xyw = r7.xyw * r5.www; + r5.xyz = v3.xyz * r5.zzz + r5.xyw; + r1.x = dot(r2.zw, r2.zw); + r1.x = min(1, r1.x); + r1.x = 1 + -r1.x; + r1.x = sqrt(r1.x); + r1.x = max(1.00000002e-16, r1.x); + r2.z = cmp(0 < cb2[1].w); + r2.z = r2.z ? -1 : 1; + r2.z = v8.x ? 1 : r2.z; + r1.x = r2.z * r1.x; + r5.xyz = v2.xyz * r1.xxx + r5.xyz; + r1.x = dot(r5.xyz, r5.xyz); + r1.x = rsqrt(r1.x); + r5.xyz = r5.xyz * r1.xxx; + r1.x = max(9.99999994e-09, v5.z); + r2.zw = v5.xy / r1.xx; + r1.x = max(9.99999994e-09, v6.z); + r7.xy = v6.xy / r1.xx; + r10.xy = -r7.xy + r2.zw; + r1.x = cb2[0].y * 0.0799999982; + r7.xyw = -r6.xyz * r3.www + r6.xyz; + r1.x = -r1.x * r3.w + r1.x; + r6.xyz = r6.xyz * r3.www + r1.xxx; + r1.x = dot(r5.xyz, r4.xyz); + r11.xyzw = r9.wwww * float4(-1,-0.0274999999,-0.572000027,0.0219999999) + float4(1,0.0425000004,1.03999996,-0.0399999991); + r2.z = r11.x * r11.x; + r1.x = max(0, r1.x); + r2.w = -9.27999973 * r1.x; + r2.w = exp2(r2.w); + r2.z = min(r2.z, r2.w); + r2.z = r2.z * r11.x + r11.y; + r2.zw = r2.zz * float2(-1.03999996,1.03999996) + r11.zw; + r3.w = cmp(1.000000 == cb0[113].y); + r11.xyzw = cb0[241].xyzw * r0.yyyy; + r11.xyzw = cb0[240].xyzw * r0.xxxx + r11.xyzw; + r11.xyzw = cb0[242].xyzw * r0.zzzz + r11.xyzw; + r11.xyzw = cb0[243].xyzw + r11.xyzw; + r4.w = 1 / r11.w; + r11.xyz = float3(1,-1,1) * r11.xyz; + r11.xyz = r11.xyz * r4.www; + r11.xy = saturate(r11.xy * float2(0.5,0.5) + float2(0.5,0.5)); + r11.xy = cb0[82].xy * r11.xy; + r12.xy = (uint2)r11.xy; + r4.w = cb0[84].z * r11.z + cb0[84].w; + r12.z = 1 / r4.w; + r11.xy = (uint2)v0.xy; + r4.w = cb0[1].z * r0.y; + r4.w = cb0[0].z * r0.x + r4.w; + r4.w = cb0[2].z * r0.z + r4.w; + r4.w = cb0[3].z + r4.w; + r11.z = abs(r4.w); + r11.xyz = r3.www ? r12.xyz : r11.xyz; + r12.xyz = r5.xyz * float3(0.25,0.25,0.25) + r0.xyz; + r13.xyz = cb0[6].xzy * -cb0[212].www + cb0[210].xzy; + r13.xyz = -r13.xyz + r12.xzy; + r3.w = max(abs(r13.x), abs(r13.y)); + r3.w = -464 + r3.w; + r3.w = saturate(0.03125 * r3.w); + r4.w = -208 + abs(r13.z); + r4.w = saturate(0.03125 * r4.w); + r3.w = max(r4.w, r3.w); + r4.w = cmp(0.000000 != cb0[210].w); + r6.w = cmp(r3.w < 1); + r4.w = r4.w ? r6.w : 0; + if (r4.w != 0) { + r13.xyz = cb0[6].xzy * -cb0[212].yyy + cb0[210].xzy; + r13.xyz = -r13.xyz + r12.xzy; + r4.w = max(abs(r13.x), abs(r13.y)); + r4.w = -29 + r4.w; + r4.w = saturate(0.5 * r4.w); + r6.w = -13 + abs(r13.z); + r6.w = saturate(0.5 * r6.w); + r4.w = max(r6.w, r4.w); + r6.w = cmp(r4.w < 1); + if (r6.w != 0) { + r13.xyz = r12.xyz * float3(2,2,2) + float3(0.5,0.5,0.5); + r14.xyz = cb0[211].xyz * r13.xyz; + r14.xyz = floor(r14.xyz); + r13.xyz = r13.xyz * cb0[211].xyz + -r14.xyz; + r14.xyz = t11.SampleLevel(s1_s, r13.xyz, 0).xyz; + r6.w = 1 + -r4.w; + r10.w = cb0[211].y * 0.5; + r12.w = -cb0[211].y * 0.5 + 1; + r10.w = max(r13.y, r10.w); + r10.w = min(r10.w, r12.w); + r13.w = 0.333333343 * r10.w; + r15.xyzw = t12.SampleLevel(s0_s, r13.xwz, 0).xyzw; + r15.xyz = r15.xyz * float3(4,4,4) + float3(-2,-2,-2); + r16.xyz = r15.xyz * r14.xxx; + r15.xyz = float3(0,0.333333343,0) + r13.xwz; + r15.xyz = t12.SampleLevel(s0_s, r15.xyz, 0).xyz; + r15.xyz = r15.xyz * float3(4,4,4) + float3(-2,-2,-2); + r17.xyz = r15.xyz * r14.yyy; + r13.xyz = float3(0,0.666666687,0) + r13.xwz; + r13.xyz = t12.SampleLevel(s0_s, r13.xyz, 0).xyz; + r13.xyz = r13.xyz * float3(4,4,4) + float3(-2,-2,-2); + r13.xyz = r13.xyz * r14.zzz; + r10.w = r15.w * r6.w + r3.w; + r13.w = r14.z; + r13.xyzw = r13.xyzw * r6.wwww; + r17.w = r14.y; + r15.xyzw = r17.xyzw * r6.wwww; + r16.w = r14.x; + r14.xyzw = r16.xyzw * r6.wwww; + } else { + r13.xyzw = float4(0,0,0,0); + r15.xyzw = float4(0,0,0,0); + r14.xyzw = float4(0,0,0,0); + r10.w = r3.w; + } + r16.xyz = cb0[6].xzy * -cb0[212].zzz + cb0[210].xzy; + r16.xyz = -r16.xyz + r12.xzy; + r6.w = max(abs(r16.x), abs(r16.y)); + r6.w = -116 + r6.w; + r6.w = saturate(0.125 * r6.w); + r12.w = -52 + abs(r16.z); + r12.w = saturate(0.125 * r12.w); + r6.w = max(r12.w, r6.w); + r12.w = cmp(r6.w < 1); + if (r12.w != 0) { + r16.xyz = r12.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5); + r17.xyz = cb0[211].xyz * r16.xyz; + r17.xyz = floor(r17.xyz); + r16.xyz = r16.xyz * cb0[211].xyz + -r17.xyz; + r17.xyz = t13.SampleLevel(s1_s, r16.xyz, 0).xyz; + r12.w = 1 + -r6.w; + r4.w = r12.w * r4.w; + r12.w = cb0[211].y * 0.5; + r17.w = -cb0[211].y * 0.5 + 1; + r12.w = max(r16.y, r12.w); + r12.w = min(r12.w, r17.w); + r16.w = 0.333333343 * r12.w; + r18.xyzw = t14.SampleLevel(s0_s, r16.xwz, 0).xyzw; + r18.xyz = r18.xyz * float3(4,4,4) + float3(-2,-2,-2); + r19.xyz = r18.xyz * r17.xxx; + r18.xyz = float3(0,0.333333343,0) + r16.xwz; + r18.xyz = t14.SampleLevel(s0_s, r18.xyz, 0).xyz; + r18.xyz = r18.xyz * float3(4,4,4) + float3(-2,-2,-2); + r20.xyz = r18.xyz * r17.yyy; + r16.xyz = float3(0,0.666666687,0) + r16.xwz; + r16.xyz = t14.SampleLevel(s0_s, r16.xyz, 0).xyz; + r16.xyz = r16.xyz * float3(4,4,4) + float3(-2,-2,-2); + r16.xyz = r16.xyz * r17.zzz; + r10.w = r18.w * r4.w + r10.w; + r16.w = r17.z; + r13.xyzw = r16.xyzw * r4.wwww + r13.xyzw; + r20.w = r17.y; + r15.xyzw = r20.xyzw * r4.wwww + r15.xyzw; + r19.w = r17.x; + r14.xyzw = r19.xyzw * r4.wwww + r14.xyzw; + } + r4.w = cmp(0 < r6.w); + if (r4.w != 0) { + r12.xyz = r12.xyz * float3(0.125,0.125,0.125) + float3(0.5,0.5,0.5); + r16.xyz = cb0[211].xyz * r12.xyz; + r17.xyz = cb0[211].xyz * float3(0.5,0.5,0.5); + r16.xyz = floor(r16.xyz); + r12.xyz = r12.xyz * cb0[211].xyz + -r16.xyz; + r16.xyz = -cb0[211].xyz * float3(0.5,0.5,0.5) + float3(1,1,1); + r12.xyz = max(r12.xyz, r17.xyz); + r12.xyz = min(r12.xyz, r16.xyz); + r18.xyw = t15.SampleLevel(s1_s, r12.xyz, 0).yzx; + r4.w = 1 + -r3.w; + r4.w = r6.w * r4.w; + r6.w = max(r12.y, r17.y); + r6.w = min(r6.w, r16.y); + r12.w = 0.333333343 * r6.w; + r16.xyzw = t16.SampleLevel(s0_s, r12.xwz, 0).xyzw; + r17.xyz = float3(0,0.666666687,0) + r12.xwz; + r17.xyz = t16.SampleLevel(s0_s, r17.xyz, 0).xyz; + r17.xyz = r17.xyz * float3(4,4,4) + float3(-2,-2,-2); + r17.xyz = r17.xyz * r18.yyy; + r17.w = r18.y; + r13.xyzw = r17.xyzw * r4.wwww + r13.xyzw; + r12.xyz = float3(0,0.333333343,0) + r12.xwz; + r12.xyz = t16.SampleLevel(s0_s, r12.xyz, 0).xyz; + r12.xyz = r12.xyz * float3(4,4,4) + float3(-2,-2,-2); + r12.xyz = r12.xyz * r18.xxx; + r12.w = r18.x; + r15.xyzw = r12.xyzw * r4.wwww + r15.xyzw; + r12.xyz = r16.xyz * float3(4,4,4) + float3(-2,-2,-2); + r18.xyz = r12.xyz * r18.www; + r14.xyzw = r18.xyzw * r4.wwww + r14.xyzw; + r10.w = r16.w * r4.w + r10.w; + } + r4.w = saturate(r10.w * 2 + -1); + r12.x = r4.w + -r3.w; + r3.w = r4.w + r3.w; + r12.y = 0.5 * r3.w; + } else { + r13.xyzw = float4(0,0,0,0); + r15.xyzw = float4(0,0,0,0); + r14.xyzw = float4(0,0,0,0); + r12.xy = float2(0,1); + } + r16.xyzw = cb0[213].xyzw * r12.yyyx; + r16.y = r16.w * 0.5 + r16.y; + r12.zw = cb0[213].wy * r12.yx; + r16.w = r12.w * 0.375 + r12.z; + r14.xyzw = r16.xyzw + r14.xyzw; + r16.xyzw = cb0[214].xyzw * r12.yyyx; + r16.y = r16.w * 0.5 + r16.y; + r12.zw = cb0[214].wy * r12.yx; + r16.w = r12.w * 0.375 + r12.z; + r15.xyzw = r16.xyzw + r15.xyzw; + r16.xyzw = cb0[215].xyzw * r12.yyyx; + r16.y = r16.w * 0.5 + r16.y; + r12.xy = cb0[215].wy * r12.yx; + r16.w = r12.y * 0.375 + r12.x; + r12.xyzw = r16.xyzw + r13.xyzw; + r3.w = dot(r14.xyz, r5.xyz); + r3.w = r3.w + r14.w; + r13.x = max(0, r3.w); + r3.w = dot(r15.xyz, r5.xyz); + r3.w = r3.w + r15.w; + r13.y = max(0, r3.w); + r3.w = dot(r12.xyz, r5.xyz); + r3.w = r3.w + r12.w; + r13.z = max(0, r3.w); + r3.w = dot(-r4.xyz, r5.xyz); + r3.w = r3.w + r3.w; + r12.xyz = r5.xyz * -r3.www + -r4.xyz; + r3.w = cb0[113].x + -1; + r4.w = max(0.00100000005, r9.w); + r4.w = log2(r4.w); + r4.w = -r4.w * 1.20000005 + 1; + r3.w = -r4.w + r3.w; + r14.xy = (uint2)r11.xy; + r14.zw = cb3[0].ww * r14.xy; + r14.zw = floor(r14.zw); + r4.w = -cb3[2].y + r11.z; + r4.w = floor(r4.w); + r6.w = cb3[1].x + -1; + r10.w = max(0, r4.w); + r6.w = min(r10.w, r6.w); + r4.w = cmp(r6.w >= r4.w); + r10.w = r14.w * cb3[0].x + r14.z; + r10.w = (int)r10.w; + r10.w = (int)r10.w + asint(cb0[110].z); + r10.w = t0[r10.w].val[0/4]; + r6.w = (int)r6.w; + r6.w = (int)r6.w + asint(cb0[110].w); + r6.w = t0[r6.w].val[0/4]; + r6.w = (int)r6.w & (int)r10.w; + r4.w = r4.w ? r6.w : 0; + r15.xyz = cb0[111].xxx * r13.xyz; + r6.w = dot(r15.xyz, float3(0.212672904,0.715152204,0.0721750036)); + r0.w = 1; + r5.w = 1; + r15.xyz = float3(0,0,0); + r10.w = 1; + r12.w = r4.w; + r13.w = 0; + while (true) { + r14.z = cmp(0.00999999978 < r10.w); + r14.w = cmp((int)r12.w != 0); + r14.w = r14.z ? r14.w : 0; + if (r14.w != 0) { + r14.w = firstbitlow((uint)r12.w); + r15.w = 1 << (int)r14.w; + r12.w = (int)r12.w ^ (int)r15.w; + r14.w = (uint)r14.w << 3; + r16.x = dot(cb3[r14.w+6].xyzw, r0.xyzw); + r16.y = dot(cb3[r14.w+7].xyzw, r0.xyzw); + r16.z = dot(cb3[r14.w+8].xyzw, r0.xyzw); + r17.xyz = cmp(cb3[r14.w+5].xyz >= abs(r16.xyz)); + r15.w = r17.y ? r17.x : 0; + r15.w = r17.z ? r15.w : 0; + if (r15.w != 0) { + r15.w = cb3[r14.w+5].x * 0.100000001; + r17.xyz = float3(0.100000001,0.100000001,0.100000001) * abs(r16.xyz); + r17.xy = r17.xy * r17.xy; + r18.xyz = cb3[r14.w+5].xyz + -abs(r16.xyz); + r18.xyz = cb3[r14.w+9].xyz * r18.xyz; + r16.w = cmp(1.000000 == cb3[r14.w+10].x); + if (r16.w != 0) { + r19.x = dot(cb3[r14.w+6].xyz, r12.xyz); + r19.y = dot(cb3[r14.w+7].xyz, r12.xyz); + r19.z = dot(cb3[r14.w+8].xyz, r12.xyz); + r20.xyz = cb3[r14.w+5].xyz + -r16.xyz; + r20.xyz = r20.xyz / r19.xyz; + r21.xyz = -cb3[r14.w+5].xyz + -r16.xyz; + r21.xyz = r21.xyz / r19.xyz; + r22.xyz = cmp(float3(0,0,0) < r19.xyz); + r20.xyz = r22.xyz ? r20.xyz : r21.xyz; + r16.w = min(r20.x, r20.y); + r16.w = min(r16.w, r20.z); + r16.xyz = r19.xyz * r16.www + r16.xyz; + } else { + r16.xyz = r12.xyz; + } + r16.w = dot(r16.xyz, r16.xyz); + r16.w = rsqrt(r16.w); + r16.xyz = r16.xyz * r16.www; + r19.xyz = cmp(float3(0,0,0) < r16.xyz); + r20.xyz = cmp(r16.xyz < float3(0,0,0)); + r19.xyz = (int3)-r19.xyz + (int3)r20.xyz; + r19.xyz = (int3)r19.xyz; + r16.w = dot(r16.xyz, r19.xyz); + r16.xyz = r16.xyz / r16.www; + r16.z = cmp(r16.z < 0); + r19.zw = float2(1,1) + -abs(r16.yx); + r19.xy = r19.xy * r19.zw; + r16.xy = r16.zz ? r19.xy : r16.xy; + r16.z = dot(cb3[r14.w+4].xyzw, r5.xyzw); + r16.z = max(0, r16.z); + r16.z = max(9.99999975e-05, r16.z); + r16.w = min(r18.y, r18.z); + r16.w = min(r18.x, r16.w); + r17.x = r17.x + r17.y; + r17.x = r17.z * r17.z + r17.x; + r15.w = r15.w * r15.w + -r17.x; + r15.w = cb3[r14.w+9].x * r15.w; + r15.w = cb3[r14.w+9].x * r15.w; + r17.x = -cb3[r14.w+10].y + 1; + r15.w = r17.x * r15.w; + r15.w = 100 * r15.w; + r15.w = saturate(r16.w * cb3[r14.w+10].y + r15.w); + r16.w = cb3[r14.w+10].w * r15.w; + r16.xy = r16.xy * float2(0.5,0.5) + float2(0.5,0.5); + r17.xy = r16.xy * cb3[1].ww + cb3[2].ww; + r17.z = cb3[r14.w+5].w; + r17.xyz = t1.SampleLevel(s2_s, r17.xyz, r3.w).xyz; + r17.xyz = cb3[r14.w+9].www * r17.xyz; + r16.x = r6.w / r16.z; + r16.x = min(1, abs(r16.x)); + r16.x = r16.x * 2 + r6.w; + r16.y = 2 + r16.z; + r16.x = r16.x / r16.y; + r16.x = -1 + r16.x; + r16.x = r16.x * cb0[112].w + 1; + r16.xyz = r17.xyz * r16.xxx; + r16.xyz = r16.xyz * r16.www; + r15.xyz = r16.xyz * r10.www + r15.xyz; + r14.w = -r15.w * cb3[r14.w+10].w + 1; + r10.w = r14.w * r10.w; + } + r13.w = -1; + continue; + } else { + r13.w = r14.z; + break; + } + r13.w = r14.z; + } + if (r13.w != 0) { + r0.w = dot(r12.xyz, r12.xyz); + r0.w = rsqrt(r0.w); + r16.xyz = r12.xyz * r0.www; + r17.xyz = cmp(float3(0,0,0) < r16.xyz); + r18.xyz = cmp(r16.xyz < float3(0,0,0)); + r17.xyz = (int3)-r17.xyz + (int3)r18.xyz; + r17.xyz = (int3)r17.xyz; + r0.w = dot(r16.xyz, r17.xyz); + r16.xyz = r16.xyz / r0.www; + r0.w = cmp(r16.z < 0); + r14.zw = float2(1,1) + -abs(r16.yx); + r14.zw = r17.xy * r14.zw; + r14.zw = r0.ww ? r14.zw : r16.xy; + r5.w = 1; + r0.w = dot(cb3[3].xyzw, r5.xyzw); + r0.w = max(0, r0.w); + r0.w = max(9.99999975e-05, r0.w); + r14.zw = r14.zw * float2(0.5,0.5) + float2(0.5,0.5); + r16.xy = r14.zw * cb3[1].ww + cb3[2].ww; + r16.z = 0; + r16.xyz = t1.SampleLevel(s2_s, r16.xyz, r3.w).xyz; + r3.w = r6.w / r0.w; + r3.w = min(1, abs(r3.w)); + r3.w = r3.w * 2 + r6.w; + r0.w = 2 + r0.w; + r0.w = r3.w / r0.w; + r0.w = -1 + r0.w; + r0.w = r0.w * cb0[112].w + 1; + r16.xyz = r16.xyz * r0.www; + r15.xyz = r16.xyz * r10.www + r15.xyz; + } + r13.xyz = r13.xyz * r7.xyw; + r0.w = -1 + r7.z; + r0.w = cb2[1].x * r0.w + 1; + r13.xyz = r13.xyz * r0.www; + + // Reduce reflection probe intensity for glass + if (GLASS_TRANSPARENCY > 0.5f) { + r15.xyz *= 0.4f; + } + + r15.xyz = cb0[112].zzz * r15.xyz; + r15.xyz = cb0[111].yyy * r15.xyz; + r0.w = saturate(50 * r6.y); + r0.w = r0.w * r2.w; + r16.xyz = r6.xyz * r2.zzz + r0.www; + r15.xyz = r16.xyz * r15.xyz; + r13.xyz = r13.xyz * cb0[111].xxx + r15.xyz; + r0.w = cmp(cb6[35].w < 0.99000001); + if (r0.w != 0) { + r0.w = (int)cb6[35].x; + r2.z = cmp((int)r0.w == 2); + r15.xyz = r2.zzz ? cb6[20].xyz : cb0[44].xyz; + r15.xyz = -r15.xyz + r0.xyz; + r2.z = dot(r15.xyz, r15.xyz); + r2.z = cb6[34].w + -r2.z; + r2.z = saturate(cb6[34].z * r2.z); + r2.w = cmp(0 < r2.z); + if (r2.w != 0) { + r0.w = cmp(0 < (int)r0.w); + if (r0.w != 0) { + r15.xyz = -cb6[20].xyz + r0.xyz; + r16.xyz = -cb6[21].xyz + r0.xyz; + r17.xyz = -cb6[22].xyz + r0.xyz; + r18.xyz = -cb6[23].xyz + r0.xyz; + r15.x = dot(r15.xyz, r15.xyz); + r15.y = dot(r16.xyz, r16.xyz); + r15.z = dot(r17.xyz, r17.xyz); + r15.w = dot(r18.xyz, r18.xyz); + r16.x = cmp(r15.x < cb6[20].w); + r16.y = cmp(r15.y < cb6[21].w); + r16.z = cmp(r15.z < cb6[22].w); + r16.w = cmp(r15.w < cb6[23].w); + r17.xyzw = r16.xyzw ? float4(1,1,1,1) : 0; + r16.xyz = r16.xyz ? float3(-1,-1,-1) : float3(-0,-0,-0); + r16.xyz = r17.yzw + r16.xyz; + r17.yzw = max(float3(0,0,0), r16.xyz); + r0.w = dot(r17.xyzw, float4(4,3,2,1)); + r0.w = 4 + -r0.w; + r0.w = max(0, r0.w); + r0.w = min(3, r0.w); + r2.w = 1 + r0.w; + r2.w = min(3, r2.w); + r2.w = (uint)r2.w; + r3.w = dot(r15.yzw, icb[r2.w+0].yzw); + r2.w = r3.w / cb6[r2.w+20].w; + r3.w = cmp(r2.w >= 0); + r2.w = cmp(1 >= r2.w); + r2.w = r2.w ? r3.w : 0; + if (r2.w != 0) { + r2.w = (uint)r0.w; + r14.zw = float2(2.08299994,4.8670001) + r14.xy; + r3.w = dot(r14.zw, float2(0.0671105608,0.00583714992)); + r3.w = frac(r3.w); + r3.w = 52.9829178 * r3.w; + r3.w = frac(r3.w); + r4.w = dot(r15.xyzw, icb[r2.w+0].xyzw); + r2.w = r4.w / cb6[r2.w+20].w; + r2.w = sqrt(r2.w); + r2.w = -0.899999976 + r2.w; + r2.w = 12 * r2.w; + r2.w = cmp(r2.w >= r3.w); + r2.w = r2.w ? 1.000000 : 0; + r0.w = r2.w + r0.w; + } + r2.w = dot(r5.xyz, cb5[0].xyz); + r2.w = max(0, r2.w); + r2.w = min(0.899999976, r2.w); + r2.w = 1 + -r2.w; + r3.w = (uint)r0.w; + r4.w = (uint)r3.w << 2; + r14.zw = cb6[r3.w+24].xy * r2.ww; + r2.w = max(0, r14.z); + r15.xyz = -cb5[0].xyz * r2.www + r0.xyz; + r15.xyz = r5.xyz * r14.www + r15.xyz; + r16.xyz = cb6[r4.w+1].xyz * r15.yyy; + r15.xyw = cb6[r4.w+0].xyz * r15.xxx + r16.xyz; + r15.xyz = cb6[r4.w+2].xyz * r15.zzz + r15.xyw; + r15.xyz = cb6[r4.w+3].xyz + r15.xyz; + r16.xyz = cmp(float3(0,0,0) >= r15.xyz); + r17.xyz = cmp(r15.xyz >= float3(1,1,1)); + r16.xyz = (int3)r16.xyz | (int3)r17.xyz; + r2.w = (int)r16.y | (int)r16.x; + r2.w = (int)r16.z | (int)r2.w; + r3.w = (int)r15.z & 0x7fffffff; + r3.w = cmp(0x7f800000 < (uint)r3.w); + r16.z = (int)r2.w | (int)r3.w; + r0.w = (int)r0.w; + r14.zw = r15.xy * cb6[r0.w+28].zw + cb6[r0.w+28].xy; + r15.xy = r14.zw * cb6[32].zw + float2(0.5,0.5); + r15.xy = floor(r15.xy); + r14.zw = r14.zw * cb6[32].zw + -r15.xy; + r17.xyzw = float4(0.5,1,0.5,1) + r14.zzww; + r18.xw = r17.xz * r17.xz; + r17.xz = min(float2(0,0), r14.zw); + r19.xy = max(float2(0,0), r14.zw); + r19.zw = r18.xw * float2(0.5,0.5) + -r14.zw; + r14.zw = float2(1,1) + -r14.zw; + r14.zw = -r17.xz * r17.xz + r14.zw; + r17.xy = -r19.xy * r19.xy + r17.yw; + r20.x = r19.z; + r20.y = r14.z; + r20.z = r17.x; + r20.w = r18.x; + r20.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r20.xyzw; + r18.x = r19.w; + r18.y = r14.w; + r18.z = r17.y; + r17.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r18.xyzw; + r18.xyzw = r20.xzxz + r20.ywyw; + r19.xyzw = r17.xxzz + r17.yyww; + r14.zw = r20.yw / r18.zw; + r14.zw = float2(-1.5,0.5) + r14.zw; + r20.xy = cb6[32].xx * r14.zw; + r14.zw = r17.yw / r19.yw; + r14.zw = float2(-1.5,0.5) + r14.zw; + r20.zw = cb6[32].yy * r14.zw; + r17.xyzw = r19.xyzw * r18.xyzw; + r18.xyzw = r15.xyxy * cb6[32].xyxy + r20.xzyz; + r0.w = t5.SampleCmpLevelZero(s3_s, r18.xy, r15.z).x; + r2.w = t5.SampleCmpLevelZero(s3_s, r18.zw, r15.z).x; + r2.w = r17.y * r2.w; + r0.w = r17.x * r0.w + r2.w; + r18.xyzw = r15.xyxy * cb6[32].xyxy + r20.xwyw; + r2.w = t5.SampleCmpLevelZero(s3_s, r18.xy, r15.z).x; + r0.w = r17.z * r2.w + r0.w; + r2.w = t5.SampleCmpLevelZero(s3_s, r18.zw, r15.z).x; + r0.w = r17.w * r2.w + r0.w; + r16.x = r16.z ? 1 : r0.w; + } else { + r16.xz = float2(1,0); + } + } else { + r16.xz = float2(1,0); + } + r0.w = cmp(r2.z < 1); + if (r0.w != 0) { + r0.w = dot(r5.xyz, cb5[0].xyz); + r0.w = max(0, r0.w); + r0.w = min(0.899999976, r0.w); + r0.w = 1 + -r0.w; + r14.zw = cb6[584].xy * r0.ww; + r15.xyz = -cb5[0].xyz * r14.zzz + r0.xyz; + r15.xyz = r5.xyz * r14.www + r15.xyz; + r14.zw = cb6[581].xy * r15.yy; + r14.zw = cb6[580].xy * r15.xx + r14.zw; + r14.zw = cb6[582].xy * r15.zz + r14.zw; + r14.zw = cb6[583].xy + r14.zw; + r17.xy = cmp(float2(0,0) < r14.zw); + r0.w = r17.y ? r17.x : 0; + r17.xy = cmp(r14.zw < float2(1,1)); + r2.w = r17.y ? r17.x : 0; + r0.w = (int)r0.w & (int)r2.w; + if (r0.w != 0) { + r0.w = cb6[585].z * r14.w; + r0.w = floor(r0.w); + r0.w = r0.w + r14.z; + r0.w = cb6[585].y * r0.w; + r0.w = (uint)r0.w; + r0.w = min(127, (uint)r0.w); + r2.w = 0x0000ffff & asint(cb6[r0.w+587].x); + r17.x = f16tof32(r2.w); + r2.w = cmp(r17.x >= 0); + if (r2.w != 0) { + r18.x = cb6[576].x; + r18.y = cb6[577].x; + r18.z = cb6[578].x; + r18.w = cb6[r0.w+587].y; + r15.w = 1; + r18.x = dot(r18.xyzw, r15.xyzw); + r19.x = cb6[576].y; + r19.y = cb6[577].y; + r19.z = cb6[578].y; + r19.w = cb6[r0.w+587].z; + r18.y = dot(r19.xyzw, r15.xyzw); + r19.x = cb6[576].z; + r19.y = cb6[577].z; + r19.z = cb6[578].z; + r19.w = cb6[r0.w+587].w; + r2.w = dot(r19.xyzw, r15.xyzw); + r14.zw = cmp(float2(0,0) < r18.xy); + r3.w = cmp(0 < r2.w); + r4.w = r14.w ? r14.z : 0; + r3.w = r3.w ? r4.w : 0; + r14.zw = cmp(r18.xy < float2(1,1)); + r4.w = cmp(r2.w < 1); + r5.w = r14.w ? r14.z : 0; + r4.w = r4.w ? r5.w : 0; + r3.w = r3.w ? r4.w : 0; + if (r3.w != 0) { + r0.w = asuint(cb6[r0.w+587].x) >> 16; + r17.y = f16tof32(r0.w); + r14.zw = r18.xy * cb6[584].zw + r17.xy; + r15.xy = r14.zw * cb6[586].zw + float2(0.5,0.5); + r15.xy = floor(r15.xy); + r14.zw = r14.zw * cb6[586].zw + -r15.xy; + r17.xyzw = float4(0.5,1,0.5,1) + r14.zzww; + r18.xw = r17.xz * r17.xz; + r15.zw = min(float2(0,0), r14.zw); + r17.xz = max(float2(0,0), r14.zw); + r19.xy = r18.xw * float2(0.5,0.5) + -r14.zw; + r14.zw = float2(1,1) + -r14.zw; + r14.zw = -r15.zw * r15.zw + r14.zw; + r15.zw = -r17.xz * r17.xz + r17.yw; + r17.x = r19.x; + r17.y = r14.z; + r17.z = r15.z; + r17.w = r18.x; + r17.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r17.xyzw; + r18.x = r19.y; + r18.y = r14.w; + r18.z = r15.w; + r18.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r18.xyzw; + r19.xyzw = r17.xzxz + r17.ywyw; + r20.xyzw = r18.xxzz + r18.yyww; + r14.zw = r17.yw / r19.zw; + r14.zw = float2(-1.5,0.5) + r14.zw; + r17.xy = cb6[586].xx * r14.zw; + r14.zw = r18.yw / r20.yw; + r14.zw = float2(-1.5,0.5) + r14.zw; + r17.zw = cb6[586].yy * r14.zw; + r18.xyzw = r20.xyzw * r19.xyzw; + r19.xyzw = r15.xyxy * cb6[586].xyxy + r17.xzyz; + r0.w = t8.SampleCmpLevelZero(s3_s, r19.xy, r2.w).x; + r3.w = t8.SampleCmpLevelZero(s3_s, r19.zw, r2.w).x; + r3.w = r18.y * r3.w; + r0.w = r18.x * r0.w + r3.w; + r15.xyzw = r15.xyxy * cb6[586].xyxy + r17.xwyw; + r3.w = t8.SampleCmpLevelZero(s3_s, r15.xy, r2.w).x; + r0.w = r18.z * r3.w + r0.w; + r2.w = t8.SampleCmpLevelZero(s3_s, r15.zw, r2.w).x; + r16.y = r18.w * r2.w + r0.w; + } else { + r16.y = 1; + } + } else { + r16.y = 1; + } + } else { + r16.y = 1; + } + r16.x = r16.z ? r16.y : r16.x; + } else { + r16.y = 1; + } + r0.w = r16.x + -r16.y; + r0.w = r2.z * r0.w + r16.y; + r2.z = cmp(0.00100000005 < r0.w); + if (r2.z != 0) { + r15.xyz = -cb0[173].xyz + r0.xyz; + r2.zw = cb0[176].xz * r15.yy + r15.xz; + r14.zw = cb0[174].zz * r2.zw; + r15.yw = cb0[183].ww * cb0[175].xy; + r2.zw = r2.zw * cb0[174].zz + r15.yw; + r2.z = t7.SampleLevel(s1_s, r2.zw, 0).x; + r14.zw = r14.zw * cb0[175].ww + r15.yw; + r2.w = t7.SampleLevel(s1_s, r14.zw, 0).x; + r3.w = dot(r15.xz, r15.xz); + r3.w = sqrt(r3.w); + r4.w = cb0[174].y + -cb0[174].x; + r3.w = -cb0[174].x + r3.w; + r4.w = 1 / r4.w; + r3.w = saturate(r4.w * r3.w); + r4.w = r3.w * -2 + 3; + r3.w = r3.w * r3.w; + r3.w = r4.w * r3.w; + r2.w = r2.w + -r2.z; + r2.z = r3.w * r2.w + r2.z; + r2.z = -1 + r2.z; + r2.z = cb0[175].z * r2.z + 1; + r0.w = r2.z * r0.w; + } + r2.z = cb6[35].z + -r0.w; + r0.w = cb6[35].w * r2.z + r0.w; + } else { + r0.w = cb6[35].z; + } + r0.w = min(1, r0.w); + r0.w = -1 + r0.w; + r15.x = cb6[34].x * r0.w + 1; + r0.w = cmp(0.00100000005 < r15.x); + if (r0.w != 0) { + r0.w = dot(-cb5[0].xyz, r12.xyz); + r16.xyz = cb5[0].xyz * r0.www + r12.xyz; + r0.w = cmp(r0.w < cb5[4].z); + r2.z = dot(r16.xyz, r16.xyz); + r2.z = max(6.10351562e-05, r2.z); + r2.z = rsqrt(r2.z); + r16.xyz = r16.xyz * r2.zzz; + r16.xyz = cb5[4].yyy * r16.xyz; + r16.xyz = -cb5[0].xyz * cb5[4].zzz + r16.xyz; + r2.z = dot(r16.xyz, r16.xyz); + r2.z = rsqrt(r2.z); + r16.xyz = r16.xyz * r2.zzz; + r16.xyz = r0.www ? r16.xyz : r12.xyz; + r17.xyz = r1.yzw * r2.yyy + r16.xyz; + r0.w = dot(r17.xyz, r17.xyz); + r0.w = max(6.10351562e-05, r0.w); + r0.w = rsqrt(r0.w); + r17.xyz = r17.xyz * r0.www; + r9.y = saturate(dot(r16.xyz, r5.xyz)); + r0.w = saturate(dot(r5.xyz, r17.xyz)); + r9.z = min(1, r1.x); + r2.z = r9.w * r9.w; + r2.z = r2.z * r2.z; + r2.w = r0.w * r2.z + -r0.w; + r0.w = r2.w * r0.w + 1; + r2.w = saturate(dot(r4.xyz, r17.xyz)); + r2.w = 1 + -r2.w; + r3.w = r2.w * r2.w; + r3.w = r3.w * r3.w; + r4.w = r3.w * r2.w; + r5.w = 1 + -r9.w; + r6.w = -r5.w * 0.383026004 + -0.0761947036; + r6.w = r5.w * r6.w + 1.04997003; + r5.w = r5.w * r6.w + 0.409254998; + r5.w = min(0.999000013, r5.w); + r6.w = 1 + -r5.w; + r16.xyz = float3(1,1,1) + -r6.xyz; + r16.xyz = r16.xyz * float3(0.0476190485,0.0476190485,0.0476190485) + r6.xyz; + r2.w = -r3.w * r2.w + 1; + r17.xyz = r6.xyz * r2.www + r4.www; + r0.w = r0.w * r0.w; + r0.w = r2.z / r0.w; + r14.zw = -r9.zy * r2.zz + r9.zy; + r2.zw = r14.zw * r9.zy + r2.zz; + r2.zw = sqrt(r2.zw); + r2.zw = r9.yz * r2.zw; + r2.z = r2.z + r2.w; + r2.z = 9.99999975e-05 + r2.z; + r2.z = 0.5 / r2.z; + r0.w = r2.z * r0.w; + r17.xyz = r17.xyz * r0.www; + r17.xyz = min(float3(2048,2048,2048), r17.xyz); + r18.xyzw = r9.zwyw * float4(0.96875,0.96875,0.96875,0.96875) + float4(0.015625,0.015625,0.015625,0.015625); + r0.w = t10.SampleLevel(s0_s, r18.xy, 0).x; + r2.z = t10.SampleLevel(s0_s, r18.zw, 0).x; + r0.w = r2.z * r0.w; + r0.w = r0.w * r5.w; + r0.w = r0.w / r6.w; + r18.xyz = r16.xyz * r16.xyz; + r18.xyz = r18.xyz * r0.www; + r16.xyz = -r16.xyz * r6.www + float3(1,1,1); + r16.xyz = r18.xyz / r16.xyz; + r16.xyz = r17.xyz + r16.xyz; + r16.xyz = cb5[4].xxx * r16.xyz; + r16.xyz = max(float3(0,0,0), r16.xyz); + r16.xyz = min(float3(1000,1000,1000), r16.xyz); + + // Reduce sun specular intensity on glass + if (GLASS_TRANSPARENCY > 0.5f) { + r16.xyz *= 0.5f; + } + + r17.xyz = r9.yyy * r7.xyw; + r16.xyz = r16.xyz * r9.yyy + r17.xyz; + r16.xyz = cb5[1].xyz * r16.xyz; + r15.y = 0.5; + r15.yzw = t9.SampleBias(s0_s, r15.xy, cb0[108].x).xyz; + r0.w = 1 + -r15.x; + r15.xyz = r16.xyz * r15.yzw + -r16.xyz; + r15.xyz = r0.www * r15.xyz + r16.xyz; + } else { + r15.xyz = float3(0,0,0); + } + r2.zw = float2(0.03125,0.03125) * r14.xy; + r2.zw = floor(r2.zw); + r0.w = r2.w * cb4[1].y + r2.z; + r0.w = 8 * r0.w; + r0.w = (int)r0.w; + r2.z = -cb0[85].y * cb4[2].w + r11.z; + r2.z = floor(r2.z); + r2.w = cb4[1].w + -1; + r3.w = max(0, r2.z); + r2.w = min(r3.w, r2.w); + r3.w = 8 * r2.w; + r3.w = (int)r3.w; + r2.z = cmp(r2.w >= r2.z); + r2.w = (int)r3.w + asint(cb0[110].y); + r3.w = r9.w * r9.w; + r9.x = min(1, r1.x); + r1.x = 1 + -r9.w; + r4.w = -r1.x * 0.383026004 + -0.0761947036; + r4.w = r1.x * r4.w + 1.04997003; + r1.x = r1.x * r4.w + 0.409254998; + r1.x = min(0.999000013, r1.x); + r4.w = 1 + -r1.x; + r16.xyz = float3(1,1,1) + -r6.xyz; + r16.xyz = r16.xyz * float3(0.0476190485,0.0476190485,0.0476190485) + r6.xyz; + r9.yz = r9.xw * float2(0.96875,0.96875) + float2(0.015625,0.015625); + r5.w = t10.SampleLevel(s0_s, r9.yz, 0).x; + r17.xyz = -r16.xyz * r4.www + float3(1,1,1); + r16.xyz = r16.xyz * r16.xyz; + r18.w = 1; + r19.y = 1; + r20.z = r9.w; + r21.xyz = float3(0,0,0); + r6.w = 1; + r7.z = 0; + while (true) { + r9.y = cmp(7 < (int)r7.z); + if (r9.y != 0) break; + r9.y = (int)r0.w + (int)r7.z; + r9.y = t0[r9.y].val[0/4]; + r9.z = (int)r2.w + (int)r7.z; + r9.z = t0[r9.z].val[0/4]; + r9.y = (int)r9.z & (int)r9.y; + r9.y = r2.z ? r9.y : 0; + r9.z = (uint)r7.z << 5; + r22.xyz = float3(0,0,0); + r10.w = r6.w; + r12.w = r9.y; + while (true) { + if (r12.w == 0) break; + r13.w = firstbitlow((uint)r12.w); + r14.z = 1 << (int)r13.w; + r14.z = (int)r12.w ^ (int)r14.z; + r13.w = (int)r9.z + (int)r13.w; + bitmask.x = ((~(-1 << 29)) << 3) & 0xffffffff; r23.x = (((uint)r13.w << 3) & bitmask.x) | ((uint)1 & ~bitmask.x); + bitmask.y = ((~(-1 << 29)) << 3) & 0xffffffff; r23.y = (((uint)r13.w << 3) & bitmask.y) | ((uint)3 & ~bitmask.y); + bitmask.z = ((~(-1 << 29)) << 3) & 0xffffffff; r23.z = (((uint)r13.w << 3) & bitmask.z) | ((uint)5 & ~bitmask.z); + bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r23.w = (((uint)r13.w << 3) & bitmask.w) | ((uint)6 & ~bitmask.w); + bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r14.w = (((uint)r13.w << 3) & bitmask.w) | ((uint)7 & ~bitmask.w); + r15.w = (uint)cb5[r23.z+6].w; + r15.w = cmp((int)r15.w == 1); + if (r15.w != 0) { + r18.xyz = -cb5[r23.x+6].xyz + r0.xyz; + r24.xyz = int3(0xffff,0xffff,0xffff) & asint(cb5[r23.z+6].xzy); + r25.xyz = int3(0xffff,0xffff,0xffff) & asint(cb5[r23.w+6].yxz); + r26.xyz = asuint(cb5[r23.z+6].xzy) >> int3(16,16,16); + r27.xyz = asuint(cb5[r23.w+6].yxz) >> int3(16,16,16); + r24.xyz = f16tof32(r24.xyz); + r25.xyz = f16tof32(r25.xyz); + r26.xyz = f16tof32(r26.xyz); + r27.xyw = f16tof32(r27.yxz); + r28.xz = r24.xz; + r28.yw = r26.xz; + r15.w = dot(r18.xyzw, r28.xyzw); + r26.x = r24.y; + r26.z = r25.y; + r26.w = r27.x; + r16.w = dot(r18.xyzw, r26.xyzw); + r27.xz = r25.xz; + r17.w = dot(r18.xyzw, r27.xyzw); + r15.w = max(abs(r16.w), abs(r15.w)); + r15.w = max(r15.w, abs(r17.w)); + r16.w = cb5[r14.w+6].x * 0.5 + 0.5; + r15.w = -r16.w + r15.w; + r16.w = -cb5[r14.w+6].x * 0.5 + 0.5; + r15.w = saturate(r15.w / r16.w); + r15.w = 1 + -r15.w; + r15.w = r15.w * r15.w; + } else { + r15.w = 1; + } + r16.w = cmp(0.5 < cb5[r23.y+6].z); + r17.w = cmp(r15.w < 0.00100000005); + r17.w = (int)r16.w | (int)r17.w; + if (r17.w != 0) { + r12.w = r14.z; + continue; + } + r17.w = (uint)r13.w << 3; + bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r13.w = (((uint)r13.w << 3) & bitmask.w) | ((uint)2 & ~bitmask.w); + r18.x = cmp(cb5[r17.w+6].w < 1.5); + if (r18.x != 0) { + r18.x = cb5[r13.w+6].y * 0.5 + 0.5; + r18.x = -abs(cb5[r13.w+6].x) + r18.x; + r18.y = cb5[r13.w+6].y + -r18.x; + r19.z = 1 + -abs(r18.x); + r19.z = r19.z + -abs(r18.y); + r19.z = max(0.00048828125, r19.z); + r19.w = cmp(cb5[r13.w+6].x >= 0); + r18.z = r19.w ? r19.z : -r19.z; + r19.z = dot(r18.xyz, r18.xyz); + r19.z = rsqrt(r19.z); + r18.xyz = r19.zzz * r18.xyz; + r24.xyz = cb5[r23.x+6].xyz + -r0.xyz; + r19.z = dot(r24.xyz, r24.xyz); + r19.w = rsqrt(r19.z); + r25.xyz = r24.xyz * r19.www; + r20.w = (int)cb5[r14.w+6].w; + r26.xyz = cb5[r13.w+6].zzz * r18.xyz; + r27.xyz = -r26.xyz * float3(0.5,0.5,0.5) + r24.xyz; + r28.xyz = r26.xyz * float3(0.5,0.5,0.5) + r24.xyz; + r21.w = (uint)cb5[r17.w+6].w; + r21.w = (int)r21.w & 1; + r22.w = cmp((int)r21.w == 0); + r22.w = ~(int)r22.w; + r23.z = cmp(0 < cb5[r13.w+6].z); + r22.w = r22.w ? r23.z : 0; + r23.z = dot(r27.xyz, r27.xyz); + r23.z = sqrt(r23.z); + r24.w = dot(r28.xyz, r28.xyz); + r24.w = sqrt(r24.w); + r25.w = dot(r5.xyz, r27.xyz); + r25.w = r25.w / r23.z; + r26.w = dot(r5.xyz, r28.xyz); + r26.w = r26.w / r24.w; + r25.w = r26.w + r25.w; + r29.x = saturate(0.5 * r25.w); + r25.w = dot(r27.xyz, r28.xyz); + r23.z = r23.z * r24.w + r25.w; + r23.z = r23.z * 0.5 + 1; + r29.y = 1 / r23.z; + r19.x = saturate(dot(r5.xyz, r25.xyz)); + r20.xy = r22.ww ? r29.xy : r19.xy; + r19.x = cmp(cb5[r23.w+6].w < 0); + if (r19.x != 0) { + r19.x = cb5[r23.x+6].w * cb5[r23.x+6].w; + r19.x = r19.z * r19.x; + r19.x = -r19.x * r19.x + 1; + r19.x = max(0, r19.x); + r19.z = 1 + r19.z; + r19.z = 1 / r19.z; + r23.z = r22.w ? 1.000000 : 0; + r24.w = r20.y + -r19.z; + r19.z = r23.z * r24.w + r19.z; + r19.x = r19.x * r19.x; + r19.x = r19.z * r19.x; + } else { + r28.xyz = cb5[r23.x+6].www * r24.xyz; + r19.z = dot(r28.xyz, r28.xyz); + r19.z = min(1, r19.z); + r19.z = 1 + -r19.z; + r19.z = log2(r19.z); + r19.z = cb5[r23.w+6].w * r19.z; + r19.z = exp2(r19.z); + r19.x = r20.y * r19.z; + } + r18.x = dot(r25.xyz, -r18.xyz); + r18.x = -cb5[r13.w+6].z + r18.x; + r18.x = saturate(cb5[r13.w+6].w * r18.x); + r18.x = r18.x * r18.x; + r18.x = r21.w ? 1 : r18.x; + r18.x = r19.x * r18.x; + r18.y = ~(int)r22.w; + r18.z = cmp((int)r20.w >= 0); + r18.y = r18.z ? r18.y : 0; + if (r18.y != 0) { + if (r21.w == 0) { + r18.y = (uint)r20.w << 2; + r28.xyz = cb7[r18.y+33].xyw * r0.yyy; + r28.xyz = cb7[r18.y+32].xyw * r0.xxx + r28.xyz; + r28.xyz = cb7[r18.y+34].xyw * r0.zzz + r28.xyz; + r28.xyz = cb7[r18.y+35].xyw + r28.xyz; + r18.yz = saturate(r28.xy / r28.zz); + r18.yz = r18.yz * cb7[r20.w+0].zw + cb7[r20.w+0].xy; + } else { + r19.x = (uint)r20.w << 2; + r28.x = dot(-r24.xyz, cb7[r19.x+32].xyz); + r28.y = dot(-r24.xyz, cb7[r19.x+33].xyz); + r28.z = dot(-r24.xyz, cb7[r19.x+34].xyz); + r19.x = cmp(abs(r28.x) < abs(r28.y)); + r19.x = r19.x ? 0.000000 : 0; + r19.z = dot(abs(r28.xy), icb[r19.x+0].xy); + r19.z = cmp(r19.z < abs(r28.z)); + r19.x = r19.z ? 2 : r19.x; + r19.z = dot(r28.xyz, icb[r19.x+0].xyz); + r19.z = cmp(r19.z < 0); + bitmask.x = ((~(-1 << 31)) << 1) & 0xffffffff; r19.x = (((uint)r19.x << 1) & bitmask.x) | ((uint)r19.z & ~bitmask.x); + r19.z = (uint)r19.x >> 1; + r19.z = dot(r28.xyz, icb[r19.z+0].xyz); + r20.y = 0.000244140625 / cb7[r20.w+0].w; + r20.y = 0.5 + -r20.y; + r23.z = (uint)r19.x; + r24.x = cmp((uint)r19.x < 2); + r24.x = r24.x ? 0.000000 : 0; + r24.x = dot(r28.xz, icb[r24.x+0].xz); + r24.x = icb[r19.x+4].z * r24.x; + r24.x = r24.x / abs(r19.z); + r23.z = r24.x * r20.y + r23.z; + r23.z = 0.5 + r23.z; + r24.x = saturate(0.166666672 * r23.z); + r23.z = -1 + (int)icb[r19.x+4].y; + r23.z = dot(r28.yz, icb[r23.z+0].xy); + r19.x = icb[r19.x+4].w * r23.z; + r19.x = r19.x / abs(r19.z); + r24.y = saturate(-r19.x * r20.y + 0.5); + r18.yz = r24.xy * cb7[r20.w+0].zw + cb7[r20.w+0].xy; + } + r18.y = t18.SampleLevel(s0_s, r18.yz, 0).x; + r18.x = r18.x * r18.y; + } + r18.y = cmp(0 < r18.x); + if (r18.y != 0) { + if (r21.w == 0) { + r18.z = (int)cb5[r23.y+6].x; + } else { + r24.xyz = -cb5[r23.x+6].xyz + r0.xyz; + r28.xyz = cmp(abs(r24.yzz) < abs(r24.xxy)); + r19.x = r28.y ? r28.x : 0; + r24.xyz = cmp(float3(0,0,0) < r24.xyz); + r19.z = asuint(cb5[r13.w+6].w) >> 24; + if (8 == 0) r20.y = 0; else if (8+16 < 32) { r20.y = (uint)cb5[r13.w+6].w << (32-(8 + 16)); r20.y = (uint)r20.y >> (32-8); } else r20.y = (uint)cb5[r13.w+6].w >> 16; + if (8 == 0) r20.w = 0; else if (8+8 < 32) { r20.w = (uint)cb5[r13.w+6].w << (32-(8 + 8)); r20.w = (uint)r20.w >> (32-8); } else r20.w = (uint)cb5[r13.w+6].w >> 8; + r19.z = r24.x ? r19.z : r20.y; + r20.y = 255 & asint(cb5[r13.w+6].w); + r20.y = r24.y ? r20.w : r20.y; + if (8 == 0) r20.w = 0; else if (8+8 < 32) { r20.w = (uint)cb5[r23.y+6].x << (32-(8 + 8)); r20.w = (uint)r20.w >> (32-8); } else r20.w = (uint)cb5[r23.y+6].x >> 8; + r21.w = 255 & asint(cb5[r23.y+6].x); + r20.w = r24.z ? r20.w : r21.w; + r20.y = r28.z ? r20.y : r20.w; + r19.x = r19.x ? r19.z : r20.y; + r19.z = cmp((int)r19.x < 80); + r18.z = r19.z ? r19.x : -1; + } + r24.xyz = r25.xyz * cb6[r18.z+288].xxx + r0.xyz; + r19.x = cb6[r18.z+288].y * 5; + r24.xyz = r5.xyz * r19.xxx + r24.xyz; + r19.x = (uint)r18.z << 2; + r28.xyzw = cb6[r19.x+65].xyzw * r24.yyyy; + r28.xyzw = cb6[r19.x+64].xyzw * r24.xxxx + r28.xyzw; + r24.xyzw = cb6[r19.x+66].xyzw * r24.zzzz + r28.xyzw; + r24.xyzw = cb6[r19.x+67].xyzw + r24.xyzw; + r24.xyz = r24.xyz / r24.www; + r28.xyz = cmp(float3(0,0,0) >= r24.xyz); + r29.xyz = cmp(r24.xyz >= float3(1,1,1)); + r19.xz = cb6[r18.z+344].zw + -cb6[r18.z+344].xy; + r19.xz = r24.xy * r19.xz + cb6[r18.z+344].xy; + r20.yw = r19.xz * cb6[400].zw + float2(0.5,0.5); + r20.yw = floor(r20.yw); + r19.xz = r19.xz * cb6[400].zw + -r20.yw; + r30.xyzw = float4(0.5,1,0.5,1) + r19.xxzz; + r31.xyzw = r30.xxzz * r30.xxzz; + r24.xy = float2(1,1) + -r19.xz; + r30.xz = min(float2(0,0), r19.xz); + r32.xy = max(float2(0,0), r19.xz); + r33.xy = float2(0.159999996,0.159999996) * r24.xy; + r32.xy = -r32.xy * r32.xy + r30.yw; + r32.xy = float2(1,1) + r32.xy; + r32.xy = float2(0.159999996,0.159999996) * r32.xy; + r31.xz = float2(0.0799999982,0.0799999982) * r31.xz; + r19.xz = r31.yw * float2(0.5,0.5) + -r19.xz; + r34.xy = float2(0.159999996,0.159999996) * r19.xz; + r19.xz = -r30.xz * r30.xz + r24.xy; + r19.xz = float2(1,1) + r19.xz; + r35.xy = float2(0.159999996,0.159999996) * r19.xz; + r19.xz = float2(0.159999996,0.159999996) * r30.yw; + r34.z = r35.x; + r34.w = r19.x; + r33.z = r32.x; + r33.w = r31.x; + r30.xyzw = r34.zwxz + r33.zwxz; + r35.z = r34.y; + r35.w = r19.z; + r32.z = r33.y; + r32.w = r31.z; + r24.xyw = r35.zyw + r32.zyw; + r31.xyz = r33.xzw / r30.zwy; + r31.xyz = float3(-2.5,-0.5,1.5) + r31.xyz; + r31.xyz = cb6[400].xxx * r31.xyz; + r32.xyz = r32.zyw / r24.xyw; + r32.xyz = float3(-2.5,-0.5,1.5) + r32.xyz; + r32.xyw = cb6[400].yyy * r32.xyz; + r33.xyzw = r30.zwyz * r24.xxxy; + r31.w = r32.x; + r34.xyzw = r20.ywyw * cb6[400].xyxy + r31.xwyw; + r19.x = t6.SampleCmpLevelZero(s3_s, r34.xy, r24.z).x; + r19.z = t6.SampleCmpLevelZero(s3_s, r34.zw, r24.z).x; + r19.z = r33.y * r19.z; + r19.x = r33.x * r19.x + r19.z; + r33.xy = r20.yw * cb6[400].xy + r31.zw; + r19.z = t6.SampleCmpLevelZero(s3_s, r33.xy, r24.z).x; + r19.x = r33.z * r19.z + r19.x; + r32.z = r31.x; + r34.xyzw = r20.ywyw * cb6[400].xyxy + r32.zyzw; + r19.z = t6.SampleCmpLevelZero(s3_s, r34.xy, r24.z).x; + r19.x = r33.w * r19.z + r19.x; + r33.xyzw = r30.xyzw * r24.yyww; + r32.xz = r31.yz; + r31.xyzw = r20.ywyw * cb6[400].xyxy + r32.xyzy; + r19.z = t6.SampleCmpLevelZero(s3_s, r31.xy, r24.z).x; + r19.x = r33.x * r19.z + r19.x; + r19.z = t6.SampleCmpLevelZero(s3_s, r31.zw, r24.z).x; + r19.x = r33.y * r19.z + r19.x; + r19.z = t6.SampleCmpLevelZero(s3_s, r34.zw, r24.z).x; + r19.x = r33.z * r19.z + r19.x; + r19.z = cmp((int)r18.z >= 0); + r28.xyz = (int3)r28.xyz | (int3)r29.xyz; + r21.w = (int)r28.y | (int)r28.x; + r21.w = (int)r28.z | (int)r21.w; + r23.z = (int)r24.z & 0x7fffffff; + r23.z = cmp(0x7f800000 < (uint)r23.z); + r21.w = (int)r21.w | (int)r23.z; + r28.xyzw = r20.ywyw * cb6[400].xyxy + r32.xwzw; + r20.y = t6.SampleCmpLevelZero(s3_s, r28.xy, r24.z).x; + r19.x = r33.w * r20.y + r19.x; + r20.y = r30.y * r24.w; + r20.w = t6.SampleCmpLevelZero(s3_s, r28.zw, r24.z).x; + r19.x = r20.y * r20.w + r19.x; + r19.x = -1 + r19.x; + r18.z = cb6[r18.z+288].w * r19.x + 1; + r18.z = r21.w ? 1 : r18.z; + r18.z = r19.z ? r18.z : 1; + } else { + r18.z = 1; + } + if (r22.w != 0) { + r19.x = dot(r12.xyz, r26.xyz); + r19.z = saturate(cb5[r13.w+6].z * r19.w); + r19.z = r19.z * 0.5 + r3.w; + r19.z = min(1, r19.z); + r19.z = r3.w / r19.z; + r24.xyz = r12.xyz * r19.xxx + -r26.xyz; + r20.y = dot(r27.xyz, r24.xyz); + r19.x = r19.x * r19.x; + r19.x = cb5[r13.w+6].z * cb5[r13.w+6].z + -r19.x; + r19.x = saturate(r20.y / r19.x); + r24.xyz = r26.xyz * r19.xxx + r27.xyz; + r19.x = dot(r24.xyz, r24.xyz); + r19.x = rsqrt(r19.x); + r25.xyz = r24.xyz * r19.xxx; + } else { + r19.z = 1; + } + if (r18.y != 0) { + r18.y = saturate(cb5[r14.w+6].y * r19.w); + r24.xyz = r1.yzw * r2.yyy + r25.xyz; + r19.x = dot(r24.xyz, r24.xyz); + r19.x = max(6.10351562e-05, r19.x); + r19.x = rsqrt(r19.x); + r24.xyz = r24.xyz * r19.xxx; + r19.x = saturate(dot(r5.xyz, r24.xyz)); + r19.w = saturate(dot(r4.xyz, r24.xyz)); + r20.y = cmp(0 < r18.y); + r18.y = r18.y * r18.y; + r20.w = r19.w * 3.5999999 + 0.400000006; + r18.y = r18.y / r20.w; + r18.y = r9.w * r9.w + r18.y; + r18.y = min(1, r18.y); + r18.y = r20.y ? r18.y : r3.w; + r18.y = r18.y * r18.y; + r20.y = r19.x * r18.y + -r19.x; + r19.x = r20.y * r19.x + 1; + r19.w = 1 + -r19.w; + r20.y = r19.w * r19.w; + r20.y = r20.y * r20.y; + r20.w = r20.y * r19.w; + r19.w = -r20.y * r19.w + 1; + r24.xyz = r6.xyz * r19.www + r20.www; + r19.x = r19.x * r19.x; + r19.x = r18.y / r19.x; + r19.x = r19.x * r19.z; + r19.z = -r9.x * r18.y + r9.x; + r19.z = r19.z * r9.x + r18.y; + r19.z = sqrt(r19.z); + r19.w = -r20.x * r18.y + r20.x; + r18.y = r19.w * r20.x + r18.y; + r18.y = sqrt(r18.y); + r18.y = r18.y * r9.x; + r18.y = r20.x * r19.z + r18.y; + r18.y = 9.99999975e-05 + r18.y; + r18.y = 0.5 / r18.y; + r18.y = r19.x * r18.y; + r19.xzw = r24.xyz * r18.yyy; + r19.xzw = min(float3(2048,2048,2048), r19.xzw); + r20.yw = r20.xz * float2(0.96875,0.96875) + float2(0.015625,0.015625); + r18.y = t10.SampleLevel(s0_s, r20.yw, 0).x; + r18.y = r18.y * r5.w; + r18.y = r18.y * r1.x; + r18.y = r18.y / r4.w; + r24.xyz = r18.yyy * r16.xyz; + r24.xyz = r24.xyz / r17.xyz; + r19.xzw = r24.xyz + r19.xzw; + r19.xzw = cb5[r14.w+6].zzz * r19.xzw; + r19.xzw = max(float3(0,0,0), r19.xzw); + r19.xzw = min(float3(1000,1000,1000), r19.xzw); + r24.xyz = r20.xxx * r7.xyw; + r19.xzw = r19.xzw * r20.xxx + r24.xyz; + r20.xyw = cb5[r17.w+6].xyz * r18.xxx; + r18.xyz = r20.xyw * r18.zzz; + r18.xyz = r18.xyz * r15.www; + r18.xyz = r19.xzw * r18.xyz; + } else { + r18.xyz = float3(0,0,0); + } + } else { + if (r16.w == 0) { + r15.w = cb5[r13.w+6].y * 0.5 + 0.5; + r24.x = -abs(cb5[r13.w+6].x) + r15.w; + r24.y = cb5[r13.w+6].y + -r24.x; + r15.w = 1 + -abs(r24.x); + r15.w = r15.w + -abs(r24.y); + r15.w = max(0.00048828125, r15.w); + r16.w = cmp(cb5[r13.w+6].x >= 0); + r24.z = r16.w ? r15.w : -r15.w; + r15.w = dot(r24.xyz, r24.xyz); + r15.w = rsqrt(r15.w); + r19.xzw = r24.xyz * r15.www; + r20.xyw = cb5[r23.x+6].xyz + -r0.xyz; + r15.w = dot(r20.xyw, r20.xyw); + r16.w = rsqrt(r15.w); + r24.xyz = r20.xyw * r16.www; + r14.w = (int)cb5[r14.w+6].w; + r25.xyz = cb5[r13.w+6].zzz * r19.xzw; + r26.xyz = -r25.xyz * float3(0.5,0.5,0.5) + r20.xyw; + r25.xyz = r25.xyz * float3(0.5,0.5,0.5) + r20.xyw; + r16.w = (uint)cb5[r17.w+6].w; + r16.w = (int)r16.w & 1; + r17.w = cmp((int)r16.w == 0); + r17.w = ~(int)r17.w; + r21.w = cmp(0 < cb5[r13.w+6].z); + r17.w = r17.w ? r21.w : 0; + r21.w = dot(r26.xyz, r26.xyz); + r21.w = sqrt(r21.w); + r22.w = dot(r25.xyz, r25.xyz); + r22.w = sqrt(r22.w); + r23.z = dot(r26.xyz, r25.xyz); + r21.w = r21.w * r22.w + r23.z; + r21.w = r21.w * 0.5 + 1; + r21.w = 1 / r21.w; + r21.w = r17.w ? r21.w : 1; + r22.w = cmp(cb5[r23.w+6].w < 0); + if (r22.w != 0) { + r22.w = cb5[r23.x+6].w * cb5[r23.x+6].w; + r22.w = r22.w * r15.w; + r22.w = -r22.w * r22.w + 1; + r22.w = max(0, r22.w); + r15.w = 1 + r15.w; + r15.w = 1 / r15.w; + r23.z = r17.w ? 1.000000 : 0; + r24.w = r21.w + -r15.w; + r15.w = r23.z * r24.w + r15.w; + r22.w = r22.w * r22.w; + r15.w = r22.w * r15.w; + } else { + r25.xyz = cb5[r23.x+6].www * r20.xyw; + r22.w = dot(r25.xyz, r25.xyz); + r22.w = min(1, r22.w); + r22.w = 1 + -r22.w; + r22.w = log2(r22.w); + r22.w = cb5[r23.w+6].w * r22.w; + r22.w = exp2(r22.w); + r15.w = r22.w * r21.w; + } + r19.x = dot(r24.xyz, -r19.xzw); + r19.x = -cb5[r13.w+6].z + r19.x; + r19.x = saturate(cb5[r13.w+6].w * r19.x); + r19.x = r19.x * r19.x; + r19.x = r16.w ? 1 : r19.x; + r15.w = r19.x * r15.w; + r17.w = ~(int)r17.w; + r19.x = cmp((int)r14.w >= 0); + r17.w = r17.w ? r19.x : 0; + if (r17.w != 0) { + if (r16.w == 0) { + r17.w = (uint)r14.w << 2; + r19.xzw = cb7[r17.w+33].xyw * r0.yyy; + r19.xzw = cb7[r17.w+32].xyw * r0.xxx + r19.xzw; + r19.xzw = cb7[r17.w+34].xyw * r0.zzz + r19.xzw; + r19.xzw = cb7[r17.w+35].xyw + r19.xzw; + r19.xz = saturate(r19.xz / r19.ww); + r19.xz = r19.xz * cb7[r14.w+0].zw + cb7[r14.w+0].xy; + } else { + r17.w = (uint)r14.w << 2; + r25.x = dot(-r20.xyw, cb7[r17.w+32].xyz); + r25.y = dot(-r20.xyw, cb7[r17.w+33].xyz); + r25.z = dot(-r20.xyw, cb7[r17.w+34].xyz); + r17.w = cmp(abs(r25.x) < abs(r25.y)); + r17.w = r17.w ? 0.000000 : 0; + r19.w = dot(abs(r25.xy), icb[r17.w+0].xy); + r19.w = cmp(r19.w < abs(r25.z)); + r17.w = r19.w ? 2 : r17.w; + r19.w = dot(r25.xyz, icb[r17.w+0].xyz); + r19.w = cmp(r19.w < 0); + bitmask.w = ((~(-1 << 31)) << 1) & 0xffffffff; r17.w = (((uint)r17.w << 1) & bitmask.w) | ((uint)r19.w & ~bitmask.w); + r19.w = (uint)r17.w >> 1; + r19.w = dot(r25.xyz, icb[r19.w+0].xyz); + r20.x = 0.000244140625 / cb7[r14.w+0].w; + r20.x = 0.5 + -r20.x; + r20.y = (uint)r17.w; + r20.w = cmp((uint)r17.w < 2); + r20.w = r20.w ? 0.000000 : 0; + r20.w = dot(r25.xz, icb[r20.w+0].xz); + r20.w = icb[r17.w+4].z * r20.w; + r20.w = r20.w / abs(r19.w); + r20.y = r20.w * r20.x + r20.y; + r20.y = 0.5 + r20.y; + r26.x = saturate(0.166666672 * r20.y); + r20.y = -1 + (int)icb[r17.w+4].y; + r20.y = dot(r25.yz, icb[r20.y+0].xy); + r17.w = icb[r17.w+4].w * r20.y; + r17.w = r17.w / abs(r19.w); + r26.y = saturate(-r17.w * r20.x + 0.5); + r19.xz = r26.xy * cb7[r14.w+0].zw + cb7[r14.w+0].xy; + } + r14.w = t18.SampleLevel(s0_s, r19.xz, 0).x; + r15.w = r15.w * r14.w; + } + r14.w = cmp(0 < r15.w); + if (r14.w != 0) { + if (r16.w == 0) { + r14.w = (int)cb5[r23.y+6].x; + } else { + r19.xzw = -cb5[r23.x+6].xyz + r0.xyz; + r20.xyw = cmp(abs(r19.zww) < abs(r19.xxz)); + r15.w = r20.y ? r20.x : 0; + r19.xzw = cmp(float3(0,0,0) < r19.xzw); + r16.w = asuint(cb5[r13.w+6].w) >> 24; + if (8 == 0) r20.x = 0; else if (8+16 < 32) { r20.x = (uint)cb5[r13.w+6].w << (32-(8 + 16)); r20.x = (uint)r20.x >> (32-8); } else r20.x = (uint)cb5[r13.w+6].w >> 16; + if (8 == 0) r20.y = 0; else if (8+8 < 32) { r20.y = (uint)cb5[r13.w+6].w << (32-(8 + 8)); r20.y = (uint)r20.y >> (32-8); } else r20.y = (uint)cb5[r13.w+6].w >> 8; + r16.w = r19.x ? r16.w : r20.x; + r13.w = 255 & asint(cb5[r13.w+6].w); + r13.w = r19.z ? r20.y : r13.w; + if (8 == 0) r17.w = 0; else if (8+8 < 32) { r17.w = (uint)cb5[r23.y+6].x << (32-(8 + 8)); r17.w = (uint)r17.w >> (32-8); } else r17.w = (uint)cb5[r23.y+6].x >> 8; + r19.x = 255 & asint(cb5[r23.y+6].x); + r17.w = r19.w ? r17.w : r19.x; + r13.w = r20.w ? r13.w : r17.w; + r13.w = r15.w ? r16.w : r13.w; + r15.w = cmp((int)r13.w < 80); + r14.w = r15.w ? r13.w : -1; + } + r19.xzw = r24.xyz * cb6[r14.w+288].xxx + r0.xyz; + r13.w = cb6[r14.w+288].y * 5; + r19.xzw = r5.xyz * r13.www + r19.xzw; + r13.w = (uint)r14.w << 2; + r23.xyzw = cb6[r13.w+65].xyzw * r19.zzzz; + r23.xyzw = cb6[r13.w+64].xyzw * r19.xxxx + r23.xyzw; + r23.xyzw = cb6[r13.w+66].xyzw * r19.wwww + r23.xyzw; + r23.xyzw = cb6[r13.w+67].xyzw + r23.xyzw; + r19.xzw = r23.xyz / r23.www; + r20.xyw = cmp(float3(0,0,0) >= r19.xzw); + r23.xyz = cmp(r19.xzw >= float3(1,1,1)); + r24.xy = cb6[r14.w+344].zw + -cb6[r14.w+344].xy; + r19.xz = r19.xz * r24.xy + cb6[r14.w+344].xy; + r24.xy = r19.xz * cb6[400].zw + float2(0.5,0.5); + r24.xy = floor(r24.xy); + r19.xz = r19.xz * cb6[400].zw + -r24.xy; + r25.xyzw = float4(0.5,1,0.5,1) + r19.xxzz; + r26.xyzw = r25.xxzz * r25.xxzz; + r24.zw = float2(1,1) + -r19.xz; + r25.xz = min(float2(0,0), r19.xz); + r27.xy = max(float2(0,0), r19.xz); + r28.xy = float2(0.159999996,0.159999996) * r24.zw; + r27.xy = -r27.xy * r27.xy + r25.yw; + r27.xy = float2(1,1) + r27.xy; + r27.xy = float2(0.159999996,0.159999996) * r27.xy; + r26.xz = float2(0.0799999982,0.0799999982) * r26.xz; + r19.xz = r26.yw * float2(0.5,0.5) + -r19.xz; + r29.xy = float2(0.159999996,0.159999996) * r19.xz; + r19.xz = -r25.xz * r25.xz + r24.zw; + r19.xz = float2(1,1) + r19.xz; + r30.xy = float2(0.159999996,0.159999996) * r19.xz; + r19.xz = float2(0.159999996,0.159999996) * r25.yw; + r29.z = r30.x; + r29.w = r19.x; + r28.z = r27.x; + r28.w = r26.x; + r25.xyzw = r29.zwxz + r28.zwxz; + r30.z = r29.y; + r30.w = r19.z; + r27.z = r28.y; + r27.w = r26.z; + r26.xyz = r30.zyw + r27.zyw; + r28.xyz = r28.xzw / r25.zwy; + r28.xyz = float3(-2.5,-0.5,1.5) + r28.xyz; + r28.xyz = cb6[400].xxx * r28.xyz; + r27.xyz = r27.zyw / r26.xyz; + r27.xyz = float3(-2.5,-0.5,1.5) + r27.xyz; + r27.xyw = cb6[400].yyy * r27.xyz; + r29.xyzw = r26.xxxy * r25.zwyz; + r28.w = r27.x; + r30.xyzw = r24.xyxy * cb6[400].xyxy + r28.xwyw; + r13.w = t6.SampleCmpLevelZero(s3_s, r30.xy, r19.w).x; + r15.w = t6.SampleCmpLevelZero(s3_s, r30.zw, r19.w).x; + r15.w = r29.y * r15.w; + r13.w = r29.x * r13.w + r15.w; + r19.xz = r24.xy * cb6[400].xy + r28.zw; + r15.w = t6.SampleCmpLevelZero(s3_s, r19.xz, r19.w).x; + r13.w = r29.z * r15.w + r13.w; + r27.z = r28.x; + r30.xyzw = r24.xyxy * cb6[400].xyxy + r27.zyzw; + r15.w = t6.SampleCmpLevelZero(s3_s, r30.xy, r19.w).x; + r13.w = r29.w * r15.w + r13.w; + r29.xyzw = r26.yyzz * r25.xyzw; + r27.xz = r28.yz; + r28.xyzw = r24.xyxy * cb6[400].xyxy + r27.xyzy; + r15.w = t6.SampleCmpLevelZero(s3_s, r28.xy, r19.w).x; + r13.w = r29.x * r15.w + r13.w; + r15.w = t6.SampleCmpLevelZero(s3_s, r28.zw, r19.w).x; + r13.w = r29.y * r15.w + r13.w; + r15.w = t6.SampleCmpLevelZero(s3_s, r30.zw, r19.w).x; + r13.w = r29.z * r15.w + r13.w; + r15.w = cmp((int)r14.w >= 0); + r20.xyw = (int3)r20.xyw | (int3)r23.xyz; + r16.w = (int)r20.y | (int)r20.x; + r16.w = (int)r20.w | (int)r16.w; + r17.w = (int)r19.w & 0x7fffffff; + r17.w = cmp(0x7f800000 < (uint)r17.w); + r16.w = (int)r16.w | (int)r17.w; + r23.xyzw = r24.xyxy * cb6[400].xyxy + r27.xwzw; + r17.w = t6.SampleCmpLevelZero(s3_s, r23.xy, r19.w).x; + r13.w = r29.w * r17.w + r13.w; + r17.w = r26.z * r25.y; + r19.x = t6.SampleCmpLevelZero(s3_s, r23.zw, r19.w).x; + r13.w = r17.w * r19.x + r13.w; + r13.w = -1 + r13.w; + r13.w = cb6[r14.w+288].w * r13.w + 1; + r13.w = r16.w ? 1 : r13.w; + r13.w = r15.w ? r13.w : 1; + } else { + r13.w = 1; + } + } else { + r13.w = 1; + } + r10.w = r13.w * r10.w; + r18.xyz = float3(0,0,0); + } + r22.xyz = r22.xyz + r18.xyz; + r12.w = r14.z; + } + r6.w = r10.w; + r21.xyz = r22.xyz + r21.xyz; + r7.z = (int)r7.z + 1; + } + r0.x = dot(r13.xyz, float3(0.212672904,0.715152204,0.0721750036)); + r1.xyz = r13.xyz + -r0.xxx; + r0.xzw = cb0[184].www * r1.xyz + r0.xxx; + + // Reduce clustered light contribution on glass + if (GLASS_TRANSPARENCY > 0.5f) { + r21.xyz *= 0.5f; + } + + r1.xyz = r21.xyz * r6.www + r15.xyz; + r0.xzw = r0.xzw * cb0[184].xyz + r1.xyz; + + // Apply glass brightness reduction + if (GLASS_TRANSPARENCY > 0.5f) { + r0.xzw *= 0.65f; + } + r1.x = r0.y * cb0[156].w + cb0[157].w; + r1.y = r2.x * cb0[154].w + -cb0[153].w; + r1.xy = max(float2(0.00999999978,0), r1.xy); + r1.z = -1.44269502 * r1.x; + r1.z = exp2(r1.z); + r1.z = 1 + -r1.z; + r1.x = r1.z / r1.x; + r1.z = r0.y * cb0[156].w + cb0[158].w; + r1.z = 1.44269502 * r1.z; + r1.z = exp2(r1.z); + r1.x = r1.x * r1.z; + r1.x = -r1.y * r1.x; + r1.xyz = cb0[155].xyz * r1.xxx; + r1.xyz = float3(1.44269502,1.44269502,1.44269502) * r1.xyz; + r1.xyz = exp2(r1.xyz); + r1.w = dot(-r4.xyz, cb0[154].xyz); + r2.y = cb0[155].w * cb0[155].w + 1; + r2.z = dot(r1.ww, cb0[155].ww); + r2.y = r2.y + -r2.z; + r2.z = cmp(0 < cb0[163].z); + if (r2.z != 0) { + r11.w = 7 & asint(cb0[108].w); + r5.xyz = mad((int3)r11.xyw, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f)); + r2.z = mad((int)r5.y, (int)r5.z, (int)r5.x); + r2.w = mad((int)r5.z, (int)r2.z, (int)r5.y); + r3.w = mad((int)r2.z, (int)r2.w, (int)r5.z); + r5.x = mad((int)r2.w, (int)r3.w, (int)r2.z); + r2.z = dot(-r4.xyz, -r3.xyz); + r3.x = -cb0[44].y + r0.y; + r3.y = cmp(5.96046448e-08 < r2.z); + r2.z = 1 / r2.z; + r2.z = r3.y ? r2.z : 0; + r2.z = cb0[163].w * r2.z; + r3.y = 1 / r2.x; + r3.z = r3.y * r2.z; + r4.x = r3.z * r3.x + cb0[44].y; + r3.x = -r3.z * r3.x + r3.x; + r3.z = cb0[159].z * r3.x; + r3.x = cb0[162].x * r3.x; + r3.xz = max(float2(-127,-127), r3.xz); + r4.y = -cb0[159].x + r4.x; + r4.y = cb0[159].z * r4.y; + r4.y = max(-127, r4.y); + r4.y = exp2(-r4.y); + r4.y = cb0[159].y * r4.y; + r4.z = cmp(5.96046448e-08 < abs(r3.z)); + r4.w = exp2(-r3.z); + r4.w = 1 + -r4.w; + r4.w = r4.w / r3.z; + r3.z = -r3.z * 0.240226507 + 0.693147182; + r3.z = r4.z ? r4.w : r3.z; + r4.x = -cb0[162].z + r4.x; + r4.x = cb0[162].x * r4.x; + r4.x = max(-127, r4.x); + r4.x = exp2(-r4.x); + r4.x = cb0[162].y * r4.x; + r4.z = cmp(5.96046448e-08 < abs(r3.x)); + r4.w = exp2(-r3.x); + r4.w = 1 + -r4.w; + r4.w = r4.w / r3.x; + r3.x = -r3.x * 0.240226507 + 0.693147182; + r3.x = r4.z ? r4.w : r3.x; + r3.x = r4.x * r3.x; + r3.x = r4.y * r3.z + r3.x; + r2.z = -r2.z * r3.y + 1; + r2.z = r2.z * r2.x; + r2.z = r3.x * r2.z; + r2.z = exp2(-r2.z); + r2.z = min(1, r2.z); + r2.z = max(cb0[161].w, r2.z); + r3.xy = saturate(r2.xx * cb0[160].yw + cb0[160].xz); + r2.z = r3.x + r2.z; + r2.z = r2.z + r3.y; + r2.z = min(1, r2.z); + r5.y = mad((int)r3.w, (int)r5.x, (int)r2.w); + r3.xy = (uint2)r5.xy >> int2(16,16); + r3.xy = (uint2)r3.xy; + r3.xy = r3.xy * float2(3.05180438e-05,3.05180438e-05) + float2(-1,-1); + r3.xy = r3.xy * cb0[167].ww + r14.xy; + r3.xy = cb0[165].xy * r3.xy; + r2.w = r11.z * cb0[164].x + cb0[164].y; + r2.w = log2(r2.w); + r2.w = cb0[164].z * r2.w; + r3.z = r2.w / cb0[163].z; + r3.xyzw = t17.SampleLevel(s0_s, r3.xyz, 0).xyzw; + r2.w = -cb0[166].z + r11.z; + r2.w = saturate(1000000 * r2.w); + r3.xyzw = float4(-0,-0,-0,-1) + r3.xyzw; + r3.xyzw = r2.wwww * r3.xyzw + float4(0,0,0,1); + r2.w = 1 + -r2.z; + r4.xyz = cb0[161].xyz * r2.www; + r3.xyz = r4.xyz * r3.www + r3.xyz; + r2.z = r3.w * r2.z; + } else { + r0.y = -cb0[44].y + r0.y; + r2.w = cb0[159].z * r0.y; + r2.w = max(-127, r2.w); + r0.y = cb0[162].x * r0.y; + r0.y = max(-127, r0.y); + r3.w = -cb0[159].x + cb0[44].y; + r3.w = cb0[159].z * r3.w; + r3.w = max(-127, r3.w); + r3.w = exp2(-r3.w); + r3.w = cb0[159].y * r3.w; + r4.x = cmp(5.96046448e-08 < abs(r2.w)); + r4.y = exp2(-r2.w); + r4.y = 1 + -r4.y; + r4.y = r4.y / r2.w; + r2.w = -r2.w * 0.240226507 + 0.693147182; + r2.w = r4.x ? r4.y : r2.w; + r4.x = -cb0[162].z + cb0[44].y; + r4.x = cb0[162].x * r4.x; + r4.x = max(-127, r4.x); + r4.x = exp2(-r4.x); + r4.x = cb0[162].y * r4.x; + r4.y = cmp(5.96046448e-08 < abs(r0.y)); + r4.z = exp2(-r0.y); + r4.z = 1 + -r4.z; + r4.z = r4.z / r0.y; + r0.y = -r0.y * 0.240226507 + 0.693147182; + r0.y = r4.y ? r4.z : r0.y; + r0.y = r4.x * r0.y; + r0.y = r3.w * r2.w + r0.y; + r0.y = r0.y * r2.x; + r0.y = exp2(-r0.y); + r0.y = min(1, r0.y); + r0.y = max(cb0[161].w, r0.y); + r2.xw = saturate(r2.xx * cb0[160].yw + cb0[160].xz); + r0.y = r2.x + r0.y; + r0.y = r0.y + r2.w; + r2.z = min(1, r0.y); + r0.y = 1 + -r2.z; + r3.xyz = cb0[161].xyz * r0.yyy; + } + r4.xyz = r2.zzz * r1.xyz; + r0.y = r1.w * r1.w + 1; + r0.y = 0.0596831031 * r0.y; + r5.xyz = cb0[156].xyz * r0.yyy + cb0[158].xyz; + r0.y = -cb0[155].w * cb0[155].w + 1; + r1.w = 12.566371 * r2.y; + r2.x = sqrt(r2.y); + r1.w = r2.x * r1.w; + r1.w = max(0.00100000005, r1.w); + r0.y = r0.y / r1.w; + r2.xyw = saturate(cb0[157].xyz * r0.yyy + r5.xyz); + r2.xyw = float3(255,255,255) * r2.xyw; + r1.xyz = float3(1,1,1) + -r1.xyz; + r1.xyz = r2.xyw * r1.xyz; + r1.xyz = r1.xyz * r2.zzz + r3.xyz; + + // Reduce fog/atmospheric contribution + if (GLASS_TRANSPARENCY > 0.5f) { + // Boost transmittance to reduce fog density on glass + float3 boostedTrans = lerp(r4.xyz, float3(1,1,1), 0.5f); + float3 reducedInscatter = r1.xyz * 0.35f; + r8.xyz = r0.xzw * boostedTrans + reducedInscatter; + } else { + // Vanilla behavior + r8.xyz = r0.xzw * r4.xyz + r1.xyz; + } + r0.xy = float2(0.5,-0.5) * r10.xy; + r0.xy = sqrt(abs(r0.xy)); + r0.xy = sqrt(r0.xy); + r10.z = -r10.y; + r0.zw = cmp(float2(0,0) < r10.xz); + r1.xy = cmp(r10.xz < float2(0,0)); + r0.zw = (int2)-r0.zw + (int2)r1.xy; + r0.zw = (int2)r0.zw; + r0.xy = r0.xy * r0.zw; + r0.xy = r0.xy * float2(0.5,0.5) + float2(0.5,0.5); + r0.z = (uint)v7.x << 4; + r0.z = max(cb1[r0.z+4].y, cb1[r0.z+4].z); + r0.z = -0.100000024 + r0.z; + r0.w = cmp(0 < r0.z); + r0.z = cmp(r0.z < 0); + r0.z = (int)-r0.w + (int)r0.z; + r0.z = (int)r0.z; + r0.z = saturate(r0.z); + r1.xy = float2(0.5,0.5) + -r0.xy; + r0.xy = r0.zz * r1.xy + r0.xy; + o1.xy = min(float2(1,1), r0.xy); + r0.x = dot(r8.xyz, float3(0.212672904,0.715152204,0.0721750036)); + r0.x = r0.x * r8.w; + r0.x = max(r0.x, r8.w); + r0.x = saturate(10 * r0.x); + r0.x = cmp(0.5 < r0.x); + o1.z = r0.x ? 1.000000 : 0; + + // Modifed Glass Final Output + if (GLASS_TRANSPARENCY > 0.5f) { + float3 glassColor = r8.xyz; + float glassLuma = dot(glassColor, float3(0.2126f, 0.7152f, 0.0722f)); + float maxBrightness = 2.0f; + if (glassLuma > 0.5f) { + float compression = 0.5f + (maxBrightness - 0.5f) * (1.0f - exp(-(glassLuma - 0.5f) / (maxBrightness - 0.5f))); + float scale = compression / max(glassLuma, 0.001f); + glassColor *= scale; + } + + o0.xyz = glassColor; + o0.w = r8.w; + } else { + // Vanilla output + o0.xyzw = r8.xyzw; + } + o1.w = 0; + return; +} \ No newline at end of file diff --git a/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl b/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl index c4f83f600..1225476fe 100644 --- a/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl +++ b/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl @@ -372,13 +372,13 @@ void main( r0.y = -1 + r0.y; r0.y = cb0[175].z * r0.y + 1; - if (SHADOW_HARDENING >= 1.f) { - r0.y = 1.0 + (r0.y - 1.0) * 2.0; - - // Soften cloud shadow transitions for diffused look - //r0.y = smoothstep(0.0, 1.0, r0.y); - //r0.y = lerp(r0.y, 1.0, 0.25); - } + //if (SHADOW_HARDENING >= 1.f) { + // r0.y = 1.0 + (r0.y - 1.0) * 2.0; + // + // // Soften cloud shadow transitions for diffused look + // //r0.y = smoothstep(0.0, 1.0, r0.y); + // //r0.y = lerp(r0.y, 1.0, 0.25); + //} r0.x = r0.x * r0.y; } diff --git a/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl b/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl index 28cfa687e..674518ae9 100644 --- a/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl +++ b/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl @@ -380,13 +380,15 @@ void main(uint3 vThreadIDInGroup : SV_GroupThreadID, uint3 vThreadGroupID : SV_G r0.y = saturate(r1.w * cb1[0].z + r0.y); r0.y = min(r0.y, r2.y); r0.y = -1 + r0.y; - r5.yw = r1.xy * cb1[3].zw + float2(-0.5,-0.5); - r5.yw = abs(r5.yw) * float2(12,12) + float2(-4.80000019,-4.80000019); - r5.yw = max(float2(0,0), r5.yw); - r1.w = dot(r5.yw, r5.yw); - r1.w = 1 + -r1.w; - r1.w = max(0, r1.w); - r0.y = r1.w * r0.y; + + // Removed screen edge fade for contact shadows + // r5.yw = r1.xy * cb1[3].zw + float2(-0.5,-0.5); + // r5.yw = abs(r5.yw) * float2(12,12) + float2(-4.80000019,-4.80000019); + // r5.yw = max(float2(0,0), r5.yw); + // r1.w = dot(r5.yw, r5.yw); + // r1.w = 1 + -r1.w; + // r1.w = max(0, r1.w); + // r0.y = r1.w * r0.y; if (SHADOW_HARDENING>= 1.f) { r0.y = r0.y * 4.0; diff --git a/src/games/endfield/shared.h b/src/games/endfield/shared.h index 471a406e3..8e301166c 100644 --- a/src/games/endfield/shared.h +++ b/src/games/endfield/shared.h @@ -79,6 +79,8 @@ struct ShaderInjectData { float reno_drt_tone_map_method; float status_text_opacity; float ping_text_opacity; + float ui_disable_ping; + float ui_disable_uid; float custom_random; float custom_grain_strength; float vignette_strength; @@ -87,9 +89,14 @@ struct ShaderInjectData { float bloom_strength; float godrays_intensity; float perchannelblowout; + float fog_modification; float shadow_hardening; float chromatic_aberration_strength; - float fog_modification; + float disable_game_ao; + float ssr_gi_intensity; + float metallic_ibl_intensity; + float cubemap_ambient_link; + float glass_transparency; }; #ifndef __cplusplus @@ -149,6 +156,7 @@ cbuffer shader_injection : register(b13) { #define SHADOW_HARDENING shader_injection.shadow_hardening #define CHROMATIC_ABERRATION_STRENGTH shader_injection.chromatic_aberration_strength #define FOG_MODIFICATION shader_injection.fog_modification +#define GLASS_TRANSPARENCY shader_injection.glass_transparency #include "../../shaders/renodx.hlsl" diff --git a/src/games/endfield/ssr/0xE92EE541.cs_5_0.hlsl b/src/games/endfield/ssr/0xE92EE541.cs_5_0.hlsl new file mode 100644 index 000000000..92c81bd91 --- /dev/null +++ b/src/games/endfield/ssr/0xE92EE541.cs_5_0.hlsl @@ -0,0 +1,465 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 3 19:30:39 2026 +#include "../shared.h" + +RWTexture2D u0 : register(u0); +RWTexture2D u1 : register(u1); +RWTexture2D u2 : register(u2); + +Texture2D t5 : register(t5); + +Texture3D t4 : register(t4); + +Texture2D t3 : register(t3); + +Texture2D t2 : register(t2); + +Texture2D t1 : register(t1); + +Texture2D t0 : register(t0); + +SamplerComparisonState s3_s : register(s3); + +SamplerState s2_s : register(s2); + +SamplerState s1_s : register(s1); + +SamplerState s0_s : register(s0); + +cbuffer cb2 : register(b2) +{ + float4 cb2[5]; +} + +cbuffer cb1 : register(b1) +{ + float4 cb1[6]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[234]; +} + +// 3Dmigoto declarations +#define cmp - + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) +{ + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xy = (int2)vThreadID.xy; + r0.xy = float2(0.5,0.5) + r0.xy; + r0.zw = cb1[0].zw * r0.xy; + r1.z = t0.SampleLevel(s0_s, r0.zw, 0).x; + r2.x = cb0[84].z * r1.z + cb0[84].w; + r1.xy = r0.zw * float2(2,2) + float2(-1,-1); + r3.xyzw = cb0[13].xyzw * r1.yyyy; + r3.xyzw = cb0[12].xyzw * r1.xxxx + r3.xyzw; + r3.xyzw = cb0[14].xyzw * r1.zzzz + r3.xyzw; + r3.xyzw = cb0[15].xyzw + r3.xyzw; + r3.xyz = r3.xyz / r3.www; + r2.yzw = t1.SampleLevel(s0_s, r0.zw, 0).xyz; + r2.yz = r2.yz * float2(2,2) + float2(-1,-1); + r4.x = dot(float2(1,1), abs(r2.yz)); + r4.y = 1 + -r4.x; + r4.w = cmp(r4.y < 0); + r5.xy = cmp(r2.yz >= float2(0,0)); + r5.zw = float2(1,1) + -abs(r2.zy); + r5.xy = r5.xy ? float2(1,1) : float2(-1,-1); + r5.xy = r5.zw * r5.xy; + r4.xz = r4.ww ? r5.xy : r2.yz; + r2.y = dot(r4.xyz, r4.xyz); + r2.y = rsqrt(r2.y); + r4.xzw = r4.xyz * r2.yyy; + r5.xy = t5.SampleLevel(s1_s, r0.zw, 0).xy; + r6.xyz = cb0[5].xyz * -r3.yyy; + r6.xyz = cb0[4].xyz * r3.xxx + r6.xyz; + r6.xyz = cb0[6].xyz * r3.zzz + r6.xyz; + r6.xyz = cb0[7].xyz + r6.xyz; + r5.zw = cmp(float2(0.5,0.5) < cb0[226].xy); + if (r5.z != 0) { + r2.z = abs(r4.x) + abs(r4.z); + r2.z = r2.z + abs(r4.w); + r2.z = 1 / r2.z; + r7.xyz = abs(r4.xzw) * r2.zzz; + r8.xyzw = float4(0,1,0.707105994,0) * r7.xxyy; + r7.xyw = r8.xxy + r8.zwz; + r7.xyz = r7.zzz * float3(1,0,0) + r7.xyw; + r8.xyz = cb0[229].xxx * r6.xyz; + r2.z = t4.SampleLevel(s2_s, r8.xyz, 0).x; + r2.z = r2.z * 2 + -1; + r7.xyz = r7.xyz * r2.zzz; + r2.z = abs(r4.z); + r2.z = -0.699999988 + r2.z; + r2.z = saturate(4 * r2.z); + r5.z = r2.z * -2 + 3; + r2.z = r2.z * r2.z; + r2.z = r5.z * r2.z; + r5.z = cb0[229].y + -cb0[229].z; + r2.z = r2.z * r5.z + cb0[229].z; + r7.xyz = r7.xyz * r2.zzz; + } else { + r7.xyz = float3(0,0,0); + } + r2.y = -r4.y * r2.y + -0.200000003; + if (r5.w != 0) { + r8.xyz = cb0[233].zzz * r4.xzw; + r9.xyz = cb0[225].yyy * float3(0,1,0); + r8.xyz = r8.xyz * cb0[225].xxx + r9.xyz; + r2.z = max(0, -r4.z); + r2.z = min(0.899999976, r2.z); + r2.z = 1 + -r2.z; + r4.y = saturate(-10 * r2.y); + r5.z = r4.y * -2 + 3; + r4.y = r4.y * r4.y; + r4.y = r5.z * r4.y; + r4.y = max(0.100000001, r4.y); + r4.y = min(1, r4.y); + r2.z = r4.y * r2.z; + r8.xyz = r8.xyz * r2.zzz + r6.xyz; + r7.xyz = r8.xyz + r7.xyz; + r8.xyz = cb2[1].xyz * r7.yyy; + r7.xyw = cb2[0].xyz * r7.xxx + r8.xyz; + r7.xyz = cb2[2].xyz * r7.zzz + r7.xyw; + r7.xyz = cb2[3].xyz + r7.xyz; + r8.x = r7.x * 0.5 + cb2[4].x; + r2.z = r7.y * 0.5 + 0.5; + r8.z = cb2[4].y + -r2.z; + r5.zw = float2(0.5,1) + r8.xz; + r2.z = max(0.00048828125, r7.z); + r2.z = t3.SampleCmpLevelZero(s3_s, r5.zw, r2.z).x; + } else { + r2.z = 1; + } + r5.zw = -cb0[44].xz + r6.xz; + r4.y = saturate(r4.z); + r6.x = -cb0[230].w + 1; + r4.y = r4.y * r6.x + cb0[230].w; + r6.x = r4.y * r2.z; + r6.y = cb0[222].w * 0.0500000119; + r5.z = max(abs(r5.z), abs(r5.w)); + r5.z = -cb0[222].w * 0.699999988 + r5.z; + r5.w = 1 / r6.y; + r5.z = saturate(r5.z * r5.w); + r5.w = r5.z * -2 + 3; + r5.z = r5.z * r5.z; + r5.z = r5.w * r5.z; + r2.z = -r4.y * r2.z + 1; + r2.z = r5.z * r2.z + r6.x; + r2.z = 1 + -r2.z; + r4.y = r5.x * r2.z; + r5.z = 1 + -r2.w; + r5.w = saturate(r5.z * cb0[222].z + cb0[222].y); + r5.w = r5.w * -0.299999952 + 0.899999976; + r6.x = sqrt(r5.z); + r5.w = r6.x + r5.w; + r5.w = -0.600000024 + r5.w; + r5.w = min(1, r5.w); + r5.w = max(r5.w, r5.z); + r5.w = min(0.99000001, r5.w); + r6.x = saturate(-cb0[222].x + 2); + r6.x = cb0[222].x * r6.x; + r2.y = saturate(3.33333325 * r2.y); + r6.y = r2.y * -2 + 3; + r2.y = r2.y * r2.y; + r2.y = -r6.y * r2.y + 1; + r2.y = r6.x * r2.y; + r2.z = -r5.x * r2.z + 1; + r2.y = r2.y * r2.z; + r2.z = r5.w + -r5.z; + r2.y = r2.y * r2.z + r5.z; + r2.y = 1 + -r2.y; + r2.z = min(1, r2.y); + r5.x = min(r5.x, r5.y); + r2.y = r2.y + -r2.z; + r2.y = r5.x * r2.y + r2.z; + r2.z = r2.w + -r2.y; + r2.y = r4.y * r2.z + r2.y; + r2.z = r2.y * r2.y; + r2.z = r2.z * r2.z; + r5.xyz = cb0[1].xyz * r4.zzz; + r5.xyz = cb0[0].xyz * r4.xxx + r5.xyz; + r5.xyz = cb0[2].xyz * r4.www + r5.xyz; + r6.xy = float2(-0.0700000003,0.0199999996) / r2.xx; + r4.y = 1.44269502 * r6.x; + r4.y = exp2(r4.y); + r4.y = r4.y + r4.y; + r4.y = max(0.125, r4.y); + r4.y = min(1, r4.y); + r4.y = cb1[3].x * r4.y; + r4.y = ceil(r4.y); + r4.y = max(32, r4.y); + r2.w = cmp(r2.w >= 0.300000012); + r5.w = 0.125 * r4.y; + r2.w = r2.w ? r5.w : r4.y; + r3.w = -r3.y; + r3.y = dot(r3.xzw, r3.xzw); + r3.y = rsqrt(r3.y); + r3.xyz = r3.xwz * r3.yyy; + r3.w = dot(r3.xyz, r5.xyz); + r4.y = r3.w + r3.w; + r3.xyz = r5.xyz * -r4.yyy + r3.xyz; + r5.xyzw = cb0[9].xyzw * r3.yyyy; + r5.xyzw = cb0[8].xyzw * r3.xxxx + r5.xyzw; + r5.xyzw = cb0[10].xyzw * r3.zzzz + r5.xyzw; + r1.w = 1; + r5.xyzw = r5.xyzw * float4(1,-1,1,1) + r1.xyzw; + r3.xyz = r5.xyz / r5.www; + r3.xyz = r3.xyz + -r1.xyz; + r1.w = dot(r3.xy, r3.xy); + r1.w = sqrt(r1.w); + r4.y = 0.5 * r1.w; + r5.xy = r1.xy * r4.yy + r3.xy; + r5.xy = -r1.ww * float2(0.5,0.5) + abs(r5.xy); + r5.xy = max(float2(0,0), r5.xy); + r5.xy = r5.xy / abs(r3.xy); + r5.xy = float2(1,1) + -r5.xy; + r1.w = min(r5.x, r5.y); + r1.w = r1.w / r4.y; + r3.xyz = r3.xyz * r1.www; + r1.w = abs(r3.z) / r2.w; + r1.w = max(9.99999975e-05, r1.w); + r4.y = 1 / r2.w; + r3.xyz = float3(0.5,0.5,1) * r3.xyz; + r3.xyz = r3.xyz * r4.yyy; + r5.xy = cb1[0].xy * r3.xy; + r4.y = max(abs(r5.x), abs(r5.y)); + r5.x = cmp(r4.y < 1); + r4.y = 0.00100000005 + r4.y; + r4.y = 1 / r4.y; + r5.y = trunc(cb1[1].x); + r0.xy = r5.yy * float2(2.08299994,4.8670001) + r0.xy; + r0.x = dot(r0.xy, float2(0.0671105608,0.00583714992)); + r0.x = frac(r0.x); + r0.x = 52.9829178 * r0.x; + r0.x = frac(r0.x); + r0.x = r5.x ? r4.y : r0.x; + r5.xyz = r1.xyz * float3(0.5,0.5,1) + float3(0.5,0.5,0); + r5.xyz = r3.xyz * r0.xxx + r5.xyz; + r0.x = t0.SampleLevel(s0_s, r5.xy, 0).x; + r0.x = r5.z + -r0.x; + r6.xzw = float3(0,0,0); + r7.xyz = float3(0,0,0); + r8.xyz = r5.xyz; + r0.y = 0; + r4.y = 0; + r5.w = r0.x; + while (true) { + r7.w = cmp(r4.y < r2.w); + if (r7.w != 0) { + r9.xyzw = r3.xyxy * float4(1,1,2,2) + r8.xyxy; + r10.xyzw = r3.xyxy * float4(3,3,4,4) + r8.xyxy; + r11.xyzw = r3.zzzz * float4(1,2,3,4) + r8.zzzz; + r12.x = t0.SampleLevel(s0_s, r9.xy, 0).x; + r12.y = t0.SampleLevel(s0_s, r9.zw, 0).x; + r12.z = t0.SampleLevel(s0_s, r10.xy, 0).x; + r12.w = t0.SampleLevel(s0_s, r10.zw, 0).x; + r9.xyzw = -r12.xyzw + r11.xyzw; + r10.xyzw = r9.xyzw + r1.wwww; + r10.xyzw = cmp(abs(r10.xyzw) < r1.wwww); + r11.xy = (int2)r10.zw | (int2)r10.xy; + r7.w = (int)r11.y | (int)r11.x; + if (r7.w != 0) { + r11.xy = r10.zz ? r9.zy : r9.wz; + r9.yz = r10.yy ? r9.yx : r11.xy; + r7.w = r10.x ? r9.x : r9.y; + r8.w = r10.x ? r5.w : r9.z; + r9.x = r10.z ? 2 : 3; + r9.x = r10.y ? 1 : r9.x; + r9.x = r10.x ? 0 : r9.x; + r7.w = r8.w + -r7.w; + r7.w = saturate(r8.w / r7.w); + r7.w = r9.x + r7.w; + r9.xyz = r3.xyz * r7.www + r8.xyz; + r0.y = -1; + r7.xyz = r9.xyz; + break; + } + r8.xyz = r3.xyz * float3(4,4,4) + r8.xyz; + r4.y = 4 + r4.y; + r6.xzw = r8.xyz; + r0.y = 0; + r5.w = r9.w; + continue; + } else { + r7.xyz = r6.xzw; + r0.y = 0; + break; + } + r0.y = 0; + } + if (r0.y != 0) { + r0.x = max(r7.x, r7.y); + r0.x = 1 + -r0.x; + r0.y = min(r7.x, r7.y); + r0.x = min(r0.x, r0.y); + r3.xy = t2.SampleLevel(s0_s, r7.xy, 0).xy; + r5.xy = abs(r3.xy) * float2(2,2) + float2(-1,-1); + r5.xy = r5.xy * r5.xy; + r5.xy = r5.xy * r5.xy; + r3.xy = float2(-0.5,-0.5) + r3.xy; + r5.zw = cmp(float2(0,0) < r3.xy); + r3.xy = cmp(r3.xy < float2(0,0)); + r3.xy = (int2)-r5.zw + (int2)r3.xy; + r3.xy = (int2)r3.xy; + r3.xy = r5.xy * r3.xy; + r0.y = -cb1[2].z + 1; + r5.xy = r3.xy * r0.yy; + r1.w = cmp(cb1[1].y < r0.x); + r0.x = saturate(r0.x / cb1[1].y); + r0.x = r1.w ? 1 : r0.x; + r1.w = saturate(abs(r3.w) * cb1[1].z + cb1[1].w); + r1.w = 1 + -r1.w; + r0.x = r1.w * r0.x; + r1.w = cmp(r2.y < 0.100000001); + r2.x = 1 / r2.x; + r2.x = 100 + -r2.x; + r2.x = saturate(0.100000001 * r2.x); + r1.w = r1.w ? 1 : r2.x; + r0.x = r1.w * r0.x; + r0.zw = -r3.xy * r0.yy + r7.xy; + } else { + r5.xy = float2(0,0); + r0.x = 0; + } + r2.xy = t2.SampleLevel(s0_s, r0.zw, 0).xy; + r3.xy = abs(r2.xy) * float2(2,2) + float2(-1,-1); + r3.xy = r3.xy * r3.xy; + r0.y = 2 / r2.z; + r0.y = -1 + r0.y; + r0.y = 1 / r0.y; + r0.y = -2.03504682 * r0.y; + r0.y = exp2(r0.y); + r1.w = 1 + -r0.y; + r1.w = sqrt(r1.w); + r2.w = r0.y * -0.0187292993 + 0.0742610022; + r2.w = r2.w * r0.y + -0.212114394; + r0.y = r2.w * r0.y + 1.57072878; + r0.y = r0.y * r1.w; + r8.xyzw = cb0[25].xyzw * r1.yyyy; + r8.xyzw = cb0[24].xyzw * r1.xxxx + r8.xyzw; + r1.xyzw = cb0[26].xyzw * r1.zzzz + r8.xyzw; + r1.xyzw = cb0[27].xyzw + r1.xyzw; + r1.xyzw = r1.xyzw / r1.wwww; + r3.zw = r7.xy * float2(2,2) + float2(-1,-1); + r8.xyzw = cb0[25].xyzw * r3.wwww; + r8.xyzw = cb0[24].xyzw * r3.zzzz + r8.xyzw; + r7.xyzw = cb0[26].xyzw * r7.zzzz + r8.xyzw; + r7.xyzw = cb0[27].xyzw + r7.xyzw; + r6.xzw = cb0[44].xyz + -r1.xyz; + r2.w = dot(r6.xzw, r6.xzw); + r3.z = rsqrt(r2.w); + r8.xyz = r6.xzw * r3.zzz; + r2.w = sqrt(r2.w); + r3.w = cmp(abs(r4.w) < 0.999000013); + r9.z = r3.w ? 0 : 1; + r9.y = r3.w ? 1.000000 : 0; + r9.x = 0; + r10.xyz = r9.xyz * r4.xzw; + r9.xyz = r9.zxy * r4.zwx + -r10.xyz; + r3.w = dot(r9.xyz, r9.xyz); + r3.w = rsqrt(r3.w); + r9.xyz = r9.xyz * r3.www; + r7.xyzw = r7.xyzw / r7.wwww; + r1.xyzw = r7.xyzw + -r1.xyzw; + r1.x = dot(r1.xyzw, r1.xyzw); + r1.x = sqrt(r1.x); + r1.yzw = r9.zxy * r8.xyz; + r1.yzw = r9.yzx * r8.yzx + -r1.yzw; + sincos(r0.y, r7.x, r10.x); + r7.yzw = -r8.xyz * r2.www + cb0[44].xyz; + r10.yzw = r9.xyz * r4.xzw; + r4.xyz = r4.wxz * r9.yzx + -r10.yzw; + r9.xyz = r4.xyz * r8.xyz; + r4.xyz = r4.zxy * r8.yzx + -r9.xyz; + r0.y = r1.x + r2.w; + r9.xyz = r8.xyz * r0.yyy; + r10.yzw = cb0[21].xyw * -r9.yyy; + r9.xyw = cb0[20].xyw * -r9.xxx + r10.yzw; + r9.xyz = cb0[22].xyw * -r9.zzz + r9.xyw; + r9.xyz = cb0[23].xyw + r9.xyz; + r5.zw = r9.xy / r9.zz; + r5.zw = r5.zw * float2(0.5,0.5) + float2(0.5,0.5); + r5.zw = cb1[0].xy * r5.zw; + r0.y = dot(r1.zwy, -r8.xyz); + r9.xyz = r1.zwy * r0.yyy; + r10.yzw = -r6.xzw * r3.zzz + -r9.xyz; + r9.xyz = r10.xxx * r10.yzw + r9.xyz; + r10.yzw = r1.yzw * -r8.yzx; + r1.yzw = r1.wyz * -r8.zxy + -r10.yzw; + r1.yzw = r1.yzw * r7.xxx + r9.xyz; + r1.yzw = r1.yzw * r1.xxx + r7.yzw; + r1.yzw = -cb0[44].xyz + r1.yzw; + r9.xyz = cb0[21].xyw * r1.zzz; + r9.xyz = cb0[20].xyw * r1.yyy + r9.xyz; + r1.yzw = cb0[22].xyw * r1.www + r9.xyz; + r1.yzw = cb0[23].xyw + r1.yzw; + r0.y = dot(r4.yzx, -r8.xyz); + r9.xyz = r4.yzx * r0.yyy; + r6.xzw = -r6.xzw * r3.zzz + -r9.xyz; + r6.xzw = r10.xxx * r6.xzw + r9.xyz; + r9.xyz = r4.xyz * -r8.yzx; + r4.xyz = r4.zxy * -r8.zxy + -r9.xyz; + r4.xyz = r4.xyz * r7.xxx + r6.xzw; + r4.xyz = r4.xyz * r1.xxx + r7.yzw; + r4.xyz = -cb0[44].xyz + r4.xyz; + r6.xzw = cb0[21].xyw * r4.yyy; + r4.xyw = cb0[20].xyw * r4.xxx + r6.xzw; + r4.xyz = cb0[22].xyw * r4.zzz + r4.xyw; + r4.xyz = cb0[23].xyw + r4.xyz; + + // Write UV coords to u0 + u0[vThreadID.xy] = r0.zwzz; + + r0.yz = r3.xy * r3.xy; + r2.xy = float2(-0.5,-0.5) + r2.xy; + r3.xy = cmp(float2(0,0) < r2.xy); + r2.xy = cmp(r2.xy < float2(0,0)); + r2.xy = (int2)-r3.xy + (int2)r2.xy; + r2.xy = (int2)r2.xy; + r0.yz = r0.yz * r2.xy + r5.xy; + r0.yz = cb0[82].xy * r0.yz; + r0.y = dot(r0.yz, r0.yz); + r0.y = sqrt(r0.y); + r0.z = log2(r6.y); + r0.z = saturate(r0.z * 0.693147182 + 0.00999999978); + r0.y = -r0.y * r0.z; + r0.y = 1.44269502 * r0.y; + r3.xzw = exp2(r0.yyy); + r0.y = cmp(9.99999975e-05 >= r2.z); + r0.zw = r1.yz / r1.ww; + r0.zw = r0.zw * float2(0.5,0.5) + float2(0.5,0.5); + r0.zw = -r0.zw * cb1[0].xy + r5.zw; + r0.z = dot(r0.zw, r0.zw); + r1.xy = r4.xy / r4.zz; + r1.xy = r1.xy * float2(0.5,0.5) + float2(0.5,0.5); + r1.xy = -r1.xy * cb1[0].xy + r5.zw; + r0.w = dot(r1.xy, r1.xy); + r0.z = r0.z + r0.w; + r0.z = sqrt(r0.z); + r0.z = 0.5 * r0.z; + r0.z = log2(r0.z); + r0.z = max(0, r0.z); + r0.z = min(cb1[5].y, r0.z); + r0.z = r0.z / cb1[5].y; + r3.y = r0.y ? 0 : r0.z; + + // Write blend weights to u1 + u1[vThreadID.xy] = r3.xyzw; + + // Metallic IBL intensity control + // r0.x is the vanilla SSR blend factor (0 = full IBL, 1 = full SSR/no IBL) + // To reduce IBL intensity, we increase this value + float ssr_blend = r0.x; + + if (shader_injection.metallic_ibl_intensity == 1.f) { + // set minimum blend of 0.75 + ssr_blend = max(ssr_blend, 0.75); + } + // else: metallic_ibl_intensity == 0.f = Vanilla (no change) + + u2[vThreadID.xy] = ssr_blend.xxxx; +} \ No newline at end of file diff --git a/src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl b/src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl new file mode 100644 index 000000000..c8e819337 --- /dev/null +++ b/src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl @@ -0,0 +1,148 @@ +// Latency bar icon vertex shader - selective hiding based on vertex positions +// Original shader: 0x9BDC181F + +#include "../shared.h" + +cbuffer cb5 : register(b5) +{ + float4 cb5[45]; +} + +cbuffer cb4 : register(b4) +{ + float4 cb4[1]; +} + +cbuffer cb3 : register(b3) +{ + float4 cb3[11]; +} + +cbuffer cb2 : register(b2) +{ + float4 cb2[21]; +} + +cbuffer cb1 : register(b1) +{ + float4 cb1[4]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[7]; +} + +// Latency bar icon vertex positions (12 vertices = 3 bars) +// These are the same coordinates from Vulkan implementation +static const float2 latency_bar_verts[12] = { + float2(-1167.0001220703, -653.4990234375), + float2(-1167.0001220703, -644.4990234375), + float2(-1162.0001220703, -644.4990234375), + float2(-1162.0001220703, -653.4990234375), + float2(-1160.5, -653.4990234375), + float2(-1160.5, -640.4990234375), + float2(-1155.5, -640.4990234375), + float2(-1155.5, -653.4990234375), + float2(-1154.0, -653.4990234375), + float2(-1154.0, -636.4990234375), + float2(-1149.0, -636.4990234375), + float2(-1149.0, -653.4990234375) +}; + +// Check if this vertex is part of the latency bar icon +bool IsLatencyBarVertex(float2 pos) +{ + [unroll] + for (int i = 0; i < 12; i++) + { + float2 diff = abs(latency_bar_verts[i] - pos); + if (dot(diff, diff) < 0.001) + { + return true; + } + } + return false; +} + +void main( + float4 v0 : POSITION0, + float4 v1 : COLOR0, + float2 v2 : TEXCOORD0, + out float4 o0 : SV_Position0, + out float4 o1 : TEXCOORD0, + out float4 o2 : TEXCOORD1, + out float4 o3 : TEXCOORD2, + out float4 o4 : TEXCOORD3, + out float4 o5 : TEXCOORD4) +{ + float4 r0,r1,r2,r3; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xy = -cb4[0].yz * float2(2,2) + float2(1,1); + r1.xyz = cb1[1].xyz * v0.yyy; + r1.xyz = cb1[0].xyz * v0.xxx + r1.xyz; + r1.xyz = cb1[2].xyz * v0.zzz + r1.xyz; + r1.xyz = cb1[3].xyz + r1.xyz; + r1.xyz = -cb5[44].xyz * cb4[0].xxx + r1.xyz; + r1.w = 1; + r0.z = 0 < cb4[0].x ? 1.0 : 0.0; + r2.x = r0.z != 0 ? cb5[32].x : cb2[17].x; + r2.y = r0.z != 0 ? cb5[33].x : cb2[18].x; + r2.z = r0.z != 0 ? cb5[34].x : cb2[19].x; + r2.w = r0.z != 0 ? cb5[35].x : cb2[20].x; + r2.x = dot(r2.xyzw, r1.xyzw); + r3.x = r0.z != 0 ? cb5[32].y : cb2[17].y; + r3.y = r0.z != 0 ? cb5[33].y : cb2[18].y; + r3.z = r0.z != 0 ? cb5[34].y : cb2[19].y; + r3.w = r0.z != 0 ? cb5[35].y : cb2[20].y; + r2.y = dot(r3.xyzw, r1.xyzw); + r0.xy = r2.xy * r0.xy; + r2.xy = r0.zz != 0 ? r0.xy : r2.xy; + r3.x = r0.z != 0 ? cb5[32].z : cb2[17].z; + r3.y = r0.z != 0 ? cb5[33].z : cb2[18].z; + r3.z = r0.z != 0 ? cb5[34].z : cb2[19].z; + r3.w = r0.z != 0 ? cb5[35].z : cb2[20].z; + r2.z = dot(r3.xyzw, r1.xyzw); + r3.x = r0.z != 0 ? cb5[32].w : cb2[17].w; + r3.y = r0.z != 0 ? cb5[33].w : cb2[18].w; + r3.z = r0.z != 0 ? cb5[34].w : cb2[19].w; + r3.w = r0.z != 0 ? cb5[35].w : cb2[20].w; + r2.w = dot(r3.xyzw, r1.xyzw); + o0.xyzw = r2.xyzw; + o5.zw = r2.zw; + r0.x = cb3[9].w != 0.000000 ? 1.0 : 0.0; + r1.xyzw = r0.xxxx != 0 ? cb3[10].xxxy : float4(1,1,1,1); + r3.xyzw = cb3[2].xyzw * v1.xyzw; + o1.xyzw = r3.xyzw * r1.xyzw; + o2.xy = v2.xy * cb3[5].xy + cb3[5].zw; + o2.zw = float2(0, 0); + o3.xyzw = v0.xyzw; + r1.xz = r0.zz != 0 ? cb5[8].yx : cb2[5].yx; + r1.yw = r0.zz != 0 ? cb5[9].yx : cb2[6].yx; + r0.z = dot(r1.zw, cb0[6].xy); + r0.w = dot(r1.xy, cb0[6].xy); + r0.xy = r2.ww / abs(r0.zw); + r1.xz = float2(0.5,0.5) * r2.xw; + r0.z = cb0[5].x * r2.y; + r1.w = 0.5 * r0.z; + o5.xy = r1.xw + r1.zz; + r0.xy = cb3[9].xy * float2(0.25,0.25) + abs(r0.xy); + o4.zw = float2(0.25,0.25) / r0.xy; + r0.xyzw = max(cb3[4].xyzw, float4(-2e+10,-2e+10,-2e+10,-2e+10)); + r0.xyzw = min(float4(2e+10,2e+10,2e+10,2e+10), r0.xyzw); + r0.xy = v0.xy * float2(2,2) + -r0.xy; + o4.xy = r0.xy + -r0.zw; + + if (PING_TEXT_OPACITY < 0.5) + { + if (IsLatencyBarVertex(v0.xy)) + { + + o0 = float4(0, 0, 0, 0); + } + } + + return; +} From 145be957155f63ec91251c0307f9d52a320dc429 Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Wed, 4 Feb 2026 06:30:53 +0000 Subject: [PATCH 11/19] feat(endfield): Added second glass transparency shader --- .../endfield/glass/0x754218B1.ps_5_0.hlsl | 1880 +++++++++++++++++ 1 file changed, 1880 insertions(+) create mode 100644 src/games/endfield/glass/0x754218B1.ps_5_0.hlsl diff --git a/src/games/endfield/glass/0x754218B1.ps_5_0.hlsl b/src/games/endfield/glass/0x754218B1.ps_5_0.hlsl new file mode 100644 index 000000000..2e151b40b --- /dev/null +++ b/src/games/endfield/glass/0x754218B1.ps_5_0.hlsl @@ -0,0 +1,1880 @@ +// ---- Created with 3Dmigoto v1.4.1 on Wed Feb 4 06:20:19 2026 +#include "../common.hlsl" + +Texture2D t23 : register(t23); + +Texture3D t22 : register(t22); + +Texture3D t21 : register(t21); + +Texture3D t20 : register(t20); + +Texture3D t19 : register(t19); + +Texture3D t18 : register(t18); + +Texture3D t17 : register(t17); + +Texture3D t16 : register(t16); + +Texture2D t15 : register(t15); + +Texture2D t14 : register(t14); + +Texture2D t13 : register(t13); + +Texture2D t12 : register(t12); + +Texture2D t11 : register(t11); + +Texture2D t10 : register(t10); + +Texture2D t9 : register(t9); + +Texture2D t8 : register(t8); + +Texture2D t7 : register(t7); + +Texture2D t6 : register(t6); + +Texture2D t5 : register(t5); + +Texture2DArray t4 : register(t4); + +Texture2D t3 : register(t3); + +Texture2D t2 : register(t2); + +Texture2D t1 : register(t1); + +struct t0_t { + float val[1]; +}; +StructuredBuffer t0 : register(t0); + +SamplerState s9_s : register(s9); + +SamplerState s8_s : register(s8); + +SamplerState s7_s : register(s7); + +SamplerState s6_s : register(s6); + +SamplerState s5_s : register(s5); + +SamplerComparisonState s4_s : register(s4); + +SamplerState s3_s : register(s3); + +SamplerState s2_s : register(s2); + +SamplerState s1_s : register(s1); + +SamplerState s0_s : register(s0); + +cbuffer cb7 : register(b7) +{ + float4 cb7[160]; +} + +cbuffer cb6 : register(b6) +{ + float4 cb6[715]; +} + +cbuffer cb5 : register(b5) +{ + float4 cb5[2054]; +} + +cbuffer cb4 : register(b4) +{ + float4 cb4[3]; +} + +cbuffer cb3 : register(b3) +{ + float4 cb3[259]; +} + +cbuffer cb2 : register(b2) +{ + float4 cb2[24]; +} + +cbuffer cb1 : register(b1) +{ + float4 cb1[4085]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[244]; +} + + + + +// 3Dmigoto declarations +#define cmp - + + +void main( + float4 v0 : SV_Position0, + float2 v1 : TEXCOORD0, + float2 w1 : TEXCOORD1, + float4 v2 : TEXCOORD2, + float4 v3 : TEXCOORD3, + float4 v4 : TEXCOORD4, + float4 v5 : TEXCOORD5, + float4 v6 : TEXCOORD6, + nointerpolation uint v7 : TEXCOORD7, + uint v8 : SV_IsFrontFace0, + out float4 o0 : SV_Target0, + out float4 o1 : SV_Target1) +{ + const float4 icb[] = { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} }; + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35,r36; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xy = cb0[82].zw * v0.xy; + r0.zw = r0.xy * float2(2,2) + float2(-1,-1); + r1.xyzw = cb0[25].xyzw * -r0.wwww; + r1.xyzw = cb0[24].xyzw * r0.zzzz + r1.xyzw; + r1.xyzw = cb0[26].xyzw * v0.zzzz + r1.xyzw; + r1.xyzw = cb0[27].xyzw + r1.xyzw; + r1.xyz = r1.xyz / r1.www; + r0.z = cb0[1].z * r1.y; + r0.z = cb0[0].z * r1.x + r0.z; + r0.z = cb0[2].z * r1.z + r0.z; + r0.z = cb0[3].z + r0.z; + r2.z = abs(r0.z); + r0.z = cmp(0 < v3.w); + r0.z = r0.z ? 1 : -1; + r0.w = cmp(0.000000 == cb0[86].w); + r3.xyz = cb0[44].xyz + -r1.xyz; + r4.x = cb0[0].z; + r4.y = cb0[1].z; + r4.z = cb0[2].z; + r3.xyz = r0.www ? r3.xyz : r4.xyz; + r0.w = dot(r3.xyz, r3.xyz); + r2.w = max(9.99999994e-09, r0.w); + r2.w = rsqrt(r2.w); + r5.xyz = r3.xyz * r2.www; + r0.w = r2.w * r0.w; + r6.xy = w1.xy + -v1.xy; + r6.zw = cb2[3].xx * r6.xy + v1.xy; + r6.zw = r6.zw * cb2[12].xy + cb2[12].zw; + r6.xy = cb2[2].ww * r6.xy + v1.xy; + r6.xy = r6.xy * cb2[11].xy + cb2[11].zw; + r7.xyzw = t5.SampleBias(s5_s, r6.xy, cb0[108].x).xyzw; + r3.w = cb2[3].y + cb0[108].x; + r8.xyz = t6.SampleBias(s6_s, r6.zw, r3.w).xyw; + r8.x = r8.z * r8.x; + r6.xy = r8.xy * float2(2,2) + float2(-1,-1); + r8.xy = cb2[0].xx * r6.xy; + r9.xyz = t7.SampleBias(s7_s, r6.zw, cb0[108].x).xyz; + r7.xyzw = cb2[8].xyzw * r7.xyzw; + r7.xyz = saturate(cb2[4].zzz * r7.xyz); + r10.xyz = cb2[8].xyz + -r7.xyz; + r7.xyz = cb2[4].xxx * r10.xyz + r7.xyz; + r3.w = r7.w * v4.x + -r7.w; + r10.w = cb2[23].x * r3.w + r7.w; + r3.w = cb2[0].w + -cb2[0].z; + r11.w = r9.y * r3.w + cb2[0].z; + r3.w = saturate(cb2[3].w + -1); + r4.w = cb2[4].y + -r9.x; + r3.w = r3.w * r4.w + r9.x; + r9.xyw = v3.yzx * v2.zxy; + r9.xyw = v2.yzx * v3.zxy + -r9.xyw; + r9.xyw = r9.xyw * r0.zzz; + r8.yzw = r9.xyw * r8.yyy; + r8.xyz = v3.xyz * r8.xxx + r8.yzw; + r0.z = dot(r6.xy, r6.xy); + r0.z = min(1, r0.z); + r0.z = 1 + -r0.z; + r0.z = sqrt(r0.z); + r0.z = max(1.00000002e-16, r0.z); + r4.w = cmp(0 < cb2[1].w); + r4.w = r4.w ? -1 : 1; + r4.w = v8.x ? 1 : r4.w; + r0.z = r4.w * r0.z; + r6.xyz = v2.xyz * r0.zzz + r8.xyz; + r0.z = dot(r6.xyz, r6.xyz); + r0.z = rsqrt(r0.z); + r6.xyz = r6.xyz * r0.zzz; + r0.z = dot(r6.xyz, r5.xyz); + r4.w = dot(-r5.xyz, r6.xyz); + r5.w = cb2[19].z * cb2[19].z; + r7.w = -r4.w * r4.w + 1; + r5.w = -r5.w * r7.w + 1; + r7.w = sqrt(r5.w); + r7.w = cb2[19].z * r4.w + r7.w; + r5.w = cmp(r5.w >= 0); + r8.xyz = r7.www * r6.xyz; + r8.xyz = cb2[19].zzz * -r5.xyz + -r8.xyz; + r8.xyz = r5.www ? r8.xyz : 0; + r5.w = v0.z * r0.z; + r5.w = max(0.5, r5.w); + r5.w = cb2[19].w / r5.w; + r5.w = -cb2[19].w + r5.w; + r5.w = cb2[20].x * r5.w + cb2[19].w; + r8.xyz = r8.xyz * r5.www; + r8.yw = cb0[1].xy * r8.yy; + r8.xy = cb0[0].xy * r8.xx + r8.yw; + r8.xy = cb0[2].xy * r8.zz + r8.xy; + r8.zw = v1.xy * cb2[22].xy + cb2[22].zw; + r8.zw = t9.SampleBias(s8_s, r8.zw, cb0[108].x).xy; + r8.zw = r8.zw * float2(2,2) + float2(-1,-1); + r8.zw = r8.zw * cb2[19].yy + -r8.xy; + r8.xy = cb2[19].xx * r8.zw + r8.xy; + r8.zw = v0.xy * cb0[82].zw + r8.xy; + r8.xy = float2(0.25,0.25) * r8.xy; + r9.xy = v0.xy * cb0[82].zw + r8.xy; + r5.w = t1.SampleBias(s0_s, r8.zw, cb0[108].x).x; + r7.w = t1.SampleBias(s0_s, r9.xy, cb0[108].x).x; + r7.w = cb0[84].z * r7.w + cb0[84].w; + r7.w = 1 / r7.w; + r7.w = cmp(r7.w >= r2.z); + r7.w = r7.w ? 1.000000 : 0; + r8.xy = r7.ww * r8.xy + r0.xy; + r5.w = cb0[84].z * r5.w + cb0[84].w; + r5.w = 1 / r5.w; + r5.w = cmp(r5.w >= r2.z); + r5.w = r5.w ? 1.000000 : 0; + r8.zw = r8.zw + -r8.xy; + r8.xy = r5.ww * r8.zw + r8.xy; + r8.xyz = t8.SampleBias(s9_s, r8.xy, cb0[108].x).xyz; + r5.w = max(9.99999994e-09, v5.z); + r9.xy = v5.xy / r5.ww; + r5.w = max(9.99999994e-09, v6.z); + r12.xy = v6.xy / r5.ww; + r12.xy = -r12.xy + r9.xy; + r5.w = cb2[0].y * 0.0799999982; + r9.xyw = -r7.xyz * r3.www + r7.xyz; + r5.w = -r5.w * r3.w + r5.w; + r7.xyz = r7.xyz * r3.www + r5.www; + r13.xyzw = r11.wwww * float4(-1,-0.0274999999,-0.572000027,0.0219999999) + float4(1,0.0425000004,1.03999996,-0.0399999991); + r3.w = r13.x * r13.x; + r0.z = max(0, r0.z); + r5.w = -9.27999973 * r0.z; + r5.w = exp2(r5.w); + r3.w = min(r5.w, r3.w); + r3.w = r3.w * r13.x + r13.y; + r13.xy = r3.ww * float2(-1.03999996,1.03999996) + r13.zw; + r3.w = cmp(1.000000 == cb0[113].y); + r14.xyzw = cb0[241].xyzw * r1.yyyy; + r14.xyzw = cb0[240].xyzw * r1.xxxx + r14.xyzw; + r14.xyzw = cb0[242].xyzw * r1.zzzz + r14.xyzw; + r14.xyzw = cb0[243].xyzw + r14.xyzw; + r5.w = 1 / r14.w; + r14.xyz = float3(1,-1,1) * r14.xyz; + r14.xyz = r14.xyz * r5.www; + r13.zw = saturate(r14.xy * float2(0.5,0.5) + float2(0.5,0.5)); + r13.zw = cb0[82].xy * r13.zw; + r15.xy = (uint2)r13.zw; + r5.w = cb0[84].z * r14.z + cb0[84].w; + r15.z = 1 / r5.w; + r2.xy = (uint2)v0.xy; + r14.xyz = r3.www ? r15.xyz : r2.xyz; + r2.xyz = r6.xyz * float3(0.25,0.25,0.25) + r1.xyz; + r15.xyz = cb0[6].xzy * -cb0[212].www + cb0[210].xzy; + r15.xyz = -r15.xyz + r2.xzy; + r3.w = max(abs(r15.x), abs(r15.y)); + r3.w = -464 + r3.w; + r3.w = saturate(0.03125 * r3.w); + r5.w = -208 + abs(r15.z); + r5.w = saturate(0.03125 * r5.w); + r3.w = max(r5.w, r3.w); + r5.w = cmp(0.000000 != cb0[210].w); + r7.w = cmp(r3.w < 1); + r5.w = r5.w ? r7.w : 0; + if (r5.w != 0) { + r15.xyz = cb0[6].xzy * -cb0[212].yyy + cb0[210].xzy; + r15.xyz = -r15.xyz + r2.xzy; + r5.w = max(abs(r15.x), abs(r15.y)); + r5.w = -29 + r5.w; + r5.w = saturate(0.5 * r5.w); + r7.w = -13 + abs(r15.z); + r7.w = saturate(0.5 * r7.w); + r5.w = max(r7.w, r5.w); + r7.w = cmp(r5.w < 1); + if (r7.w != 0) { + r15.xyz = r2.xyz * float3(2,2,2) + float3(0.5,0.5,0.5); + r16.xyz = cb0[211].xyz * r15.xyz; + r16.xyz = floor(r16.xyz); + r15.xyz = r15.xyz * cb0[211].xyz + -r16.xyz; + r16.xyz = t16.SampleLevel(s2_s, r15.xyz, 0).xyz; + r7.w = 1 + -r5.w; + r8.w = cb0[211].y * 0.5; + r12.w = -cb0[211].y * 0.5 + 1; + r8.w = max(r15.y, r8.w); + r8.w = min(r8.w, r12.w); + r15.w = 0.333333343 * r8.w; + r17.xyzw = t17.SampleLevel(s1_s, r15.xwz, 0).xyzw; + r17.xyz = r17.xyz * float3(4,4,4) + float3(-2,-2,-2); + r18.xyz = r17.xyz * r16.xxx; + r17.xyz = float3(0,0.333333343,0) + r15.xwz; + r17.xyz = t17.SampleLevel(s1_s, r17.xyz, 0).xyz; + r17.xyz = r17.xyz * float3(4,4,4) + float3(-2,-2,-2); + r19.xyz = r17.xyz * r16.yyy; + r15.xyz = float3(0,0.666666687,0) + r15.xwz; + r15.xyz = t17.SampleLevel(s1_s, r15.xyz, 0).xyz; + r15.xyz = r15.xyz * float3(4,4,4) + float3(-2,-2,-2); + r15.xyz = r15.xyz * r16.zzz; + r8.w = r17.w * r7.w + r3.w; + r15.w = r16.z; + r15.xyzw = r15.xyzw * r7.wwww; + r19.w = r16.y; + r17.xyzw = r19.xyzw * r7.wwww; + r18.w = r16.x; + r16.xyzw = r18.xyzw * r7.wwww; + } else { + r15.xyzw = float4(0,0,0,0); + r17.xyzw = float4(0,0,0,0); + r16.xyzw = float4(0,0,0,0); + r8.w = r3.w; + } + r18.xyz = cb0[6].xzy * -cb0[212].zzz + cb0[210].xzy; + r18.xyz = -r18.xyz + r2.xzy; + r7.w = max(abs(r18.x), abs(r18.y)); + r7.w = -116 + r7.w; + r7.w = saturate(0.125 * r7.w); + r12.w = -52 + abs(r18.z); + r12.w = saturate(0.125 * r12.w); + r7.w = max(r12.w, r7.w); + r12.w = cmp(r7.w < 1); + if (r12.w != 0) { + r18.xyz = r2.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5); + r19.xyz = cb0[211].xyz * r18.xyz; + r19.xyz = floor(r19.xyz); + r18.xyz = r18.xyz * cb0[211].xyz + -r19.xyz; + r19.xyz = t18.SampleLevel(s2_s, r18.xyz, 0).xyz; + r12.w = 1 + -r7.w; + r5.w = r12.w * r5.w; + r12.w = cb0[211].y * 0.5; + r13.z = -cb0[211].y * 0.5 + 1; + r12.w = max(r18.y, r12.w); + r12.w = min(r12.w, r13.z); + r18.w = 0.333333343 * r12.w; + r20.xyzw = t19.SampleLevel(s1_s, r18.xwz, 0).xyzw; + r20.xyz = r20.xyz * float3(4,4,4) + float3(-2,-2,-2); + r21.xyz = r20.xyz * r19.xxx; + r20.xyz = float3(0,0.333333343,0) + r18.xwz; + r20.xyz = t19.SampleLevel(s1_s, r20.xyz, 0).xyz; + r20.xyz = r20.xyz * float3(4,4,4) + float3(-2,-2,-2); + r22.xyz = r20.xyz * r19.yyy; + r18.xyz = float3(0,0.666666687,0) + r18.xwz; + r18.xyz = t19.SampleLevel(s1_s, r18.xyz, 0).xyz; + r18.xyz = r18.xyz * float3(4,4,4) + float3(-2,-2,-2); + r18.xyz = r18.xyz * r19.zzz; + r8.w = r20.w * r5.w + r8.w; + r18.w = r19.z; + r15.xyzw = r18.xyzw * r5.wwww + r15.xyzw; + r22.w = r19.y; + r17.xyzw = r22.xyzw * r5.wwww + r17.xyzw; + r21.w = r19.x; + r16.xyzw = r21.xyzw * r5.wwww + r16.xyzw; + } + r5.w = cmp(0 < r7.w); + if (r5.w != 0) { + r2.xyz = r2.xyz * float3(0.125,0.125,0.125) + float3(0.5,0.5,0.5); + r18.xyz = cb0[211].xyz * r2.xyz; + r19.xyz = cb0[211].xyz * float3(0.5,0.5,0.5); + r18.xyz = floor(r18.xyz); + r2.xyz = r2.xyz * cb0[211].xyz + -r18.xyz; + r18.xyz = -cb0[211].xyz * float3(0.5,0.5,0.5) + float3(1,1,1); + r2.xyz = max(r2.xyz, r19.xyz); + r20.xyz = min(r2.xyz, r18.xyz); + r21.xyw = t20.SampleLevel(s2_s, r20.xyz, 0).yzx; + r2.x = 1 + -r3.w; + r2.x = r7.w * r2.x; + r2.y = max(r20.y, r19.y); + r2.y = min(r2.y, r18.y); + r20.w = 0.333333343 * r2.y; + r18.xyzw = t21.SampleLevel(s1_s, r20.xwz, 0).xyzw; + r19.xyz = float3(0,0.666666687,0) + r20.xwz; + r19.xyz = t21.SampleLevel(s1_s, r19.xyz, 0).xyz; + r19.xyz = r19.xyz * float3(4,4,4) + float3(-2,-2,-2); + r19.xyz = r19.xyz * r21.yyy; + r19.w = r21.y; + r15.xyzw = r19.xyzw * r2.xxxx + r15.xyzw; + r19.xyz = float3(0,0.333333343,0) + r20.xwz; + r19.xyz = t21.SampleLevel(s1_s, r19.xyz, 0).xyz; + r19.xyz = r19.xyz * float3(4,4,4) + float3(-2,-2,-2); + r19.xyz = r19.xyz * r21.xxx; + r19.w = r21.x; + r17.xyzw = r19.xyzw * r2.xxxx + r17.xyzw; + r18.xyz = r18.xyz * float3(4,4,4) + float3(-2,-2,-2); + r21.xyz = r18.xyz * r21.www; + r16.xyzw = r21.xyzw * r2.xxxx + r16.xyzw; + r8.w = r18.w * r2.x + r8.w; + } + r2.x = saturate(r8.w * 2 + -1); + r18.x = r2.x + -r3.w; + r2.x = r2.x + r3.w; + r18.y = 0.5 * r2.x; + } else { + r15.xyzw = float4(0,0,0,0); + r17.xyzw = float4(0,0,0,0); + r16.xyzw = float4(0,0,0,0); + r18.xy = float2(0,1); + } + r19.xyzw = cb0[213].xyzw * r18.yyyx; + r19.y = r19.w * 0.5 + r19.y; + r2.xy = cb0[213].wy * r18.yx; + r19.w = r2.y * 0.375 + r2.x; + r16.xyzw = r19.xyzw + r16.xyzw; + r19.xyzw = cb0[214].xyzw * r18.yyyx; + r19.y = r19.w * 0.5 + r19.y; + r2.xy = cb0[214].wy * r18.yx; + r19.w = r2.y * 0.375 + r2.x; + r17.xyzw = r19.xyzw + r17.xyzw; + r19.xyzw = cb0[215].xyzw * r18.yyyx; + r19.y = r19.w * 0.5 + r19.y; + r2.xy = cb0[215].wy * r18.yx; + r19.w = r2.y * 0.375 + r2.x; + r15.xyzw = r19.xyzw + r15.xyzw; + r2.x = dot(r16.xyz, r6.xyz); + r2.x = r2.x + r16.w; + r2.x = max(0, r2.x); + r3.w = dot(r17.xyz, r6.xyz); + r3.w = r3.w + r17.w; + r2.y = max(0, r3.w); + r3.w = dot(r15.xyz, r6.xyz); + r3.w = r3.w + r15.w; + r2.z = max(0, r3.w); + r3.w = r4.w + r4.w; + r15.xyz = r6.xyz * -r3.www + -r5.xyz; + r3.w = cb0[113].x + -1; + r4.w = max(0.00100000005, r11.w); + r4.w = log2(r4.w); + r4.w = -r4.w * 1.20000005 + 1; + r3.w = -r4.w + r3.w; + r13.zw = (uint2)r14.xy; + r16.xy = cb3[0].ww * r13.zw; + r16.xy = floor(r16.xy); + r4.w = -cb3[2].y + r14.z; + r4.w = floor(r4.w); + r5.w = cb3[1].x + -1; + r7.w = max(0, r4.w); + r5.w = min(r7.w, r5.w); + r4.w = cmp(r5.w >= r4.w); + r7.w = r16.y * cb3[0].x + r16.x; + r7.w = (int)r7.w; + r7.w = (int)r7.w + asint(cb0[110].z); + r7.w = t0[r7.w].val[0/4]; + r5.w = (int)r5.w; + r5.w = (int)r5.w + asint(cb0[110].w); + r5.w = t0[r5.w].val[0/4]; + r5.w = (int)r5.w & (int)r7.w; + r4.w = r4.w ? r5.w : 0; + r16.xyz = cb0[111].xxx * r2.xyz; + r5.w = dot(r16.xyz, float3(0.212672904,0.715152204,0.0721750036)); + r1.w = 1; + r6.w = 1; + r16.xyz = float3(0,0,0); + r7.w = 1; + r8.w = r4.w; + r12.w = 0; + while (true) { + r15.w = cmp(0.00999999978 < r7.w); + r16.w = cmp((int)r8.w != 0); + r16.w = r15.w ? r16.w : 0; + if (r16.w != 0) { + r16.w = firstbitlow((uint)r8.w); + r17.x = 1 << (int)r16.w; + r8.w = (int)r8.w ^ (int)r17.x; + r16.w = (uint)r16.w << 3; + r17.x = dot(cb3[r16.w+6].xyzw, r1.xyzw); + r17.y = dot(cb3[r16.w+7].xyzw, r1.xyzw); + r17.z = dot(cb3[r16.w+8].xyzw, r1.xyzw); + r18.xyz = cmp(cb3[r16.w+5].xyz >= abs(r17.xyz)); + r17.w = r18.y ? r18.x : 0; + r17.w = r18.z ? r17.w : 0; + if (r17.w != 0) { + r17.w = cb3[r16.w+5].x * 0.100000001; + r18.xyz = float3(0.100000001,0.100000001,0.100000001) * abs(r17.xyz); + r18.xy = r18.xy * r18.xy; + r19.xyz = cb3[r16.w+5].xyz + -abs(r17.xyz); + r19.xyz = cb3[r16.w+9].xyz * r19.xyz; + r18.w = cmp(1.000000 == cb3[r16.w+10].x); + if (r18.w != 0) { + r20.x = dot(cb3[r16.w+6].xyz, r15.xyz); + r20.y = dot(cb3[r16.w+7].xyz, r15.xyz); + r20.z = dot(cb3[r16.w+8].xyz, r15.xyz); + r21.xyz = cb3[r16.w+5].xyz + -r17.xyz; + r21.xyz = r21.xyz / r20.xyz; + r22.xyz = -cb3[r16.w+5].xyz + -r17.xyz; + r22.xyz = r22.xyz / r20.xyz; + r23.xyz = cmp(float3(0,0,0) < r20.xyz); + r21.xyz = r23.xyz ? r21.xyz : r22.xyz; + r18.w = min(r21.x, r21.y); + r18.w = min(r18.w, r21.z); + r17.xyz = r20.xyz * r18.www + r17.xyz; + } else { + r17.xyz = r15.xyz; + } + r18.w = dot(r17.xyz, r17.xyz); + r18.w = rsqrt(r18.w); + r17.xyz = r18.www * r17.xyz; + r20.xyz = cmp(float3(0,0,0) < r17.xyz); + r21.xyz = cmp(r17.xyz < float3(0,0,0)); + r20.xyz = (int3)-r20.xyz + (int3)r21.xyz; + r20.xyz = (int3)r20.xyz; + r18.w = dot(r17.xyz, r20.xyz); + r17.xyz = r17.xyz / r18.www; + r17.z = cmp(r17.z < 0); + r20.zw = float2(1,1) + -abs(r17.yx); + r20.xy = r20.xy * r20.zw; + r17.xy = r17.zz ? r20.xy : r17.xy; + r17.z = dot(cb3[r16.w+4].xyzw, r6.xyzw); + r17.z = max(0, r17.z); + r17.z = max(9.99999975e-05, r17.z); + r18.w = min(r19.y, r19.z); + r18.w = min(r19.x, r18.w); + r18.x = r18.x + r18.y; + r18.x = r18.z * r18.z + r18.x; + r17.w = r17.w * r17.w + -r18.x; + r17.w = cb3[r16.w+9].x * r17.w; + r17.w = cb3[r16.w+9].x * r17.w; + r18.x = -cb3[r16.w+10].y + 1; + r17.w = r18.x * r17.w; + r17.w = 100 * r17.w; + r17.w = saturate(r18.w * cb3[r16.w+10].y + r17.w); + r18.x = cb3[r16.w+10].w * r17.w; + r17.xy = r17.xy * float2(0.5,0.5) + float2(0.5,0.5); + r19.xy = r17.xy * cb3[1].ww + cb3[2].ww; + r19.z = cb3[r16.w+5].w; + r18.yzw = t4.SampleLevel(s3_s, r19.xyz, r3.w).xyz; + r18.yzw = cb3[r16.w+9].www * r18.yzw; + r17.x = r5.w / r17.z; + r17.x = min(1, abs(r17.x)); + r17.x = r17.x * 2 + r5.w; + r17.y = 2 + r17.z; + r17.x = r17.x / r17.y; + r17.x = -1 + r17.x; + r17.x = r17.x * cb0[112].w + 1; + r17.xyz = r18.yzw * r17.xxx; + r17.xyz = r17.xyz * r18.xxx; + r16.xyz = r17.xyz * r7.www + r16.xyz; + r16.w = -r17.w * cb3[r16.w+10].w + 1; + r7.w = r16.w * r7.w; + } + r12.w = -1; + continue; + } else { + r12.w = r15.w; + break; + } + r12.w = r15.w; + } + if (r12.w != 0) { + r1.w = dot(r15.xyz, r15.xyz); + r1.w = rsqrt(r1.w); + r17.xyz = r15.xyz * r1.www; + r18.xyz = cmp(float3(0,0,0) < r17.xyz); + r19.xyz = cmp(r17.xyz < float3(0,0,0)); + r18.xyz = (int3)-r18.xyz + (int3)r19.xyz; + r18.xyz = (int3)r18.xyz; + r1.w = dot(r17.xyz, r18.xyz); + r17.xyz = r17.xyz / r1.www; + r1.w = cmp(r17.z < 0); + r17.zw = float2(1,1) + -abs(r17.yx); + r17.zw = r18.xy * r17.zw; + r17.xy = r1.ww ? r17.zw : r17.xy; + r6.w = 1; + r1.w = dot(cb3[3].xyzw, r6.xyzw); + r1.w = max(0, r1.w); + r1.w = max(9.99999975e-05, r1.w); + r17.xy = r17.xy * float2(0.5,0.5) + float2(0.5,0.5); + r17.xy = r17.xy * cb3[1].ww + cb3[2].ww; + r17.z = 0; + r17.xyz = t4.SampleLevel(s3_s, r17.xyz, r3.w).xyz; + r3.w = r5.w / r1.w; + r3.w = min(1, abs(r3.w)); + r3.w = r3.w * 2 + r5.w; + r1.w = 2 + r1.w; + r1.w = r3.w / r1.w; + r1.w = -1 + r1.w; + r1.w = r1.w * cb0[112].w + 1; + r17.xyz = r17.xyz * r1.www; + r16.xyz = r17.xyz * r7.www + r16.xyz; + } + + // Reduce reflection probe intensity for glass + if (GLASS_TRANSPARENCY > 0.5f) { + r16.xyz *= 0.4f; + } + + r16.xyz = cb0[112].zzz * r16.xyz; + r16.xyz = cb0[111].yyy * r16.xyz; + r1.w = cmp(0.000000 != cb0[112].y); + if (r1.w != 0) { + r1.w = t3.SampleBias(s1_s, r0.xy, cb0[108].x).x; + r17.xyz = t2.SampleBias(s1_s, r0.xy, cb0[108].x).xyz; + r0.x = 1 + -r1.w; + r18.xyz = r16.xyz * r0.xxx; + r16.xyz = r17.xyz * r1.www + r18.xyz; + } + r2.xyz = r2.xyz * r9.xyw; + r0.x = -1 + r9.z; + r0.x = cb2[1].x * r0.x + 1; + r2.xyz = r2.xyz * r0.xxx; + r0.x = saturate(50 * r7.y); + r0.x = r0.x * r13.y; + r17.xyz = r7.xyz * r13.xxx + r0.xxx; + r16.xyz = r17.xyz * r16.xyz; + r2.xyz = r2.xyz * cb0[111].xxx + r16.xyz; + r0.x = cmp(cb6[35].w < 0.99000001); + if (r0.x != 0) { + r0.x = (int)cb6[35].x; + r0.y = cmp((int)r0.x == 2); + r16.xyz = r0.yyy ? cb6[20].xyz : cb0[44].xyz; + r16.xyz = -r16.xyz + r1.xyz; + r0.y = dot(r16.xyz, r16.xyz); + r0.y = cb6[34].w + -r0.y; + r0.y = saturate(cb6[34].z * r0.y); + r1.w = cmp(0 < r0.y); + if (r1.w != 0) { + r0.x = cmp(0 < (int)r0.x); + if (r0.x != 0) { + r16.xyz = -cb6[20].xyz + r1.xyz; + r17.xyz = -cb6[21].xyz + r1.xyz; + r18.xyz = -cb6[22].xyz + r1.xyz; + r19.xyz = -cb6[23].xyz + r1.xyz; + r16.x = dot(r16.xyz, r16.xyz); + r16.y = dot(r17.xyz, r17.xyz); + r16.z = dot(r18.xyz, r18.xyz); + r16.w = dot(r19.xyz, r19.xyz); + r17.x = cmp(r16.x < cb6[20].w); + r17.y = cmp(r16.y < cb6[21].w); + r17.z = cmp(r16.z < cb6[22].w); + r17.w = cmp(r16.w < cb6[23].w); + r18.xyzw = r17.xyzw ? float4(1,1,1,1) : 0; + r17.xyz = r17.xyz ? float3(-1,-1,-1) : float3(-0,-0,-0); + r17.xyz = r18.yzw + r17.xyz; + r18.yzw = max(float3(0,0,0), r17.xyz); + r0.x = dot(r18.xyzw, float4(4,3,2,1)); + r0.x = 4 + -r0.x; + r0.x = max(0, r0.x); + r0.x = min(3, r0.x); + r1.w = 1 + r0.x; + r1.w = min(3, r1.w); + r1.w = (uint)r1.w; + r3.w = dot(r16.yzw, icb[r1.w+0].yzw); + r1.w = r3.w / cb6[r1.w+20].w; + r3.w = cmp(r1.w >= 0); + r1.w = cmp(1 >= r1.w); + r1.w = r1.w ? r3.w : 0; + if (r1.w != 0) { + r1.w = (uint)r0.x; + r13.xy = float2(2.08299994,4.8670001) + r13.zw; + r3.w = dot(r13.xy, float2(0.0671105608,0.00583714992)); + r3.w = frac(r3.w); + r3.w = 52.9829178 * r3.w; + r3.w = frac(r3.w); + r4.w = dot(r16.xyzw, icb[r1.w+0].xyzw); + r1.w = r4.w / cb6[r1.w+20].w; + r1.w = sqrt(r1.w); + r1.w = -0.899999976 + r1.w; + r1.w = 12 * r1.w; + r1.w = cmp(r1.w >= r3.w); + r1.w = r1.w ? 1.000000 : 0; + r0.x = r1.w + r0.x; + } + r1.w = dot(r6.xyz, cb5[0].xyz); + r1.w = max(0, r1.w); + r1.w = min(0.899999976, r1.w); + r1.w = 1 + -r1.w; + r3.w = (uint)r0.x; + r4.w = (uint)r3.w << 2; + r13.xy = cb6[r3.w+24].xy * r1.ww; + r1.w = max(0, r13.x); + r16.xyz = -cb5[0].xyz * r1.www + r1.xyz; + r16.xyz = r6.xyz * r13.yyy + r16.xyz; + r17.xyz = cb6[r4.w+1].xyz * r16.yyy; + r16.xyw = cb6[r4.w+0].xyz * r16.xxx + r17.xyz; + r16.xyz = cb6[r4.w+2].xyz * r16.zzz + r16.xyw; + r16.xyz = cb6[r4.w+3].xyz + r16.xyz; + r17.xyz = cmp(float3(0,0,0) >= r16.xyz); + r18.xyz = cmp(r16.xyz >= float3(1,1,1)); + r17.xyz = (int3)r17.xyz | (int3)r18.xyz; + r1.w = (int)r17.y | (int)r17.x; + r1.w = (int)r17.z | (int)r1.w; + r3.w = (int)r16.z & 0x7fffffff; + r3.w = cmp(0x7f800000 < (uint)r3.w); + r17.z = (int)r1.w | (int)r3.w; + r0.x = (int)r0.x; + r13.xy = r16.xy * cb6[r0.x+28].zw + cb6[r0.x+28].xy; + r16.xy = r13.xy * cb6[32].zw + float2(0.5,0.5); + r16.xy = floor(r16.xy); + r13.xy = r13.xy * cb6[32].zw + -r16.xy; + r18.xyzw = float4(0.5,1,0.5,1) + r13.xxyy; + r19.xw = r18.xz * r18.xz; + r18.xz = min(float2(0,0), r13.xy); + r20.xy = max(float2(0,0), r13.xy); + r20.zw = r19.xw * float2(0.5,0.5) + -r13.xy; + r13.xy = float2(1,1) + -r13.xy; + r13.xy = -r18.xz * r18.xz + r13.xy; + r18.xy = -r20.xy * r20.xy + r18.yw; + r21.x = r20.z; + r21.y = r13.x; + r21.z = r18.x; + r21.w = r19.x; + r21.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r21.xyzw; + r19.x = r20.w; + r19.y = r13.y; + r19.z = r18.y; + r18.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r19.xyzw; + r19.xyzw = r21.xzxz + r21.ywyw; + r20.xyzw = r18.xxzz + r18.yyww; + r13.xy = r21.yw / r19.zw; + r13.xy = float2(-1.5,0.5) + r13.xy; + r21.xy = cb6[32].xx * r13.xy; + r13.xy = r18.yw / r20.yw; + r13.xy = float2(-1.5,0.5) + r13.xy; + r21.zw = cb6[32].yy * r13.xy; + r18.xyzw = r20.xyzw * r19.xyzw; + r19.xyzw = r16.xyxy * cb6[32].xyxy + r21.xzyz; + r0.x = t10.SampleCmpLevelZero(s4_s, r19.xy, r16.z).x; + r1.w = t10.SampleCmpLevelZero(s4_s, r19.zw, r16.z).x; + r1.w = r18.y * r1.w; + r0.x = r18.x * r0.x + r1.w; + r19.xyzw = r16.xyxy * cb6[32].xyxy + r21.xwyw; + r1.w = t10.SampleCmpLevelZero(s4_s, r19.xy, r16.z).x; + r0.x = r18.z * r1.w + r0.x; + r1.w = t10.SampleCmpLevelZero(s4_s, r19.zw, r16.z).x; + r0.x = r18.w * r1.w + r0.x; + r17.x = r17.z ? 1 : r0.x; + } else { + r17.xz = float2(1,0); + } + } else { + r17.xz = float2(1,0); + } + r0.x = cmp(r0.y < 1); + if (r0.x != 0) { + r0.x = dot(r6.xyz, cb5[0].xyz); + r0.x = max(0, r0.x); + r0.x = min(0.899999976, r0.x); + r0.x = 1 + -r0.x; + r13.xy = cb6[584].xy * r0.xx; + r16.xyz = -cb5[0].xyz * r13.xxx + r1.xyz; + r16.xyz = r6.xyz * r13.yyy + r16.xyz; + r13.xy = cb6[581].xy * r16.yy; + r13.xy = cb6[580].xy * r16.xx + r13.xy; + r13.xy = cb6[582].xy * r16.zz + r13.xy; + r13.xy = cb6[583].xy + r13.xy; + r18.xy = cmp(float2(0,0) < r13.xy); + r0.x = r18.y ? r18.x : 0; + r18.xy = cmp(r13.xy < float2(1,1)); + r1.w = r18.y ? r18.x : 0; + r0.x = (int)r0.x & (int)r1.w; + if (r0.x != 0) { + r0.x = cb6[585].z * r13.y; + r0.x = floor(r0.x); + r0.x = r0.x + r13.x; + r0.x = cb6[585].y * r0.x; + r0.x = (uint)r0.x; + r0.x = min(127, (uint)r0.x); + r1.w = 0x0000ffff & asint(cb6[r0.x+587].x); + r13.x = f16tof32(r1.w); + r1.w = cmp(r13.x >= 0); + if (r1.w != 0) { + r18.x = cb6[576].x; + r18.y = cb6[577].x; + r18.z = cb6[578].x; + r18.w = cb6[r0.x+587].y; + r16.w = 1; + r18.x = dot(r18.xyzw, r16.xyzw); + r19.x = cb6[576].y; + r19.y = cb6[577].y; + r19.z = cb6[578].y; + r19.w = cb6[r0.x+587].z; + r18.y = dot(r19.xyzw, r16.xyzw); + r19.x = cb6[576].z; + r19.y = cb6[577].z; + r19.z = cb6[578].z; + r19.w = cb6[r0.x+587].w; + r1.w = dot(r19.xyzw, r16.xyzw); + r16.xy = cmp(float2(0,0) < r18.xy); + r3.w = cmp(0 < r1.w); + r4.w = r16.y ? r16.x : 0; + r3.w = r3.w ? r4.w : 0; + r16.xy = cmp(r18.xy < float2(1,1)); + r4.w = cmp(r1.w < 1); + r5.w = r16.y ? r16.x : 0; + r4.w = r4.w ? r5.w : 0; + r3.w = r3.w ? r4.w : 0; + if (r3.w != 0) { + r0.x = asuint(cb6[r0.x+587].x) >> 16; + r13.y = f16tof32(r0.x); + r13.xy = r18.xy * cb6[584].zw + r13.xy; + r16.xy = r13.xy * cb6[586].zw + float2(0.5,0.5); + r16.xy = floor(r16.xy); + r13.xy = r13.xy * cb6[586].zw + -r16.xy; + r18.xyzw = float4(0.5,1,0.5,1) + r13.xxyy; + r19.xw = r18.xz * r18.xz; + r16.zw = min(float2(0,0), r13.xy); + r18.xz = max(float2(0,0), r13.xy); + r20.xy = r19.xw * float2(0.5,0.5) + -r13.xy; + r13.xy = float2(1,1) + -r13.xy; + r13.xy = -r16.zw * r16.zw + r13.xy; + r16.zw = -r18.xz * r18.xz + r18.yw; + r18.x = r20.x; + r18.y = r13.x; + r18.z = r16.z; + r18.w = r19.x; + r18.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r18.xyzw; + r19.x = r20.y; + r19.y = r13.y; + r19.z = r16.w; + r19.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r19.xyzw; + r20.xyzw = r18.xzxz + r18.ywyw; + r21.xyzw = r19.xxzz + r19.yyww; + r13.xy = r18.yw / r20.zw; + r13.xy = float2(-1.5,0.5) + r13.xy; + r18.xy = cb6[586].xx * r13.xy; + r13.xy = r19.yw / r21.yw; + r13.xy = float2(-1.5,0.5) + r13.xy; + r18.zw = cb6[586].yy * r13.xy; + r19.xyzw = r21.xyzw * r20.xyzw; + r20.xyzw = r16.xyxy * cb6[586].xyxy + r18.xzyz; + r0.x = t13.SampleCmpLevelZero(s4_s, r20.xy, r1.w).x; + r3.w = t13.SampleCmpLevelZero(s4_s, r20.zw, r1.w).x; + r3.w = r19.y * r3.w; + r0.x = r19.x * r0.x + r3.w; + r16.xyzw = r16.xyxy * cb6[586].xyxy + r18.xwyw; + r3.w = t13.SampleCmpLevelZero(s4_s, r16.xy, r1.w).x; + r0.x = r19.z * r3.w + r0.x; + r1.w = t13.SampleCmpLevelZero(s4_s, r16.zw, r1.w).x; + r17.y = r19.w * r1.w + r0.x; + } else { + r17.y = 1; + } + } else { + r17.y = 1; + } + } else { + r17.y = 1; + } + r17.x = r17.z ? r17.y : r17.x; + } else { + r17.y = 1; + } + r0.x = r17.x + -r17.y; + r0.x = r0.y * r0.x + r17.y; + r0.y = cmp(0.00100000005 < r0.x); + if (r0.y != 0) { + r16.xyz = -cb0[173].xyz + r1.xyz; + r13.xy = cb0[176].xz * r16.yy + r16.xz; + r16.yw = cb0[174].zz * r13.xy; + r17.xy = cb0[183].ww * cb0[175].xy; + r13.xy = r13.xy * cb0[174].zz + r17.xy; + r0.y = t12.SampleLevel(s2_s, r13.xy, 0).x; + r13.xy = r16.yw * cb0[175].ww + r17.xy; + r1.w = t12.SampleLevel(s2_s, r13.xy, 0).x; + r3.w = dot(r16.xz, r16.xz); + r3.w = sqrt(r3.w); + r4.w = cb0[174].y + -cb0[174].x; + r3.w = -cb0[174].x + r3.w; + r4.w = 1 / r4.w; + r3.w = saturate(r4.w * r3.w); + r4.w = r3.w * -2 + 3; + r3.w = r3.w * r3.w; + r3.w = r4.w * r3.w; + r1.w = r1.w + -r0.y; + r0.y = r3.w * r1.w + r0.y; + r0.y = -1 + r0.y; + r0.y = cb0[175].z * r0.y + 1; + r0.x = r0.x * r0.y; + } + r0.y = cb6[35].z + -r0.x; + r0.x = cb6[35].w * r0.y + r0.x; + } else { + r0.x = cb6[35].z; + } + r0.x = min(1, r0.x); + r0.x = -1 + r0.x; + r0.x = cb6[34].x * r0.x + 1; + r1.w = cmp(0.00100000005 < r0.x); + if (r1.w != 0) { + r1.w = dot(-cb5[0].xyz, r15.xyz); + r16.xyz = cb5[0].xyz * r1.www + r15.xyz; + r1.w = cmp(r1.w < cb5[4].z); + r3.w = dot(r16.xyz, r16.xyz); + r3.w = max(6.10351562e-05, r3.w); + r3.w = rsqrt(r3.w); + r16.xyz = r16.xyz * r3.www; + r16.xyz = cb5[4].yyy * r16.xyz; + r16.xyz = -cb5[0].xyz * cb5[4].zzz + r16.xyz; + r3.w = dot(r16.xyz, r16.xyz); + r3.w = rsqrt(r3.w); + r16.xyz = r16.xyz * r3.www; + r16.xyz = r1.www ? r16.xyz : r15.xyz; + r17.xyz = r3.xyz * r2.www + r16.xyz; + r1.w = dot(r17.xyz, r17.xyz); + r1.w = max(6.10351562e-05, r1.w); + r1.w = rsqrt(r1.w); + r17.xyz = r17.xyz * r1.www; + r11.y = saturate(dot(r16.xyz, r6.xyz)); + r1.w = saturate(dot(r6.xyz, r17.xyz)); + r11.z = min(1, r0.z); + r3.w = r11.w * r11.w; + r3.w = r3.w * r3.w; + r4.w = r1.w * r3.w + -r1.w; + r1.w = r4.w * r1.w + 1; + r4.w = saturate(dot(r5.xyz, r17.xyz)); + r4.w = 1 + -r4.w; + r5.w = r4.w * r4.w; + r5.w = r5.w * r5.w; + r6.w = r5.w * r4.w; + r7.w = 1 + -r11.w; + r8.w = -r7.w * 0.383026004 + -0.0761947036; + r8.w = r7.w * r8.w + 1.04997003; + r7.w = r7.w * r8.w + 0.409254998; + r7.w = min(0.999000013, r7.w); + r8.w = 1 + -r7.w; + r16.xyz = float3(1,1,1) + -r7.xyz; + r16.xyz = r16.xyz * float3(0.0476190485,0.0476190485,0.0476190485) + r7.xyz; + r4.w = -r5.w * r4.w + 1; + r17.xyz = r7.xyz * r4.www + r6.www; + r1.w = r1.w * r1.w; + r1.w = r3.w / r1.w; + r13.xy = -r11.zy * r3.ww + r11.zy; + r13.xy = r13.xy * r11.zy + r3.ww; + r13.xy = sqrt(r13.xy); + r13.xy = r13.xy * r11.yz; + r3.w = r13.x + r13.y; + r3.w = 9.99999975e-05 + r3.w; + r3.w = 0.5 / r3.w; + r1.w = r3.w * r1.w; + r17.xyz = r17.xyz * r1.www; + r17.xyz = min(float3(2048,2048,2048), r17.xyz); + r18.xyzw = r11.zwyw * float4(0.96875,0.96875,0.96875,0.96875) + float4(0.015625,0.015625,0.015625,0.015625); + r1.w = t15.SampleLevel(s1_s, r18.xy, 0).x; + r3.w = t15.SampleLevel(s1_s, r18.zw, 0).x; + r1.w = r3.w * r1.w; + r1.w = r1.w * r7.w; + r1.w = r1.w / r8.w; + r18.xyz = r16.xyz * r16.xyz; + r18.xyz = r18.xyz * r1.www; + r16.xyz = -r16.xyz * r8.www + float3(1,1,1); + r16.xyz = r18.xyz / r16.xyz; + r16.xyz = r17.xyz + r16.xyz; + r16.xyz = cb5[4].xxx * r16.xyz; + r16.xyz = max(float3(0,0,0), r16.xyz); + r16.xyz = min(float3(1000,1000,1000), r16.xyz); + + // Reduce sun specular intensity on glass + if (GLASS_TRANSPARENCY > 0.5f) { + r16.xyz *= 0.5f; + } + + r1.w = max(0.00999999978, r10.w); + r16.xyz = r16.xyz / r1.www; + r16.xyz = min(float3(1000,1000,1000), r16.xyz); + r17.xyz = r11.yyy * r9.xyw; + r16.xyz = r16.xyz * r11.yyy + r17.xyz; + r16.xyz = cb5[1].xyz * r16.xyz; + r0.y = 0.5; + r17.xyz = t14.SampleBias(s1_s, r0.xy, cb0[108].x).xyz; + r0.x = 1 + -r0.x; + r17.xyz = r16.xyz * r17.xyz + -r16.xyz; + r16.xyz = r0.xxx * r17.xyz + r16.xyz; + } else { + r16.xyz = float3(0,0,0); + } + r0.xy = float2(0.03125,0.03125) * r13.zw; + r0.xy = floor(r0.xy); + r0.x = r0.y * cb4[1].y + r0.x; + r0.x = 8 * r0.x; + r0.x = (int)r0.x; + r0.y = -cb0[85].y * cb4[2].w + r14.z; + r0.y = floor(r0.y); + r1.w = cb4[1].w + -1; + r3.w = max(0, r0.y); + r1.w = min(r3.w, r1.w); + r3.w = 8 * r1.w; + r3.w = (int)r3.w; + r0.y = cmp(r1.w >= r0.y); + r1.w = (int)r3.w + asint(cb0[110].y); + r3.w = r11.w * r11.w; + r11.x = min(1, r0.z); + r0.z = 1 + -r11.w; + r4.w = -r0.z * 0.383026004 + -0.0761947036; + r4.w = r0.z * r4.w + 1.04997003; + r0.z = r0.z * r4.w + 0.409254998; + r0.z = min(0.999000013, r0.z); + r4.w = 1 + -r0.z; + r17.xyz = float3(1,1,1) + -r7.xyz; + r17.xyz = r17.xyz * float3(0.0476190485,0.0476190485,0.0476190485) + r7.xyz; + r11.yz = r11.xw * float2(0.96875,0.96875) + float2(0.015625,0.015625); + r5.w = t15.SampleLevel(s1_s, r11.yz, 0).x; + r18.xyz = -r17.xyz * r4.www + float3(1,1,1); + r17.xyz = r17.xyz * r17.xyz; + r19.w = 1; + r13.y = 1; + r20.z = r11.w; + r21.xyz = float3(0,0,0); + r6.w = 1; + r7.w = 0; + while (true) { + r8.w = cmp(7 < (int)r7.w); + if (r8.w != 0) break; + r8.w = (int)r0.x + (int)r7.w; + r8.w = t0[r8.w].val[0/4]; + r9.z = (int)r1.w + (int)r7.w; + r9.z = t0[r9.z].val[0/4]; + r8.w = (int)r8.w & (int)r9.z; + r8.w = r0.y ? r8.w : 0; + r9.z = (uint)r7.w << 5; + r22.xyz = float3(0,0,0); + r11.y = r6.w; + r11.z = r8.w; + while (true) { + if (r11.z == 0) break; + r12.w = firstbitlow((uint)r11.z); + r15.w = 1 << (int)r12.w; + r15.w = (int)r11.z ^ (int)r15.w; + r12.w = (int)r9.z + (int)r12.w; + bitmask.x = ((~(-1 << 29)) << 3) & 0xffffffff; r23.x = (((uint)r12.w << 3) & bitmask.x) | ((uint)1 & ~bitmask.x); + bitmask.y = ((~(-1 << 29)) << 3) & 0xffffffff; r23.y = (((uint)r12.w << 3) & bitmask.y) | ((uint)3 & ~bitmask.y); + bitmask.z = ((~(-1 << 29)) << 3) & 0xffffffff; r23.z = (((uint)r12.w << 3) & bitmask.z) | ((uint)5 & ~bitmask.z); + bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r23.w = (((uint)r12.w << 3) & bitmask.w) | ((uint)6 & ~bitmask.w); + bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r16.w = (((uint)r12.w << 3) & bitmask.w) | ((uint)7 & ~bitmask.w); + r17.w = (uint)cb5[r23.z+6].w; + r17.w = cmp((int)r17.w == 1); + if (r17.w != 0) { + r19.xyz = -cb5[r23.x+6].xyz + r1.xyz; + r24.xyz = int3(0xffff,0xffff,0xffff) & asint(cb5[r23.z+6].xzy); + r25.xyz = int3(0xffff,0xffff,0xffff) & asint(cb5[r23.w+6].yxz); + r26.xyz = asuint(cb5[r23.z+6].xzy) >> int3(16,16,16); + r27.xyz = asuint(cb5[r23.w+6].yxz) >> int3(16,16,16); + r24.xyz = f16tof32(r24.xyz); + r25.xyz = f16tof32(r25.xyz); + r26.xyz = f16tof32(r26.xyz); + r27.xyw = f16tof32(r27.yxz); + r28.xz = r24.xz; + r28.yw = r26.xz; + r17.w = dot(r19.xyzw, r28.xyzw); + r26.x = r24.y; + r26.z = r25.y; + r26.w = r27.x; + r18.w = dot(r19.xyzw, r26.xyzw); + r27.xz = r25.xz; + r19.x = dot(r19.xyzw, r27.xyzw); + r17.w = max(abs(r18.w), abs(r17.w)); + r17.w = max(r17.w, abs(r19.x)); + r18.w = cb5[r16.w+6].x * 0.5 + 0.5; + r17.w = -r18.w + r17.w; + r18.w = -cb5[r16.w+6].x * 0.5 + 0.5; + r17.w = saturate(r17.w / r18.w); + r17.w = 1 + -r17.w; + r17.w = r17.w * r17.w; + } else { + r17.w = 1; + } + r18.w = cmp(0.5 < cb5[r23.y+6].z); + r19.x = cmp(r17.w < 0.00100000005); + r19.x = (int)r18.w | (int)r19.x; + if (r19.x != 0) { + r11.z = r15.w; + continue; + } + r19.x = (uint)r12.w << 3; + bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r12.w = (((uint)r12.w << 3) & bitmask.w) | ((uint)2 & ~bitmask.w); + r19.y = cmp(cb5[r19.x+6].w < 1.5); + if (r19.y != 0) { + r19.y = cb5[r12.w+6].y * 0.5 + 0.5; + r24.x = -abs(cb5[r12.w+6].x) + r19.y; + r24.y = cb5[r12.w+6].y + -r24.x; + r19.y = 1 + -abs(r24.x); + r19.y = r19.y + -abs(r24.y); + r19.y = max(0.00048828125, r19.y); + r19.z = cmp(cb5[r12.w+6].x >= 0); + r24.z = r19.z ? r19.y : -r19.y; + r19.y = dot(r24.xyz, r24.xyz); + r19.y = rsqrt(r19.y); + r24.xyz = r24.xyz * r19.yyy; + r25.xyz = cb5[r23.x+6].xyz + -r1.xyz; + r19.y = dot(r25.xyz, r25.xyz); + r19.z = rsqrt(r19.y); + r26.xyz = r25.xyz * r19.zzz; + r20.w = (int)cb5[r16.w+6].w; + r27.xyz = cb5[r12.w+6].zzz * r24.xyz; + r28.xyz = -r27.xyz * float3(0.5,0.5,0.5) + r25.xyz; + r29.xyz = r27.xyz * float3(0.5,0.5,0.5) + r25.xyz; + r21.w = (uint)cb5[r19.x+6].w; + r21.w = (int)r21.w & 1; + r22.w = cmp((int)r21.w == 0); + r22.w = ~(int)r22.w; + r23.z = cmp(0 < cb5[r12.w+6].z); + r22.w = r22.w ? r23.z : 0; + r23.z = dot(r28.xyz, r28.xyz); + r23.z = sqrt(r23.z); + r24.w = dot(r29.xyz, r29.xyz); + r24.w = sqrt(r24.w); + r25.w = dot(r6.xyz, r28.xyz); + r25.w = r25.w / r23.z; + r26.w = dot(r6.xyz, r29.xyz); + r26.w = r26.w / r24.w; + r25.w = r26.w + r25.w; + r30.x = saturate(0.5 * r25.w); + r25.w = dot(r28.xyz, r29.xyz); + r23.z = r23.z * r24.w + r25.w; + r23.z = r23.z * 0.5 + 1; + r30.y = 1 / r23.z; + r13.x = saturate(dot(r6.xyz, r26.xyz)); + r20.xy = r22.ww ? r30.xy : r13.xy; + r13.x = cmp(cb5[r23.w+6].w < 0); + if (r13.x != 0) { + r13.x = cb5[r23.x+6].w * cb5[r23.x+6].w; + r13.x = r19.y * r13.x; + r13.x = -r13.x * r13.x + 1; + r13.x = max(0, r13.x); + r19.y = 1 + r19.y; + r19.y = 1 / r19.y; + r23.z = r22.w ? 1.000000 : 0; + r24.w = r20.y + -r19.y; + r19.y = r23.z * r24.w + r19.y; + r13.x = r13.x * r13.x; + r13.x = r19.y * r13.x; + } else { + r29.xyz = cb5[r23.x+6].www * r25.xyz; + r19.y = dot(r29.xyz, r29.xyz); + r19.y = min(1, r19.y); + r19.y = 1 + -r19.y; + r19.y = log2(r19.y); + r19.y = cb5[r23.w+6].w * r19.y; + r19.y = exp2(r19.y); + r13.x = r20.y * r19.y; + } + r19.y = dot(r26.xyz, -r24.xyz); + r19.y = -cb5[r12.w+6].z + r19.y; + r19.y = saturate(cb5[r12.w+6].w * r19.y); + r19.y = r19.y * r19.y; + r19.y = r21.w ? 1 : r19.y; + r13.x = r19.y * r13.x; + r19.y = ~(int)r22.w; + r20.y = cmp((int)r20.w >= 0); + r19.y = r20.y ? r19.y : 0; + if (r19.y != 0) { + if (r21.w == 0) { + r19.y = (uint)r20.w << 2; + r24.xyz = cb7[r19.y+33].xyw * r1.yyy; + r24.xyz = cb7[r19.y+32].xyw * r1.xxx + r24.xyz; + r24.xyz = cb7[r19.y+34].xyw * r1.zzz + r24.xyz; + r24.xyz = cb7[r19.y+35].xyw + r24.xyz; + r24.xy = saturate(r24.xy / r24.zz); + r24.xy = r24.xy * cb7[r20.w+0].zw + cb7[r20.w+0].xy; + } else { + r19.y = (uint)r20.w << 2; + r29.x = dot(-r25.xyz, cb7[r19.y+32].xyz); + r29.y = dot(-r25.xyz, cb7[r19.y+33].xyz); + r29.z = dot(-r25.xyz, cb7[r19.y+34].xyz); + r19.y = cmp(abs(r29.x) < abs(r29.y)); + r19.y = r19.y ? 0.000000 : 0; + r20.y = dot(abs(r29.xy), icb[r19.y+0].xy); + r20.y = cmp(r20.y < abs(r29.z)); + r19.y = r20.y ? 2 : r19.y; + r20.y = dot(r29.xyz, icb[r19.y+0].xyz); + r20.y = cmp(r20.y < 0); + bitmask.y = ((~(-1 << 31)) << 1) & 0xffffffff; r19.y = (((uint)r19.y << 1) & bitmask.y) | ((uint)r20.y & ~bitmask.y); + r20.y = (uint)r19.y >> 1; + r20.y = dot(r29.xyz, icb[r20.y+0].xyz); + r23.z = 0.000244140625 / cb7[r20.w+0].w; + r23.z = 0.5 + -r23.z; + r24.z = (uint)r19.y; + r24.w = cmp((uint)r19.y < 2); + r24.w = r24.w ? 0.000000 : 0; + r24.w = dot(r29.xz, icb[r24.w+0].xz); + r24.w = icb[r19.y+4].z * r24.w; + r24.w = r24.w / abs(r20.y); + r24.z = r24.w * r23.z + r24.z; + r24.z = 0.5 + r24.z; + r25.x = saturate(0.166666672 * r24.z); + r24.z = -1 + (int)icb[r19.y+4].y; + r24.z = dot(r29.yz, icb[r24.z+0].xy); + r19.y = icb[r19.y+4].w * r24.z; + r19.y = r19.y / abs(r20.y); + r25.y = saturate(-r19.y * r23.z + 0.5); + r24.xy = r25.xy * cb7[r20.w+0].zw + cb7[r20.w+0].xy; + } + r19.y = t23.SampleLevel(s1_s, r24.xy, 0).x; + r13.x = r19.y * r13.x; + } + r19.y = cmp(0 < r13.x); + if (r19.y != 0) { + if (r21.w == 0) { + r20.y = (int)cb5[r23.y+6].x; + } else { + r24.xyz = -cb5[r23.x+6].xyz + r1.xyz; + r25.xyz = cmp(abs(r24.yzz) < abs(r24.xxy)); + r20.w = r25.y ? r25.x : 0; + r24.xyz = cmp(float3(0,0,0) < r24.xyz); + r21.w = asuint(cb5[r12.w+6].w) >> 24; + if (8 == 0) r25.x = 0; else if (8+16 < 32) { r25.x = (uint)cb5[r12.w+6].w << (32-(8 + 16)); r25.x = (uint)r25.x >> (32-8); } else r25.x = (uint)cb5[r12.w+6].w >> 16; + if (8 == 0) r25.y = 0; else if (8+8 < 32) { r25.y = (uint)cb5[r12.w+6].w << (32-(8 + 8)); r25.y = (uint)r25.y >> (32-8); } else r25.y = (uint)cb5[r12.w+6].w >> 8; + r21.w = r24.x ? r21.w : r25.x; + r23.z = 255 & asint(cb5[r12.w+6].w); + r23.z = r24.y ? r25.y : r23.z; + if (8 == 0) r24.x = 0; else if (8+8 < 32) { r24.x = (uint)cb5[r23.y+6].x << (32-(8 + 8)); r24.x = (uint)r24.x >> (32-8); } else r24.x = (uint)cb5[r23.y+6].x >> 8; + r24.y = 255 & asint(cb5[r23.y+6].x); + r24.x = r24.z ? r24.x : r24.y; + r23.z = r25.z ? r23.z : r24.x; + r20.w = r20.w ? r21.w : r23.z; + r21.w = cmp((int)r20.w < 80); + r20.y = r21.w ? r20.w : -1; + } + r24.xyz = r26.xyz * cb6[r20.y+288].xxx + r1.xyz; + r20.w = cb6[r20.y+288].y * 5; + r24.xyz = r6.xyz * r20.www + r24.xyz; + r20.w = (uint)r20.y << 2; + r25.xyzw = cb6[r20.w+65].xyzw * r24.yyyy; + r25.xyzw = cb6[r20.w+64].xyzw * r24.xxxx + r25.xyzw; + r24.xyzw = cb6[r20.w+66].xyzw * r24.zzzz + r25.xyzw; + r24.xyzw = cb6[r20.w+67].xyzw + r24.xyzw; + r24.xyz = r24.xyz / r24.www; + r25.xyz = cmp(float3(0,0,0) >= r24.xyz); + r29.xyz = cmp(r24.xyz >= float3(1,1,1)); + r30.xy = cb6[r20.y+344].zw + -cb6[r20.y+344].xy; + r24.xy = r24.xy * r30.xy + cb6[r20.y+344].xy; + r30.xy = r24.xy * cb6[400].zw + float2(0.5,0.5); + r30.xy = floor(r30.xy); + r24.xy = r24.xy * cb6[400].zw + -r30.xy; + r31.xyzw = float4(0.5,1,0.5,1) + r24.xxyy; + r32.xyzw = r31.xxzz * r31.xxzz; + r30.zw = float2(1,1) + -r24.xy; + r31.xz = min(float2(0,0), r24.xy); + r33.xy = max(float2(0,0), r24.xy); + r34.xy = float2(0.159999996,0.159999996) * r30.zw; + r33.xy = -r33.xy * r33.xy + r31.yw; + r33.xy = float2(1,1) + r33.xy; + r33.xy = float2(0.159999996,0.159999996) * r33.xy; + r32.xz = float2(0.0799999982,0.0799999982) * r32.xz; + r24.xy = r32.yw * float2(0.5,0.5) + -r24.xy; + r35.xy = float2(0.159999996,0.159999996) * r24.xy; + r24.xy = -r31.xz * r31.xz + r30.zw; + r24.xy = float2(1,1) + r24.xy; + r36.xy = float2(0.159999996,0.159999996) * r24.xy; + r24.xy = float2(0.159999996,0.159999996) * r31.yw; + r35.z = r36.x; + r35.w = r24.x; + r34.z = r33.x; + r34.w = r32.x; + r31.xyzw = r35.zwxz + r34.zwxz; + r36.z = r35.y; + r36.w = r24.y; + r33.z = r34.y; + r33.w = r32.z; + r24.xyw = r36.zyw + r33.zyw; + r32.xyz = r34.xzw / r31.zwy; + r32.xyz = float3(-2.5,-0.5,1.5) + r32.xyz; + r32.xyz = cb6[400].xxx * r32.xyz; + r33.xyz = r33.zyw / r24.xyw; + r33.xyz = float3(-2.5,-0.5,1.5) + r33.xyz; + r33.xyw = cb6[400].yyy * r33.xyz; + r34.xyzw = r31.zwyz * r24.xxxy; + r32.w = r33.x; + r35.xyzw = r30.xyxy * cb6[400].xyxy + r32.xwyw; + r20.w = t11.SampleCmpLevelZero(s4_s, r35.xy, r24.z).x; + r21.w = t11.SampleCmpLevelZero(s4_s, r35.zw, r24.z).x; + r21.w = r34.y * r21.w; + r20.w = r34.x * r20.w + r21.w; + r30.zw = r30.xy * cb6[400].xy + r32.zw; + r21.w = t11.SampleCmpLevelZero(s4_s, r30.zw, r24.z).x; + r20.w = r34.z * r21.w + r20.w; + r33.z = r32.x; + r35.xyzw = r30.xyxy * cb6[400].xyxy + r33.zyzw; + r21.w = t11.SampleCmpLevelZero(s4_s, r35.xy, r24.z).x; + r20.w = r34.w * r21.w + r20.w; + r34.xyzw = r31.xyzw * r24.yyww; + r33.xz = r32.yz; + r32.xyzw = r30.xyxy * cb6[400].xyxy + r33.xyzy; + r21.w = t11.SampleCmpLevelZero(s4_s, r32.xy, r24.z).x; + r20.w = r34.x * r21.w + r20.w; + r21.w = t11.SampleCmpLevelZero(s4_s, r32.zw, r24.z).x; + r20.w = r34.y * r21.w + r20.w; + r21.w = t11.SampleCmpLevelZero(s4_s, r35.zw, r24.z).x; + r20.w = r34.z * r21.w + r20.w; + r21.w = cmp((int)r20.y >= 0); + r25.xyz = (int3)r25.xyz | (int3)r29.xyz; + r23.z = (int)r25.y | (int)r25.x; + r23.z = (int)r25.z | (int)r23.z; + r24.x = (int)r24.z & 0x7fffffff; + r24.x = cmp(0x7f800000 < (uint)r24.x); + r23.z = (int)r23.z | (int)r24.x; + r25.xyzw = r30.xyxy * cb6[400].xyxy + r33.xwzw; + r24.x = t11.SampleCmpLevelZero(s4_s, r25.xy, r24.z).x; + r20.w = r34.w * r24.x + r20.w; + r24.x = r31.y * r24.w; + r24.y = t11.SampleCmpLevelZero(s4_s, r25.zw, r24.z).x; + r20.w = r24.x * r24.y + r20.w; + r20.w = -1 + r20.w; + r20.y = cb6[r20.y+288].w * r20.w + 1; + r20.y = r23.z ? 1 : r20.y; + r20.y = r21.w ? r20.y : 1; + } else { + r20.y = 1; + } + if (r22.w != 0) { + r20.w = dot(r15.xyz, r27.xyz); + r21.w = saturate(cb5[r12.w+6].z * r19.z); + r21.w = r21.w * 0.5 + r3.w; + r21.w = min(1, r21.w); + r21.w = r3.w / r21.w; + r24.xyz = r15.xyz * r20.www + -r27.xyz; + r22.w = dot(r28.xyz, r24.xyz); + r20.w = r20.w * r20.w; + r20.w = cb5[r12.w+6].z * cb5[r12.w+6].z + -r20.w; + r20.w = saturate(r22.w / r20.w); + r24.xyz = r27.xyz * r20.www + r28.xyz; + r20.w = dot(r24.xyz, r24.xyz); + r20.w = rsqrt(r20.w); + r26.xyz = r24.xyz * r20.www; + } else { + r21.w = 1; + } + if (r19.y != 0) { + r19.y = saturate(cb5[r16.w+6].y * r19.z); + r24.xyz = r3.xyz * r2.www + r26.xyz; + r19.z = dot(r24.xyz, r24.xyz); + r19.z = max(6.10351562e-05, r19.z); + r19.z = rsqrt(r19.z); + r24.xyz = r24.xyz * r19.zzz; + r19.z = saturate(dot(r6.xyz, r24.xyz)); + r20.w = saturate(dot(r5.xyz, r24.xyz)); + r22.w = cmp(0 < r19.y); + r19.y = r19.y * r19.y; + r23.z = r20.w * 3.5999999 + 0.400000006; + r19.y = r19.y / r23.z; + r19.y = r11.w * r11.w + r19.y; + r19.y = min(1, r19.y); + r19.y = r22.w ? r19.y : r3.w; + r19.y = r19.y * r19.y; + r22.w = r19.z * r19.y + -r19.z; + r19.z = r22.w * r19.z + 1; + r20.w = 1 + -r20.w; + r22.w = r20.w * r20.w; + r22.w = r22.w * r22.w; + r23.z = r22.w * r20.w; + r20.w = -r22.w * r20.w + 1; + r24.xyz = r7.xyz * r20.www + r23.zzz; + r19.z = r19.z * r19.z; + r19.z = r19.y / r19.z; + r19.z = r19.z * r21.w; + r20.w = -r11.x * r19.y + r11.x; + r20.w = r20.w * r11.x + r19.y; + r20.w = sqrt(r20.w); + r21.w = -r20.x * r19.y + r20.x; + r19.y = r21.w * r20.x + r19.y; + r19.y = sqrt(r19.y); + r19.y = r19.y * r11.x; + r19.y = r20.x * r20.w + r19.y; + r19.y = 9.99999975e-05 + r19.y; + r19.y = 0.5 / r19.y; + r19.y = r19.z * r19.y; + r24.xyz = r24.xyz * r19.yyy; + r24.xyz = min(float3(2048,2048,2048), r24.xyz); + r19.yz = r20.xz * float2(0.96875,0.96875) + float2(0.015625,0.015625); + r19.y = t15.SampleLevel(s1_s, r19.yz, 0).x; + r19.y = r19.y * r5.w; + r19.y = r19.y * r0.z; + r19.y = r19.y / r4.w; + r25.xyz = r19.yyy * r17.xyz; + r25.xyz = r25.xyz / r18.xyz; + r24.xyz = r25.xyz + r24.xyz; + r24.xyz = cb5[r16.w+6].zzz * r24.xyz; + r24.xyz = max(float3(0,0,0), r24.xyz); + r24.xyz = min(float3(1000,1000,1000), r24.xyz); + r25.xyz = r20.xxx * r9.xyw; + r24.xyz = r24.xyz * r20.xxx + r25.xyz; + r25.xyz = cb5[r19.x+6].xyz * r13.xxx; + r20.xyw = r25.xyz * r20.yyy; + r20.xyw = r20.xyw * r17.www; + r20.xyw = r24.xyz * r20.xyw; + } else { + r20.xyw = float3(0,0,0); + } + } else { + if (r18.w == 0) { + r13.x = cb5[r12.w+6].y * 0.5 + 0.5; + r24.x = -abs(cb5[r12.w+6].x) + r13.x; + r24.y = cb5[r12.w+6].y + -r24.x; + r13.x = 1 + -abs(r24.x); + r13.x = r13.x + -abs(r24.y); + r13.x = max(0.00048828125, r13.x); + r17.w = cmp(cb5[r12.w+6].x >= 0); + r24.z = r17.w ? r13.x : -r13.x; + r13.x = dot(r24.xyz, r24.xyz); + r13.x = rsqrt(r13.x); + r24.xyz = r24.xyz * r13.xxx; + r25.xyz = cb5[r23.x+6].xyz + -r1.xyz; + r13.x = dot(r25.xyz, r25.xyz); + r17.w = rsqrt(r13.x); + r26.xyz = r25.xyz * r17.www; + r16.w = (int)cb5[r16.w+6].w; + r27.xyz = cb5[r12.w+6].zzz * r24.xyz; + r28.xyz = -r27.xyz * float3(0.5,0.5,0.5) + r25.xyz; + r27.xyz = r27.xyz * float3(0.5,0.5,0.5) + r25.xyz; + r17.w = (uint)cb5[r19.x+6].w; + r17.w = (int)r17.w & 1; + r18.w = cmp((int)r17.w == 0); + r18.w = ~(int)r18.w; + r19.x = cmp(0 < cb5[r12.w+6].z); + r18.w = r18.w ? r19.x : 0; + r19.x = dot(r28.xyz, r28.xyz); + r19.y = dot(r27.xyz, r27.xyz); + r19.xy = sqrt(r19.xy); + r19.z = dot(r28.xyz, r27.xyz); + r19.x = r19.x * r19.y + r19.z; + r19.x = r19.x * 0.5 + 1; + r19.x = 1 / r19.x; + r19.x = r18.w ? r19.x : 1; + r19.y = cmp(cb5[r23.w+6].w < 0); + if (r19.y != 0) { + r19.y = cb5[r23.x+6].w * cb5[r23.x+6].w; + r19.y = r19.y * r13.x; + r19.y = -r19.y * r19.y + 1; + r19.y = max(0, r19.y); + r13.x = 1 + r13.x; + r13.x = 1 / r13.x; + r19.z = r18.w ? 1.000000 : 0; + r21.w = r19.x + -r13.x; + r13.x = r19.z * r21.w + r13.x; + r19.y = r19.y * r19.y; + r13.x = r19.y * r13.x; + } else { + r27.xyz = cb5[r23.x+6].www * r25.xyz; + r19.y = dot(r27.xyz, r27.xyz); + r19.y = min(1, r19.y); + r19.y = 1 + -r19.y; + r19.y = log2(r19.y); + r19.y = cb5[r23.w+6].w * r19.y; + r19.y = exp2(r19.y); + r13.x = r19.x * r19.y; + } + r19.x = dot(r26.xyz, -r24.xyz); + r19.x = -cb5[r12.w+6].z + r19.x; + r19.x = saturate(cb5[r12.w+6].w * r19.x); + r19.x = r19.x * r19.x; + r19.x = r17.w ? 1 : r19.x; + r13.x = r19.x * r13.x; + r18.w = ~(int)r18.w; + r19.x = cmp((int)r16.w >= 0); + r18.w = r18.w ? r19.x : 0; + if (r18.w != 0) { + if (r17.w == 0) { + r18.w = (uint)r16.w << 2; + r19.xyz = cb7[r18.w+33].xyw * r1.yyy; + r19.xyz = cb7[r18.w+32].xyw * r1.xxx + r19.xyz; + r19.xyz = cb7[r18.w+34].xyw * r1.zzz + r19.xyz; + r19.xyz = cb7[r18.w+35].xyw + r19.xyz; + r19.xy = saturate(r19.xy / r19.zz); + r19.xy = r19.xy * cb7[r16.w+0].zw + cb7[r16.w+0].xy; + } else { + r18.w = (uint)r16.w << 2; + r24.x = dot(-r25.xyz, cb7[r18.w+32].xyz); + r24.y = dot(-r25.xyz, cb7[r18.w+33].xyz); + r24.z = dot(-r25.xyz, cb7[r18.w+34].xyz); + r18.w = cmp(abs(r24.x) < abs(r24.y)); + r18.w = r18.w ? 0.000000 : 0; + r19.z = dot(abs(r24.xy), icb[r18.w+0].xy); + r19.z = cmp(r19.z < abs(r24.z)); + r18.w = r19.z ? 2 : r18.w; + r19.z = dot(r24.xyz, icb[r18.w+0].xyz); + r19.z = cmp(r19.z < 0); + bitmask.w = ((~(-1 << 31)) << 1) & 0xffffffff; r18.w = (((uint)r18.w << 1) & bitmask.w) | ((uint)r19.z & ~bitmask.w); + r19.z = (uint)r18.w >> 1; + r19.z = dot(r24.xyz, icb[r19.z+0].xyz); + r21.w = 0.000244140625 / cb7[r16.w+0].w; + r21.w = 0.5 + -r21.w; + r22.w = (uint)r18.w; + r23.z = cmp((uint)r18.w < 2); + r23.z = r23.z ? 0.000000 : 0; + r23.z = dot(r24.xz, icb[r23.z+0].xz); + r23.z = icb[r18.w+4].z * r23.z; + r23.z = r23.z / abs(r19.z); + r22.w = r23.z * r21.w + r22.w; + r22.w = 0.5 + r22.w; + r25.x = saturate(0.166666672 * r22.w); + r22.w = -1 + (int)icb[r18.w+4].y; + r22.w = dot(r24.yz, icb[r22.w+0].xy); + r18.w = icb[r18.w+4].w * r22.w; + r18.w = r18.w / abs(r19.z); + r25.y = saturate(-r18.w * r21.w + 0.5); + r19.xy = r25.xy * cb7[r16.w+0].zw + cb7[r16.w+0].xy; + } + r16.w = t23.SampleLevel(s1_s, r19.xy, 0).x; + r13.x = r16.w * r13.x; + } + r13.x = cmp(0 < r13.x); + if (r13.x != 0) { + if (r17.w == 0) { + r13.x = (int)cb5[r23.y+6].x; + } else { + r19.xyz = -cb5[r23.x+6].xyz + r1.xyz; + r23.xzw = cmp(abs(r19.yzz) < abs(r19.xxy)); + r16.w = r23.z ? r23.x : 0; + r19.xyz = cmp(float3(0,0,0) < r19.xyz); + r17.w = asuint(cb5[r12.w+6].w) >> 24; + if (8 == 0) r23.x = 0; else if (8+16 < 32) { r23.x = (uint)cb5[r12.w+6].w << (32-(8 + 16)); r23.x = (uint)r23.x >> (32-8); } else r23.x = (uint)cb5[r12.w+6].w >> 16; + if (8 == 0) r23.z = 0; else if (8+8 < 32) { r23.z = (uint)cb5[r12.w+6].w << (32-(8 + 8)); r23.z = (uint)r23.z >> (32-8); } else r23.z = (uint)cb5[r12.w+6].w >> 8; + r17.w = r19.x ? r17.w : r23.x; + r12.w = 255 & asint(cb5[r12.w+6].w); + r12.w = r19.y ? r23.z : r12.w; + if (8 == 0) r18.w = 0; else if (8+8 < 32) { r18.w = (uint)cb5[r23.y+6].x << (32-(8 + 8)); r18.w = (uint)r18.w >> (32-8); } else r18.w = (uint)cb5[r23.y+6].x >> 8; + r19.x = 255 & asint(cb5[r23.y+6].x); + r18.w = r19.z ? r18.w : r19.x; + r12.w = r23.w ? r12.w : r18.w; + r12.w = r16.w ? r17.w : r12.w; + r16.w = cmp((int)r12.w < 80); + r13.x = r16.w ? r12.w : -1; + } + r19.xyz = r26.xyz * cb6[r13.x+288].xxx + r1.xyz; + r12.w = cb6[r13.x+288].y * 5; + r19.xyz = r6.xyz * r12.www + r19.xyz; + r12.w = (uint)r13.x << 2; + r23.xyzw = cb6[r12.w+65].xyzw * r19.yyyy; + r23.xyzw = cb6[r12.w+64].xyzw * r19.xxxx + r23.xyzw; + r23.xyzw = cb6[r12.w+66].xyzw * r19.zzzz + r23.xyzw; + r23.xyzw = cb6[r12.w+67].xyzw + r23.xyzw; + r19.xyz = r23.xyz / r23.www; + r23.xyz = cmp(float3(0,0,0) >= r19.xyz); + r24.xyz = cmp(r19.xyz >= float3(1,1,1)); + r25.xy = cb6[r13.x+344].zw + -cb6[r13.x+344].xy; + r19.xy = r19.xy * r25.xy + cb6[r13.x+344].xy; + r25.xy = r19.xy * cb6[400].zw + float2(0.5,0.5); + r25.xy = floor(r25.xy); + r19.xy = r19.xy * cb6[400].zw + -r25.xy; + r26.xyzw = float4(0.5,1,0.5,1) + r19.xxyy; + r27.xyzw = r26.xxzz * r26.xxzz; + r25.zw = float2(1,1) + -r19.xy; + r26.xz = min(float2(0,0), r19.xy); + r28.xy = max(float2(0,0), r19.xy); + r29.xy = float2(0.159999996,0.159999996) * r25.zw; + r28.xy = -r28.xy * r28.xy + r26.yw; + r28.xy = float2(1,1) + r28.xy; + r28.xy = float2(0.159999996,0.159999996) * r28.xy; + r27.xz = float2(0.0799999982,0.0799999982) * r27.xz; + r19.xy = r27.yw * float2(0.5,0.5) + -r19.xy; + r30.xy = float2(0.159999996,0.159999996) * r19.xy; + r19.xy = -r26.xz * r26.xz + r25.zw; + r19.xy = float2(1,1) + r19.xy; + r31.xy = float2(0.159999996,0.159999996) * r19.xy; + r19.xy = float2(0.159999996,0.159999996) * r26.yw; + r30.z = r31.x; + r30.w = r19.x; + r29.z = r28.x; + r29.w = r27.x; + r26.xyzw = r30.zwxz + r29.zwxz; + r31.z = r30.y; + r31.w = r19.y; + r28.z = r29.y; + r28.w = r27.z; + r27.xyz = r31.zyw + r28.zyw; + r29.xyz = r29.xzw / r26.zwy; + r29.xyz = float3(-2.5,-0.5,1.5) + r29.xyz; + r29.xyz = cb6[400].xxx * r29.xyz; + r28.xyz = r28.zyw / r27.xyz; + r28.xyz = float3(-2.5,-0.5,1.5) + r28.xyz; + r28.xyw = cb6[400].yyy * r28.xyz; + r30.xyzw = r27.xxxy * r26.zwyz; + r29.w = r28.x; + r31.xyzw = r25.xyxy * cb6[400].xyxy + r29.xwyw; + r12.w = t11.SampleCmpLevelZero(s4_s, r31.xy, r19.z).x; + r16.w = t11.SampleCmpLevelZero(s4_s, r31.zw, r19.z).x; + r16.w = r30.y * r16.w; + r12.w = r30.x * r12.w + r16.w; + r19.xy = r25.xy * cb6[400].xy + r29.zw; + r16.w = t11.SampleCmpLevelZero(s4_s, r19.xy, r19.z).x; + r12.w = r30.z * r16.w + r12.w; + r28.z = r29.x; + r31.xyzw = r25.xyxy * cb6[400].xyxy + r28.zyzw; + r16.w = t11.SampleCmpLevelZero(s4_s, r31.xy, r19.z).x; + r12.w = r30.w * r16.w + r12.w; + r30.xyzw = r27.yyzz * r26.xyzw; + r28.xz = r29.yz; + r29.xyzw = r25.xyxy * cb6[400].xyxy + r28.xyzy; + r16.w = t11.SampleCmpLevelZero(s4_s, r29.xy, r19.z).x; + r12.w = r30.x * r16.w + r12.w; + r16.w = t11.SampleCmpLevelZero(s4_s, r29.zw, r19.z).x; + r12.w = r30.y * r16.w + r12.w; + r16.w = t11.SampleCmpLevelZero(s4_s, r31.zw, r19.z).x; + r12.w = r30.z * r16.w + r12.w; + r16.w = cmp((int)r13.x >= 0); + r23.xyz = (int3)r23.xyz | (int3)r24.xyz; + r17.w = (int)r23.y | (int)r23.x; + r17.w = (int)r23.z | (int)r17.w; + r18.w = (int)r19.z & 0x7fffffff; + r18.w = cmp(0x7f800000 < (uint)r18.w); + r17.w = (int)r17.w | (int)r18.w; + r23.xyzw = r25.xyxy * cb6[400].xyxy + r28.xwzw; + r18.w = t11.SampleCmpLevelZero(s4_s, r23.xy, r19.z).x; + r12.w = r30.w * r18.w + r12.w; + r18.w = r27.z * r26.y; + r19.x = t11.SampleCmpLevelZero(s4_s, r23.zw, r19.z).x; + r12.w = r18.w * r19.x + r12.w; + r12.w = -1 + r12.w; + r12.w = cb6[r13.x+288].w * r12.w + 1; + r12.w = r17.w ? 1 : r12.w; + r12.w = r16.w ? r12.w : 1; + } else { + r12.w = 1; + } + } else { + r12.w = 1; + } + r11.y = r12.w * r11.y; + r20.xyw = float3(0,0,0); + } + r22.xyz = r22.xyz + r20.xyw; + r11.z = r15.w; + } + r6.w = r11.y; + r21.xyz = r22.xyz + r21.xyz; + r7.w = (int)r7.w + 1; + } + r0.x = dot(r2.xyz, float3(0.212672904,0.715152204,0.0721750036)); + r1.xzw = r2.xyz + -r0.xxx; + r0.xyz = cb0[184].www * r1.xzw + r0.xxx; + + // Reduce clustered light contribution on glass + if (GLASS_TRANSPARENCY > 0.5f) { + r21.xyz *= 0.5f; + } + + r1.xzw = r21.xyz * r6.www + r16.xyz; + r2.xyz = cb2[21].xyz * cb2[20].zzz; + r2.w = 1 + -r10.w; + r3.x = -cb2[20].y + 1; + r3.x = max(0.00999999978, r3.x); + r2.w = saturate(r2.w / r3.x); + r2.xyz = r8.xyz * r2.xyz + -r1.xzw; + r1.xzw = r2.www * r2.xyz + r1.xzw; + r0.xyz = r0.xyz * cb0[184].xyz + r1.xzw; + + // Apply glass brightness reduction + if (GLASS_TRANSPARENCY > 0.5f) { + r0.xyz *= 0.65f; + } + r1.x = r1.y * cb0[156].w + cb0[157].w; + r1.z = r0.w * cb0[154].w + -cb0[153].w; + r1.xz = max(float2(0.00999999978,0), r1.xz); + r1.w = -1.44269502 * r1.x; + r1.w = exp2(r1.w); + r1.w = 1 + -r1.w; + r1.x = r1.w / r1.x; + r1.w = r1.y * cb0[156].w + cb0[158].w; + r1.w = 1.44269502 * r1.w; + r1.w = exp2(r1.w); + r1.x = r1.x * r1.w; + r1.x = -r1.z * r1.x; + r1.xzw = cb0[155].xyz * r1.xxx; + r1.xzw = float3(1.44269502,1.44269502,1.44269502) * r1.xzw; + r1.xzw = exp2(r1.xzw); + r2.x = dot(-r5.xyz, cb0[154].xyz); + r2.y = cb0[155].w * cb0[155].w + 1; + r2.z = dot(r2.xx, cb0[155].ww); + r2.y = r2.y + -r2.z; + r2.z = cmp(0 < cb0[163].z); + if (r2.z != 0) { + r14.w = 7 & asint(cb0[108].w); + r3.xyz = mad((int3)r14.xyw, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f)); + r2.z = mad((int)r3.y, (int)r3.z, (int)r3.x); + r2.w = mad((int)r3.z, (int)r2.z, (int)r3.y); + r3.x = mad((int)r2.z, (int)r2.w, (int)r3.z); + r6.x = mad((int)r2.w, (int)r3.x, (int)r2.z); + r2.z = dot(-r5.xyz, -r4.xyz); + r3.y = -cb0[44].y + r1.y; + r3.z = cmp(5.96046448e-08 < r2.z); + r2.z = 1 / r2.z; + r2.z = r3.z ? r2.z : 0; + r2.z = cb0[163].w * r2.z; + r3.z = 1 / r0.w; + r3.w = r3.z * r2.z; + r4.x = r3.w * r3.y + cb0[44].y; + r3.y = -r3.w * r3.y + r3.y; + r3.w = cb0[159].z * r3.y; + r3.y = cb0[162].x * r3.y; + r3.yw = max(float2(-127,-127), r3.yw); + r4.y = -cb0[159].x + r4.x; + r4.y = cb0[159].z * r4.y; + r4.y = max(-127, r4.y); + r4.y = exp2(-r4.y); + r4.y = cb0[159].y * r4.y; + r4.z = cmp(5.96046448e-08 < abs(r3.w)); + r4.w = exp2(-r3.w); + r4.w = 1 + -r4.w; + r4.w = r4.w / r3.w; + r3.w = -r3.w * 0.240226507 + 0.693147182; + r3.w = r4.z ? r4.w : r3.w; + r4.x = -cb0[162].z + r4.x; + r4.x = cb0[162].x * r4.x; + r4.x = max(-127, r4.x); + r4.x = exp2(-r4.x); + r4.x = cb0[162].y * r4.x; + r4.z = cmp(5.96046448e-08 < abs(r3.y)); + r4.w = exp2(-r3.y); + r4.w = 1 + -r4.w; + r4.w = r4.w / r3.y; + r3.y = -r3.y * 0.240226507 + 0.693147182; + r3.y = r4.z ? r4.w : r3.y; + r3.y = r4.x * r3.y; + r3.y = r4.y * r3.w + r3.y; + r2.z = -r2.z * r3.z + 1; + r2.z = r2.z * r0.w; + r2.z = r3.y * r2.z; + r2.z = exp2(-r2.z); + r2.z = min(1, r2.z); + r2.z = max(cb0[161].w, r2.z); + r3.yz = saturate(r0.ww * cb0[160].yw + cb0[160].xz); + r2.z = r3.y + r2.z; + r2.z = r2.z + r3.z; + r2.z = min(1, r2.z); + r6.y = mad((int)r3.x, (int)r6.x, (int)r2.w); + r3.xy = (uint2)r6.xy >> int2(16,16); + r3.xy = (uint2)r3.xy; + r3.xy = r3.xy * float2(3.05180438e-05,3.05180438e-05) + float2(-1,-1); + r3.xy = r3.xy * cb0[167].ww + r13.zw; + r3.xy = cb0[165].xy * r3.xy; + r2.w = r14.z * cb0[164].x + cb0[164].y; + r2.w = log2(r2.w); + r2.w = cb0[164].z * r2.w; + r3.z = r2.w / cb0[163].z; + r3.xyzw = t22.SampleLevel(s1_s, r3.xyz, 0).xyzw; + r2.w = -cb0[166].z + r14.z; + r2.w = saturate(1000000 * r2.w); + r3.xyzw = float4(-0,-0,-0,-1) + r3.xyzw; + r3.xyzw = r2.wwww * r3.xyzw + float4(0,0,0,1); + r2.w = 1 + -r2.z; + r4.xyz = cb0[161].xyz * r2.www; + r3.xyz = r4.xyz * r3.www + r3.xyz; + r2.z = r3.w * r2.z; + } else { + r1.y = -cb0[44].y + r1.y; + r2.w = cb0[159].z * r1.y; + r2.w = max(-127, r2.w); + r1.y = cb0[162].x * r1.y; + r1.y = max(-127, r1.y); + r3.w = -cb0[159].x + cb0[44].y; + r3.w = cb0[159].z * r3.w; + r3.w = max(-127, r3.w); + r3.w = exp2(-r3.w); + r3.w = cb0[159].y * r3.w; + r4.x = cmp(5.96046448e-08 < abs(r2.w)); + r4.y = exp2(-r2.w); + r4.y = 1 + -r4.y; + r4.y = r4.y / r2.w; + r2.w = -r2.w * 0.240226507 + 0.693147182; + r2.w = r4.x ? r4.y : r2.w; + r4.x = -cb0[162].z + cb0[44].y; + r4.x = cb0[162].x * r4.x; + r4.x = max(-127, r4.x); + r4.x = exp2(-r4.x); + r4.x = cb0[162].y * r4.x; + r4.y = cmp(5.96046448e-08 < abs(r1.y)); + r4.z = exp2(-r1.y); + r4.z = 1 + -r4.z; + r4.z = r4.z / r1.y; + r1.y = -r1.y * 0.240226507 + 0.693147182; + r1.y = r4.y ? r4.z : r1.y; + r1.y = r4.x * r1.y; + r1.y = r3.w * r2.w + r1.y; + r1.y = r1.y * r0.w; + r1.y = exp2(-r1.y); + r1.y = min(1, r1.y); + r1.y = max(cb0[161].w, r1.y); + r4.xy = saturate(r0.ww * cb0[160].yw + cb0[160].xz); + r0.w = r4.x + r1.y; + r0.w = r0.w + r4.y; + r2.z = min(1, r0.w); + r0.w = 1 + -r2.z; + r3.xyz = cb0[161].xyz * r0.www; + } + r4.xyz = r2.zzz * r1.xzw; + r0.w = r2.x * r2.x + 1; + r0.w = 0.0596831031 * r0.w; + r5.xyz = cb0[156].xyz * r0.www + cb0[158].xyz; + r0.w = -cb0[155].w * cb0[155].w + 1; + r1.y = 12.566371 * r2.y; + r2.x = sqrt(r2.y); + r1.y = r2.x * r1.y; + r1.y = max(0.00100000005, r1.y); + r0.w = r0.w / r1.y; + r2.xyw = saturate(cb0[157].xyz * r0.www + r5.xyz); + r2.xyw = float3(255,255,255) * r2.xyw; + r1.xyz = float3(1,1,1) + -r1.xzw; + r1.xyz = r2.xyw * r1.xyz; + r1.xyz = r1.xyz * r2.zzz + r3.xyz; + + // Reduce fog/atmospheric contributin + if (GLASS_TRANSPARENCY > 0.5f) { + // Boost transmittance to reduce fog density on glass + float3 boostedTrans = lerp(r4.xyz, float3(1,1,1), 0.5f); + float3 reducedInscatter = r1.xyz * 0.35f; + r10.xyz = r0.xyz * boostedTrans + reducedInscatter; + } else { + // Vanilla behavior + r10.xyz = r0.xyz * r4.xyz + r1.xyz; + } + r0.xy = float2(0.5,-0.5) * r12.xy; + r0.xy = sqrt(abs(r0.xy)); + r0.xy = sqrt(r0.xy); + r12.z = -r12.y; + r0.zw = cmp(float2(0,0) < r12.xz); + r1.xy = cmp(r12.xz < float2(0,0)); + r0.zw = (int2)-r0.zw + (int2)r1.xy; + r0.zw = (int2)r0.zw; + r0.xy = r0.xy * r0.zw; + r0.xy = r0.xy * float2(0.5,0.5) + float2(0.5,0.5); + r0.z = (uint)v7.x << 4; + r0.z = max(cb1[r0.z+4].y, cb1[r0.z+4].z); + r0.z = -0.100000024 + r0.z; + r0.w = cmp(0 < r0.z); + r0.z = cmp(r0.z < 0); + r0.z = (int)-r0.w + (int)r0.z; + r0.z = (int)r0.z; + r0.z = saturate(r0.z); + r1.xy = float2(0.5,0.5) + -r0.xy; + r0.xy = r0.zz * r1.xy + r0.xy; + o1.xy = min(float2(1,1), r0.xy); + r0.x = dot(r10.xyz, float3(0.212672904,0.715152204,0.0721750036)); + r0.x = r0.x * r10.w; + r0.x = max(r0.x, r10.w); + r0.x = saturate(10 * r0.x); + r0.x = cmp(0.5 < r0.x); + o1.z = r0.x ? 1.000000 : 0; + + // Modifed Glass Final Output + if (GLASS_TRANSPARENCY > 0.5f) { + float3 glassColor = r10.xyz; + float glassLuma = dot(glassColor, float3(0.2126f, 0.7152f, 0.0722f)); + float maxBrightness = 2.0f; + if (glassLuma > 0.5f) { + float compression = 0.5f + (maxBrightness - 0.5f) * (1.0f - exp(-(glassLuma - 0.5f) / (maxBrightness - 0.5f))); + float scale = compression / max(glassLuma, 0.001f); + glassColor *= scale; + } + + o0.xyz = glassColor; + o0.w = r10.w; + } else { + // Vanilla output + o0.xyzw = r10.xyzw; + } + o1.w = 0; + return; +} \ No newline at end of file From 2224e9b8bf7824d85f4b7265c3275c72d642476a Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Wed, 4 Feb 2026 09:12:37 +0000 Subject: [PATCH 12/19] chore(endfield): Added glass shader backup ASM --- .../0xB8941FB1.ps_5_0_original_backup.asm | 1754 +++++++++++++++++ 1 file changed, 1754 insertions(+) create mode 100644 src/games/endfield/glass/0xB8941FB1.ps_5_0_original_backup.asm diff --git a/src/games/endfield/glass/0xB8941FB1.ps_5_0_original_backup.asm b/src/games/endfield/glass/0xB8941FB1.ps_5_0_original_backup.asm new file mode 100644 index 000000000..8b6a16c55 --- /dev/null +++ b/src/games/endfield/glass/0xB8941FB1.ps_5_0_original_backup.asm @@ -0,0 +1,1754 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Wed Feb 4 07:24:18 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4096], dynamicIndexed +dcl_constantbuffer CB2[24], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_comparison +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_sampler s6, mode_default +dcl_resource_structured t0, 4 +dcl_resource_texture2darray (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_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture3d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 40 +mul r0.xy, v0.xyxx, cb0[82].zwzz +mad r0.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r1.xyzw, -r0.wwww, cb0[25].xyzw +mad r1.xyzw, cb0[24].xyzw, r0.zzzz, r1.xyzw +mad r1.xyzw, cb0[26].xyzw, v0.zzzz, r1.xyzw +add r1.xyzw, r1.xyzw, cb0[27].xyzw +div r1.xyz, r1.xyzx, r1.wwww +lt r0.z, l(0.000000), v3.w +movc r0.z, r0.z, l(1.000000), l(-1.000000) +eq r0.w, l(0.000000), cb0[86].w +add r2.xyz, -r1.xyzx, cb0[44].xyzx +mov r3.x, cb0[0].z +mov r3.y, cb0[1].z +mov r3.z, cb0[2].z +movc r2.xyz, r0.wwww, r2.xyzx, r3.xyzx +dp3 r0.w, r2.xyzx, r2.xyzx +max r2.w, r0.w, l(9.999999939E-09) +rsq r2.w, r2.w +mul r4.xyz, r2.wwww, r2.xyzx +mul r0.w, r0.w, r2.w +add r5.xy, -v1.xyxx, v1.zwzz +mad r5.zw, cb2[2].wwww, r5.xxxy, v1.xxxy +mad r5.zw, r5.zzzw, cb2[11].xxxy, cb2[11].zzzw +sample_b_indexable(texture2d)(float,float,float,float) r6.xyzw, r5.zwzz, t2.xyzw, s4, cb0[108].x +mad r5.xy, cb2[3].xxxx, r5.xyxx, v1.xyxx +mad r5.xy, r5.xyxx, cb2[12].xyxx, cb2[12].zwzz +add r3.w, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, r5.xyxx, t3.xyzw, s5, r3.w +mad r5.xy, r5.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +lt r7.xy, |r5.xyxx|, l(0.012000, 0.012000, 0.000000, 0.000000) +movc r5.xy, r7.xyxx, l(0,0,0,0), r5.xyxx +mul r7.xy, r5.xyxx, cb2[0].xxxx +add r7.zw, -r6.wwww, r5.wwwz +mad r3.w, cb2[1].z, r7.z, r6.w +mul r3.w, r3.w, cb2[8].w +mad r4.w, r3.w, v4.x, -r3.w +mad r8.w, cb2[23].x, r4.w, r3.w +add r3.w, -cb2[0].z, cb2[0].w +mad r9.w, r5.z, r3.w, cb2[0].z +add_sat r3.w, l(-1.000000), cb2[3].w +add r4.w, -r6.w, cb2[4].y +mad r3.w, r3.w, r4.w, r6.w +mov_sat r4.w, cb2[21].y +add_sat r10.xy, l(-1.000000, -2.000000, 0.000000, 0.000000), cb2[21].yyyy +mad r5.z, r10.x, r7.w, r6.w +add r6.w, -r5.z, r5.w +mad r5.z, r10.y, r6.w, r5.z +add r5.z, r5.z, l(-1.000000) +mad r5.z, r4.w, r5.z, l(1.000000) +mad_sat r5.z, r5.z, l(1.11111116), l(-0.0555555597) +ishl r6.w, v7.x, l(4) +ge r7.z, r5.z, l(0.100000) +and r7.z, r7.z, l(0x3f800000) +mul r7.w, r7.z, cb1[r6.w + 15].w +mul r6.xyz, r6.xyzx, cb2[8].xyzx +mul_sat r6.xyz, r6.xyzx, cb2[4].zzzz +add r10.xyz, -r6.xyzx, cb2[8].xyzx +mad r6.xyz, cb2[4].xxxx, r10.xyzx, r6.xyzx +mad r7.z, -cb1[r6.w + 15].w, r7.z, l(1.000000) +mad r10.xyz, cb1[r6.w + 15].xyzx, r7.wwww, r7.zzzz +mul r11.xyz, r6.xyzx, r10.xyzx +mul r12.xyz, v2.zxyz, v3.yzxy +mad r12.xyz, v2.yzxy, v3.zxyz, -r12.xyzx +mul r12.xyz, r0.zzzz, r12.xyzx +mul r7.yzw, r7.yyyy, r12.xxyz +mad r7.xyz, v3.xyzx, r7.xxxx, r7.yzwy +dp2 r0.z, r5.xyxx, r5.xyxx +add r0.z, -r0.z, l(1.000000) +max r0.z, r0.z, l(0.000000) +sqrt r0.z, r0.z +lt r5.x, l(0.000000), cb2[1].w +movc r5.x, r5.x, l(-1.000000), l(1.000000) +movc r5.x, v8.x, l(1.000000), r5.x +mul r0.z, r0.z, r5.x +mad r7.xyz, v2.xyzx, r0.zzzz, r7.xyzx +dp3 r0.z, r7.xyzx, r7.xyzx +rsq r0.z, r0.z +mul r7.xyz, r0.zzzz, r7.xyzx +dp3 r0.z, -r4.xyzx, r7.xyzx +mul r5.x, cb2[22].x, cb2[22].x +mad r5.y, -r0.z, r0.z, l(1.000000) +mad r5.x, -r5.x, r5.y, l(1.000000) +sqrt r5.y, r5.x +mad r5.y, cb2[22].x, r0.z, r5.y +ge r5.x, r5.x, l(0.000000) +mul r12.xyz, r7.xyzx, r5.yyyy +mad r12.xyz, cb2[22].xxxx, -r4.xyzx, -r12.xyzx +and r12.xyz, r5.xxxx, r12.xyzx +mul r5.xy, r12.yyyy, cb0[1].xyxx +mad r5.xy, cb0[0].xyxx, r12.xxxx, r5.xyxx +mad r5.xy, cb0[2].xyxx, r12.zzzz, r5.xyxx +mul r5.xy, r5.xyxx, cb2[22].yyyy +mad r0.xy, r5.xyxx, r8.wwww, r0.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r12.xyz, r0.xyxx, t4.xyzw, s6, cb0[108].x +max r0.x, v5.z, l(9.999999939E-09) +div r0.xy, v5.xyxx, r0.xxxx +max r5.x, v6.z, l(9.999999939E-09) +div r5.xy, v6.xyxx, r5.xxxx +add r13.xy, r0.xyxx, -r5.xyxx +mul r0.x, l(0.080000), cb2[0].y +mul r14.xyz, r3.wwww, r11.xyzx +mad r14.xyz, r6.xyzx, r10.xyzx, -r14.xyzx +mad r0.x, -r0.x, r3.w, r0.x +mad r15.xyz, r11.xyzx, r3.wwww, r0.xxxx +dp3 r0.x, r7.xyzx, r4.xyzx +mad r16.xyzw, r9.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r0.y, r16.x, r16.x +max r0.x, r0.x, l(0.000000) +mul r3.w, r0.x, l(-9.280000) +exp r3.w, r3.w +min r0.y, r0.y, r3.w +mad r0.y, r0.y, r16.x, r16.y +mad r5.xy, r0.yyyy, l(-1.040000, 1.040000, 0.000000, 0.000000), r16.zwzz +eq r0.y, l(1.000000), cb0[113].y +mul r16.xyzw, r1.yyyy, cb0[241].xyzw +mad r16.xyzw, cb0[240].xyzw, r1.xxxx, r16.xyzw +mad r16.xyzw, cb0[242].xyzw, r1.zzzz, r16.xyzw +add r16.xyzw, r16.xyzw, cb0[243].xyzw +div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r16.w +mul r16.xyz, r16.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r16.xyz, r3.wwww, r16.xyzx +mad_sat r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +mul r16.xy, r16.xyxx, cb0[82].xyxx +ftou r17.xy, r16.xyxx +mad r3.w, cb0[84].z, r16.z, cb0[84].w +div r17.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w +ftou r16.xy, v0.xyxx +mul r3.w, r1.y, cb0[1].z +mad r3.w, cb0[0].z, r1.x, r3.w +mad r3.w, cb0[2].z, r1.z, r3.w +add r3.w, r3.w, cb0[3].z +mov r16.z, |r3.w| +movc r16.xyz, r0.yyyy, r17.xyzx, r16.xyzx +mad r17.xyz, r7.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r1.xyzx +mad r18.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r18.xyz, r17.xzyx, -r18.xyzx +max r0.y, |r18.y|, |r18.x| +add r0.y, r0.y, l(-464.000000) +mul_sat r0.y, r0.y, l(0.031250) +add r3.w, |r18.z|, l(-208.000000) +mul_sat r3.w, r3.w, l(0.031250) +max r0.y, r0.y, r3.w +ne r3.w, l(0.000000), cb0[210].w +lt r10.w, r0.y, l(1.000000) +and r3.w, r3.w, r10.w +if_nz r3.w + mad r18.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r18.xyz, r17.xzyx, -r18.xyzx + max r3.w, |r18.y|, |r18.x| + add r3.w, r3.w, l(-29.000000) + mul_sat r3.w, r3.w, l(0.500000) + add r10.w, |r18.z|, l(-13.000000) + mul_sat r10.w, r10.w, l(0.500000) + max r3.w, r3.w, r10.w + lt r10.w, r3.w, l(1.000000) + if_nz r10.w + mad r18.xyz, r17.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r18.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r18.xyzx, t11.yzwx, s1, l(0.000000) + add r10.w, -r3.w, l(1.000000) + mul r11.w, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r11.w, r11.w, r18.y + min r11.w, r12.w, r11.w + mul r18.w, r11.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t12.xyzw, s0, l(0.000000) + mad r11.w, r20.w, r10.w, r0.y + add r21.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t12.xyzw, s0, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.yyyy, r21.xyzx + mov r21.w, r19.y + mul r21.xyzw, r10.wwww, r21.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t12.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.xxxx, r18.xyzx + mov r18.w, r19.x + mul r18.xyzw, r10.wwww, r18.xyzw + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r20.xyzx + mul r19.xyzw, r10.wwww, r19.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r11.w, r0.y + endif + mad r20.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r20.xyz, r17.xzyx, -r20.xyzx + max r10.w, |r20.y|, |r20.x| + add r10.w, r10.w, l(-116.000000) + mul_sat r10.w, r10.w, l(0.125000) + add r12.w, |r20.z|, l(-52.000000) + mul_sat r12.w, r12.w, l(0.125000) + max r10.w, r10.w, r12.w + lt r12.w, r10.w, l(1.000000) + if_nz r12.w + mad r20.xyz, r17.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r22.xyz, r20.xyzx, cb0[211].xyzx + round_ni r22.xyz, r22.xyzx + mad r20.xyz, r20.xyzx, cb0[211].xyzx, -r22.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t13.yzwx, s1, l(0.000000) + add r12.w, -r10.w, l(1.000000) + mul r3.w, r3.w, r12.w + mul r12.w, l(0.500000), cb0[211].y + mad r13.w, -cb0[211].y, l(0.500000), l(1.000000) + max r12.w, r12.w, r20.y + min r12.w, r13.w, r12.w + mul r20.w, r12.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t14.xyzw, s0, l(0.000000) + mad r11.w, r23.w, r3.w, r11.w + add r24.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r24.xyz, r24.xyzx, t14.xyzw, s0, l(0.000000) + mad r24.xyz, r24.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r24.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r3.wwww, r21.xyzw + add r20.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t14.xyzw, s0, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r20.xyzx + mov r20.w, r22.x + mad r18.xyzw, r20.xyzw, r3.wwww, r18.xyzw + mad r20.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r20.xyzx + mad r19.xyzw, r22.xyzw, r3.wwww, r19.xyzw + endif + lt r3.w, l(0.000000), r10.w + if_nz r3.w + mad r17.xyz, r17.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r17.xyzx, cb0[211].xyzx + mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r20.xyzx + mad r20.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r17.xyz, r22.xyzx, r17.xyzx + min r17.xyz, r20.xyzx, r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r17.xyzx, t15.yzwx, s1, l(0.000000) + add r3.w, -r0.y, l(1.000000) + mul r3.w, r3.w, r10.w + max r10.w, r22.y, r17.y + min r10.w, r20.y, r10.w + mul r17.w, r10.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t16.xyzw, s0, l(0.000000) + add r22.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t16.xyzw, s0, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r23.yyyy, r22.xyzx + mov r22.w, r23.y + mad r21.xyzw, r22.xyzw, r3.wwww, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s0, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r23.xxxx, r17.xyzx + mov r17.w, r23.x + mad r18.xyzw, r17.xyzw, r3.wwww, r18.xyzw + mad r17.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r23.wwww, r17.xyzx + mad r19.xyzw, r23.xyzw, r3.wwww, r19.xyzw + mad r11.w, r20.w, r3.w, r11.w + endif + mad_sat r3.w, r11.w, l(2.000000), l(-1.000000) + add r17.x, -r0.y, r3.w + add r0.y, r0.y, r3.w + mul r17.y, r0.y, l(0.500000) +else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r17.xy, l(0,1.000000,0,0) +endif +mul r20.xyzw, r17.yyyx, cb0[213].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.zw, r17.yyyx, cb0[213].wwwy +mad r20.w, r17.w, l(0.375000), r17.z +add r19.xyzw, r19.xyzw, r20.xyzw +mul r20.xyzw, r17.yyyx, cb0[214].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.zw, r17.yyyx, cb0[214].wwwy +mad r20.w, r17.w, l(0.375000), r17.z +add r18.xyzw, r18.xyzw, r20.xyzw +mul r20.xyzw, r17.yyyx, cb0[215].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.xy, r17.yxyy, cb0[215].wyww +mad r20.w, r17.y, l(0.375000), r17.x +add r17.xyzw, r20.xyzw, r21.xyzw +dp3 r0.y, r19.xyzx, r7.xyzx +add r0.y, r19.w, r0.y +max r19.x, r0.y, l(0.000000) +dp3 r0.y, r18.xyzx, r7.xyzx +add r0.y, r18.w, r0.y +max r19.y, r0.y, l(0.000000) +dp3 r0.y, r17.xyzx, r7.xyzx +add r0.y, r17.w, r0.y +max r19.z, r0.y, l(0.000000) +add r0.y, r0.z, r0.z +mad r17.xyz, r7.xyzx, -r0.yyyy, -r4.xyzx +add r0.y, l(-1.000000), cb0[113].x +max r0.z, r9.w, l(0.001000) +log r0.z, r0.z +mad r0.z, -r0.z, l(1.200000), l(1.000000) +add r0.y, -r0.z, r0.y +utof r18.xy, r16.xyxx +mul r18.zw, r18.xxxy, cb3[0].wwww +round_ni r18.zw, r18.zzzw +add r0.z, r16.z, -cb3[2].y +round_ni r0.z, r0.z +add r3.w, l(-1.000000), cb3[1].x +max r10.w, r0.z, l(0.000000) +min r3.w, r3.w, r10.w +ge r0.z, r3.w, r0.z +mad r10.w, r18.w, cb3[0].x, r18.z +ftoi r10.w, r10.w +iadd r10.w, r10.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.w, r10.w, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r10.w +and r0.z, r0.z, r3.w +mul r20.xyz, r19.xyzx, cb0[111].xxxx +dp3 r3.w, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r1.w, l(1.000000) +mov r7.w, l(1.000000) +mov r20.xyz, l(0,0,0,0) +mov r10.w, l(1.000000) +mov r11.w, r0.z +mov r12.w, l(0) +loop + lt r13.w, l(0.010000), r10.w + ine r14.w, r11.w, l(0) + and r14.w, r13.w, r14.w + if_nz r14.w + firstbit_lo r14.w, r11.w + ishl r15.w, l(1), r14.w + xor r11.w, r11.w, r15.w + ishl r14.w, r14.w, l(3) + dp4 r21.x, cb3[r14.w + 6].xyzw, r1.xyzw + dp4 r21.y, cb3[r14.w + 7].xyzw, r1.xyzw + dp4 r21.z, cb3[r14.w + 8].xyzw, r1.xyzw + ge r22.xyz, cb3[r14.w + 5].xyzx, |r21.xyzx| + and r15.w, r22.y, r22.x + and r15.w, r22.z, r15.w + if_nz r15.w + mul r15.w, l(0.100000), cb3[r14.w + 5].x + mul r22.xyz, |r21.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.zw, r22.xxxy, r22.xxxy + add r22.xyw, -|r21.xyxz|, cb3[r14.w + 5].xyxz + mul r22.xyw, r22.xyxw, cb3[r14.w + 9].xyxz + eq r17.w, l(1.000000), cb3[r14.w + 10].x + if_nz r17.w + dp3 r23.x, cb3[r14.w + 6].xyzx, r17.xyzx + dp3 r23.y, cb3[r14.w + 7].xyzx, r17.xyzx + dp3 r23.z, cb3[r14.w + 8].xyzx, r17.xyzx + add r24.xyz, -r21.xyzx, cb3[r14.w + 5].xyzx + div r24.xyz, r24.xyzx, r23.xyzx + add r25.xyz, -r21.xyzx, -cb3[r14.w + 5].xyzx + div r25.xyz, r25.xyzx, r23.xyzx + lt r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + movc r24.xyz, r26.xyzx, r24.xyzx, r25.xyzx + min r17.w, r24.y, r24.x + min r17.w, r24.z, r17.w + mad r21.xyz, r23.xyzx, r17.wwww, r21.xyzx + else + mov r21.xyz, r17.xyzx + endif + dp3 r17.w, r21.xyzx, r21.xyzx + rsq r17.w, r17.w + mul r21.xyz, r17.wwww, r21.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + lt r24.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r23.xyz, -r23.xyzx, r24.xyzx + itof r23.xyz, r23.xyzx + dp3 r17.w, r21.xyzx, r23.xyzx + div r21.xyz, r21.xyzx, r17.wwww + lt r17.w, r21.z, l(0.000000) + add r21.zw, -|r21.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r21.zw, r21.zzzw, r23.xxxy + movc r21.xy, r17.wwww, r21.zwzz, r21.xyxx + dp4 r17.w, cb3[r14.w + 4].xyzw, r7.xyzw + max r17.w, r17.w, l(0.000000) + max r17.w, r17.w, l(0.000100) + min r19.w, r22.w, r22.y + min r19.w, r19.w, r22.x + add r18.z, r18.w, r18.z + mad r18.z, r22.z, r22.z, r18.z + mad r15.w, r15.w, r15.w, -r18.z + mul r15.w, r15.w, cb3[r14.w + 9].x + mul r15.w, r15.w, cb3[r14.w + 9].x + add r18.z, l(1.000000), -cb3[r14.w + 10].y + mul r15.w, r15.w, r18.z + mul r15.w, r15.w, l(100.000000) + mad_sat r15.w, r19.w, cb3[r14.w + 10].y, r15.w + mul r18.z, r15.w, cb3[r14.w + 10].w + mad r21.xy, r21.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r21.xy, r21.xyxx, cb3[1].wwww, cb3[2].wwww + mov r21.z, cb3[r14.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r21.xyz, r21.xyzx, t1.xyzw, s2, r0.y + mul r21.xyz, r21.xyzx, cb3[r14.w + 9].wwww + div r18.w, r3.w, r17.w + min r18.w, |r18.w|, l(1.000000) + mad r18.w, r18.w, l(2.000000), r3.w + add r17.w, r17.w, l(2.000000) + div r17.w, r18.w, r17.w + add r17.w, r17.w, l(-1.000000) + mad r17.w, r17.w, cb0[112].w, l(1.000000) + mul r21.xyz, r17.wwww, r21.xyzx + mul r21.xyz, r18.zzzz, r21.xyzx + mad r20.xyz, r21.xyzx, r10.wwww, r20.xyzx + mad r14.w, -r15.w, cb3[r14.w + 10].w, l(1.000000) + mul r10.w, r10.w, r14.w + endif + mov r12.w, l(-1) + continue + else + mov r12.w, r13.w + break + endif + mov r12.w, r13.w +endloop +if_nz r12.w + dp3 r0.z, r17.xyzx, r17.xyzx + rsq r0.z, r0.z + mul r21.xyz, r0.zzzz, r17.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + lt r23.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r22.xyz, -r22.xyzx, r23.xyzx + itof r22.xyz, r22.xyzx + dp3 r0.z, r21.xyzx, r22.xyzx + div r21.xyz, r21.xyzx, r0.zzzz + lt r0.z, r21.z, l(0.000000) + add r18.zw, -|r21.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r18.zw, r18.zzzw, r22.xxxy + movc r18.zw, r0.zzzz, r18.zzzw, r21.xxxy + mov r7.w, l(1.000000) + dp4 r0.z, cb3[3].xyzw, r7.xyzw + max r0.z, r0.z, l(0.000000) + max r0.z, r0.z, l(0.000100) + mad r18.zw, r18.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r21.xy, r18.zwzz, cb3[1].wwww, cb3[2].wwww + mov r21.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r21.xyz, r21.xyzx, t1.xyzw, s2, r0.y + div r0.y, r3.w, r0.z + min r0.y, |r0.y|, l(1.000000) + mad r0.y, r0.y, l(2.000000), r3.w + add r0.z, r0.z, l(2.000000) + div r0.y, r0.y, r0.z + add r0.y, r0.y, l(-1.000000) + mad r0.y, r0.y, cb0[112].w, l(1.000000) + mul r21.xyz, r0.yyyy, r21.xyzx + mad r20.xyz, r21.xyzx, r10.wwww, r20.xyzx +endif +mul r19.xyz, r14.xyzx, r19.xyzx +add r0.y, r5.w, l(-1.000000) +mad r0.y, cb2[1].x, r0.y, l(1.000000) +mul r19.xyz, r0.yyyy, r19.xyzx +mul r20.xyz, r20.xyzx, cb0[112].zzzz +mul r20.xyz, r20.xyzx, cb0[111].yyyy +mul_sat r0.y, r15.y, l(50.000000) +mul r0.y, r5.y, r0.y +mad r5.xyw, r15.xyxz, r5.xxxx, r0.yyyy +mul r5.xyw, r5.xyxw, r20.xyxz +mad r5.xyw, r19.xyxz, cb0[111].xxxx, r5.xyxw +lt r0.y, cb6[35].w, l(0.990000) +if_nz r0.y + ftoi r0.y, cb6[35].x + ieq r0.z, r0.y, l(2) + movc r19.xyz, r0.zzzz, cb6[20].xyzx, cb0[44].xyzx + add r19.xyz, r1.xyzx, -r19.xyzx + dp3 r0.z, r19.xyzx, r19.xyzx + add r0.z, -r0.z, cb6[34].w + mul_sat r0.z, r0.z, cb6[34].z + lt r1.w, l(0.000000), r0.z + if_nz r1.w + ilt r0.y, l(0), r0.y + if_nz r0.y + add r19.xyz, r1.xyzx, -cb6[20].xyzx + add r20.xyz, r1.xyzx, -cb6[21].xyzx + add r21.xyz, r1.xyzx, -cb6[22].xyzx + add r22.xyz, r1.xyzx, -cb6[23].xyzx + dp3 r19.x, r19.xyzx, r19.xyzx + dp3 r19.y, r20.xyzx, r20.xyzx + dp3 r19.z, r21.xyzx, r21.xyzx + dp3 r19.w, r22.xyzx, r22.xyzx + lt r20.x, r19.x, cb6[20].w + lt r20.y, r19.y, cb6[21].w + lt r20.z, r19.z, cb6[22].w + lt r20.w, r19.w, cb6[23].w + and r21.xyzw, r20.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r20.xyz, r20.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r20.xyz, r20.xyzx, r21.yzwy + max r21.yzw, r20.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.y, r21.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.y, -r0.y, l(4.000000) + max r0.y, r0.y, l(0.000000) + min r0.y, r0.y, l(3.000000) + add r1.w, r0.y, l(1.000000) + min r1.w, r1.w, l(3.000000) + ftou r1.w, r1.w + dp3 r3.w, r19.yzwy, icb[r1.w + 0].yzwy + div r1.w, r3.w, cb6[r1.w + 20].w + ge r3.w, r1.w, l(0.000000) + ge r1.w, l(1.000000), r1.w + and r1.w, r1.w, r3.w + if_nz r1.w + ftou r1.w, r0.y + add r18.zw, r18.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r3.w, r18.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r3.w, r3.w + mul r3.w, r3.w, l(52.982918) + frc r3.w, r3.w + dp4 r7.w, r19.xyzw, icb[r1.w + 0].xyzw + div r1.w, r7.w, cb6[r1.w + 20].w + sqrt r1.w, r1.w + add r1.w, r1.w, l(-0.900000) + mul r1.w, r1.w, l(12.000000) + ge r1.w, r1.w, r3.w + and r1.w, r1.w, l(0x3f800000) + add r0.y, r0.y, r1.w + endif + dp3 r1.w, r7.xyzx, cb5[0].xyzx + max r1.w, r1.w, l(0.000000) + min r1.w, r1.w, l(0.900000) + add r1.w, -r1.w, l(1.000000) + ftou r3.w, r0.y + ishl r7.w, r3.w, l(2) + mul r18.zw, r1.wwww, cb6[r3.w + 24].xxxy + max r1.w, r18.z, l(0.000000) + mad r19.xyz, -cb5[0].xyzx, r1.wwww, r1.xyzx + mad r19.xyz, r7.xyzx, r18.wwww, r19.xyzx + mul r20.xyz, r19.yyyy, cb6[r7.w + 1].xyzx + mad r19.xyw, cb6[r7.w + 0].xyxz, r19.xxxx, r20.xyxz + mad r19.xyz, cb6[r7.w + 2].xyzx, r19.zzzz, r19.xywx + add r19.xyz, r19.xyzx, cb6[r7.w + 3].xyzx + ge r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ge r21.xyz, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r20.xyz, r20.xyzx, r21.xyzx + or r1.w, r20.y, r20.x + or r1.w, r20.z, r1.w + and r3.w, r19.z, l(0x7fffffff) + ult r3.w, l(0x7f800000), r3.w + or r20.z, r1.w, r3.w + ftoi r0.y, r0.y + mad r18.zw, r19.xxxy, cb6[r0.y + 28].zzzw, cb6[r0.y + 28].xxxy + mad r19.xy, r18.zwzz, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r19.xy, r19.xyxx + mad r18.zw, r18.zzzw, cb6[32].zzzw, -r19.xxxy + add r21.xyzw, r18.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r22.xw, r21.xxxz, r21.xxxz + min r21.xz, r18.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r23.xy, r18.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r23.zw, r22.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r18.zzzw + add r18.zw, -r18.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r18.zw, -r21.xxxz, r21.xxxz, r18.zzzw + mad r21.xy, -r23.xyxx, r23.xyxx, r21.ywyy + mov r24.x, r23.z + mov r24.y, r18.z + mov r24.z, r21.x + mov r24.w, r22.x + mul r24.xyzw, r24.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r22.x, r23.w + mov r22.y, r18.w + mov r22.z, r21.y + mul r21.xyzw, r22.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r22.xyzw, r24.ywyw, r24.xzxz + add r23.xyzw, r21.yyww, r21.xxzz + div r18.zw, r24.yyyw, r22.zzzw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r24.xy, r18.zwzz, cb6[32].xxxx + div r18.zw, r21.yyyw, r23.yyyw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r24.zw, r18.zzzw, cb6[32].yyyy + mul r21.xyzw, r22.xyzw, r23.xyzw + mad r22.xyzw, r19.xyxy, cb6[32].xyxy, r24.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.y, r22.xyxx, t5.xxxx, s3, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r22.zwzz, t5.xxxx, s3, r19.z + mul r1.w, r1.w, r21.y + mad r0.y, r21.x, r0.y, r1.w + mad r22.xyzw, r19.xyxy, cb6[32].xyxy, r24.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r22.xyxx, t5.xxxx, s3, r19.z + mad r0.y, r21.z, r1.w, r0.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r22.zwzz, t5.xxxx, s3, r19.z + mad r0.y, r21.w, r1.w, r0.y + movc r20.x, r20.z, l(1.000000), r0.y + else + mov r20.xz, l(1.000000,0,0,0) + endif + else + mov r20.xz, l(1.000000,0,0,0) + endif + lt r0.y, r0.z, l(1.000000) + if_nz r0.y + dp3 r0.y, r7.xyzx, cb5[0].xyzx + max r0.y, r0.y, l(0.000000) + min r0.y, r0.y, l(0.900000) + add r0.y, -r0.y, l(1.000000) + mul r18.zw, r0.yyyy, cb6[584].xxxy + mad r19.xyz, -cb5[0].xyzx, r18.zzzz, r1.xyzx + mad r19.xyz, r7.xyzx, r18.wwww, r19.xyzx + mul r18.zw, r19.yyyy, cb6[581].xxxy + mad r18.zw, cb6[580].xxxy, r19.xxxx, r18.zzzw + mad r18.zw, cb6[582].xxxy, r19.zzzz, r18.zzzw + add r18.zw, r18.zzzw, cb6[583].xxxy + lt r21.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r18.zwzz + and r0.y, r21.y, r21.x + lt r21.xy, r18.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r1.w, r21.y, r21.x + and r0.y, r0.y, r1.w + if_nz r0.y + mul r0.y, r18.w, cb6[585].z + round_ni r0.y, r0.y + add r0.y, r18.z, r0.y + mul r0.y, r0.y, cb6[585].y + ftou r0.y, r0.y + umin r0.y, r0.y, l(127) + and r1.w, l(0x0000ffff), cb6[r0.y + 587].x + f16tof32 r21.x, r1.w + ge r1.w, r21.x, l(0.000000) + if_nz r1.w + mov r22.x, cb6[576].x + mov r22.y, cb6[577].x + mov r22.z, cb6[578].x + mov r22.w, cb6[r0.y + 587].y + mov r19.w, l(1.000000) + dp4 r22.x, r22.xyzw, r19.xyzw + mov r23.x, cb6[576].y + mov r23.y, cb6[577].y + mov r23.z, cb6[578].y + mov r23.w, cb6[r0.y + 587].z + dp4 r22.y, r23.xyzw, r19.xyzw + mov r23.x, cb6[576].z + mov r23.y, cb6[577].z + mov r23.z, cb6[578].z + mov r23.w, cb6[r0.y + 587].w + dp4 r1.w, r23.xyzw, r19.xyzw + lt r18.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xxxy + lt r3.w, l(0.000000), r1.w + and r7.w, r18.w, r18.z + and r3.w, r3.w, r7.w + lt r18.zw, r22.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + lt r7.w, r1.w, l(1.000000) + and r10.w, r18.w, r18.z + and r7.w, r7.w, r10.w + and r3.w, r3.w, r7.w + if_nz r3.w + ushr r0.y, cb6[r0.y + 587].x, l(16) + f16tof32 r21.y, r0.y + mad r18.zw, r22.xxxy, cb6[584].zzzw, r21.xxxy + mad r19.xy, r18.zwzz, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r19.xy, r19.xyxx + mad r18.zw, r18.zzzw, cb6[586].zzzw, -r19.xxxy + add r21.xyzw, r18.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r22.xw, r21.xxxz, r21.xxxz + min r19.zw, r18.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + max r21.xz, r18.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r23.xy, r22.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r18.zwzz + add r18.zw, -r18.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r18.zw, -r19.zzzw, r19.zzzw, r18.zzzw + mad r19.zw, -r21.xxxz, r21.xxxz, r21.yyyw + mov r21.x, r23.x + mov r21.y, r18.z + mov r21.z, r19.z + mov r21.w, r22.x + mul r21.xyzw, r21.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r22.x, r23.y + mov r22.y, r18.w + mov r22.z, r19.w + mul r22.xyzw, r22.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r23.xyzw, r21.ywyw, r21.xzxz + add r24.xyzw, r22.yyww, r22.xxzz + div r18.zw, r21.yyyw, r23.zzzw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r21.xy, r18.zwzz, cb6[586].xxxx + div r18.zw, r22.yyyw, r24.yyyw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r21.zw, r18.zzzw, cb6[586].yyyy + mad r22.xyzw, r19.xyxy, cb6[586].xyxy, r21.xzyz + mad r19.xyzw, r19.xyxy, cb6[586].xyxy, r21.xwyw + mul r21.xyzw, r23.xyzw, r24.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.y, r22.xyxx, t8.xxxx, s3, r1.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r22.zwzz, t8.xxxx, s3, r1.w + mul r3.w, r3.w, r21.y + mad r0.y, r21.x, r0.y, r3.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r19.xyxx, t8.xxxx, s3, r1.w + mad r0.y, r21.z, r3.w, r0.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t8.xxxx, s3, r1.w + mad r20.y, r21.w, r1.w, r0.y + else + mov r20.y, l(1.000000) + endif + else + mov r20.y, l(1.000000) + endif + else + mov r20.y, l(1.000000) + endif + movc r20.x, r20.z, r20.y, r20.x + else + mov r20.y, l(1.000000) + endif + add r0.y, -r20.y, r20.x + mad r0.y, r0.z, r0.y, r20.y + lt r0.z, l(0.001000), r0.y + if_nz r0.z + add r19.xyz, r1.xyzx, -cb0[173].xyzx + mad r18.zw, cb0[176].xxxz, r19.yyyy, r19.xxxz + mul r19.yw, r18.zzzw, cb0[174].zzzz + mul r20.xy, cb0[175].xyxx, cb0[183].wwww + mad r18.zw, r18.zzzw, cb0[174].zzzz, r20.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r18.zwzz, t7.yzxw, s1, l(0.000000) + mad r18.zw, r19.yyyw, cb0[175].wwww, r20.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r18.zwzz, t7.yzwx, s1, l(0.000000) + dp2 r3.w, r19.xzxx, r19.xzxx + sqrt r3.w, r3.w + add r7.w, -cb0[174].x, cb0[174].y + add r3.w, r3.w, -cb0[174].x + div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w + mul_sat r3.w, r3.w, r7.w + mad r7.w, r3.w, l(-2.000000), l(3.000000) + mul r3.w, r3.w, r3.w + mul r3.w, r3.w, r7.w + add r1.w, -r0.z, r1.w + mad r0.z, r3.w, r1.w, r0.z + add r0.z, r0.z, l(-1.000000) + mad r0.z, cb0[175].z, r0.z, l(1.000000) + mul r0.y, r0.z, r0.y + endif + add r0.z, -r0.y, cb6[35].z + mad r0.y, cb6[35].w, r0.z, r0.y +else + mov r0.y, cb6[35].z +endif +min r0.y, r0.y, l(1.000000) +add r0.y, r0.y, l(-1.000000) +mad r19.x, cb6[34].x, r0.y, l(1.000000) +lt r0.y, l(0.001000), r19.x +if_nz r0.y + dp3 r0.y, -cb5[0].xyzx, r17.xyzx + mad r20.xyz, cb5[0].xyzx, r0.yyyy, r17.xyzx + lt r0.y, r0.y, cb5[4].z + dp3 r0.z, r20.xyzx, r20.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r20.xyz, r0.zzzz, r20.xyzx + mul r20.xyz, r20.xyzx, cb5[4].yyyy + mad r20.xyz, -cb5[0].xyzx, cb5[4].zzzz, r20.xyzx + dp3 r0.z, r20.xyzx, r20.xyzx + rsq r0.z, r0.z + mul r20.xyz, r0.zzzz, r20.xyzx + movc r20.xyz, r0.yyyy, r20.xyzx, r17.xyzx + mad r21.xyz, r2.xyzx, r2.wwww, r20.xyzx + dp3 r0.y, r21.xyzx, r21.xyzx + max r0.y, r0.y, l(0.0000610351562) + rsq r0.y, r0.y + mul r21.xyz, r0.yyyy, r21.xyzx + dp3_sat r9.y, r20.xyzx, r7.xyzx + dp3_sat r0.y, r7.xyzx, r21.xyzx + min r9.z, r0.x, l(1.000000) + mul r0.z, r9.w, r9.w + mul r0.z, r0.z, r0.z + mad r1.w, r0.y, r0.z, -r0.y + mad r0.y, r1.w, r0.y, l(1.000000) + dp3_sat r1.w, r4.xyzx, r21.xyzx + add r1.w, -r1.w, l(1.000000) + mul r3.w, r1.w, r1.w + mul r3.w, r3.w, r3.w + mul r7.w, r1.w, r3.w + add r10.w, -r9.w, l(1.000000) + mad r11.w, -r10.w, l(0.383026), l(-0.0761947036) + mad r11.w, r10.w, r11.w, l(1.049970) + mad r10.w, r10.w, r11.w, l(0.409255) + min r10.w, r10.w, l(0.999000) + add r11.w, -r10.w, l(1.000000) + add r20.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r20.xyz, r20.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r15.xyzx + mad r1.w, -r3.w, r1.w, l(1.000000) + mad r21.xyz, r15.xyzx, r1.wwww, r7.wwww + mul r0.y, r0.y, r0.y + div r0.y, r0.z, r0.y + mad r18.zw, -r9.zzzy, r0.zzzz, r9.zzzy + mad r18.zw, r18.zzzw, r9.zzzy, r0.zzzz + sqrt r18.zw, r18.zzzw + mul r18.zw, r9.yyyz, r18.zzzw + add r0.z, r18.w, r18.z + add r0.z, r0.z, l(0.000100) + div r0.z, l(0.500000), r0.z + mul r0.y, r0.z, r0.y + mul r21.xyz, r0.yyyy, r21.xyzx + min r21.xyz, r21.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r22.xyzw, r9.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.y, r22.xyxx, t10.yxzw, s0, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r22.zwzz, t10.yzxw, s0, l(0.000000) + mul r0.y, r0.z, r0.y + mul r0.y, r10.w, r0.y + div r0.y, r0.y, r11.w + mul r22.xyz, r20.xyzx, r20.xyzx + mul r22.xyz, r0.yyyy, r22.xyzx + mad r20.xyz, -r20.xyzx, r11.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r20.xyz, r22.xyzx, r20.xyzx + add r20.xyz, r20.xyzx, r21.xyzx + mul r20.xyz, r20.xyzx, cb5[4].xxxx + max r20.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r20.xyz, r20.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r21.xyz, r9.yyyy, r14.xyzx + mad r20.xyz, r20.xyzx, r9.yyyy, r21.xyzx + mul r20.xyz, r20.xyzx, cb5[1].xyzx + mov r19.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r19.yzw, r19.xyxx, t9.wxyz, s0, cb0[108].x + add r0.y, -r19.x, l(1.000000) + mad r19.xyz, r20.xyzx, r19.yzwy, -r20.xyzx + mad r19.xyz, r0.yyyy, r19.xyzx, r20.xyzx +else + mov r19.xyz, l(0,0,0,0) +endif +mul r0.yz, r18.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r0.yz, r0.yyzy +mad r0.y, r0.z, cb4[1].y, r0.y +mul r0.y, r0.y, l(8.000000) +ftoi r0.y, r0.y +mad r0.z, -cb0[85].y, cb4[2].w, r16.z +round_ni r0.z, r0.z +add r1.w, l(-1.000000), cb4[1].w +max r3.w, r0.z, l(0.000000) +min r1.w, r1.w, r3.w +mul r3.w, r1.w, l(8.000000) +ftoi r3.w, r3.w +ge r0.z, r1.w, r0.z +iadd r1.w, r3.w, cb0[110].y +mul r3.w, r9.w, r9.w +min r9.x, r0.x, l(1.000000) +add r0.x, -r9.w, l(1.000000) +mad r7.w, -r0.x, l(0.383026), l(-0.0761947036) +mad r7.w, r0.x, r7.w, l(1.049970) +mad r0.x, r0.x, r7.w, l(0.409255) +min r0.x, r0.x, l(0.999000) +add r7.w, -r0.x, l(1.000000) +add r20.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r20.xyz, r20.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r15.xyzx +mad r9.yz, r9.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r9.y, r9.yzyy, t10.yxzw, s0, l(0.000000) +mad r21.xyz, -r20.xyzx, r7.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r20.xyz, r20.xyzx, r20.xyzx +mov r22.w, l(1.000000) +mov r23.y, l(1.000000) +mov r24.z, r9.w +mov r25.xyz, l(0,0,0,0) +mov r9.z, l(1.000000) +mov r10.w, l(0) +loop + ilt r11.w, l(7), r10.w + breakc_nz r11.w + iadd r11.w, r0.y, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx + iadd r12.w, r1.w, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx + and r11.w, r11.w, r12.w + and r11.w, r0.z, r11.w + ishl r12.w, r10.w, l(5) + mov r26.xyz, l(0,0,0,0) + mov r13.w, r9.z + mov r14.w, r11.w + loop + breakc_z r14.w + firstbit_lo r15.w, r14.w + ishl r17.w, l(1), r15.w + xor r17.w, r14.w, r17.w + iadd r15.w, r12.w, r15.w + bfi r27.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r15.wwww, l(1, 3, 5, 6) + bfi r18.z, l(29), l(3), r15.w, l(7) + ftou r18.w, cb5[r27.z + 6].w + ieq r18.w, r18.w, l(1) + if_nz r18.w + add r22.xyz, r1.xyzx, -cb5[r27.x + 6].xyzx + and r28.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r27.z + 6].xzyx + and r29.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r27.w + 6].yxzy + ushr r30.xyz, cb5[r27.z + 6].xzyx, l(16, 16, 16, 0) + ushr r31.xyz, cb5[r27.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r28.xyz, r28.xyzx + f16tof32 r29.xyz, r29.xyzx + f16tof32 r30.xyz, r30.xyzx + f16tof32 r31.xyw, r31.yxyz + mov r32.xz, r28.xxzx + mov r32.yw, r30.xxxz + dp4 r18.w, r22.xyzw, r32.xyzw + mov r30.x, r28.y + mov r30.z, r29.y + mov r30.w, r31.x + dp4 r19.w, r22.xyzw, r30.xyzw + mov r31.xz, r29.xxzx + dp4 r20.w, r22.xyzw, r31.xyzw + max r18.w, |r18.w|, |r19.w| + max r18.w, |r20.w|, r18.w + mad r19.w, cb5[r18.z + 6].x, l(0.500000), l(0.500000) + add r18.w, r18.w, -r19.w + mad r19.w, -cb5[r18.z + 6].x, l(0.500000), l(0.500000) + div_sat r18.w, r18.w, r19.w + add r18.w, -r18.w, l(1.000000) + mul r18.w, r18.w, r18.w + else + mov r18.w, l(1.000000) + endif + lt r19.w, l(0.500000), cb5[r27.y + 6].z + lt r20.w, r18.w, l(0.001000) + or r20.w, r19.w, r20.w + if_nz r20.w + mov r14.w, r17.w + continue + endif + ishl r20.w, r15.w, l(3) + bfi r15.w, l(29), l(3), r15.w, l(2) + lt r21.w, cb5[r20.w + 6].w, l(1.500000) + if_nz r21.w + mad r21.w, cb5[r15.w + 6].y, l(0.500000), l(0.500000) + add r22.x, r21.w, -|cb5[r15.w + 6].x| + add r22.y, -r22.x, cb5[r15.w + 6].y + add r21.w, -|r22.x|, l(1.000000) + add r21.w, -|r22.y|, r21.w + max r21.w, r21.w, l(0.000488281250) + ge r23.z, cb5[r15.w + 6].x, l(0.000000) + movc r22.z, r23.z, r21.w, -r21.w + dp3 r21.w, r22.xyzx, r22.xyzx + rsq r21.w, r21.w + mul r22.xyz, r21.wwww, r22.xyzx + add r28.xyz, -r1.xyzx, cb5[r27.x + 6].xyzx + dp3 r21.w, r28.xyzx, r28.xyzx + rsq r23.z, r21.w + mul r29.xyz, r23.zzzz, r28.xyzx + ftoi r23.w, cb5[r18.z + 6].w + mul r30.xyz, r22.xyzx, cb5[r15.w + 6].zzzz + mad r31.xyz, -r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r28.xyzx + mad r32.xyz, r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r28.xyzx + ftou r24.w, cb5[r20.w + 6].w + and r24.w, r24.w, l(1) + ieq r25.w, r24.w, l(0) + not r25.w, r25.w + lt r26.w, l(0.000000), cb5[r15.w + 6].z + and r25.w, r25.w, r26.w + dp3 r26.w, r31.xyzx, r31.xyzx + sqrt r26.w, r26.w + dp3 r27.z, r32.xyzx, r32.xyzx + sqrt r27.z, r27.z + dp3 r28.w, r7.xyzx, r31.xyzx + div r28.w, r28.w, r26.w + dp3 r29.w, r7.xyzx, r32.xyzx + div r29.w, r29.w, r27.z + add r28.w, r28.w, r29.w + mul_sat r33.x, r28.w, l(0.500000) + dp3 r28.w, r31.xyzx, r32.xyzx + mad r26.w, r26.w, r27.z, r28.w + mad r26.w, r26.w, l(0.500000), l(1.000000) + div r33.y, l(1.000000, 1.000000, 1.000000, 1.000000), r26.w + dp3_sat r23.x, r7.xyzx, r29.xyzx + movc r24.xy, r25.wwww, r33.xyxx, r23.xyxx + lt r23.x, cb5[r27.w + 6].w, l(0.000000) + if_nz r23.x + mul r23.x, cb5[r27.x + 6].w, cb5[r27.x + 6].w + mul r23.x, r21.w, r23.x + mad r23.x, -r23.x, r23.x, l(1.000000) + max r23.x, r23.x, l(0.000000) + add r21.w, r21.w, l(1.000000) + div r21.w, l(1.000000, 1.000000, 1.000000, 1.000000), r21.w + and r26.w, r25.w, l(0x3f800000) + add r27.z, -r21.w, r24.y + mad r21.w, r26.w, r27.z, r21.w + mul r23.x, r23.x, r23.x + mul r21.w, r21.w, r23.x + else + mul r32.xyz, r28.xyzx, cb5[r27.x + 6].wwww + dp3 r23.x, r32.xyzx, r32.xyzx + min r23.x, r23.x, l(1.000000) + add r23.x, -r23.x, l(1.000000) + log r23.x, r23.x + mul r23.x, r23.x, cb5[r27.w + 6].w + exp r23.x, r23.x + mul r21.w, r23.x, r24.y + endif + dp3 r22.x, r29.xyzx, -r22.xyzx + add r22.x, r22.x, -cb5[r15.w + 6].z + mul_sat r22.x, r22.x, cb5[r15.w + 6].w + mul r22.x, r22.x, r22.x + movc r22.x, r24.w, l(1.000000), r22.x + mul r21.w, r21.w, r22.x + not r22.x, r25.w + ige r22.y, r23.w, l(0) + and r22.x, r22.y, r22.x + if_nz r22.x + if_z r24.w + ishl r22.x, r23.w, l(2) + mul r32.xyz, r1.yyyy, cb7[r22.x + 33].xywx + mad r32.xyz, cb7[r22.x + 32].xywx, r1.xxxx, r32.xyzx + mad r32.xyz, cb7[r22.x + 34].xywx, r1.zzzz, r32.xyzx + add r22.xyz, r32.xyzx, cb7[r22.x + 35].xywx + div_sat r22.xy, r22.xyxx, r22.zzzz + mad r22.xy, r22.xyxx, cb7[r23.w + 0].zwzz, cb7[r23.w + 0].xyxx + else + ishl r22.z, r23.w, l(2) + dp3 r32.x, -r28.xyzx, cb7[r22.z + 32].xyzx + dp3 r32.y, -r28.xyzx, cb7[r22.z + 33].xyzx + dp3 r32.z, -r28.xyzx, cb7[r22.z + 34].xyzx + lt r22.z, |r32.x|, |r32.y| + and r22.z, r22.z, l(1) + dp2 r23.x, |r32.xyxx|, icb[r22.z + 0].xyxx + lt r23.x, r23.x, |r32.z| + movc r22.z, r23.x, l(2), r22.z + dp3 r23.x, r32.xyzx, icb[r22.z + 0].xyzx + lt r23.x, r23.x, l(0.000000) + bfi r22.z, l(31), l(1), r22.z, r23.x + ushr r23.x, r22.z, l(1) + dp3 r23.x, r32.xyzx, icb[r23.x + 0].xyzx + div r24.y, l(0.000244140625), cb7[r23.w + 0].w + add r24.y, -r24.y, l(0.500000) + utof r26.w, r22.z + ult r27.z, r22.z, l(2) + and r27.z, r27.z, l(2) + dp2 r27.z, r32.xzxx, icb[r27.z + 0].xzxx + mul r27.z, r27.z, icb[r22.z + 4].z + div r27.z, r27.z, |r23.x| + mad r26.w, r27.z, r24.y, r26.w + add r26.w, r26.w, l(0.500000) + mul_sat r28.x, r26.w, l(0.166666672) + iadd r26.w, l(-1), icb[r22.z + 4].y + dp2 r26.w, r32.yzyy, icb[r26.w + 0].xyxx + mul r22.z, r26.w, icb[r22.z + 4].w + div r22.z, r22.z, |r23.x| + mad_sat r28.y, -r22.z, r24.y, l(0.500000) + mad r22.xy, r28.xyxx, cb7[r23.w + 0].zwzz, cb7[r23.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r22.x, r22.xyxx, t18.xyzw, s0, l(0.000000) + mul r21.w, r21.w, r22.x + endif + lt r22.x, l(0.000000), r21.w + if_nz r22.x + if_z r24.w + ftoi r22.y, cb5[r27.y + 6].x + else + add r28.xyz, r1.xyzx, -cb5[r27.x + 6].xyzx + lt r32.xyz, |r28.yzzy|, |r28.xxyx| + and r22.z, r32.y, r32.x + lt r28.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r28.xyzx + ushr r23.x, cb5[r15.w + 6].w, l(24) + ubfe r24.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb5[r15.w + 6].wwww + movc r23.x, r28.x, r23.x, r24.y + and r23.w, l(255), cb5[r15.w + 6].w + movc r23.w, r28.y, r24.w, r23.w + ubfe r24.y, l(8), l(8), cb5[r27.y + 6].x + and r24.w, l(255), cb5[r27.y + 6].x + movc r24.y, r28.z, r24.y, r24.w + movc r23.w, r32.z, r23.w, r24.y + movc r22.z, r22.z, r23.x, r23.w + ilt r23.x, r22.z, l(80) + movc r22.y, r23.x, r22.z, l(-1) + endif + ishl r22.z, r22.y, l(2) + mad r28.xyz, r29.xyzx, cb6[r22.y + 288].xxxx, r1.xyzx + mul r23.x, l(5.000000), cb6[r22.y + 288].y + mad r28.xyz, r7.xyzx, r23.xxxx, r28.xyzx + mul r32.xyzw, r28.yyyy, cb6[r22.z + 65].xyzw + mad r32.xyzw, cb6[r22.z + 64].xyzw, r28.xxxx, r32.xyzw + mad r28.xyzw, cb6[r22.z + 66].xyzw, r28.zzzz, r32.xyzw + add r28.xyzw, r28.xyzw, cb6[r22.z + 67].xyzw + div r28.xyz, r28.xyzx, r28.wwww + ge r32.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r28.xyzx + ge r33.xyz, r28.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r23.xw, -cb6[r22.y + 344].xxxy, cb6[r22.y + 344].zzzw + mad r23.xw, r28.xxxy, r23.xxxw, cb6[r22.y + 344].xxxy + mad r24.yw, r23.xxxw, cb6[400].zzzw, l(0.000000, 0.500000, 0.000000, 0.500000) + round_ni r24.yw, r24.yyyw + mad r23.xw, r23.xxxw, cb6[400].zzzw, -r24.yyyw + add r34.xyzw, r23.xxww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r35.xyzw, r34.xxzz, r34.xxzz + add r28.xy, -r23.xwxx, l(1.000000, 1.000000, 0.000000, 0.000000) + min r34.xz, r23.xxwx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r36.xy, r23.xwxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r37.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r36.xy, -r36.xyxx, r36.xyxx, r34.ywyy + add r36.xy, r36.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r36.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r35.xz, r35.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r23.xw, r35.yyyw, l(0.500000, 0.000000, 0.000000, 0.500000), -r23.xxxw + mul r38.xy, r23.xwxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r23.xw, -r34.xxxz, r34.xxxz, r28.xxxy + add r23.xw, r23.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + mul r39.xy, r23.xwxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r23.xw, r34.yyyw, l(0.160000, 0.000000, 0.000000, 0.160000) + mov r38.z, r39.x + mov r38.w, r23.x + mov r37.z, r36.x + mov r37.w, r35.x + add r34.xyzw, r37.zwxz, r38.zwxz + mov r39.z, r38.y + mov r39.w, r23.w + mov r36.z, r37.y + mov r36.w, r35.z + add r28.xyw, r36.zyzw, r39.zyzw + div r35.xyz, r37.xzwx, r34.zwyz + add r35.xyz, r35.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r35.xyz, r35.xyzx, cb6[400].xxxx + div r36.xyz, r36.zywz, r28.xywx + add r36.xyz, r36.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r36.xyw, r36.xyxz, cb6[400].yyyy + mul r37.xyzw, r28.xxxy, r34.zwyz + mov r35.w, r36.x + mad r38.xyzw, r24.ywyw, cb6[400].xyxy, r35.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r38.xyxx, t6.xxxx, s3, r28.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r38.zwzz, t6.xxxx, s3, r28.z + mul r23.x, r23.x, r37.y + mad r22.z, r37.x, r22.z, r23.x + mad r23.xw, r24.yyyw, cb6[400].xxxy, r35.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r23.xwxx, t6.xxxx, s3, r28.z + mad r22.z, r37.z, r23.x, r22.z + mov r36.z, r35.x + mad r38.xyzw, r24.ywyw, cb6[400].xyxy, r36.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r38.xyxx, t6.xxxx, s3, r28.z + mad r22.z, r37.w, r23.x, r22.z + mul r37.xyzw, r28.yyww, r34.xyzw + mov r36.xz, r35.yyzy + mad r35.xyzw, r24.ywyw, cb6[400].xyxy, r36.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r35.xyxx, t6.xxxx, s3, r28.z + mad r22.z, r37.x, r23.x, r22.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r35.zwzz, t6.xxxx, s3, r28.z + mad r22.z, r37.y, r23.x, r22.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r38.zwzz, t6.xxxx, s3, r28.z + mad r22.z, r37.z, r23.x, r22.z + ige r23.x, r22.y, l(0) + or r32.xyz, r32.xyzx, r33.xyzx + or r23.w, r32.y, r32.x + or r23.w, r32.z, r23.w + and r26.w, r28.z, l(0x7fffffff) + ult r26.w, l(0x7f800000), r26.w + or r23.w, r23.w, r26.w + mad r32.xyzw, r24.ywyw, cb6[400].xyxy, r36.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r32.xyxx, t6.xxxx, s3, r28.z + mad r22.z, r37.w, r24.y, r22.z + mul r24.y, r28.w, r34.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.w, r32.zwzz, t6.xxxx, s3, r28.z + mad r22.z, r24.y, r24.w, r22.z + add r22.z, r22.z, l(-1.000000) + mad r22.y, cb6[r22.y + 288].w, r22.z, l(1.000000) + movc r22.y, r23.w, l(1.000000), r22.y + movc r22.y, r23.x, r22.y, l(1.000000) + else + mov r22.y, l(1.000000) + endif + if_nz r25.w + dp3 r22.z, r17.xyzx, r30.xyzx + mul_sat r23.x, r23.z, cb5[r15.w + 6].z + mad r23.x, r23.x, l(0.500000), r3.w + min r23.x, r23.x, l(1.000000) + div r23.x, r3.w, r23.x + mad r28.xyz, r17.xyzx, r22.zzzz, -r30.xyzx + dp3 r23.w, r31.xyzx, r28.xyzx + mul r22.z, r22.z, r22.z + mad r22.z, cb5[r15.w + 6].z, cb5[r15.w + 6].z, -r22.z + div_sat r22.z, r23.w, r22.z + mad r28.xyz, r30.xyzx, r22.zzzz, r31.xyzx + dp3 r22.z, r28.xyzx, r28.xyzx + rsq r22.z, r22.z + mul r29.xyz, r22.zzzz, r28.xyzx + else + mov r23.x, l(1.000000) + endif + if_nz r22.x + mul_sat r22.x, r23.z, cb5[r18.z + 6].y + mad r28.xyz, r2.xyzx, r2.wwww, r29.xyzx + dp3 r22.z, r28.xyzx, r28.xyzx + max r22.z, r22.z, l(0.0000610351562) + rsq r22.z, r22.z + mul r28.xyz, r22.zzzz, r28.xyzx + dp3_sat r22.z, r7.xyzx, r28.xyzx + dp3_sat r23.z, r4.xyzx, r28.xyzx + lt r23.w, l(0.000000), r22.x + mul r22.x, r22.x, r22.x + mad r24.y, r23.z, l(3.600000), l(0.400000) + div r22.x, r22.x, r24.y + mad r22.x, r9.w, r9.w, r22.x + min r22.x, r22.x, l(1.000000) + movc r22.x, r23.w, r22.x, r3.w + mul r22.x, r22.x, r22.x + mad r23.w, r22.z, r22.x, -r22.z + mad r22.z, r23.w, r22.z, l(1.000000) + add r23.z, -r23.z, l(1.000000) + mul r23.w, r23.z, r23.z + mul r23.w, r23.w, r23.w + mul r24.y, r23.z, r23.w + mad r23.z, -r23.w, r23.z, l(1.000000) + mad r28.xyz, r15.xyzx, r23.zzzz, r24.yyyy + mul r22.z, r22.z, r22.z + div r22.z, r22.x, r22.z + mul r22.z, r23.x, r22.z + mad r23.x, -r9.x, r22.x, r9.x + mad r23.x, r23.x, r9.x, r22.x + sqrt r23.x, r23.x + mad r23.z, -r24.x, r22.x, r24.x + mad r22.x, r23.z, r24.x, r22.x + sqrt r22.x, r22.x + mul r22.x, r9.x, r22.x + mad r22.x, r24.x, r23.x, r22.x + add r22.x, r22.x, l(0.000100) + div r22.x, l(0.500000), r22.x + mul r22.x, r22.x, r22.z + mul r23.xzw, r22.xxxx, r28.xxyz + min r23.xzw, r23.xxzw, l(2048.000000, 0.000000, 2048.000000, 2048.000000) + mad r22.xz, r24.xxzx, l(0.968750, 0.000000, 0.968750, 0.000000), l(0.015625, 0.000000, 0.015625, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r22.x, r22.xzxx, t10.xyzw, s0, l(0.000000) + mul r22.x, r9.y, r22.x + mul r22.x, r0.x, r22.x + div r22.x, r22.x, r7.w + mul r28.xyz, r20.xyzx, r22.xxxx + div r28.xyz, r28.xyzx, r21.xyzx + add r23.xzw, r23.xxzw, r28.xxyz + mul r23.xzw, r23.xxzw, cb5[r18.z + 6].zzzz + max r23.xzw, r23.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r23.xzw, r23.xxzw, l(1000.000000, 0.000000, 1000.000000, 1000.000000) + mul r28.xyz, r14.xyzx, r24.xxxx + mad r23.xzw, r23.xxzw, r24.xxxx, r28.xxyz + mul r24.xyw, r21.wwww, cb5[r20.w + 6].xyxz + mul r22.xyz, r22.yyyy, r24.xywx + mul r22.xyz, r18.wwww, r22.xyzx + mul r22.xyz, r22.xyzx, r23.xzwx + else + mov r22.xyz, l(0,0,0,0) + endif + else + if_z r19.w + mad r18.w, cb5[r15.w + 6].y, l(0.500000), l(0.500000) + add r28.x, r18.w, -|cb5[r15.w + 6].x| + add r28.y, -r28.x, cb5[r15.w + 6].y + add r18.w, -|r28.x|, l(1.000000) + add r18.w, -|r28.y|, r18.w + max r18.w, r18.w, l(0.000488281250) + ge r19.w, cb5[r15.w + 6].x, l(0.000000) + movc r28.z, r19.w, r18.w, -r18.w + dp3 r18.w, r28.xyzx, r28.xyzx + rsq r18.w, r18.w + mul r23.xzw, r18.wwww, r28.xxyz + add r24.xyw, -r1.xyxz, cb5[r27.x + 6].xyxz + dp3 r18.w, r24.xywx, r24.xywx + rsq r19.w, r18.w + mul r28.xyz, r19.wwww, r24.xywx + ftoi r18.z, cb5[r18.z + 6].w + mul r29.xyz, r23.xzwx, cb5[r15.w + 6].zzzz + mad r30.xyz, -r29.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xywx + mad r29.xyz, r29.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xywx + ftou r19.w, cb5[r20.w + 6].w + and r19.w, r19.w, l(1) + ieq r20.w, r19.w, l(0) + not r20.w, r20.w + lt r21.w, l(0.000000), cb5[r15.w + 6].z + and r20.w, r20.w, r21.w + dp3 r21.w, r30.xyzx, r30.xyzx + sqrt r21.w, r21.w + dp3 r25.w, r29.xyzx, r29.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r30.xyzx, r29.xyzx + mad r21.w, r21.w, r25.w, r26.w + mad r21.w, r21.w, l(0.500000), l(1.000000) + div r21.w, l(1.000000, 1.000000, 1.000000, 1.000000), r21.w + movc r21.w, r20.w, r21.w, l(1.000000) + lt r25.w, cb5[r27.w + 6].w, l(0.000000) + if_nz r25.w + mul r25.w, cb5[r27.x + 6].w, cb5[r27.x + 6].w + mul r25.w, r18.w, r25.w + mad r25.w, -r25.w, r25.w, l(1.000000) + max r25.w, r25.w, l(0.000000) + add r18.w, r18.w, l(1.000000) + div r18.w, l(1.000000, 1.000000, 1.000000, 1.000000), r18.w + and r26.w, r20.w, l(0x3f800000) + add r27.z, -r18.w, r21.w + mad r18.w, r26.w, r27.z, r18.w + mul r25.w, r25.w, r25.w + mul r18.w, r18.w, r25.w + else + mul r29.xyz, r24.xywx, cb5[r27.x + 6].wwww + dp3 r25.w, r29.xyzx, r29.xyzx + min r25.w, r25.w, l(1.000000) + add r25.w, -r25.w, l(1.000000) + log r25.w, r25.w + mul r25.w, r25.w, cb5[r27.w + 6].w + exp r25.w, r25.w + mul r18.w, r21.w, r25.w + endif + dp3 r21.w, r28.xyzx, -r23.xzwx + add r21.w, r21.w, -cb5[r15.w + 6].z + mul_sat r21.w, r21.w, cb5[r15.w + 6].w + mul r21.w, r21.w, r21.w + movc r21.w, r19.w, l(1.000000), r21.w + mul r18.w, r18.w, r21.w + not r20.w, r20.w + ige r21.w, r18.z, l(0) + and r20.w, r20.w, r21.w + if_nz r20.w + if_z r19.w + ishl r20.w, r18.z, l(2) + mul r23.xzw, r1.yyyy, cb7[r20.w + 33].xxyw + mad r23.xzw, cb7[r20.w + 32].xxyw, r1.xxxx, r23.xxzw + mad r23.xzw, cb7[r20.w + 34].xxyw, r1.zzzz, r23.xxzw + add r23.xzw, r23.xxzw, cb7[r20.w + 35].xxyw + div_sat r23.xz, r23.xxzx, r23.wwww + mad r23.xz, r23.xxzx, cb7[r18.z + 0].zzwz, cb7[r18.z + 0].xxyx + else + ishl r20.w, r18.z, l(2) + dp3 r29.x, -r24.xywx, cb7[r20.w + 32].xyzx + dp3 r29.y, -r24.xywx, cb7[r20.w + 33].xyzx + dp3 r29.z, -r24.xywx, cb7[r20.w + 34].xyzx + lt r20.w, |r29.x|, |r29.y| + and r20.w, r20.w, l(1) + dp2 r21.w, |r29.xyxx|, icb[r20.w + 0].xyxx + lt r21.w, r21.w, |r29.z| + movc r20.w, r21.w, l(2), r20.w + dp3 r21.w, r29.xyzx, icb[r20.w + 0].xyzx + lt r21.w, r21.w, l(0.000000) + bfi r20.w, l(31), l(1), r20.w, r21.w + ushr r21.w, r20.w, l(1) + dp3 r21.w, r29.xyzx, icb[r21.w + 0].xyzx + div r23.w, l(0.000244140625), cb7[r18.z + 0].w + add r23.w, -r23.w, l(0.500000) + utof r24.x, r20.w + ult r24.y, r20.w, l(2) + and r24.y, r24.y, l(2) + dp2 r24.y, r29.xzxx, icb[r24.y + 0].xzxx + mul r24.y, r24.y, icb[r20.w + 4].z + div r24.y, r24.y, |r21.w| + mad r24.x, r24.y, r23.w, r24.x + add r24.x, r24.x, l(0.500000) + mul_sat r24.x, r24.x, l(0.166666672) + iadd r24.w, l(-1), icb[r20.w + 4].y + dp2 r24.w, r29.yzyy, icb[r24.w + 0].xyxx + mul r20.w, r24.w, icb[r20.w + 4].w + div r20.w, r20.w, |r21.w| + mad_sat r24.y, -r20.w, r23.w, l(0.500000) + mad r23.xz, r24.xxyx, cb7[r18.z + 0].zzwz, cb7[r18.z + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.z, r23.xzxx, t18.yzxw, s0, l(0.000000) + mul r18.w, r18.z, r18.w + endif + lt r18.z, l(0.000000), r18.w + if_nz r18.z + if_z r19.w + ftoi r18.z, cb5[r27.y + 6].x + else + add r23.xzw, r1.xxyz, -cb5[r27.x + 6].xxyz + lt r24.xyw, |r23.zwzw|, |r23.xxxz| + and r18.w, r24.y, r24.x + lt r23.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xxzw + ushr r19.w, cb5[r15.w + 6].w, l(24) + ubfe r24.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r15.w + 6].wwww + movc r19.w, r23.x, r19.w, r24.x + and r15.w, l(255), cb5[r15.w + 6].w + movc r15.w, r23.z, r24.y, r15.w + ubfe r20.w, l(8), l(8), cb5[r27.y + 6].x + and r21.w, l(255), cb5[r27.y + 6].x + movc r20.w, r23.w, r20.w, r21.w + movc r15.w, r24.w, r15.w, r20.w + movc r15.w, r18.w, r19.w, r15.w + ilt r18.w, r15.w, l(80) + movc r18.z, r18.w, r15.w, l(-1) + endif + ishl r15.w, r18.z, l(2) + mad r23.xzw, r28.xxyz, cb6[r18.z + 288].xxxx, r1.xxyz + mul r18.w, l(5.000000), cb6[r18.z + 288].y + mad r23.xzw, r7.xxyz, r18.wwww, r23.xxzw + mul r27.xyzw, r23.zzzz, cb6[r15.w + 65].xyzw + mad r27.xyzw, cb6[r15.w + 64].xyzw, r23.xxxx, r27.xyzw + mad r27.xyzw, cb6[r15.w + 66].xyzw, r23.wwww, r27.xyzw + add r27.xyzw, r27.xyzw, cb6[r15.w + 67].xyzw + div r23.xzw, r27.xxyz, r27.wwww + ge r24.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xzxw + ge r27.xyz, r23.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r28.xy, -cb6[r18.z + 344].xyxx, cb6[r18.z + 344].zwzz + mad r23.xz, r23.xxzx, r28.xxyx, cb6[r18.z + 344].xxyx + mad r28.xy, r23.xzxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r28.xy, r28.xyxx + mad r23.xz, r23.xxzx, cb6[400].zzwz, -r28.xxyx + add r29.xyzw, r23.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r30.xyzw, r29.xxzz, r29.xxzz + add r28.zw, -r23.xxxz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r29.xz, r23.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r31.xy, r23.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r32.xy, r28.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r31.xy, -r31.xyxx, r31.xyxx, r29.ywyy + add r31.xy, r31.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r31.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r30.xz, r30.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r23.xz, r30.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r23.xxzx + mul r33.xy, r23.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r23.xz, -r29.xxzx, r29.xxzx, r28.zzwz + add r23.xz, r23.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r34.xy, r23.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r23.xz, r29.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r33.z, r34.x + mov r33.w, r23.x + mov r32.z, r31.x + mov r32.w, r30.x + add r29.xyzw, r32.zwxz, r33.zwxz + mov r34.z, r33.y + mov r34.w, r23.z + mov r31.z, r32.y + mov r31.w, r30.z + add r30.xyz, r31.zywz, r34.zywz + div r32.xyz, r32.xzwx, r29.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.xyzx, cb6[400].xxxx + div r31.xyz, r31.zywz, r30.xyzx + add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r31.xyw, r31.xyxz, cb6[400].yyyy + mul r33.xyzw, r29.zwyz, r30.xxxy + mov r32.w, r31.x + mad r34.xyzw, r28.xyxy, cb6[400].xyxy, r32.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r34.xyxx, t6.xxxx, s3, r23.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r34.zwzz, t6.xxxx, s3, r23.w + mul r18.w, r18.w, r33.y + mad r15.w, r33.x, r15.w, r18.w + mad r23.xz, r28.xxyx, cb6[400].xxyx, r32.zzwz + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r23.xzxx, t6.xxxx, s3, r23.w + mad r15.w, r33.z, r18.w, r15.w + mov r31.z, r32.x + mad r34.xyzw, r28.xyxy, cb6[400].xyxy, r31.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r34.xyxx, t6.xxxx, s3, r23.w + mad r15.w, r33.w, r18.w, r15.w + mul r33.xyzw, r29.xyzw, r30.yyzz + mov r31.xz, r32.yyzy + mad r32.xyzw, r28.xyxy, cb6[400].xyxy, r31.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r32.xyxx, t6.xxxx, s3, r23.w + mad r15.w, r33.x, r18.w, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r32.zwzz, t6.xxxx, s3, r23.w + mad r15.w, r33.y, r18.w, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r34.zwzz, t6.xxxx, s3, r23.w + mad r15.w, r33.z, r18.w, r15.w + ige r18.w, r18.z, l(0) + or r24.xyw, r24.xyxw, r27.xyxz + or r19.w, r24.y, r24.x + or r19.w, r24.w, r19.w + and r20.w, r23.w, l(0x7fffffff) + ult r20.w, l(0x7f800000), r20.w + or r19.w, r19.w, r20.w + mad r27.xyzw, r28.xyxy, cb6[400].xyxy, r31.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r27.xyxx, t6.xxxx, s3, r23.w + mad r15.w, r33.w, r20.w, r15.w + mul r20.w, r29.y, r30.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r27.zwzz, t6.xxxx, s3, r23.w + mad r15.w, r20.w, r21.w, r15.w + add r15.w, r15.w, l(-1.000000) + mad r15.w, cb6[r18.z + 288].w, r15.w, l(1.000000) + movc r15.w, r19.w, l(1.000000), r15.w + movc r15.w, r18.w, r15.w, l(1.000000) + else + mov r15.w, l(1.000000) + endif + else + mov r15.w, l(1.000000) + endif + mul r13.w, r13.w, r15.w + mov r22.xyz, l(0,0,0,0) + endif + add r26.xyz, r22.xyzx, r26.xyzx + mov r14.w, r17.w + endloop + mov r9.z, r13.w + add r25.xyz, r25.xyzx, r26.xyzx + iadd r10.w, r10.w, l(1) +endloop +dp3 r0.x, r5.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xzw, -r0.xxxx, r5.xxyw +mad r0.xyz, cb0[184].wwww, r1.xzwx, r0.xxxx +add r1.xzw, -cb2[20].xxyz, cb1[r6.w + 13].xxyz +mad r1.xzw, cb1[r6.w + 13].wwww, r1.xxzw, cb2[20].xxyz +mul r1.xzw, r5.zzzz, r1.xxzw +mul r1.xzw, r1.xxzw, cb2[21].xxxx +mul r1.xzw, r1.xxzw, r4.wwww +mad r2.xyz, -r6.xyzx, r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r2.xyz, cb2[19].yyyy, r2.xyzx, r11.xyzx +mul r1.xzw, r1.xxzw, r2.xxyz +add r2.x, l(1.000000), -cb1[r6.w + 11].x +mul r1.xzw, r1.xxzw, r2.xxxx +add r2.x, l(1.000000), -cb2[19].x +mad r2.x, cb0[109].x, cb2[19].x, r2.x +div r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x +mul r1.xzw, r1.xxzw, r2.xxxx +mad r0.xyz, r0.xyzx, cb0[184].xyzx, r1.xzwx +mad r1.xzw, r25.xxyz, r9.zzzz, r19.xxyz +add r0.xyz, r0.xyzx, r1.xzwx +mad r1.x, r1.y, cb0[156].w, cb0[157].w +mad r1.z, r0.w, cb0[154].w, -cb0[153].w +max r1.xz, r1.xxzx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.w, r1.x, l(-1.442695) +exp r1.w, r1.w +add r1.w, -r1.w, l(1.000000) +div r1.x, r1.w, r1.x +mad r1.w, r1.y, cb0[156].w, cb0[158].w +mul r1.w, r1.w, l(1.442695) +exp r1.w, r1.w +mul r1.x, r1.w, r1.x +mul r1.x, r1.x, -r1.z +mul r1.xzw, r1.xxxx, cb0[155].xxyz +mul r1.xzw, r1.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r1.xzw, r1.xxzw +dp3 r2.x, -r4.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r2.xxxx, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r16.w, l(7), cb0[108].w + imad r5.xyz, r16.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.z, r5.y, r5.z, r5.x + imad r2.w, r5.z, r2.z, r5.y + imad r3.w, r2.z, r2.w, r5.z + imad r5.x, r2.w, r3.w, r2.z + dp3 r2.z, -r4.xyzx, -r3.xyzx + add r3.x, r1.y, -cb0[44].y + lt r3.y, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.y + mul r2.z, r2.z, cb0[163].w + div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r3.z, r2.z, r3.y + mad r4.x, r3.z, r3.x, cb0[44].y + mad r3.x, -r3.z, r3.x, r3.x + mul r3.z, r3.x, cb0[159].z + mul r3.x, r3.x, cb0[162].x + max r3.xz, r3.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + add r4.y, r4.x, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r3.z| + exp r4.w, -r3.z + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r4.z, r4.w, r3.z + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.z, l(5.960464478E-08), |r3.x| + exp r4.w, -r3.x + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.x + mad r3.x, -r3.x, l(0.240226507), l(0.693147182) + movc r3.x, r4.z, r4.w, r3.x + mul r3.x, r3.x, r4.x + mad r3.x, r4.y, r3.z, r3.x + mad r2.z, -r2.z, r3.y, l(1.000000) + mul r2.z, r0.w, r2.z + mul r2.z, r2.z, r3.x + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r2.z, r2.z, r3.x + add r2.z, r3.y, r2.z + min r2.z, r2.z, l(1.000000) + imad r5.y, r3.w, r5.x, r2.w + ushr r3.xy, r5.xyxx, l(16, 16, 0, 0) + utof r3.xy, r3.xyxx + mad r3.xy, r3.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb0[167].wwww, r18.xyxx + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r2.w, r16.z, cb0[164].x, cb0[164].y + log r2.w, r2.w + mul r2.w, r2.w, cb0[164].z + div r3.z, r2.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t17.xyzw, s0, l(0.000000) + add r2.w, r16.z, -cb0[166].z + mul_sat r2.w, r2.w, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r2.wwww, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r2.w, -r2.z, l(1.000000) + mul r4.xyz, r2.wwww, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.z, r2.z, r3.w +else + add r1.y, r1.y, -cb0[44].y + mul r2.w, r1.y, cb0[159].z + max r2.w, r2.w, l(-127.000000) + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r2.w| + exp r4.y, -r2.w + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r4.x, r4.y, r2.w + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r2.w, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r2.z, r0.w, l(1.000000) + add r0.w, -r2.z, l(1.000000) + mul r3.xyz, r0.wwww, cb0[161].xyzx +endif +mul r4.xyz, r1.xzwx, r2.zzzz +mad r0.w, r2.x, r2.x, l(1.000000) +mul r0.w, r0.w, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.wwww, cb0[158].xyzx +mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r1.y, r2.y, l(12.566371) +sqrt r2.x, r2.y +mul r1.y, r1.y, r2.x +max r1.y, r1.y, l(0.001000) +div r0.w, r0.w, r1.y +mad_sat r2.xyw, cb0[157].xyxz, r0.wwww, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx +mad r0.xyz, r0.xyzx, r4.xyzx, r1.xyzx +add r0.xyz, -r12.xyzx, r0.xyzx +mad r8.xyz, r8.wwww, r0.xyzx, r12.xyzx +mul r0.xy, r13.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r0.xy, |r0.xyxx| +sqrt r0.xy, r0.xyxx +mov r13.z, -r13.y +lt r0.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xxxz +lt r1.xy, r13.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r0.zw, -r0.zzzw, r1.xxxy +itof r0.zw, r0.zzzw +mul r0.xy, r0.zwzz, r0.xyxx +mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +max r0.z, cb1[r6.w + 4].z, cb1[r6.w + 4].y +add r0.z, r0.z, l(-0.100000024) +lt r0.w, l(0.000000), r0.z +lt r0.z, r0.z, l(0.000000) +iadd r0.z, -r0.w, r0.z +itof r0.z, r0.z +mov_sat r0.z, r0.z +add r1.xy, -r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.zzzz, r1.xyxx, r0.xyxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r8.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r8.w, r0.x +max r0.x, r8.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +mov o0.xyzw, r8.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used From e04fa991b60819e44dda64e91f820b650630bb08 Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Wed, 4 Feb 2026 10:07:57 +0000 Subject: [PATCH 13/19] fix(endfield) Using .asm to stop glass shader freezing --- .../endfield/glass/0x754218B1.ps_5_0.hlsl | 1880 ----------------- .../endfield/glass/0xB317E9E1.ps_5_0.hlsl | 1807 ---------------- 2 files changed, 3687 deletions(-) delete mode 100644 src/games/endfield/glass/0x754218B1.ps_5_0.hlsl delete mode 100644 src/games/endfield/glass/0xB317E9E1.ps_5_0.hlsl diff --git a/src/games/endfield/glass/0x754218B1.ps_5_0.hlsl b/src/games/endfield/glass/0x754218B1.ps_5_0.hlsl deleted file mode 100644 index 2e151b40b..000000000 --- a/src/games/endfield/glass/0x754218B1.ps_5_0.hlsl +++ /dev/null @@ -1,1880 +0,0 @@ -// ---- Created with 3Dmigoto v1.4.1 on Wed Feb 4 06:20:19 2026 -#include "../common.hlsl" - -Texture2D t23 : register(t23); - -Texture3D t22 : register(t22); - -Texture3D t21 : register(t21); - -Texture3D t20 : register(t20); - -Texture3D t19 : register(t19); - -Texture3D t18 : register(t18); - -Texture3D t17 : register(t17); - -Texture3D t16 : register(t16); - -Texture2D t15 : register(t15); - -Texture2D t14 : register(t14); - -Texture2D t13 : register(t13); - -Texture2D t12 : register(t12); - -Texture2D t11 : register(t11); - -Texture2D t10 : register(t10); - -Texture2D t9 : register(t9); - -Texture2D t8 : register(t8); - -Texture2D t7 : register(t7); - -Texture2D t6 : register(t6); - -Texture2D t5 : register(t5); - -Texture2DArray t4 : register(t4); - -Texture2D t3 : register(t3); - -Texture2D t2 : register(t2); - -Texture2D t1 : register(t1); - -struct t0_t { - float val[1]; -}; -StructuredBuffer t0 : register(t0); - -SamplerState s9_s : register(s9); - -SamplerState s8_s : register(s8); - -SamplerState s7_s : register(s7); - -SamplerState s6_s : register(s6); - -SamplerState s5_s : register(s5); - -SamplerComparisonState s4_s : register(s4); - -SamplerState s3_s : register(s3); - -SamplerState s2_s : register(s2); - -SamplerState s1_s : register(s1); - -SamplerState s0_s : register(s0); - -cbuffer cb7 : register(b7) -{ - float4 cb7[160]; -} - -cbuffer cb6 : register(b6) -{ - float4 cb6[715]; -} - -cbuffer cb5 : register(b5) -{ - float4 cb5[2054]; -} - -cbuffer cb4 : register(b4) -{ - float4 cb4[3]; -} - -cbuffer cb3 : register(b3) -{ - float4 cb3[259]; -} - -cbuffer cb2 : register(b2) -{ - float4 cb2[24]; -} - -cbuffer cb1 : register(b1) -{ - float4 cb1[4085]; -} - -cbuffer cb0 : register(b0) -{ - float4 cb0[244]; -} - - - - -// 3Dmigoto declarations -#define cmp - - - -void main( - float4 v0 : SV_Position0, - float2 v1 : TEXCOORD0, - float2 w1 : TEXCOORD1, - float4 v2 : TEXCOORD2, - float4 v3 : TEXCOORD3, - float4 v4 : TEXCOORD4, - float4 v5 : TEXCOORD5, - float4 v6 : TEXCOORD6, - nointerpolation uint v7 : TEXCOORD7, - uint v8 : SV_IsFrontFace0, - out float4 o0 : SV_Target0, - out float4 o1 : SV_Target1) -{ - const float4 icb[] = { { 1.000000, 0, 0, 0}, - { 0, 1.000000, 0, 0}, - { 0, 0, 1.000000, 0}, - { 0, 0, 0, 1.000000}, - { 2, 1, -1.000000, 1.000000}, - { 2, 1, 1.000000, 1.000000}, - { 0, 2, 1.000000, -1.000000}, - { 0, 2, 1.000000, 1.000000}, - { 0, 1, 1.000000, 1.000000}, - { 0, 1, -1.000000, 1.000000} }; - float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35,r36; - uint4 bitmask, uiDest; - float4 fDest; - - r0.xy = cb0[82].zw * v0.xy; - r0.zw = r0.xy * float2(2,2) + float2(-1,-1); - r1.xyzw = cb0[25].xyzw * -r0.wwww; - r1.xyzw = cb0[24].xyzw * r0.zzzz + r1.xyzw; - r1.xyzw = cb0[26].xyzw * v0.zzzz + r1.xyzw; - r1.xyzw = cb0[27].xyzw + r1.xyzw; - r1.xyz = r1.xyz / r1.www; - r0.z = cb0[1].z * r1.y; - r0.z = cb0[0].z * r1.x + r0.z; - r0.z = cb0[2].z * r1.z + r0.z; - r0.z = cb0[3].z + r0.z; - r2.z = abs(r0.z); - r0.z = cmp(0 < v3.w); - r0.z = r0.z ? 1 : -1; - r0.w = cmp(0.000000 == cb0[86].w); - r3.xyz = cb0[44].xyz + -r1.xyz; - r4.x = cb0[0].z; - r4.y = cb0[1].z; - r4.z = cb0[2].z; - r3.xyz = r0.www ? r3.xyz : r4.xyz; - r0.w = dot(r3.xyz, r3.xyz); - r2.w = max(9.99999994e-09, r0.w); - r2.w = rsqrt(r2.w); - r5.xyz = r3.xyz * r2.www; - r0.w = r2.w * r0.w; - r6.xy = w1.xy + -v1.xy; - r6.zw = cb2[3].xx * r6.xy + v1.xy; - r6.zw = r6.zw * cb2[12].xy + cb2[12].zw; - r6.xy = cb2[2].ww * r6.xy + v1.xy; - r6.xy = r6.xy * cb2[11].xy + cb2[11].zw; - r7.xyzw = t5.SampleBias(s5_s, r6.xy, cb0[108].x).xyzw; - r3.w = cb2[3].y + cb0[108].x; - r8.xyz = t6.SampleBias(s6_s, r6.zw, r3.w).xyw; - r8.x = r8.z * r8.x; - r6.xy = r8.xy * float2(2,2) + float2(-1,-1); - r8.xy = cb2[0].xx * r6.xy; - r9.xyz = t7.SampleBias(s7_s, r6.zw, cb0[108].x).xyz; - r7.xyzw = cb2[8].xyzw * r7.xyzw; - r7.xyz = saturate(cb2[4].zzz * r7.xyz); - r10.xyz = cb2[8].xyz + -r7.xyz; - r7.xyz = cb2[4].xxx * r10.xyz + r7.xyz; - r3.w = r7.w * v4.x + -r7.w; - r10.w = cb2[23].x * r3.w + r7.w; - r3.w = cb2[0].w + -cb2[0].z; - r11.w = r9.y * r3.w + cb2[0].z; - r3.w = saturate(cb2[3].w + -1); - r4.w = cb2[4].y + -r9.x; - r3.w = r3.w * r4.w + r9.x; - r9.xyw = v3.yzx * v2.zxy; - r9.xyw = v2.yzx * v3.zxy + -r9.xyw; - r9.xyw = r9.xyw * r0.zzz; - r8.yzw = r9.xyw * r8.yyy; - r8.xyz = v3.xyz * r8.xxx + r8.yzw; - r0.z = dot(r6.xy, r6.xy); - r0.z = min(1, r0.z); - r0.z = 1 + -r0.z; - r0.z = sqrt(r0.z); - r0.z = max(1.00000002e-16, r0.z); - r4.w = cmp(0 < cb2[1].w); - r4.w = r4.w ? -1 : 1; - r4.w = v8.x ? 1 : r4.w; - r0.z = r4.w * r0.z; - r6.xyz = v2.xyz * r0.zzz + r8.xyz; - r0.z = dot(r6.xyz, r6.xyz); - r0.z = rsqrt(r0.z); - r6.xyz = r6.xyz * r0.zzz; - r0.z = dot(r6.xyz, r5.xyz); - r4.w = dot(-r5.xyz, r6.xyz); - r5.w = cb2[19].z * cb2[19].z; - r7.w = -r4.w * r4.w + 1; - r5.w = -r5.w * r7.w + 1; - r7.w = sqrt(r5.w); - r7.w = cb2[19].z * r4.w + r7.w; - r5.w = cmp(r5.w >= 0); - r8.xyz = r7.www * r6.xyz; - r8.xyz = cb2[19].zzz * -r5.xyz + -r8.xyz; - r8.xyz = r5.www ? r8.xyz : 0; - r5.w = v0.z * r0.z; - r5.w = max(0.5, r5.w); - r5.w = cb2[19].w / r5.w; - r5.w = -cb2[19].w + r5.w; - r5.w = cb2[20].x * r5.w + cb2[19].w; - r8.xyz = r8.xyz * r5.www; - r8.yw = cb0[1].xy * r8.yy; - r8.xy = cb0[0].xy * r8.xx + r8.yw; - r8.xy = cb0[2].xy * r8.zz + r8.xy; - r8.zw = v1.xy * cb2[22].xy + cb2[22].zw; - r8.zw = t9.SampleBias(s8_s, r8.zw, cb0[108].x).xy; - r8.zw = r8.zw * float2(2,2) + float2(-1,-1); - r8.zw = r8.zw * cb2[19].yy + -r8.xy; - r8.xy = cb2[19].xx * r8.zw + r8.xy; - r8.zw = v0.xy * cb0[82].zw + r8.xy; - r8.xy = float2(0.25,0.25) * r8.xy; - r9.xy = v0.xy * cb0[82].zw + r8.xy; - r5.w = t1.SampleBias(s0_s, r8.zw, cb0[108].x).x; - r7.w = t1.SampleBias(s0_s, r9.xy, cb0[108].x).x; - r7.w = cb0[84].z * r7.w + cb0[84].w; - r7.w = 1 / r7.w; - r7.w = cmp(r7.w >= r2.z); - r7.w = r7.w ? 1.000000 : 0; - r8.xy = r7.ww * r8.xy + r0.xy; - r5.w = cb0[84].z * r5.w + cb0[84].w; - r5.w = 1 / r5.w; - r5.w = cmp(r5.w >= r2.z); - r5.w = r5.w ? 1.000000 : 0; - r8.zw = r8.zw + -r8.xy; - r8.xy = r5.ww * r8.zw + r8.xy; - r8.xyz = t8.SampleBias(s9_s, r8.xy, cb0[108].x).xyz; - r5.w = max(9.99999994e-09, v5.z); - r9.xy = v5.xy / r5.ww; - r5.w = max(9.99999994e-09, v6.z); - r12.xy = v6.xy / r5.ww; - r12.xy = -r12.xy + r9.xy; - r5.w = cb2[0].y * 0.0799999982; - r9.xyw = -r7.xyz * r3.www + r7.xyz; - r5.w = -r5.w * r3.w + r5.w; - r7.xyz = r7.xyz * r3.www + r5.www; - r13.xyzw = r11.wwww * float4(-1,-0.0274999999,-0.572000027,0.0219999999) + float4(1,0.0425000004,1.03999996,-0.0399999991); - r3.w = r13.x * r13.x; - r0.z = max(0, r0.z); - r5.w = -9.27999973 * r0.z; - r5.w = exp2(r5.w); - r3.w = min(r5.w, r3.w); - r3.w = r3.w * r13.x + r13.y; - r13.xy = r3.ww * float2(-1.03999996,1.03999996) + r13.zw; - r3.w = cmp(1.000000 == cb0[113].y); - r14.xyzw = cb0[241].xyzw * r1.yyyy; - r14.xyzw = cb0[240].xyzw * r1.xxxx + r14.xyzw; - r14.xyzw = cb0[242].xyzw * r1.zzzz + r14.xyzw; - r14.xyzw = cb0[243].xyzw + r14.xyzw; - r5.w = 1 / r14.w; - r14.xyz = float3(1,-1,1) * r14.xyz; - r14.xyz = r14.xyz * r5.www; - r13.zw = saturate(r14.xy * float2(0.5,0.5) + float2(0.5,0.5)); - r13.zw = cb0[82].xy * r13.zw; - r15.xy = (uint2)r13.zw; - r5.w = cb0[84].z * r14.z + cb0[84].w; - r15.z = 1 / r5.w; - r2.xy = (uint2)v0.xy; - r14.xyz = r3.www ? r15.xyz : r2.xyz; - r2.xyz = r6.xyz * float3(0.25,0.25,0.25) + r1.xyz; - r15.xyz = cb0[6].xzy * -cb0[212].www + cb0[210].xzy; - r15.xyz = -r15.xyz + r2.xzy; - r3.w = max(abs(r15.x), abs(r15.y)); - r3.w = -464 + r3.w; - r3.w = saturate(0.03125 * r3.w); - r5.w = -208 + abs(r15.z); - r5.w = saturate(0.03125 * r5.w); - r3.w = max(r5.w, r3.w); - r5.w = cmp(0.000000 != cb0[210].w); - r7.w = cmp(r3.w < 1); - r5.w = r5.w ? r7.w : 0; - if (r5.w != 0) { - r15.xyz = cb0[6].xzy * -cb0[212].yyy + cb0[210].xzy; - r15.xyz = -r15.xyz + r2.xzy; - r5.w = max(abs(r15.x), abs(r15.y)); - r5.w = -29 + r5.w; - r5.w = saturate(0.5 * r5.w); - r7.w = -13 + abs(r15.z); - r7.w = saturate(0.5 * r7.w); - r5.w = max(r7.w, r5.w); - r7.w = cmp(r5.w < 1); - if (r7.w != 0) { - r15.xyz = r2.xyz * float3(2,2,2) + float3(0.5,0.5,0.5); - r16.xyz = cb0[211].xyz * r15.xyz; - r16.xyz = floor(r16.xyz); - r15.xyz = r15.xyz * cb0[211].xyz + -r16.xyz; - r16.xyz = t16.SampleLevel(s2_s, r15.xyz, 0).xyz; - r7.w = 1 + -r5.w; - r8.w = cb0[211].y * 0.5; - r12.w = -cb0[211].y * 0.5 + 1; - r8.w = max(r15.y, r8.w); - r8.w = min(r8.w, r12.w); - r15.w = 0.333333343 * r8.w; - r17.xyzw = t17.SampleLevel(s1_s, r15.xwz, 0).xyzw; - r17.xyz = r17.xyz * float3(4,4,4) + float3(-2,-2,-2); - r18.xyz = r17.xyz * r16.xxx; - r17.xyz = float3(0,0.333333343,0) + r15.xwz; - r17.xyz = t17.SampleLevel(s1_s, r17.xyz, 0).xyz; - r17.xyz = r17.xyz * float3(4,4,4) + float3(-2,-2,-2); - r19.xyz = r17.xyz * r16.yyy; - r15.xyz = float3(0,0.666666687,0) + r15.xwz; - r15.xyz = t17.SampleLevel(s1_s, r15.xyz, 0).xyz; - r15.xyz = r15.xyz * float3(4,4,4) + float3(-2,-2,-2); - r15.xyz = r15.xyz * r16.zzz; - r8.w = r17.w * r7.w + r3.w; - r15.w = r16.z; - r15.xyzw = r15.xyzw * r7.wwww; - r19.w = r16.y; - r17.xyzw = r19.xyzw * r7.wwww; - r18.w = r16.x; - r16.xyzw = r18.xyzw * r7.wwww; - } else { - r15.xyzw = float4(0,0,0,0); - r17.xyzw = float4(0,0,0,0); - r16.xyzw = float4(0,0,0,0); - r8.w = r3.w; - } - r18.xyz = cb0[6].xzy * -cb0[212].zzz + cb0[210].xzy; - r18.xyz = -r18.xyz + r2.xzy; - r7.w = max(abs(r18.x), abs(r18.y)); - r7.w = -116 + r7.w; - r7.w = saturate(0.125 * r7.w); - r12.w = -52 + abs(r18.z); - r12.w = saturate(0.125 * r12.w); - r7.w = max(r12.w, r7.w); - r12.w = cmp(r7.w < 1); - if (r12.w != 0) { - r18.xyz = r2.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5); - r19.xyz = cb0[211].xyz * r18.xyz; - r19.xyz = floor(r19.xyz); - r18.xyz = r18.xyz * cb0[211].xyz + -r19.xyz; - r19.xyz = t18.SampleLevel(s2_s, r18.xyz, 0).xyz; - r12.w = 1 + -r7.w; - r5.w = r12.w * r5.w; - r12.w = cb0[211].y * 0.5; - r13.z = -cb0[211].y * 0.5 + 1; - r12.w = max(r18.y, r12.w); - r12.w = min(r12.w, r13.z); - r18.w = 0.333333343 * r12.w; - r20.xyzw = t19.SampleLevel(s1_s, r18.xwz, 0).xyzw; - r20.xyz = r20.xyz * float3(4,4,4) + float3(-2,-2,-2); - r21.xyz = r20.xyz * r19.xxx; - r20.xyz = float3(0,0.333333343,0) + r18.xwz; - r20.xyz = t19.SampleLevel(s1_s, r20.xyz, 0).xyz; - r20.xyz = r20.xyz * float3(4,4,4) + float3(-2,-2,-2); - r22.xyz = r20.xyz * r19.yyy; - r18.xyz = float3(0,0.666666687,0) + r18.xwz; - r18.xyz = t19.SampleLevel(s1_s, r18.xyz, 0).xyz; - r18.xyz = r18.xyz * float3(4,4,4) + float3(-2,-2,-2); - r18.xyz = r18.xyz * r19.zzz; - r8.w = r20.w * r5.w + r8.w; - r18.w = r19.z; - r15.xyzw = r18.xyzw * r5.wwww + r15.xyzw; - r22.w = r19.y; - r17.xyzw = r22.xyzw * r5.wwww + r17.xyzw; - r21.w = r19.x; - r16.xyzw = r21.xyzw * r5.wwww + r16.xyzw; - } - r5.w = cmp(0 < r7.w); - if (r5.w != 0) { - r2.xyz = r2.xyz * float3(0.125,0.125,0.125) + float3(0.5,0.5,0.5); - r18.xyz = cb0[211].xyz * r2.xyz; - r19.xyz = cb0[211].xyz * float3(0.5,0.5,0.5); - r18.xyz = floor(r18.xyz); - r2.xyz = r2.xyz * cb0[211].xyz + -r18.xyz; - r18.xyz = -cb0[211].xyz * float3(0.5,0.5,0.5) + float3(1,1,1); - r2.xyz = max(r2.xyz, r19.xyz); - r20.xyz = min(r2.xyz, r18.xyz); - r21.xyw = t20.SampleLevel(s2_s, r20.xyz, 0).yzx; - r2.x = 1 + -r3.w; - r2.x = r7.w * r2.x; - r2.y = max(r20.y, r19.y); - r2.y = min(r2.y, r18.y); - r20.w = 0.333333343 * r2.y; - r18.xyzw = t21.SampleLevel(s1_s, r20.xwz, 0).xyzw; - r19.xyz = float3(0,0.666666687,0) + r20.xwz; - r19.xyz = t21.SampleLevel(s1_s, r19.xyz, 0).xyz; - r19.xyz = r19.xyz * float3(4,4,4) + float3(-2,-2,-2); - r19.xyz = r19.xyz * r21.yyy; - r19.w = r21.y; - r15.xyzw = r19.xyzw * r2.xxxx + r15.xyzw; - r19.xyz = float3(0,0.333333343,0) + r20.xwz; - r19.xyz = t21.SampleLevel(s1_s, r19.xyz, 0).xyz; - r19.xyz = r19.xyz * float3(4,4,4) + float3(-2,-2,-2); - r19.xyz = r19.xyz * r21.xxx; - r19.w = r21.x; - r17.xyzw = r19.xyzw * r2.xxxx + r17.xyzw; - r18.xyz = r18.xyz * float3(4,4,4) + float3(-2,-2,-2); - r21.xyz = r18.xyz * r21.www; - r16.xyzw = r21.xyzw * r2.xxxx + r16.xyzw; - r8.w = r18.w * r2.x + r8.w; - } - r2.x = saturate(r8.w * 2 + -1); - r18.x = r2.x + -r3.w; - r2.x = r2.x + r3.w; - r18.y = 0.5 * r2.x; - } else { - r15.xyzw = float4(0,0,0,0); - r17.xyzw = float4(0,0,0,0); - r16.xyzw = float4(0,0,0,0); - r18.xy = float2(0,1); - } - r19.xyzw = cb0[213].xyzw * r18.yyyx; - r19.y = r19.w * 0.5 + r19.y; - r2.xy = cb0[213].wy * r18.yx; - r19.w = r2.y * 0.375 + r2.x; - r16.xyzw = r19.xyzw + r16.xyzw; - r19.xyzw = cb0[214].xyzw * r18.yyyx; - r19.y = r19.w * 0.5 + r19.y; - r2.xy = cb0[214].wy * r18.yx; - r19.w = r2.y * 0.375 + r2.x; - r17.xyzw = r19.xyzw + r17.xyzw; - r19.xyzw = cb0[215].xyzw * r18.yyyx; - r19.y = r19.w * 0.5 + r19.y; - r2.xy = cb0[215].wy * r18.yx; - r19.w = r2.y * 0.375 + r2.x; - r15.xyzw = r19.xyzw + r15.xyzw; - r2.x = dot(r16.xyz, r6.xyz); - r2.x = r2.x + r16.w; - r2.x = max(0, r2.x); - r3.w = dot(r17.xyz, r6.xyz); - r3.w = r3.w + r17.w; - r2.y = max(0, r3.w); - r3.w = dot(r15.xyz, r6.xyz); - r3.w = r3.w + r15.w; - r2.z = max(0, r3.w); - r3.w = r4.w + r4.w; - r15.xyz = r6.xyz * -r3.www + -r5.xyz; - r3.w = cb0[113].x + -1; - r4.w = max(0.00100000005, r11.w); - r4.w = log2(r4.w); - r4.w = -r4.w * 1.20000005 + 1; - r3.w = -r4.w + r3.w; - r13.zw = (uint2)r14.xy; - r16.xy = cb3[0].ww * r13.zw; - r16.xy = floor(r16.xy); - r4.w = -cb3[2].y + r14.z; - r4.w = floor(r4.w); - r5.w = cb3[1].x + -1; - r7.w = max(0, r4.w); - r5.w = min(r7.w, r5.w); - r4.w = cmp(r5.w >= r4.w); - r7.w = r16.y * cb3[0].x + r16.x; - r7.w = (int)r7.w; - r7.w = (int)r7.w + asint(cb0[110].z); - r7.w = t0[r7.w].val[0/4]; - r5.w = (int)r5.w; - r5.w = (int)r5.w + asint(cb0[110].w); - r5.w = t0[r5.w].val[0/4]; - r5.w = (int)r5.w & (int)r7.w; - r4.w = r4.w ? r5.w : 0; - r16.xyz = cb0[111].xxx * r2.xyz; - r5.w = dot(r16.xyz, float3(0.212672904,0.715152204,0.0721750036)); - r1.w = 1; - r6.w = 1; - r16.xyz = float3(0,0,0); - r7.w = 1; - r8.w = r4.w; - r12.w = 0; - while (true) { - r15.w = cmp(0.00999999978 < r7.w); - r16.w = cmp((int)r8.w != 0); - r16.w = r15.w ? r16.w : 0; - if (r16.w != 0) { - r16.w = firstbitlow((uint)r8.w); - r17.x = 1 << (int)r16.w; - r8.w = (int)r8.w ^ (int)r17.x; - r16.w = (uint)r16.w << 3; - r17.x = dot(cb3[r16.w+6].xyzw, r1.xyzw); - r17.y = dot(cb3[r16.w+7].xyzw, r1.xyzw); - r17.z = dot(cb3[r16.w+8].xyzw, r1.xyzw); - r18.xyz = cmp(cb3[r16.w+5].xyz >= abs(r17.xyz)); - r17.w = r18.y ? r18.x : 0; - r17.w = r18.z ? r17.w : 0; - if (r17.w != 0) { - r17.w = cb3[r16.w+5].x * 0.100000001; - r18.xyz = float3(0.100000001,0.100000001,0.100000001) * abs(r17.xyz); - r18.xy = r18.xy * r18.xy; - r19.xyz = cb3[r16.w+5].xyz + -abs(r17.xyz); - r19.xyz = cb3[r16.w+9].xyz * r19.xyz; - r18.w = cmp(1.000000 == cb3[r16.w+10].x); - if (r18.w != 0) { - r20.x = dot(cb3[r16.w+6].xyz, r15.xyz); - r20.y = dot(cb3[r16.w+7].xyz, r15.xyz); - r20.z = dot(cb3[r16.w+8].xyz, r15.xyz); - r21.xyz = cb3[r16.w+5].xyz + -r17.xyz; - r21.xyz = r21.xyz / r20.xyz; - r22.xyz = -cb3[r16.w+5].xyz + -r17.xyz; - r22.xyz = r22.xyz / r20.xyz; - r23.xyz = cmp(float3(0,0,0) < r20.xyz); - r21.xyz = r23.xyz ? r21.xyz : r22.xyz; - r18.w = min(r21.x, r21.y); - r18.w = min(r18.w, r21.z); - r17.xyz = r20.xyz * r18.www + r17.xyz; - } else { - r17.xyz = r15.xyz; - } - r18.w = dot(r17.xyz, r17.xyz); - r18.w = rsqrt(r18.w); - r17.xyz = r18.www * r17.xyz; - r20.xyz = cmp(float3(0,0,0) < r17.xyz); - r21.xyz = cmp(r17.xyz < float3(0,0,0)); - r20.xyz = (int3)-r20.xyz + (int3)r21.xyz; - r20.xyz = (int3)r20.xyz; - r18.w = dot(r17.xyz, r20.xyz); - r17.xyz = r17.xyz / r18.www; - r17.z = cmp(r17.z < 0); - r20.zw = float2(1,1) + -abs(r17.yx); - r20.xy = r20.xy * r20.zw; - r17.xy = r17.zz ? r20.xy : r17.xy; - r17.z = dot(cb3[r16.w+4].xyzw, r6.xyzw); - r17.z = max(0, r17.z); - r17.z = max(9.99999975e-05, r17.z); - r18.w = min(r19.y, r19.z); - r18.w = min(r19.x, r18.w); - r18.x = r18.x + r18.y; - r18.x = r18.z * r18.z + r18.x; - r17.w = r17.w * r17.w + -r18.x; - r17.w = cb3[r16.w+9].x * r17.w; - r17.w = cb3[r16.w+9].x * r17.w; - r18.x = -cb3[r16.w+10].y + 1; - r17.w = r18.x * r17.w; - r17.w = 100 * r17.w; - r17.w = saturate(r18.w * cb3[r16.w+10].y + r17.w); - r18.x = cb3[r16.w+10].w * r17.w; - r17.xy = r17.xy * float2(0.5,0.5) + float2(0.5,0.5); - r19.xy = r17.xy * cb3[1].ww + cb3[2].ww; - r19.z = cb3[r16.w+5].w; - r18.yzw = t4.SampleLevel(s3_s, r19.xyz, r3.w).xyz; - r18.yzw = cb3[r16.w+9].www * r18.yzw; - r17.x = r5.w / r17.z; - r17.x = min(1, abs(r17.x)); - r17.x = r17.x * 2 + r5.w; - r17.y = 2 + r17.z; - r17.x = r17.x / r17.y; - r17.x = -1 + r17.x; - r17.x = r17.x * cb0[112].w + 1; - r17.xyz = r18.yzw * r17.xxx; - r17.xyz = r17.xyz * r18.xxx; - r16.xyz = r17.xyz * r7.www + r16.xyz; - r16.w = -r17.w * cb3[r16.w+10].w + 1; - r7.w = r16.w * r7.w; - } - r12.w = -1; - continue; - } else { - r12.w = r15.w; - break; - } - r12.w = r15.w; - } - if (r12.w != 0) { - r1.w = dot(r15.xyz, r15.xyz); - r1.w = rsqrt(r1.w); - r17.xyz = r15.xyz * r1.www; - r18.xyz = cmp(float3(0,0,0) < r17.xyz); - r19.xyz = cmp(r17.xyz < float3(0,0,0)); - r18.xyz = (int3)-r18.xyz + (int3)r19.xyz; - r18.xyz = (int3)r18.xyz; - r1.w = dot(r17.xyz, r18.xyz); - r17.xyz = r17.xyz / r1.www; - r1.w = cmp(r17.z < 0); - r17.zw = float2(1,1) + -abs(r17.yx); - r17.zw = r18.xy * r17.zw; - r17.xy = r1.ww ? r17.zw : r17.xy; - r6.w = 1; - r1.w = dot(cb3[3].xyzw, r6.xyzw); - r1.w = max(0, r1.w); - r1.w = max(9.99999975e-05, r1.w); - r17.xy = r17.xy * float2(0.5,0.5) + float2(0.5,0.5); - r17.xy = r17.xy * cb3[1].ww + cb3[2].ww; - r17.z = 0; - r17.xyz = t4.SampleLevel(s3_s, r17.xyz, r3.w).xyz; - r3.w = r5.w / r1.w; - r3.w = min(1, abs(r3.w)); - r3.w = r3.w * 2 + r5.w; - r1.w = 2 + r1.w; - r1.w = r3.w / r1.w; - r1.w = -1 + r1.w; - r1.w = r1.w * cb0[112].w + 1; - r17.xyz = r17.xyz * r1.www; - r16.xyz = r17.xyz * r7.www + r16.xyz; - } - - // Reduce reflection probe intensity for glass - if (GLASS_TRANSPARENCY > 0.5f) { - r16.xyz *= 0.4f; - } - - r16.xyz = cb0[112].zzz * r16.xyz; - r16.xyz = cb0[111].yyy * r16.xyz; - r1.w = cmp(0.000000 != cb0[112].y); - if (r1.w != 0) { - r1.w = t3.SampleBias(s1_s, r0.xy, cb0[108].x).x; - r17.xyz = t2.SampleBias(s1_s, r0.xy, cb0[108].x).xyz; - r0.x = 1 + -r1.w; - r18.xyz = r16.xyz * r0.xxx; - r16.xyz = r17.xyz * r1.www + r18.xyz; - } - r2.xyz = r2.xyz * r9.xyw; - r0.x = -1 + r9.z; - r0.x = cb2[1].x * r0.x + 1; - r2.xyz = r2.xyz * r0.xxx; - r0.x = saturate(50 * r7.y); - r0.x = r0.x * r13.y; - r17.xyz = r7.xyz * r13.xxx + r0.xxx; - r16.xyz = r17.xyz * r16.xyz; - r2.xyz = r2.xyz * cb0[111].xxx + r16.xyz; - r0.x = cmp(cb6[35].w < 0.99000001); - if (r0.x != 0) { - r0.x = (int)cb6[35].x; - r0.y = cmp((int)r0.x == 2); - r16.xyz = r0.yyy ? cb6[20].xyz : cb0[44].xyz; - r16.xyz = -r16.xyz + r1.xyz; - r0.y = dot(r16.xyz, r16.xyz); - r0.y = cb6[34].w + -r0.y; - r0.y = saturate(cb6[34].z * r0.y); - r1.w = cmp(0 < r0.y); - if (r1.w != 0) { - r0.x = cmp(0 < (int)r0.x); - if (r0.x != 0) { - r16.xyz = -cb6[20].xyz + r1.xyz; - r17.xyz = -cb6[21].xyz + r1.xyz; - r18.xyz = -cb6[22].xyz + r1.xyz; - r19.xyz = -cb6[23].xyz + r1.xyz; - r16.x = dot(r16.xyz, r16.xyz); - r16.y = dot(r17.xyz, r17.xyz); - r16.z = dot(r18.xyz, r18.xyz); - r16.w = dot(r19.xyz, r19.xyz); - r17.x = cmp(r16.x < cb6[20].w); - r17.y = cmp(r16.y < cb6[21].w); - r17.z = cmp(r16.z < cb6[22].w); - r17.w = cmp(r16.w < cb6[23].w); - r18.xyzw = r17.xyzw ? float4(1,1,1,1) : 0; - r17.xyz = r17.xyz ? float3(-1,-1,-1) : float3(-0,-0,-0); - r17.xyz = r18.yzw + r17.xyz; - r18.yzw = max(float3(0,0,0), r17.xyz); - r0.x = dot(r18.xyzw, float4(4,3,2,1)); - r0.x = 4 + -r0.x; - r0.x = max(0, r0.x); - r0.x = min(3, r0.x); - r1.w = 1 + r0.x; - r1.w = min(3, r1.w); - r1.w = (uint)r1.w; - r3.w = dot(r16.yzw, icb[r1.w+0].yzw); - r1.w = r3.w / cb6[r1.w+20].w; - r3.w = cmp(r1.w >= 0); - r1.w = cmp(1 >= r1.w); - r1.w = r1.w ? r3.w : 0; - if (r1.w != 0) { - r1.w = (uint)r0.x; - r13.xy = float2(2.08299994,4.8670001) + r13.zw; - r3.w = dot(r13.xy, float2(0.0671105608,0.00583714992)); - r3.w = frac(r3.w); - r3.w = 52.9829178 * r3.w; - r3.w = frac(r3.w); - r4.w = dot(r16.xyzw, icb[r1.w+0].xyzw); - r1.w = r4.w / cb6[r1.w+20].w; - r1.w = sqrt(r1.w); - r1.w = -0.899999976 + r1.w; - r1.w = 12 * r1.w; - r1.w = cmp(r1.w >= r3.w); - r1.w = r1.w ? 1.000000 : 0; - r0.x = r1.w + r0.x; - } - r1.w = dot(r6.xyz, cb5[0].xyz); - r1.w = max(0, r1.w); - r1.w = min(0.899999976, r1.w); - r1.w = 1 + -r1.w; - r3.w = (uint)r0.x; - r4.w = (uint)r3.w << 2; - r13.xy = cb6[r3.w+24].xy * r1.ww; - r1.w = max(0, r13.x); - r16.xyz = -cb5[0].xyz * r1.www + r1.xyz; - r16.xyz = r6.xyz * r13.yyy + r16.xyz; - r17.xyz = cb6[r4.w+1].xyz * r16.yyy; - r16.xyw = cb6[r4.w+0].xyz * r16.xxx + r17.xyz; - r16.xyz = cb6[r4.w+2].xyz * r16.zzz + r16.xyw; - r16.xyz = cb6[r4.w+3].xyz + r16.xyz; - r17.xyz = cmp(float3(0,0,0) >= r16.xyz); - r18.xyz = cmp(r16.xyz >= float3(1,1,1)); - r17.xyz = (int3)r17.xyz | (int3)r18.xyz; - r1.w = (int)r17.y | (int)r17.x; - r1.w = (int)r17.z | (int)r1.w; - r3.w = (int)r16.z & 0x7fffffff; - r3.w = cmp(0x7f800000 < (uint)r3.w); - r17.z = (int)r1.w | (int)r3.w; - r0.x = (int)r0.x; - r13.xy = r16.xy * cb6[r0.x+28].zw + cb6[r0.x+28].xy; - r16.xy = r13.xy * cb6[32].zw + float2(0.5,0.5); - r16.xy = floor(r16.xy); - r13.xy = r13.xy * cb6[32].zw + -r16.xy; - r18.xyzw = float4(0.5,1,0.5,1) + r13.xxyy; - r19.xw = r18.xz * r18.xz; - r18.xz = min(float2(0,0), r13.xy); - r20.xy = max(float2(0,0), r13.xy); - r20.zw = r19.xw * float2(0.5,0.5) + -r13.xy; - r13.xy = float2(1,1) + -r13.xy; - r13.xy = -r18.xz * r18.xz + r13.xy; - r18.xy = -r20.xy * r20.xy + r18.yw; - r21.x = r20.z; - r21.y = r13.x; - r21.z = r18.x; - r21.w = r19.x; - r21.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r21.xyzw; - r19.x = r20.w; - r19.y = r13.y; - r19.z = r18.y; - r18.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r19.xyzw; - r19.xyzw = r21.xzxz + r21.ywyw; - r20.xyzw = r18.xxzz + r18.yyww; - r13.xy = r21.yw / r19.zw; - r13.xy = float2(-1.5,0.5) + r13.xy; - r21.xy = cb6[32].xx * r13.xy; - r13.xy = r18.yw / r20.yw; - r13.xy = float2(-1.5,0.5) + r13.xy; - r21.zw = cb6[32].yy * r13.xy; - r18.xyzw = r20.xyzw * r19.xyzw; - r19.xyzw = r16.xyxy * cb6[32].xyxy + r21.xzyz; - r0.x = t10.SampleCmpLevelZero(s4_s, r19.xy, r16.z).x; - r1.w = t10.SampleCmpLevelZero(s4_s, r19.zw, r16.z).x; - r1.w = r18.y * r1.w; - r0.x = r18.x * r0.x + r1.w; - r19.xyzw = r16.xyxy * cb6[32].xyxy + r21.xwyw; - r1.w = t10.SampleCmpLevelZero(s4_s, r19.xy, r16.z).x; - r0.x = r18.z * r1.w + r0.x; - r1.w = t10.SampleCmpLevelZero(s4_s, r19.zw, r16.z).x; - r0.x = r18.w * r1.w + r0.x; - r17.x = r17.z ? 1 : r0.x; - } else { - r17.xz = float2(1,0); - } - } else { - r17.xz = float2(1,0); - } - r0.x = cmp(r0.y < 1); - if (r0.x != 0) { - r0.x = dot(r6.xyz, cb5[0].xyz); - r0.x = max(0, r0.x); - r0.x = min(0.899999976, r0.x); - r0.x = 1 + -r0.x; - r13.xy = cb6[584].xy * r0.xx; - r16.xyz = -cb5[0].xyz * r13.xxx + r1.xyz; - r16.xyz = r6.xyz * r13.yyy + r16.xyz; - r13.xy = cb6[581].xy * r16.yy; - r13.xy = cb6[580].xy * r16.xx + r13.xy; - r13.xy = cb6[582].xy * r16.zz + r13.xy; - r13.xy = cb6[583].xy + r13.xy; - r18.xy = cmp(float2(0,0) < r13.xy); - r0.x = r18.y ? r18.x : 0; - r18.xy = cmp(r13.xy < float2(1,1)); - r1.w = r18.y ? r18.x : 0; - r0.x = (int)r0.x & (int)r1.w; - if (r0.x != 0) { - r0.x = cb6[585].z * r13.y; - r0.x = floor(r0.x); - r0.x = r0.x + r13.x; - r0.x = cb6[585].y * r0.x; - r0.x = (uint)r0.x; - r0.x = min(127, (uint)r0.x); - r1.w = 0x0000ffff & asint(cb6[r0.x+587].x); - r13.x = f16tof32(r1.w); - r1.w = cmp(r13.x >= 0); - if (r1.w != 0) { - r18.x = cb6[576].x; - r18.y = cb6[577].x; - r18.z = cb6[578].x; - r18.w = cb6[r0.x+587].y; - r16.w = 1; - r18.x = dot(r18.xyzw, r16.xyzw); - r19.x = cb6[576].y; - r19.y = cb6[577].y; - r19.z = cb6[578].y; - r19.w = cb6[r0.x+587].z; - r18.y = dot(r19.xyzw, r16.xyzw); - r19.x = cb6[576].z; - r19.y = cb6[577].z; - r19.z = cb6[578].z; - r19.w = cb6[r0.x+587].w; - r1.w = dot(r19.xyzw, r16.xyzw); - r16.xy = cmp(float2(0,0) < r18.xy); - r3.w = cmp(0 < r1.w); - r4.w = r16.y ? r16.x : 0; - r3.w = r3.w ? r4.w : 0; - r16.xy = cmp(r18.xy < float2(1,1)); - r4.w = cmp(r1.w < 1); - r5.w = r16.y ? r16.x : 0; - r4.w = r4.w ? r5.w : 0; - r3.w = r3.w ? r4.w : 0; - if (r3.w != 0) { - r0.x = asuint(cb6[r0.x+587].x) >> 16; - r13.y = f16tof32(r0.x); - r13.xy = r18.xy * cb6[584].zw + r13.xy; - r16.xy = r13.xy * cb6[586].zw + float2(0.5,0.5); - r16.xy = floor(r16.xy); - r13.xy = r13.xy * cb6[586].zw + -r16.xy; - r18.xyzw = float4(0.5,1,0.5,1) + r13.xxyy; - r19.xw = r18.xz * r18.xz; - r16.zw = min(float2(0,0), r13.xy); - r18.xz = max(float2(0,0), r13.xy); - r20.xy = r19.xw * float2(0.5,0.5) + -r13.xy; - r13.xy = float2(1,1) + -r13.xy; - r13.xy = -r16.zw * r16.zw + r13.xy; - r16.zw = -r18.xz * r18.xz + r18.yw; - r18.x = r20.x; - r18.y = r13.x; - r18.z = r16.z; - r18.w = r19.x; - r18.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r18.xyzw; - r19.x = r20.y; - r19.y = r13.y; - r19.z = r16.w; - r19.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r19.xyzw; - r20.xyzw = r18.xzxz + r18.ywyw; - r21.xyzw = r19.xxzz + r19.yyww; - r13.xy = r18.yw / r20.zw; - r13.xy = float2(-1.5,0.5) + r13.xy; - r18.xy = cb6[586].xx * r13.xy; - r13.xy = r19.yw / r21.yw; - r13.xy = float2(-1.5,0.5) + r13.xy; - r18.zw = cb6[586].yy * r13.xy; - r19.xyzw = r21.xyzw * r20.xyzw; - r20.xyzw = r16.xyxy * cb6[586].xyxy + r18.xzyz; - r0.x = t13.SampleCmpLevelZero(s4_s, r20.xy, r1.w).x; - r3.w = t13.SampleCmpLevelZero(s4_s, r20.zw, r1.w).x; - r3.w = r19.y * r3.w; - r0.x = r19.x * r0.x + r3.w; - r16.xyzw = r16.xyxy * cb6[586].xyxy + r18.xwyw; - r3.w = t13.SampleCmpLevelZero(s4_s, r16.xy, r1.w).x; - r0.x = r19.z * r3.w + r0.x; - r1.w = t13.SampleCmpLevelZero(s4_s, r16.zw, r1.w).x; - r17.y = r19.w * r1.w + r0.x; - } else { - r17.y = 1; - } - } else { - r17.y = 1; - } - } else { - r17.y = 1; - } - r17.x = r17.z ? r17.y : r17.x; - } else { - r17.y = 1; - } - r0.x = r17.x + -r17.y; - r0.x = r0.y * r0.x + r17.y; - r0.y = cmp(0.00100000005 < r0.x); - if (r0.y != 0) { - r16.xyz = -cb0[173].xyz + r1.xyz; - r13.xy = cb0[176].xz * r16.yy + r16.xz; - r16.yw = cb0[174].zz * r13.xy; - r17.xy = cb0[183].ww * cb0[175].xy; - r13.xy = r13.xy * cb0[174].zz + r17.xy; - r0.y = t12.SampleLevel(s2_s, r13.xy, 0).x; - r13.xy = r16.yw * cb0[175].ww + r17.xy; - r1.w = t12.SampleLevel(s2_s, r13.xy, 0).x; - r3.w = dot(r16.xz, r16.xz); - r3.w = sqrt(r3.w); - r4.w = cb0[174].y + -cb0[174].x; - r3.w = -cb0[174].x + r3.w; - r4.w = 1 / r4.w; - r3.w = saturate(r4.w * r3.w); - r4.w = r3.w * -2 + 3; - r3.w = r3.w * r3.w; - r3.w = r4.w * r3.w; - r1.w = r1.w + -r0.y; - r0.y = r3.w * r1.w + r0.y; - r0.y = -1 + r0.y; - r0.y = cb0[175].z * r0.y + 1; - r0.x = r0.x * r0.y; - } - r0.y = cb6[35].z + -r0.x; - r0.x = cb6[35].w * r0.y + r0.x; - } else { - r0.x = cb6[35].z; - } - r0.x = min(1, r0.x); - r0.x = -1 + r0.x; - r0.x = cb6[34].x * r0.x + 1; - r1.w = cmp(0.00100000005 < r0.x); - if (r1.w != 0) { - r1.w = dot(-cb5[0].xyz, r15.xyz); - r16.xyz = cb5[0].xyz * r1.www + r15.xyz; - r1.w = cmp(r1.w < cb5[4].z); - r3.w = dot(r16.xyz, r16.xyz); - r3.w = max(6.10351562e-05, r3.w); - r3.w = rsqrt(r3.w); - r16.xyz = r16.xyz * r3.www; - r16.xyz = cb5[4].yyy * r16.xyz; - r16.xyz = -cb5[0].xyz * cb5[4].zzz + r16.xyz; - r3.w = dot(r16.xyz, r16.xyz); - r3.w = rsqrt(r3.w); - r16.xyz = r16.xyz * r3.www; - r16.xyz = r1.www ? r16.xyz : r15.xyz; - r17.xyz = r3.xyz * r2.www + r16.xyz; - r1.w = dot(r17.xyz, r17.xyz); - r1.w = max(6.10351562e-05, r1.w); - r1.w = rsqrt(r1.w); - r17.xyz = r17.xyz * r1.www; - r11.y = saturate(dot(r16.xyz, r6.xyz)); - r1.w = saturate(dot(r6.xyz, r17.xyz)); - r11.z = min(1, r0.z); - r3.w = r11.w * r11.w; - r3.w = r3.w * r3.w; - r4.w = r1.w * r3.w + -r1.w; - r1.w = r4.w * r1.w + 1; - r4.w = saturate(dot(r5.xyz, r17.xyz)); - r4.w = 1 + -r4.w; - r5.w = r4.w * r4.w; - r5.w = r5.w * r5.w; - r6.w = r5.w * r4.w; - r7.w = 1 + -r11.w; - r8.w = -r7.w * 0.383026004 + -0.0761947036; - r8.w = r7.w * r8.w + 1.04997003; - r7.w = r7.w * r8.w + 0.409254998; - r7.w = min(0.999000013, r7.w); - r8.w = 1 + -r7.w; - r16.xyz = float3(1,1,1) + -r7.xyz; - r16.xyz = r16.xyz * float3(0.0476190485,0.0476190485,0.0476190485) + r7.xyz; - r4.w = -r5.w * r4.w + 1; - r17.xyz = r7.xyz * r4.www + r6.www; - r1.w = r1.w * r1.w; - r1.w = r3.w / r1.w; - r13.xy = -r11.zy * r3.ww + r11.zy; - r13.xy = r13.xy * r11.zy + r3.ww; - r13.xy = sqrt(r13.xy); - r13.xy = r13.xy * r11.yz; - r3.w = r13.x + r13.y; - r3.w = 9.99999975e-05 + r3.w; - r3.w = 0.5 / r3.w; - r1.w = r3.w * r1.w; - r17.xyz = r17.xyz * r1.www; - r17.xyz = min(float3(2048,2048,2048), r17.xyz); - r18.xyzw = r11.zwyw * float4(0.96875,0.96875,0.96875,0.96875) + float4(0.015625,0.015625,0.015625,0.015625); - r1.w = t15.SampleLevel(s1_s, r18.xy, 0).x; - r3.w = t15.SampleLevel(s1_s, r18.zw, 0).x; - r1.w = r3.w * r1.w; - r1.w = r1.w * r7.w; - r1.w = r1.w / r8.w; - r18.xyz = r16.xyz * r16.xyz; - r18.xyz = r18.xyz * r1.www; - r16.xyz = -r16.xyz * r8.www + float3(1,1,1); - r16.xyz = r18.xyz / r16.xyz; - r16.xyz = r17.xyz + r16.xyz; - r16.xyz = cb5[4].xxx * r16.xyz; - r16.xyz = max(float3(0,0,0), r16.xyz); - r16.xyz = min(float3(1000,1000,1000), r16.xyz); - - // Reduce sun specular intensity on glass - if (GLASS_TRANSPARENCY > 0.5f) { - r16.xyz *= 0.5f; - } - - r1.w = max(0.00999999978, r10.w); - r16.xyz = r16.xyz / r1.www; - r16.xyz = min(float3(1000,1000,1000), r16.xyz); - r17.xyz = r11.yyy * r9.xyw; - r16.xyz = r16.xyz * r11.yyy + r17.xyz; - r16.xyz = cb5[1].xyz * r16.xyz; - r0.y = 0.5; - r17.xyz = t14.SampleBias(s1_s, r0.xy, cb0[108].x).xyz; - r0.x = 1 + -r0.x; - r17.xyz = r16.xyz * r17.xyz + -r16.xyz; - r16.xyz = r0.xxx * r17.xyz + r16.xyz; - } else { - r16.xyz = float3(0,0,0); - } - r0.xy = float2(0.03125,0.03125) * r13.zw; - r0.xy = floor(r0.xy); - r0.x = r0.y * cb4[1].y + r0.x; - r0.x = 8 * r0.x; - r0.x = (int)r0.x; - r0.y = -cb0[85].y * cb4[2].w + r14.z; - r0.y = floor(r0.y); - r1.w = cb4[1].w + -1; - r3.w = max(0, r0.y); - r1.w = min(r3.w, r1.w); - r3.w = 8 * r1.w; - r3.w = (int)r3.w; - r0.y = cmp(r1.w >= r0.y); - r1.w = (int)r3.w + asint(cb0[110].y); - r3.w = r11.w * r11.w; - r11.x = min(1, r0.z); - r0.z = 1 + -r11.w; - r4.w = -r0.z * 0.383026004 + -0.0761947036; - r4.w = r0.z * r4.w + 1.04997003; - r0.z = r0.z * r4.w + 0.409254998; - r0.z = min(0.999000013, r0.z); - r4.w = 1 + -r0.z; - r17.xyz = float3(1,1,1) + -r7.xyz; - r17.xyz = r17.xyz * float3(0.0476190485,0.0476190485,0.0476190485) + r7.xyz; - r11.yz = r11.xw * float2(0.96875,0.96875) + float2(0.015625,0.015625); - r5.w = t15.SampleLevel(s1_s, r11.yz, 0).x; - r18.xyz = -r17.xyz * r4.www + float3(1,1,1); - r17.xyz = r17.xyz * r17.xyz; - r19.w = 1; - r13.y = 1; - r20.z = r11.w; - r21.xyz = float3(0,0,0); - r6.w = 1; - r7.w = 0; - while (true) { - r8.w = cmp(7 < (int)r7.w); - if (r8.w != 0) break; - r8.w = (int)r0.x + (int)r7.w; - r8.w = t0[r8.w].val[0/4]; - r9.z = (int)r1.w + (int)r7.w; - r9.z = t0[r9.z].val[0/4]; - r8.w = (int)r8.w & (int)r9.z; - r8.w = r0.y ? r8.w : 0; - r9.z = (uint)r7.w << 5; - r22.xyz = float3(0,0,0); - r11.y = r6.w; - r11.z = r8.w; - while (true) { - if (r11.z == 0) break; - r12.w = firstbitlow((uint)r11.z); - r15.w = 1 << (int)r12.w; - r15.w = (int)r11.z ^ (int)r15.w; - r12.w = (int)r9.z + (int)r12.w; - bitmask.x = ((~(-1 << 29)) << 3) & 0xffffffff; r23.x = (((uint)r12.w << 3) & bitmask.x) | ((uint)1 & ~bitmask.x); - bitmask.y = ((~(-1 << 29)) << 3) & 0xffffffff; r23.y = (((uint)r12.w << 3) & bitmask.y) | ((uint)3 & ~bitmask.y); - bitmask.z = ((~(-1 << 29)) << 3) & 0xffffffff; r23.z = (((uint)r12.w << 3) & bitmask.z) | ((uint)5 & ~bitmask.z); - bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r23.w = (((uint)r12.w << 3) & bitmask.w) | ((uint)6 & ~bitmask.w); - bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r16.w = (((uint)r12.w << 3) & bitmask.w) | ((uint)7 & ~bitmask.w); - r17.w = (uint)cb5[r23.z+6].w; - r17.w = cmp((int)r17.w == 1); - if (r17.w != 0) { - r19.xyz = -cb5[r23.x+6].xyz + r1.xyz; - r24.xyz = int3(0xffff,0xffff,0xffff) & asint(cb5[r23.z+6].xzy); - r25.xyz = int3(0xffff,0xffff,0xffff) & asint(cb5[r23.w+6].yxz); - r26.xyz = asuint(cb5[r23.z+6].xzy) >> int3(16,16,16); - r27.xyz = asuint(cb5[r23.w+6].yxz) >> int3(16,16,16); - r24.xyz = f16tof32(r24.xyz); - r25.xyz = f16tof32(r25.xyz); - r26.xyz = f16tof32(r26.xyz); - r27.xyw = f16tof32(r27.yxz); - r28.xz = r24.xz; - r28.yw = r26.xz; - r17.w = dot(r19.xyzw, r28.xyzw); - r26.x = r24.y; - r26.z = r25.y; - r26.w = r27.x; - r18.w = dot(r19.xyzw, r26.xyzw); - r27.xz = r25.xz; - r19.x = dot(r19.xyzw, r27.xyzw); - r17.w = max(abs(r18.w), abs(r17.w)); - r17.w = max(r17.w, abs(r19.x)); - r18.w = cb5[r16.w+6].x * 0.5 + 0.5; - r17.w = -r18.w + r17.w; - r18.w = -cb5[r16.w+6].x * 0.5 + 0.5; - r17.w = saturate(r17.w / r18.w); - r17.w = 1 + -r17.w; - r17.w = r17.w * r17.w; - } else { - r17.w = 1; - } - r18.w = cmp(0.5 < cb5[r23.y+6].z); - r19.x = cmp(r17.w < 0.00100000005); - r19.x = (int)r18.w | (int)r19.x; - if (r19.x != 0) { - r11.z = r15.w; - continue; - } - r19.x = (uint)r12.w << 3; - bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r12.w = (((uint)r12.w << 3) & bitmask.w) | ((uint)2 & ~bitmask.w); - r19.y = cmp(cb5[r19.x+6].w < 1.5); - if (r19.y != 0) { - r19.y = cb5[r12.w+6].y * 0.5 + 0.5; - r24.x = -abs(cb5[r12.w+6].x) + r19.y; - r24.y = cb5[r12.w+6].y + -r24.x; - r19.y = 1 + -abs(r24.x); - r19.y = r19.y + -abs(r24.y); - r19.y = max(0.00048828125, r19.y); - r19.z = cmp(cb5[r12.w+6].x >= 0); - r24.z = r19.z ? r19.y : -r19.y; - r19.y = dot(r24.xyz, r24.xyz); - r19.y = rsqrt(r19.y); - r24.xyz = r24.xyz * r19.yyy; - r25.xyz = cb5[r23.x+6].xyz + -r1.xyz; - r19.y = dot(r25.xyz, r25.xyz); - r19.z = rsqrt(r19.y); - r26.xyz = r25.xyz * r19.zzz; - r20.w = (int)cb5[r16.w+6].w; - r27.xyz = cb5[r12.w+6].zzz * r24.xyz; - r28.xyz = -r27.xyz * float3(0.5,0.5,0.5) + r25.xyz; - r29.xyz = r27.xyz * float3(0.5,0.5,0.5) + r25.xyz; - r21.w = (uint)cb5[r19.x+6].w; - r21.w = (int)r21.w & 1; - r22.w = cmp((int)r21.w == 0); - r22.w = ~(int)r22.w; - r23.z = cmp(0 < cb5[r12.w+6].z); - r22.w = r22.w ? r23.z : 0; - r23.z = dot(r28.xyz, r28.xyz); - r23.z = sqrt(r23.z); - r24.w = dot(r29.xyz, r29.xyz); - r24.w = sqrt(r24.w); - r25.w = dot(r6.xyz, r28.xyz); - r25.w = r25.w / r23.z; - r26.w = dot(r6.xyz, r29.xyz); - r26.w = r26.w / r24.w; - r25.w = r26.w + r25.w; - r30.x = saturate(0.5 * r25.w); - r25.w = dot(r28.xyz, r29.xyz); - r23.z = r23.z * r24.w + r25.w; - r23.z = r23.z * 0.5 + 1; - r30.y = 1 / r23.z; - r13.x = saturate(dot(r6.xyz, r26.xyz)); - r20.xy = r22.ww ? r30.xy : r13.xy; - r13.x = cmp(cb5[r23.w+6].w < 0); - if (r13.x != 0) { - r13.x = cb5[r23.x+6].w * cb5[r23.x+6].w; - r13.x = r19.y * r13.x; - r13.x = -r13.x * r13.x + 1; - r13.x = max(0, r13.x); - r19.y = 1 + r19.y; - r19.y = 1 / r19.y; - r23.z = r22.w ? 1.000000 : 0; - r24.w = r20.y + -r19.y; - r19.y = r23.z * r24.w + r19.y; - r13.x = r13.x * r13.x; - r13.x = r19.y * r13.x; - } else { - r29.xyz = cb5[r23.x+6].www * r25.xyz; - r19.y = dot(r29.xyz, r29.xyz); - r19.y = min(1, r19.y); - r19.y = 1 + -r19.y; - r19.y = log2(r19.y); - r19.y = cb5[r23.w+6].w * r19.y; - r19.y = exp2(r19.y); - r13.x = r20.y * r19.y; - } - r19.y = dot(r26.xyz, -r24.xyz); - r19.y = -cb5[r12.w+6].z + r19.y; - r19.y = saturate(cb5[r12.w+6].w * r19.y); - r19.y = r19.y * r19.y; - r19.y = r21.w ? 1 : r19.y; - r13.x = r19.y * r13.x; - r19.y = ~(int)r22.w; - r20.y = cmp((int)r20.w >= 0); - r19.y = r20.y ? r19.y : 0; - if (r19.y != 0) { - if (r21.w == 0) { - r19.y = (uint)r20.w << 2; - r24.xyz = cb7[r19.y+33].xyw * r1.yyy; - r24.xyz = cb7[r19.y+32].xyw * r1.xxx + r24.xyz; - r24.xyz = cb7[r19.y+34].xyw * r1.zzz + r24.xyz; - r24.xyz = cb7[r19.y+35].xyw + r24.xyz; - r24.xy = saturate(r24.xy / r24.zz); - r24.xy = r24.xy * cb7[r20.w+0].zw + cb7[r20.w+0].xy; - } else { - r19.y = (uint)r20.w << 2; - r29.x = dot(-r25.xyz, cb7[r19.y+32].xyz); - r29.y = dot(-r25.xyz, cb7[r19.y+33].xyz); - r29.z = dot(-r25.xyz, cb7[r19.y+34].xyz); - r19.y = cmp(abs(r29.x) < abs(r29.y)); - r19.y = r19.y ? 0.000000 : 0; - r20.y = dot(abs(r29.xy), icb[r19.y+0].xy); - r20.y = cmp(r20.y < abs(r29.z)); - r19.y = r20.y ? 2 : r19.y; - r20.y = dot(r29.xyz, icb[r19.y+0].xyz); - r20.y = cmp(r20.y < 0); - bitmask.y = ((~(-1 << 31)) << 1) & 0xffffffff; r19.y = (((uint)r19.y << 1) & bitmask.y) | ((uint)r20.y & ~bitmask.y); - r20.y = (uint)r19.y >> 1; - r20.y = dot(r29.xyz, icb[r20.y+0].xyz); - r23.z = 0.000244140625 / cb7[r20.w+0].w; - r23.z = 0.5 + -r23.z; - r24.z = (uint)r19.y; - r24.w = cmp((uint)r19.y < 2); - r24.w = r24.w ? 0.000000 : 0; - r24.w = dot(r29.xz, icb[r24.w+0].xz); - r24.w = icb[r19.y+4].z * r24.w; - r24.w = r24.w / abs(r20.y); - r24.z = r24.w * r23.z + r24.z; - r24.z = 0.5 + r24.z; - r25.x = saturate(0.166666672 * r24.z); - r24.z = -1 + (int)icb[r19.y+4].y; - r24.z = dot(r29.yz, icb[r24.z+0].xy); - r19.y = icb[r19.y+4].w * r24.z; - r19.y = r19.y / abs(r20.y); - r25.y = saturate(-r19.y * r23.z + 0.5); - r24.xy = r25.xy * cb7[r20.w+0].zw + cb7[r20.w+0].xy; - } - r19.y = t23.SampleLevel(s1_s, r24.xy, 0).x; - r13.x = r19.y * r13.x; - } - r19.y = cmp(0 < r13.x); - if (r19.y != 0) { - if (r21.w == 0) { - r20.y = (int)cb5[r23.y+6].x; - } else { - r24.xyz = -cb5[r23.x+6].xyz + r1.xyz; - r25.xyz = cmp(abs(r24.yzz) < abs(r24.xxy)); - r20.w = r25.y ? r25.x : 0; - r24.xyz = cmp(float3(0,0,0) < r24.xyz); - r21.w = asuint(cb5[r12.w+6].w) >> 24; - if (8 == 0) r25.x = 0; else if (8+16 < 32) { r25.x = (uint)cb5[r12.w+6].w << (32-(8 + 16)); r25.x = (uint)r25.x >> (32-8); } else r25.x = (uint)cb5[r12.w+6].w >> 16; - if (8 == 0) r25.y = 0; else if (8+8 < 32) { r25.y = (uint)cb5[r12.w+6].w << (32-(8 + 8)); r25.y = (uint)r25.y >> (32-8); } else r25.y = (uint)cb5[r12.w+6].w >> 8; - r21.w = r24.x ? r21.w : r25.x; - r23.z = 255 & asint(cb5[r12.w+6].w); - r23.z = r24.y ? r25.y : r23.z; - if (8 == 0) r24.x = 0; else if (8+8 < 32) { r24.x = (uint)cb5[r23.y+6].x << (32-(8 + 8)); r24.x = (uint)r24.x >> (32-8); } else r24.x = (uint)cb5[r23.y+6].x >> 8; - r24.y = 255 & asint(cb5[r23.y+6].x); - r24.x = r24.z ? r24.x : r24.y; - r23.z = r25.z ? r23.z : r24.x; - r20.w = r20.w ? r21.w : r23.z; - r21.w = cmp((int)r20.w < 80); - r20.y = r21.w ? r20.w : -1; - } - r24.xyz = r26.xyz * cb6[r20.y+288].xxx + r1.xyz; - r20.w = cb6[r20.y+288].y * 5; - r24.xyz = r6.xyz * r20.www + r24.xyz; - r20.w = (uint)r20.y << 2; - r25.xyzw = cb6[r20.w+65].xyzw * r24.yyyy; - r25.xyzw = cb6[r20.w+64].xyzw * r24.xxxx + r25.xyzw; - r24.xyzw = cb6[r20.w+66].xyzw * r24.zzzz + r25.xyzw; - r24.xyzw = cb6[r20.w+67].xyzw + r24.xyzw; - r24.xyz = r24.xyz / r24.www; - r25.xyz = cmp(float3(0,0,0) >= r24.xyz); - r29.xyz = cmp(r24.xyz >= float3(1,1,1)); - r30.xy = cb6[r20.y+344].zw + -cb6[r20.y+344].xy; - r24.xy = r24.xy * r30.xy + cb6[r20.y+344].xy; - r30.xy = r24.xy * cb6[400].zw + float2(0.5,0.5); - r30.xy = floor(r30.xy); - r24.xy = r24.xy * cb6[400].zw + -r30.xy; - r31.xyzw = float4(0.5,1,0.5,1) + r24.xxyy; - r32.xyzw = r31.xxzz * r31.xxzz; - r30.zw = float2(1,1) + -r24.xy; - r31.xz = min(float2(0,0), r24.xy); - r33.xy = max(float2(0,0), r24.xy); - r34.xy = float2(0.159999996,0.159999996) * r30.zw; - r33.xy = -r33.xy * r33.xy + r31.yw; - r33.xy = float2(1,1) + r33.xy; - r33.xy = float2(0.159999996,0.159999996) * r33.xy; - r32.xz = float2(0.0799999982,0.0799999982) * r32.xz; - r24.xy = r32.yw * float2(0.5,0.5) + -r24.xy; - r35.xy = float2(0.159999996,0.159999996) * r24.xy; - r24.xy = -r31.xz * r31.xz + r30.zw; - r24.xy = float2(1,1) + r24.xy; - r36.xy = float2(0.159999996,0.159999996) * r24.xy; - r24.xy = float2(0.159999996,0.159999996) * r31.yw; - r35.z = r36.x; - r35.w = r24.x; - r34.z = r33.x; - r34.w = r32.x; - r31.xyzw = r35.zwxz + r34.zwxz; - r36.z = r35.y; - r36.w = r24.y; - r33.z = r34.y; - r33.w = r32.z; - r24.xyw = r36.zyw + r33.zyw; - r32.xyz = r34.xzw / r31.zwy; - r32.xyz = float3(-2.5,-0.5,1.5) + r32.xyz; - r32.xyz = cb6[400].xxx * r32.xyz; - r33.xyz = r33.zyw / r24.xyw; - r33.xyz = float3(-2.5,-0.5,1.5) + r33.xyz; - r33.xyw = cb6[400].yyy * r33.xyz; - r34.xyzw = r31.zwyz * r24.xxxy; - r32.w = r33.x; - r35.xyzw = r30.xyxy * cb6[400].xyxy + r32.xwyw; - r20.w = t11.SampleCmpLevelZero(s4_s, r35.xy, r24.z).x; - r21.w = t11.SampleCmpLevelZero(s4_s, r35.zw, r24.z).x; - r21.w = r34.y * r21.w; - r20.w = r34.x * r20.w + r21.w; - r30.zw = r30.xy * cb6[400].xy + r32.zw; - r21.w = t11.SampleCmpLevelZero(s4_s, r30.zw, r24.z).x; - r20.w = r34.z * r21.w + r20.w; - r33.z = r32.x; - r35.xyzw = r30.xyxy * cb6[400].xyxy + r33.zyzw; - r21.w = t11.SampleCmpLevelZero(s4_s, r35.xy, r24.z).x; - r20.w = r34.w * r21.w + r20.w; - r34.xyzw = r31.xyzw * r24.yyww; - r33.xz = r32.yz; - r32.xyzw = r30.xyxy * cb6[400].xyxy + r33.xyzy; - r21.w = t11.SampleCmpLevelZero(s4_s, r32.xy, r24.z).x; - r20.w = r34.x * r21.w + r20.w; - r21.w = t11.SampleCmpLevelZero(s4_s, r32.zw, r24.z).x; - r20.w = r34.y * r21.w + r20.w; - r21.w = t11.SampleCmpLevelZero(s4_s, r35.zw, r24.z).x; - r20.w = r34.z * r21.w + r20.w; - r21.w = cmp((int)r20.y >= 0); - r25.xyz = (int3)r25.xyz | (int3)r29.xyz; - r23.z = (int)r25.y | (int)r25.x; - r23.z = (int)r25.z | (int)r23.z; - r24.x = (int)r24.z & 0x7fffffff; - r24.x = cmp(0x7f800000 < (uint)r24.x); - r23.z = (int)r23.z | (int)r24.x; - r25.xyzw = r30.xyxy * cb6[400].xyxy + r33.xwzw; - r24.x = t11.SampleCmpLevelZero(s4_s, r25.xy, r24.z).x; - r20.w = r34.w * r24.x + r20.w; - r24.x = r31.y * r24.w; - r24.y = t11.SampleCmpLevelZero(s4_s, r25.zw, r24.z).x; - r20.w = r24.x * r24.y + r20.w; - r20.w = -1 + r20.w; - r20.y = cb6[r20.y+288].w * r20.w + 1; - r20.y = r23.z ? 1 : r20.y; - r20.y = r21.w ? r20.y : 1; - } else { - r20.y = 1; - } - if (r22.w != 0) { - r20.w = dot(r15.xyz, r27.xyz); - r21.w = saturate(cb5[r12.w+6].z * r19.z); - r21.w = r21.w * 0.5 + r3.w; - r21.w = min(1, r21.w); - r21.w = r3.w / r21.w; - r24.xyz = r15.xyz * r20.www + -r27.xyz; - r22.w = dot(r28.xyz, r24.xyz); - r20.w = r20.w * r20.w; - r20.w = cb5[r12.w+6].z * cb5[r12.w+6].z + -r20.w; - r20.w = saturate(r22.w / r20.w); - r24.xyz = r27.xyz * r20.www + r28.xyz; - r20.w = dot(r24.xyz, r24.xyz); - r20.w = rsqrt(r20.w); - r26.xyz = r24.xyz * r20.www; - } else { - r21.w = 1; - } - if (r19.y != 0) { - r19.y = saturate(cb5[r16.w+6].y * r19.z); - r24.xyz = r3.xyz * r2.www + r26.xyz; - r19.z = dot(r24.xyz, r24.xyz); - r19.z = max(6.10351562e-05, r19.z); - r19.z = rsqrt(r19.z); - r24.xyz = r24.xyz * r19.zzz; - r19.z = saturate(dot(r6.xyz, r24.xyz)); - r20.w = saturate(dot(r5.xyz, r24.xyz)); - r22.w = cmp(0 < r19.y); - r19.y = r19.y * r19.y; - r23.z = r20.w * 3.5999999 + 0.400000006; - r19.y = r19.y / r23.z; - r19.y = r11.w * r11.w + r19.y; - r19.y = min(1, r19.y); - r19.y = r22.w ? r19.y : r3.w; - r19.y = r19.y * r19.y; - r22.w = r19.z * r19.y + -r19.z; - r19.z = r22.w * r19.z + 1; - r20.w = 1 + -r20.w; - r22.w = r20.w * r20.w; - r22.w = r22.w * r22.w; - r23.z = r22.w * r20.w; - r20.w = -r22.w * r20.w + 1; - r24.xyz = r7.xyz * r20.www + r23.zzz; - r19.z = r19.z * r19.z; - r19.z = r19.y / r19.z; - r19.z = r19.z * r21.w; - r20.w = -r11.x * r19.y + r11.x; - r20.w = r20.w * r11.x + r19.y; - r20.w = sqrt(r20.w); - r21.w = -r20.x * r19.y + r20.x; - r19.y = r21.w * r20.x + r19.y; - r19.y = sqrt(r19.y); - r19.y = r19.y * r11.x; - r19.y = r20.x * r20.w + r19.y; - r19.y = 9.99999975e-05 + r19.y; - r19.y = 0.5 / r19.y; - r19.y = r19.z * r19.y; - r24.xyz = r24.xyz * r19.yyy; - r24.xyz = min(float3(2048,2048,2048), r24.xyz); - r19.yz = r20.xz * float2(0.96875,0.96875) + float2(0.015625,0.015625); - r19.y = t15.SampleLevel(s1_s, r19.yz, 0).x; - r19.y = r19.y * r5.w; - r19.y = r19.y * r0.z; - r19.y = r19.y / r4.w; - r25.xyz = r19.yyy * r17.xyz; - r25.xyz = r25.xyz / r18.xyz; - r24.xyz = r25.xyz + r24.xyz; - r24.xyz = cb5[r16.w+6].zzz * r24.xyz; - r24.xyz = max(float3(0,0,0), r24.xyz); - r24.xyz = min(float3(1000,1000,1000), r24.xyz); - r25.xyz = r20.xxx * r9.xyw; - r24.xyz = r24.xyz * r20.xxx + r25.xyz; - r25.xyz = cb5[r19.x+6].xyz * r13.xxx; - r20.xyw = r25.xyz * r20.yyy; - r20.xyw = r20.xyw * r17.www; - r20.xyw = r24.xyz * r20.xyw; - } else { - r20.xyw = float3(0,0,0); - } - } else { - if (r18.w == 0) { - r13.x = cb5[r12.w+6].y * 0.5 + 0.5; - r24.x = -abs(cb5[r12.w+6].x) + r13.x; - r24.y = cb5[r12.w+6].y + -r24.x; - r13.x = 1 + -abs(r24.x); - r13.x = r13.x + -abs(r24.y); - r13.x = max(0.00048828125, r13.x); - r17.w = cmp(cb5[r12.w+6].x >= 0); - r24.z = r17.w ? r13.x : -r13.x; - r13.x = dot(r24.xyz, r24.xyz); - r13.x = rsqrt(r13.x); - r24.xyz = r24.xyz * r13.xxx; - r25.xyz = cb5[r23.x+6].xyz + -r1.xyz; - r13.x = dot(r25.xyz, r25.xyz); - r17.w = rsqrt(r13.x); - r26.xyz = r25.xyz * r17.www; - r16.w = (int)cb5[r16.w+6].w; - r27.xyz = cb5[r12.w+6].zzz * r24.xyz; - r28.xyz = -r27.xyz * float3(0.5,0.5,0.5) + r25.xyz; - r27.xyz = r27.xyz * float3(0.5,0.5,0.5) + r25.xyz; - r17.w = (uint)cb5[r19.x+6].w; - r17.w = (int)r17.w & 1; - r18.w = cmp((int)r17.w == 0); - r18.w = ~(int)r18.w; - r19.x = cmp(0 < cb5[r12.w+6].z); - r18.w = r18.w ? r19.x : 0; - r19.x = dot(r28.xyz, r28.xyz); - r19.y = dot(r27.xyz, r27.xyz); - r19.xy = sqrt(r19.xy); - r19.z = dot(r28.xyz, r27.xyz); - r19.x = r19.x * r19.y + r19.z; - r19.x = r19.x * 0.5 + 1; - r19.x = 1 / r19.x; - r19.x = r18.w ? r19.x : 1; - r19.y = cmp(cb5[r23.w+6].w < 0); - if (r19.y != 0) { - r19.y = cb5[r23.x+6].w * cb5[r23.x+6].w; - r19.y = r19.y * r13.x; - r19.y = -r19.y * r19.y + 1; - r19.y = max(0, r19.y); - r13.x = 1 + r13.x; - r13.x = 1 / r13.x; - r19.z = r18.w ? 1.000000 : 0; - r21.w = r19.x + -r13.x; - r13.x = r19.z * r21.w + r13.x; - r19.y = r19.y * r19.y; - r13.x = r19.y * r13.x; - } else { - r27.xyz = cb5[r23.x+6].www * r25.xyz; - r19.y = dot(r27.xyz, r27.xyz); - r19.y = min(1, r19.y); - r19.y = 1 + -r19.y; - r19.y = log2(r19.y); - r19.y = cb5[r23.w+6].w * r19.y; - r19.y = exp2(r19.y); - r13.x = r19.x * r19.y; - } - r19.x = dot(r26.xyz, -r24.xyz); - r19.x = -cb5[r12.w+6].z + r19.x; - r19.x = saturate(cb5[r12.w+6].w * r19.x); - r19.x = r19.x * r19.x; - r19.x = r17.w ? 1 : r19.x; - r13.x = r19.x * r13.x; - r18.w = ~(int)r18.w; - r19.x = cmp((int)r16.w >= 0); - r18.w = r18.w ? r19.x : 0; - if (r18.w != 0) { - if (r17.w == 0) { - r18.w = (uint)r16.w << 2; - r19.xyz = cb7[r18.w+33].xyw * r1.yyy; - r19.xyz = cb7[r18.w+32].xyw * r1.xxx + r19.xyz; - r19.xyz = cb7[r18.w+34].xyw * r1.zzz + r19.xyz; - r19.xyz = cb7[r18.w+35].xyw + r19.xyz; - r19.xy = saturate(r19.xy / r19.zz); - r19.xy = r19.xy * cb7[r16.w+0].zw + cb7[r16.w+0].xy; - } else { - r18.w = (uint)r16.w << 2; - r24.x = dot(-r25.xyz, cb7[r18.w+32].xyz); - r24.y = dot(-r25.xyz, cb7[r18.w+33].xyz); - r24.z = dot(-r25.xyz, cb7[r18.w+34].xyz); - r18.w = cmp(abs(r24.x) < abs(r24.y)); - r18.w = r18.w ? 0.000000 : 0; - r19.z = dot(abs(r24.xy), icb[r18.w+0].xy); - r19.z = cmp(r19.z < abs(r24.z)); - r18.w = r19.z ? 2 : r18.w; - r19.z = dot(r24.xyz, icb[r18.w+0].xyz); - r19.z = cmp(r19.z < 0); - bitmask.w = ((~(-1 << 31)) << 1) & 0xffffffff; r18.w = (((uint)r18.w << 1) & bitmask.w) | ((uint)r19.z & ~bitmask.w); - r19.z = (uint)r18.w >> 1; - r19.z = dot(r24.xyz, icb[r19.z+0].xyz); - r21.w = 0.000244140625 / cb7[r16.w+0].w; - r21.w = 0.5 + -r21.w; - r22.w = (uint)r18.w; - r23.z = cmp((uint)r18.w < 2); - r23.z = r23.z ? 0.000000 : 0; - r23.z = dot(r24.xz, icb[r23.z+0].xz); - r23.z = icb[r18.w+4].z * r23.z; - r23.z = r23.z / abs(r19.z); - r22.w = r23.z * r21.w + r22.w; - r22.w = 0.5 + r22.w; - r25.x = saturate(0.166666672 * r22.w); - r22.w = -1 + (int)icb[r18.w+4].y; - r22.w = dot(r24.yz, icb[r22.w+0].xy); - r18.w = icb[r18.w+4].w * r22.w; - r18.w = r18.w / abs(r19.z); - r25.y = saturate(-r18.w * r21.w + 0.5); - r19.xy = r25.xy * cb7[r16.w+0].zw + cb7[r16.w+0].xy; - } - r16.w = t23.SampleLevel(s1_s, r19.xy, 0).x; - r13.x = r16.w * r13.x; - } - r13.x = cmp(0 < r13.x); - if (r13.x != 0) { - if (r17.w == 0) { - r13.x = (int)cb5[r23.y+6].x; - } else { - r19.xyz = -cb5[r23.x+6].xyz + r1.xyz; - r23.xzw = cmp(abs(r19.yzz) < abs(r19.xxy)); - r16.w = r23.z ? r23.x : 0; - r19.xyz = cmp(float3(0,0,0) < r19.xyz); - r17.w = asuint(cb5[r12.w+6].w) >> 24; - if (8 == 0) r23.x = 0; else if (8+16 < 32) { r23.x = (uint)cb5[r12.w+6].w << (32-(8 + 16)); r23.x = (uint)r23.x >> (32-8); } else r23.x = (uint)cb5[r12.w+6].w >> 16; - if (8 == 0) r23.z = 0; else if (8+8 < 32) { r23.z = (uint)cb5[r12.w+6].w << (32-(8 + 8)); r23.z = (uint)r23.z >> (32-8); } else r23.z = (uint)cb5[r12.w+6].w >> 8; - r17.w = r19.x ? r17.w : r23.x; - r12.w = 255 & asint(cb5[r12.w+6].w); - r12.w = r19.y ? r23.z : r12.w; - if (8 == 0) r18.w = 0; else if (8+8 < 32) { r18.w = (uint)cb5[r23.y+6].x << (32-(8 + 8)); r18.w = (uint)r18.w >> (32-8); } else r18.w = (uint)cb5[r23.y+6].x >> 8; - r19.x = 255 & asint(cb5[r23.y+6].x); - r18.w = r19.z ? r18.w : r19.x; - r12.w = r23.w ? r12.w : r18.w; - r12.w = r16.w ? r17.w : r12.w; - r16.w = cmp((int)r12.w < 80); - r13.x = r16.w ? r12.w : -1; - } - r19.xyz = r26.xyz * cb6[r13.x+288].xxx + r1.xyz; - r12.w = cb6[r13.x+288].y * 5; - r19.xyz = r6.xyz * r12.www + r19.xyz; - r12.w = (uint)r13.x << 2; - r23.xyzw = cb6[r12.w+65].xyzw * r19.yyyy; - r23.xyzw = cb6[r12.w+64].xyzw * r19.xxxx + r23.xyzw; - r23.xyzw = cb6[r12.w+66].xyzw * r19.zzzz + r23.xyzw; - r23.xyzw = cb6[r12.w+67].xyzw + r23.xyzw; - r19.xyz = r23.xyz / r23.www; - r23.xyz = cmp(float3(0,0,0) >= r19.xyz); - r24.xyz = cmp(r19.xyz >= float3(1,1,1)); - r25.xy = cb6[r13.x+344].zw + -cb6[r13.x+344].xy; - r19.xy = r19.xy * r25.xy + cb6[r13.x+344].xy; - r25.xy = r19.xy * cb6[400].zw + float2(0.5,0.5); - r25.xy = floor(r25.xy); - r19.xy = r19.xy * cb6[400].zw + -r25.xy; - r26.xyzw = float4(0.5,1,0.5,1) + r19.xxyy; - r27.xyzw = r26.xxzz * r26.xxzz; - r25.zw = float2(1,1) + -r19.xy; - r26.xz = min(float2(0,0), r19.xy); - r28.xy = max(float2(0,0), r19.xy); - r29.xy = float2(0.159999996,0.159999996) * r25.zw; - r28.xy = -r28.xy * r28.xy + r26.yw; - r28.xy = float2(1,1) + r28.xy; - r28.xy = float2(0.159999996,0.159999996) * r28.xy; - r27.xz = float2(0.0799999982,0.0799999982) * r27.xz; - r19.xy = r27.yw * float2(0.5,0.5) + -r19.xy; - r30.xy = float2(0.159999996,0.159999996) * r19.xy; - r19.xy = -r26.xz * r26.xz + r25.zw; - r19.xy = float2(1,1) + r19.xy; - r31.xy = float2(0.159999996,0.159999996) * r19.xy; - r19.xy = float2(0.159999996,0.159999996) * r26.yw; - r30.z = r31.x; - r30.w = r19.x; - r29.z = r28.x; - r29.w = r27.x; - r26.xyzw = r30.zwxz + r29.zwxz; - r31.z = r30.y; - r31.w = r19.y; - r28.z = r29.y; - r28.w = r27.z; - r27.xyz = r31.zyw + r28.zyw; - r29.xyz = r29.xzw / r26.zwy; - r29.xyz = float3(-2.5,-0.5,1.5) + r29.xyz; - r29.xyz = cb6[400].xxx * r29.xyz; - r28.xyz = r28.zyw / r27.xyz; - r28.xyz = float3(-2.5,-0.5,1.5) + r28.xyz; - r28.xyw = cb6[400].yyy * r28.xyz; - r30.xyzw = r27.xxxy * r26.zwyz; - r29.w = r28.x; - r31.xyzw = r25.xyxy * cb6[400].xyxy + r29.xwyw; - r12.w = t11.SampleCmpLevelZero(s4_s, r31.xy, r19.z).x; - r16.w = t11.SampleCmpLevelZero(s4_s, r31.zw, r19.z).x; - r16.w = r30.y * r16.w; - r12.w = r30.x * r12.w + r16.w; - r19.xy = r25.xy * cb6[400].xy + r29.zw; - r16.w = t11.SampleCmpLevelZero(s4_s, r19.xy, r19.z).x; - r12.w = r30.z * r16.w + r12.w; - r28.z = r29.x; - r31.xyzw = r25.xyxy * cb6[400].xyxy + r28.zyzw; - r16.w = t11.SampleCmpLevelZero(s4_s, r31.xy, r19.z).x; - r12.w = r30.w * r16.w + r12.w; - r30.xyzw = r27.yyzz * r26.xyzw; - r28.xz = r29.yz; - r29.xyzw = r25.xyxy * cb6[400].xyxy + r28.xyzy; - r16.w = t11.SampleCmpLevelZero(s4_s, r29.xy, r19.z).x; - r12.w = r30.x * r16.w + r12.w; - r16.w = t11.SampleCmpLevelZero(s4_s, r29.zw, r19.z).x; - r12.w = r30.y * r16.w + r12.w; - r16.w = t11.SampleCmpLevelZero(s4_s, r31.zw, r19.z).x; - r12.w = r30.z * r16.w + r12.w; - r16.w = cmp((int)r13.x >= 0); - r23.xyz = (int3)r23.xyz | (int3)r24.xyz; - r17.w = (int)r23.y | (int)r23.x; - r17.w = (int)r23.z | (int)r17.w; - r18.w = (int)r19.z & 0x7fffffff; - r18.w = cmp(0x7f800000 < (uint)r18.w); - r17.w = (int)r17.w | (int)r18.w; - r23.xyzw = r25.xyxy * cb6[400].xyxy + r28.xwzw; - r18.w = t11.SampleCmpLevelZero(s4_s, r23.xy, r19.z).x; - r12.w = r30.w * r18.w + r12.w; - r18.w = r27.z * r26.y; - r19.x = t11.SampleCmpLevelZero(s4_s, r23.zw, r19.z).x; - r12.w = r18.w * r19.x + r12.w; - r12.w = -1 + r12.w; - r12.w = cb6[r13.x+288].w * r12.w + 1; - r12.w = r17.w ? 1 : r12.w; - r12.w = r16.w ? r12.w : 1; - } else { - r12.w = 1; - } - } else { - r12.w = 1; - } - r11.y = r12.w * r11.y; - r20.xyw = float3(0,0,0); - } - r22.xyz = r22.xyz + r20.xyw; - r11.z = r15.w; - } - r6.w = r11.y; - r21.xyz = r22.xyz + r21.xyz; - r7.w = (int)r7.w + 1; - } - r0.x = dot(r2.xyz, float3(0.212672904,0.715152204,0.0721750036)); - r1.xzw = r2.xyz + -r0.xxx; - r0.xyz = cb0[184].www * r1.xzw + r0.xxx; - - // Reduce clustered light contribution on glass - if (GLASS_TRANSPARENCY > 0.5f) { - r21.xyz *= 0.5f; - } - - r1.xzw = r21.xyz * r6.www + r16.xyz; - r2.xyz = cb2[21].xyz * cb2[20].zzz; - r2.w = 1 + -r10.w; - r3.x = -cb2[20].y + 1; - r3.x = max(0.00999999978, r3.x); - r2.w = saturate(r2.w / r3.x); - r2.xyz = r8.xyz * r2.xyz + -r1.xzw; - r1.xzw = r2.www * r2.xyz + r1.xzw; - r0.xyz = r0.xyz * cb0[184].xyz + r1.xzw; - - // Apply glass brightness reduction - if (GLASS_TRANSPARENCY > 0.5f) { - r0.xyz *= 0.65f; - } - r1.x = r1.y * cb0[156].w + cb0[157].w; - r1.z = r0.w * cb0[154].w + -cb0[153].w; - r1.xz = max(float2(0.00999999978,0), r1.xz); - r1.w = -1.44269502 * r1.x; - r1.w = exp2(r1.w); - r1.w = 1 + -r1.w; - r1.x = r1.w / r1.x; - r1.w = r1.y * cb0[156].w + cb0[158].w; - r1.w = 1.44269502 * r1.w; - r1.w = exp2(r1.w); - r1.x = r1.x * r1.w; - r1.x = -r1.z * r1.x; - r1.xzw = cb0[155].xyz * r1.xxx; - r1.xzw = float3(1.44269502,1.44269502,1.44269502) * r1.xzw; - r1.xzw = exp2(r1.xzw); - r2.x = dot(-r5.xyz, cb0[154].xyz); - r2.y = cb0[155].w * cb0[155].w + 1; - r2.z = dot(r2.xx, cb0[155].ww); - r2.y = r2.y + -r2.z; - r2.z = cmp(0 < cb0[163].z); - if (r2.z != 0) { - r14.w = 7 & asint(cb0[108].w); - r3.xyz = mad((int3)r14.xyw, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f)); - r2.z = mad((int)r3.y, (int)r3.z, (int)r3.x); - r2.w = mad((int)r3.z, (int)r2.z, (int)r3.y); - r3.x = mad((int)r2.z, (int)r2.w, (int)r3.z); - r6.x = mad((int)r2.w, (int)r3.x, (int)r2.z); - r2.z = dot(-r5.xyz, -r4.xyz); - r3.y = -cb0[44].y + r1.y; - r3.z = cmp(5.96046448e-08 < r2.z); - r2.z = 1 / r2.z; - r2.z = r3.z ? r2.z : 0; - r2.z = cb0[163].w * r2.z; - r3.z = 1 / r0.w; - r3.w = r3.z * r2.z; - r4.x = r3.w * r3.y + cb0[44].y; - r3.y = -r3.w * r3.y + r3.y; - r3.w = cb0[159].z * r3.y; - r3.y = cb0[162].x * r3.y; - r3.yw = max(float2(-127,-127), r3.yw); - r4.y = -cb0[159].x + r4.x; - r4.y = cb0[159].z * r4.y; - r4.y = max(-127, r4.y); - r4.y = exp2(-r4.y); - r4.y = cb0[159].y * r4.y; - r4.z = cmp(5.96046448e-08 < abs(r3.w)); - r4.w = exp2(-r3.w); - r4.w = 1 + -r4.w; - r4.w = r4.w / r3.w; - r3.w = -r3.w * 0.240226507 + 0.693147182; - r3.w = r4.z ? r4.w : r3.w; - r4.x = -cb0[162].z + r4.x; - r4.x = cb0[162].x * r4.x; - r4.x = max(-127, r4.x); - r4.x = exp2(-r4.x); - r4.x = cb0[162].y * r4.x; - r4.z = cmp(5.96046448e-08 < abs(r3.y)); - r4.w = exp2(-r3.y); - r4.w = 1 + -r4.w; - r4.w = r4.w / r3.y; - r3.y = -r3.y * 0.240226507 + 0.693147182; - r3.y = r4.z ? r4.w : r3.y; - r3.y = r4.x * r3.y; - r3.y = r4.y * r3.w + r3.y; - r2.z = -r2.z * r3.z + 1; - r2.z = r2.z * r0.w; - r2.z = r3.y * r2.z; - r2.z = exp2(-r2.z); - r2.z = min(1, r2.z); - r2.z = max(cb0[161].w, r2.z); - r3.yz = saturate(r0.ww * cb0[160].yw + cb0[160].xz); - r2.z = r3.y + r2.z; - r2.z = r2.z + r3.z; - r2.z = min(1, r2.z); - r6.y = mad((int)r3.x, (int)r6.x, (int)r2.w); - r3.xy = (uint2)r6.xy >> int2(16,16); - r3.xy = (uint2)r3.xy; - r3.xy = r3.xy * float2(3.05180438e-05,3.05180438e-05) + float2(-1,-1); - r3.xy = r3.xy * cb0[167].ww + r13.zw; - r3.xy = cb0[165].xy * r3.xy; - r2.w = r14.z * cb0[164].x + cb0[164].y; - r2.w = log2(r2.w); - r2.w = cb0[164].z * r2.w; - r3.z = r2.w / cb0[163].z; - r3.xyzw = t22.SampleLevel(s1_s, r3.xyz, 0).xyzw; - r2.w = -cb0[166].z + r14.z; - r2.w = saturate(1000000 * r2.w); - r3.xyzw = float4(-0,-0,-0,-1) + r3.xyzw; - r3.xyzw = r2.wwww * r3.xyzw + float4(0,0,0,1); - r2.w = 1 + -r2.z; - r4.xyz = cb0[161].xyz * r2.www; - r3.xyz = r4.xyz * r3.www + r3.xyz; - r2.z = r3.w * r2.z; - } else { - r1.y = -cb0[44].y + r1.y; - r2.w = cb0[159].z * r1.y; - r2.w = max(-127, r2.w); - r1.y = cb0[162].x * r1.y; - r1.y = max(-127, r1.y); - r3.w = -cb0[159].x + cb0[44].y; - r3.w = cb0[159].z * r3.w; - r3.w = max(-127, r3.w); - r3.w = exp2(-r3.w); - r3.w = cb0[159].y * r3.w; - r4.x = cmp(5.96046448e-08 < abs(r2.w)); - r4.y = exp2(-r2.w); - r4.y = 1 + -r4.y; - r4.y = r4.y / r2.w; - r2.w = -r2.w * 0.240226507 + 0.693147182; - r2.w = r4.x ? r4.y : r2.w; - r4.x = -cb0[162].z + cb0[44].y; - r4.x = cb0[162].x * r4.x; - r4.x = max(-127, r4.x); - r4.x = exp2(-r4.x); - r4.x = cb0[162].y * r4.x; - r4.y = cmp(5.96046448e-08 < abs(r1.y)); - r4.z = exp2(-r1.y); - r4.z = 1 + -r4.z; - r4.z = r4.z / r1.y; - r1.y = -r1.y * 0.240226507 + 0.693147182; - r1.y = r4.y ? r4.z : r1.y; - r1.y = r4.x * r1.y; - r1.y = r3.w * r2.w + r1.y; - r1.y = r1.y * r0.w; - r1.y = exp2(-r1.y); - r1.y = min(1, r1.y); - r1.y = max(cb0[161].w, r1.y); - r4.xy = saturate(r0.ww * cb0[160].yw + cb0[160].xz); - r0.w = r4.x + r1.y; - r0.w = r0.w + r4.y; - r2.z = min(1, r0.w); - r0.w = 1 + -r2.z; - r3.xyz = cb0[161].xyz * r0.www; - } - r4.xyz = r2.zzz * r1.xzw; - r0.w = r2.x * r2.x + 1; - r0.w = 0.0596831031 * r0.w; - r5.xyz = cb0[156].xyz * r0.www + cb0[158].xyz; - r0.w = -cb0[155].w * cb0[155].w + 1; - r1.y = 12.566371 * r2.y; - r2.x = sqrt(r2.y); - r1.y = r2.x * r1.y; - r1.y = max(0.00100000005, r1.y); - r0.w = r0.w / r1.y; - r2.xyw = saturate(cb0[157].xyz * r0.www + r5.xyz); - r2.xyw = float3(255,255,255) * r2.xyw; - r1.xyz = float3(1,1,1) + -r1.xzw; - r1.xyz = r2.xyw * r1.xyz; - r1.xyz = r1.xyz * r2.zzz + r3.xyz; - - // Reduce fog/atmospheric contributin - if (GLASS_TRANSPARENCY > 0.5f) { - // Boost transmittance to reduce fog density on glass - float3 boostedTrans = lerp(r4.xyz, float3(1,1,1), 0.5f); - float3 reducedInscatter = r1.xyz * 0.35f; - r10.xyz = r0.xyz * boostedTrans + reducedInscatter; - } else { - // Vanilla behavior - r10.xyz = r0.xyz * r4.xyz + r1.xyz; - } - r0.xy = float2(0.5,-0.5) * r12.xy; - r0.xy = sqrt(abs(r0.xy)); - r0.xy = sqrt(r0.xy); - r12.z = -r12.y; - r0.zw = cmp(float2(0,0) < r12.xz); - r1.xy = cmp(r12.xz < float2(0,0)); - r0.zw = (int2)-r0.zw + (int2)r1.xy; - r0.zw = (int2)r0.zw; - r0.xy = r0.xy * r0.zw; - r0.xy = r0.xy * float2(0.5,0.5) + float2(0.5,0.5); - r0.z = (uint)v7.x << 4; - r0.z = max(cb1[r0.z+4].y, cb1[r0.z+4].z); - r0.z = -0.100000024 + r0.z; - r0.w = cmp(0 < r0.z); - r0.z = cmp(r0.z < 0); - r0.z = (int)-r0.w + (int)r0.z; - r0.z = (int)r0.z; - r0.z = saturate(r0.z); - r1.xy = float2(0.5,0.5) + -r0.xy; - r0.xy = r0.zz * r1.xy + r0.xy; - o1.xy = min(float2(1,1), r0.xy); - r0.x = dot(r10.xyz, float3(0.212672904,0.715152204,0.0721750036)); - r0.x = r0.x * r10.w; - r0.x = max(r0.x, r10.w); - r0.x = saturate(10 * r0.x); - r0.x = cmp(0.5 < r0.x); - o1.z = r0.x ? 1.000000 : 0; - - // Modifed Glass Final Output - if (GLASS_TRANSPARENCY > 0.5f) { - float3 glassColor = r10.xyz; - float glassLuma = dot(glassColor, float3(0.2126f, 0.7152f, 0.0722f)); - float maxBrightness = 2.0f; - if (glassLuma > 0.5f) { - float compression = 0.5f + (maxBrightness - 0.5f) * (1.0f - exp(-(glassLuma - 0.5f) / (maxBrightness - 0.5f))); - float scale = compression / max(glassLuma, 0.001f); - glassColor *= scale; - } - - o0.xyz = glassColor; - o0.w = r10.w; - } else { - // Vanilla output - o0.xyzw = r10.xyzw; - } - o1.w = 0; - return; -} \ No newline at end of file diff --git a/src/games/endfield/glass/0xB317E9E1.ps_5_0.hlsl b/src/games/endfield/glass/0xB317E9E1.ps_5_0.hlsl deleted file mode 100644 index c45223396..000000000 --- a/src/games/endfield/glass/0xB317E9E1.ps_5_0.hlsl +++ /dev/null @@ -1,1807 +0,0 @@ -// ---- Created with 3Dmigoto v1.4.1 on Wed Feb 4 04:05:41 2026 -#include "../common.hlsl" - -Texture2D t18 : register(t18); - -Texture3D t17 : register(t17); - -Texture3D t16 : register(t16); - -Texture3D t15 : register(t15); - -Texture3D t14 : register(t14); - -Texture3D t13 : register(t13); - -Texture3D t12 : register(t12); - -Texture3D t11 : register(t11); - -Texture2D t10 : register(t10); - -Texture2D t9 : register(t9); - -Texture2D t8 : register(t8); - -Texture2D t7 : register(t7); - -Texture2D t6 : register(t6); - -Texture2D t5 : register(t5); - -Texture2D t4 : register(t4); - -Texture2D t3 : register(t3); - -Texture2D t2 : register(t2); - -Texture2DArray t1 : register(t1); - -struct t0_t { - float val[1]; -}; -StructuredBuffer t0 : register(t0); - -SamplerState s6_s : register(s6); - -SamplerState s5_s : register(s5); - -SamplerState s4_s : register(s4); - -SamplerComparisonState s3_s : register(s3); - -SamplerState s2_s : register(s2); - -SamplerState s1_s : register(s1); - -SamplerState s0_s : register(s0); - -cbuffer cb7 : register(b7) -{ - float4 cb7[160]; -} - -cbuffer cb6 : register(b6) -{ - float4 cb6[715]; -} - -cbuffer cb5 : register(b5) -{ - float4 cb5[2054]; -} - -cbuffer cb4 : register(b4) -{ - float4 cb4[3]; -} - -cbuffer cb3 : register(b3) -{ - float4 cb3[259]; -} - -cbuffer cb2 : register(b2) -{ - float4 cb2[20]; -} - -cbuffer cb1 : register(b1) -{ - float4 cb1[4085]; -} - -cbuffer cb0 : register(b0) -{ - float4 cb0[244]; -} - - - - -// 3Dmigoto declarations -#define cmp - - - -void main( - float4 v0 : SV_Position0, - float2 v1 : TEXCOORD0, - float2 w1 : TEXCOORD1, - float4 v2 : TEXCOORD2, - float4 v3 : TEXCOORD3, - float4 v4 : TEXCOORD4, - float4 v5 : TEXCOORD5, - float4 v6 : TEXCOORD6, - nointerpolation uint v7 : TEXCOORD7, - uint v8 : SV_IsFrontFace0, - out float4 o0 : SV_Target0, - out float4 o1 : SV_Target1) -{ - const float4 icb[] = { { 1.000000, 0, 0, 0}, - { 0, 1.000000, 0, 0}, - { 0, 0, 1.000000, 0}, - { 0, 0, 0, 1.000000}, - { 2, 1, -1.000000, 1.000000}, - { 2, 1, 1.000000, 1.000000}, - { 0, 2, 1.000000, -1.000000}, - { 0, 2, 1.000000, 1.000000}, - { 0, 1, 1.000000, 1.000000}, - { 0, 1, -1.000000, 1.000000} }; - float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35; - uint4 bitmask, uiDest; - float4 fDest; - - r0.xy = cb0[82].zw * v0.xy; - r0.xy = r0.xy * float2(2,2) + float2(-1,-1); - r1.xyzw = cb0[25].xyzw * -r0.yyyy; - r0.xyzw = cb0[24].xyzw * r0.xxxx + r1.xyzw; - r0.xyzw = cb0[26].xyzw * v0.zzzz + r0.xyzw; - r0.xyzw = cb0[27].xyzw + r0.xyzw; - r0.xyz = r0.xyz / r0.www; - r1.x = cmp(0 < v3.w); - r1.x = r1.x ? 1 : -1; - r1.y = cmp(0.000000 == cb0[86].w); - r2.xyz = cb0[44].xyz + -r0.xyz; - r3.x = cb0[0].z; - r3.y = cb0[1].z; - r3.z = cb0[2].z; - r1.yzw = r1.yyy ? r2.xyz : r3.xyz; - r2.x = dot(r1.yzw, r1.yzw); - r2.y = max(9.99999994e-09, r2.x); - r2.y = rsqrt(r2.y); - r4.xyz = r2.yyy * r1.yzw; - r2.x = r2.x * r2.y; - r2.zw = w1.xy + -v1.xy; - r5.xy = cb2[3].xx * r2.zw + v1.xy; - r5.xy = r5.xy * cb2[12].xy + cb2[12].zw; - r2.zw = cb2[2].ww * r2.zw + v1.xy; - r2.zw = r2.zw * cb2[11].xy + cb2[11].zw; - r6.xyzw = t2.SampleBias(s4_s, r2.zw, cb0[108].x).xyzw; - r2.z = cb2[3].y + cb0[108].x; - r7.xyz = t3.SampleBias(s5_s, r5.xy, r2.z).xyw; - r7.x = r7.z * r7.x; - r2.zw = r7.xy * float2(2,2) + float2(-1,-1); - r5.zw = cb2[0].xx * r2.zw; - r7.xyz = t4.SampleBias(s6_s, r5.xy, cb0[108].x).xyz; - r6.xyzw = cb2[8].xyzw * r6.xyzw; - r6.xyz = saturate(cb2[4].zzz * r6.xyz); - r8.xyz = cb2[8].xyz + -r6.xyz; - r6.xyz = cb2[4].xxx * r8.xyz + r6.xyz; - r3.w = r6.w * v4.x + -r6.w; - r8.w = cb2[19].x * r3.w + r6.w; - r3.w = cb2[0].w + -cb2[0].z; - r9.w = r7.y * r3.w + cb2[0].z; - r3.w = saturate(cb2[3].w + -1); - r4.w = cb2[4].y + -r7.x; - r3.w = r3.w * r4.w + r7.x; - r7.xyw = v3.yzx * v2.zxy; - r7.xyw = v2.yzx * v3.zxy + -r7.xyw; - r7.xyw = r7.xyw * r1.xxx; - r5.xyw = r7.xyw * r5.www; - r5.xyz = v3.xyz * r5.zzz + r5.xyw; - r1.x = dot(r2.zw, r2.zw); - r1.x = min(1, r1.x); - r1.x = 1 + -r1.x; - r1.x = sqrt(r1.x); - r1.x = max(1.00000002e-16, r1.x); - r2.z = cmp(0 < cb2[1].w); - r2.z = r2.z ? -1 : 1; - r2.z = v8.x ? 1 : r2.z; - r1.x = r2.z * r1.x; - r5.xyz = v2.xyz * r1.xxx + r5.xyz; - r1.x = dot(r5.xyz, r5.xyz); - r1.x = rsqrt(r1.x); - r5.xyz = r5.xyz * r1.xxx; - r1.x = max(9.99999994e-09, v5.z); - r2.zw = v5.xy / r1.xx; - r1.x = max(9.99999994e-09, v6.z); - r7.xy = v6.xy / r1.xx; - r10.xy = -r7.xy + r2.zw; - r1.x = cb2[0].y * 0.0799999982; - r7.xyw = -r6.xyz * r3.www + r6.xyz; - r1.x = -r1.x * r3.w + r1.x; - r6.xyz = r6.xyz * r3.www + r1.xxx; - r1.x = dot(r5.xyz, r4.xyz); - r11.xyzw = r9.wwww * float4(-1,-0.0274999999,-0.572000027,0.0219999999) + float4(1,0.0425000004,1.03999996,-0.0399999991); - r2.z = r11.x * r11.x; - r1.x = max(0, r1.x); - r2.w = -9.27999973 * r1.x; - r2.w = exp2(r2.w); - r2.z = min(r2.z, r2.w); - r2.z = r2.z * r11.x + r11.y; - r2.zw = r2.zz * float2(-1.03999996,1.03999996) + r11.zw; - r3.w = cmp(1.000000 == cb0[113].y); - r11.xyzw = cb0[241].xyzw * r0.yyyy; - r11.xyzw = cb0[240].xyzw * r0.xxxx + r11.xyzw; - r11.xyzw = cb0[242].xyzw * r0.zzzz + r11.xyzw; - r11.xyzw = cb0[243].xyzw + r11.xyzw; - r4.w = 1 / r11.w; - r11.xyz = float3(1,-1,1) * r11.xyz; - r11.xyz = r11.xyz * r4.www; - r11.xy = saturate(r11.xy * float2(0.5,0.5) + float2(0.5,0.5)); - r11.xy = cb0[82].xy * r11.xy; - r12.xy = (uint2)r11.xy; - r4.w = cb0[84].z * r11.z + cb0[84].w; - r12.z = 1 / r4.w; - r11.xy = (uint2)v0.xy; - r4.w = cb0[1].z * r0.y; - r4.w = cb0[0].z * r0.x + r4.w; - r4.w = cb0[2].z * r0.z + r4.w; - r4.w = cb0[3].z + r4.w; - r11.z = abs(r4.w); - r11.xyz = r3.www ? r12.xyz : r11.xyz; - r12.xyz = r5.xyz * float3(0.25,0.25,0.25) + r0.xyz; - r13.xyz = cb0[6].xzy * -cb0[212].www + cb0[210].xzy; - r13.xyz = -r13.xyz + r12.xzy; - r3.w = max(abs(r13.x), abs(r13.y)); - r3.w = -464 + r3.w; - r3.w = saturate(0.03125 * r3.w); - r4.w = -208 + abs(r13.z); - r4.w = saturate(0.03125 * r4.w); - r3.w = max(r4.w, r3.w); - r4.w = cmp(0.000000 != cb0[210].w); - r6.w = cmp(r3.w < 1); - r4.w = r4.w ? r6.w : 0; - if (r4.w != 0) { - r13.xyz = cb0[6].xzy * -cb0[212].yyy + cb0[210].xzy; - r13.xyz = -r13.xyz + r12.xzy; - r4.w = max(abs(r13.x), abs(r13.y)); - r4.w = -29 + r4.w; - r4.w = saturate(0.5 * r4.w); - r6.w = -13 + abs(r13.z); - r6.w = saturate(0.5 * r6.w); - r4.w = max(r6.w, r4.w); - r6.w = cmp(r4.w < 1); - if (r6.w != 0) { - r13.xyz = r12.xyz * float3(2,2,2) + float3(0.5,0.5,0.5); - r14.xyz = cb0[211].xyz * r13.xyz; - r14.xyz = floor(r14.xyz); - r13.xyz = r13.xyz * cb0[211].xyz + -r14.xyz; - r14.xyz = t11.SampleLevel(s1_s, r13.xyz, 0).xyz; - r6.w = 1 + -r4.w; - r10.w = cb0[211].y * 0.5; - r12.w = -cb0[211].y * 0.5 + 1; - r10.w = max(r13.y, r10.w); - r10.w = min(r10.w, r12.w); - r13.w = 0.333333343 * r10.w; - r15.xyzw = t12.SampleLevel(s0_s, r13.xwz, 0).xyzw; - r15.xyz = r15.xyz * float3(4,4,4) + float3(-2,-2,-2); - r16.xyz = r15.xyz * r14.xxx; - r15.xyz = float3(0,0.333333343,0) + r13.xwz; - r15.xyz = t12.SampleLevel(s0_s, r15.xyz, 0).xyz; - r15.xyz = r15.xyz * float3(4,4,4) + float3(-2,-2,-2); - r17.xyz = r15.xyz * r14.yyy; - r13.xyz = float3(0,0.666666687,0) + r13.xwz; - r13.xyz = t12.SampleLevel(s0_s, r13.xyz, 0).xyz; - r13.xyz = r13.xyz * float3(4,4,4) + float3(-2,-2,-2); - r13.xyz = r13.xyz * r14.zzz; - r10.w = r15.w * r6.w + r3.w; - r13.w = r14.z; - r13.xyzw = r13.xyzw * r6.wwww; - r17.w = r14.y; - r15.xyzw = r17.xyzw * r6.wwww; - r16.w = r14.x; - r14.xyzw = r16.xyzw * r6.wwww; - } else { - r13.xyzw = float4(0,0,0,0); - r15.xyzw = float4(0,0,0,0); - r14.xyzw = float4(0,0,0,0); - r10.w = r3.w; - } - r16.xyz = cb0[6].xzy * -cb0[212].zzz + cb0[210].xzy; - r16.xyz = -r16.xyz + r12.xzy; - r6.w = max(abs(r16.x), abs(r16.y)); - r6.w = -116 + r6.w; - r6.w = saturate(0.125 * r6.w); - r12.w = -52 + abs(r16.z); - r12.w = saturate(0.125 * r12.w); - r6.w = max(r12.w, r6.w); - r12.w = cmp(r6.w < 1); - if (r12.w != 0) { - r16.xyz = r12.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5); - r17.xyz = cb0[211].xyz * r16.xyz; - r17.xyz = floor(r17.xyz); - r16.xyz = r16.xyz * cb0[211].xyz + -r17.xyz; - r17.xyz = t13.SampleLevel(s1_s, r16.xyz, 0).xyz; - r12.w = 1 + -r6.w; - r4.w = r12.w * r4.w; - r12.w = cb0[211].y * 0.5; - r17.w = -cb0[211].y * 0.5 + 1; - r12.w = max(r16.y, r12.w); - r12.w = min(r12.w, r17.w); - r16.w = 0.333333343 * r12.w; - r18.xyzw = t14.SampleLevel(s0_s, r16.xwz, 0).xyzw; - r18.xyz = r18.xyz * float3(4,4,4) + float3(-2,-2,-2); - r19.xyz = r18.xyz * r17.xxx; - r18.xyz = float3(0,0.333333343,0) + r16.xwz; - r18.xyz = t14.SampleLevel(s0_s, r18.xyz, 0).xyz; - r18.xyz = r18.xyz * float3(4,4,4) + float3(-2,-2,-2); - r20.xyz = r18.xyz * r17.yyy; - r16.xyz = float3(0,0.666666687,0) + r16.xwz; - r16.xyz = t14.SampleLevel(s0_s, r16.xyz, 0).xyz; - r16.xyz = r16.xyz * float3(4,4,4) + float3(-2,-2,-2); - r16.xyz = r16.xyz * r17.zzz; - r10.w = r18.w * r4.w + r10.w; - r16.w = r17.z; - r13.xyzw = r16.xyzw * r4.wwww + r13.xyzw; - r20.w = r17.y; - r15.xyzw = r20.xyzw * r4.wwww + r15.xyzw; - r19.w = r17.x; - r14.xyzw = r19.xyzw * r4.wwww + r14.xyzw; - } - r4.w = cmp(0 < r6.w); - if (r4.w != 0) { - r12.xyz = r12.xyz * float3(0.125,0.125,0.125) + float3(0.5,0.5,0.5); - r16.xyz = cb0[211].xyz * r12.xyz; - r17.xyz = cb0[211].xyz * float3(0.5,0.5,0.5); - r16.xyz = floor(r16.xyz); - r12.xyz = r12.xyz * cb0[211].xyz + -r16.xyz; - r16.xyz = -cb0[211].xyz * float3(0.5,0.5,0.5) + float3(1,1,1); - r12.xyz = max(r12.xyz, r17.xyz); - r12.xyz = min(r12.xyz, r16.xyz); - r18.xyw = t15.SampleLevel(s1_s, r12.xyz, 0).yzx; - r4.w = 1 + -r3.w; - r4.w = r6.w * r4.w; - r6.w = max(r12.y, r17.y); - r6.w = min(r6.w, r16.y); - r12.w = 0.333333343 * r6.w; - r16.xyzw = t16.SampleLevel(s0_s, r12.xwz, 0).xyzw; - r17.xyz = float3(0,0.666666687,0) + r12.xwz; - r17.xyz = t16.SampleLevel(s0_s, r17.xyz, 0).xyz; - r17.xyz = r17.xyz * float3(4,4,4) + float3(-2,-2,-2); - r17.xyz = r17.xyz * r18.yyy; - r17.w = r18.y; - r13.xyzw = r17.xyzw * r4.wwww + r13.xyzw; - r12.xyz = float3(0,0.333333343,0) + r12.xwz; - r12.xyz = t16.SampleLevel(s0_s, r12.xyz, 0).xyz; - r12.xyz = r12.xyz * float3(4,4,4) + float3(-2,-2,-2); - r12.xyz = r12.xyz * r18.xxx; - r12.w = r18.x; - r15.xyzw = r12.xyzw * r4.wwww + r15.xyzw; - r12.xyz = r16.xyz * float3(4,4,4) + float3(-2,-2,-2); - r18.xyz = r12.xyz * r18.www; - r14.xyzw = r18.xyzw * r4.wwww + r14.xyzw; - r10.w = r16.w * r4.w + r10.w; - } - r4.w = saturate(r10.w * 2 + -1); - r12.x = r4.w + -r3.w; - r3.w = r4.w + r3.w; - r12.y = 0.5 * r3.w; - } else { - r13.xyzw = float4(0,0,0,0); - r15.xyzw = float4(0,0,0,0); - r14.xyzw = float4(0,0,0,0); - r12.xy = float2(0,1); - } - r16.xyzw = cb0[213].xyzw * r12.yyyx; - r16.y = r16.w * 0.5 + r16.y; - r12.zw = cb0[213].wy * r12.yx; - r16.w = r12.w * 0.375 + r12.z; - r14.xyzw = r16.xyzw + r14.xyzw; - r16.xyzw = cb0[214].xyzw * r12.yyyx; - r16.y = r16.w * 0.5 + r16.y; - r12.zw = cb0[214].wy * r12.yx; - r16.w = r12.w * 0.375 + r12.z; - r15.xyzw = r16.xyzw + r15.xyzw; - r16.xyzw = cb0[215].xyzw * r12.yyyx; - r16.y = r16.w * 0.5 + r16.y; - r12.xy = cb0[215].wy * r12.yx; - r16.w = r12.y * 0.375 + r12.x; - r12.xyzw = r16.xyzw + r13.xyzw; - r3.w = dot(r14.xyz, r5.xyz); - r3.w = r3.w + r14.w; - r13.x = max(0, r3.w); - r3.w = dot(r15.xyz, r5.xyz); - r3.w = r3.w + r15.w; - r13.y = max(0, r3.w); - r3.w = dot(r12.xyz, r5.xyz); - r3.w = r3.w + r12.w; - r13.z = max(0, r3.w); - r3.w = dot(-r4.xyz, r5.xyz); - r3.w = r3.w + r3.w; - r12.xyz = r5.xyz * -r3.www + -r4.xyz; - r3.w = cb0[113].x + -1; - r4.w = max(0.00100000005, r9.w); - r4.w = log2(r4.w); - r4.w = -r4.w * 1.20000005 + 1; - r3.w = -r4.w + r3.w; - r14.xy = (uint2)r11.xy; - r14.zw = cb3[0].ww * r14.xy; - r14.zw = floor(r14.zw); - r4.w = -cb3[2].y + r11.z; - r4.w = floor(r4.w); - r6.w = cb3[1].x + -1; - r10.w = max(0, r4.w); - r6.w = min(r10.w, r6.w); - r4.w = cmp(r6.w >= r4.w); - r10.w = r14.w * cb3[0].x + r14.z; - r10.w = (int)r10.w; - r10.w = (int)r10.w + asint(cb0[110].z); - r10.w = t0[r10.w].val[0/4]; - r6.w = (int)r6.w; - r6.w = (int)r6.w + asint(cb0[110].w); - r6.w = t0[r6.w].val[0/4]; - r6.w = (int)r6.w & (int)r10.w; - r4.w = r4.w ? r6.w : 0; - r15.xyz = cb0[111].xxx * r13.xyz; - r6.w = dot(r15.xyz, float3(0.212672904,0.715152204,0.0721750036)); - r0.w = 1; - r5.w = 1; - r15.xyz = float3(0,0,0); - r10.w = 1; - r12.w = r4.w; - r13.w = 0; - while (true) { - r14.z = cmp(0.00999999978 < r10.w); - r14.w = cmp((int)r12.w != 0); - r14.w = r14.z ? r14.w : 0; - if (r14.w != 0) { - r14.w = firstbitlow((uint)r12.w); - r15.w = 1 << (int)r14.w; - r12.w = (int)r12.w ^ (int)r15.w; - r14.w = (uint)r14.w << 3; - r16.x = dot(cb3[r14.w+6].xyzw, r0.xyzw); - r16.y = dot(cb3[r14.w+7].xyzw, r0.xyzw); - r16.z = dot(cb3[r14.w+8].xyzw, r0.xyzw); - r17.xyz = cmp(cb3[r14.w+5].xyz >= abs(r16.xyz)); - r15.w = r17.y ? r17.x : 0; - r15.w = r17.z ? r15.w : 0; - if (r15.w != 0) { - r15.w = cb3[r14.w+5].x * 0.100000001; - r17.xyz = float3(0.100000001,0.100000001,0.100000001) * abs(r16.xyz); - r17.xy = r17.xy * r17.xy; - r18.xyz = cb3[r14.w+5].xyz + -abs(r16.xyz); - r18.xyz = cb3[r14.w+9].xyz * r18.xyz; - r16.w = cmp(1.000000 == cb3[r14.w+10].x); - if (r16.w != 0) { - r19.x = dot(cb3[r14.w+6].xyz, r12.xyz); - r19.y = dot(cb3[r14.w+7].xyz, r12.xyz); - r19.z = dot(cb3[r14.w+8].xyz, r12.xyz); - r20.xyz = cb3[r14.w+5].xyz + -r16.xyz; - r20.xyz = r20.xyz / r19.xyz; - r21.xyz = -cb3[r14.w+5].xyz + -r16.xyz; - r21.xyz = r21.xyz / r19.xyz; - r22.xyz = cmp(float3(0,0,0) < r19.xyz); - r20.xyz = r22.xyz ? r20.xyz : r21.xyz; - r16.w = min(r20.x, r20.y); - r16.w = min(r16.w, r20.z); - r16.xyz = r19.xyz * r16.www + r16.xyz; - } else { - r16.xyz = r12.xyz; - } - r16.w = dot(r16.xyz, r16.xyz); - r16.w = rsqrt(r16.w); - r16.xyz = r16.xyz * r16.www; - r19.xyz = cmp(float3(0,0,0) < r16.xyz); - r20.xyz = cmp(r16.xyz < float3(0,0,0)); - r19.xyz = (int3)-r19.xyz + (int3)r20.xyz; - r19.xyz = (int3)r19.xyz; - r16.w = dot(r16.xyz, r19.xyz); - r16.xyz = r16.xyz / r16.www; - r16.z = cmp(r16.z < 0); - r19.zw = float2(1,1) + -abs(r16.yx); - r19.xy = r19.xy * r19.zw; - r16.xy = r16.zz ? r19.xy : r16.xy; - r16.z = dot(cb3[r14.w+4].xyzw, r5.xyzw); - r16.z = max(0, r16.z); - r16.z = max(9.99999975e-05, r16.z); - r16.w = min(r18.y, r18.z); - r16.w = min(r18.x, r16.w); - r17.x = r17.x + r17.y; - r17.x = r17.z * r17.z + r17.x; - r15.w = r15.w * r15.w + -r17.x; - r15.w = cb3[r14.w+9].x * r15.w; - r15.w = cb3[r14.w+9].x * r15.w; - r17.x = -cb3[r14.w+10].y + 1; - r15.w = r17.x * r15.w; - r15.w = 100 * r15.w; - r15.w = saturate(r16.w * cb3[r14.w+10].y + r15.w); - r16.w = cb3[r14.w+10].w * r15.w; - r16.xy = r16.xy * float2(0.5,0.5) + float2(0.5,0.5); - r17.xy = r16.xy * cb3[1].ww + cb3[2].ww; - r17.z = cb3[r14.w+5].w; - r17.xyz = t1.SampleLevel(s2_s, r17.xyz, r3.w).xyz; - r17.xyz = cb3[r14.w+9].www * r17.xyz; - r16.x = r6.w / r16.z; - r16.x = min(1, abs(r16.x)); - r16.x = r16.x * 2 + r6.w; - r16.y = 2 + r16.z; - r16.x = r16.x / r16.y; - r16.x = -1 + r16.x; - r16.x = r16.x * cb0[112].w + 1; - r16.xyz = r17.xyz * r16.xxx; - r16.xyz = r16.xyz * r16.www; - r15.xyz = r16.xyz * r10.www + r15.xyz; - r14.w = -r15.w * cb3[r14.w+10].w + 1; - r10.w = r14.w * r10.w; - } - r13.w = -1; - continue; - } else { - r13.w = r14.z; - break; - } - r13.w = r14.z; - } - if (r13.w != 0) { - r0.w = dot(r12.xyz, r12.xyz); - r0.w = rsqrt(r0.w); - r16.xyz = r12.xyz * r0.www; - r17.xyz = cmp(float3(0,0,0) < r16.xyz); - r18.xyz = cmp(r16.xyz < float3(0,0,0)); - r17.xyz = (int3)-r17.xyz + (int3)r18.xyz; - r17.xyz = (int3)r17.xyz; - r0.w = dot(r16.xyz, r17.xyz); - r16.xyz = r16.xyz / r0.www; - r0.w = cmp(r16.z < 0); - r14.zw = float2(1,1) + -abs(r16.yx); - r14.zw = r17.xy * r14.zw; - r14.zw = r0.ww ? r14.zw : r16.xy; - r5.w = 1; - r0.w = dot(cb3[3].xyzw, r5.xyzw); - r0.w = max(0, r0.w); - r0.w = max(9.99999975e-05, r0.w); - r14.zw = r14.zw * float2(0.5,0.5) + float2(0.5,0.5); - r16.xy = r14.zw * cb3[1].ww + cb3[2].ww; - r16.z = 0; - r16.xyz = t1.SampleLevel(s2_s, r16.xyz, r3.w).xyz; - r3.w = r6.w / r0.w; - r3.w = min(1, abs(r3.w)); - r3.w = r3.w * 2 + r6.w; - r0.w = 2 + r0.w; - r0.w = r3.w / r0.w; - r0.w = -1 + r0.w; - r0.w = r0.w * cb0[112].w + 1; - r16.xyz = r16.xyz * r0.www; - r15.xyz = r16.xyz * r10.www + r15.xyz; - } - r13.xyz = r13.xyz * r7.xyw; - r0.w = -1 + r7.z; - r0.w = cb2[1].x * r0.w + 1; - r13.xyz = r13.xyz * r0.www; - - // Reduce reflection probe intensity for glass - if (GLASS_TRANSPARENCY > 0.5f) { - r15.xyz *= 0.4f; - } - - r15.xyz = cb0[112].zzz * r15.xyz; - r15.xyz = cb0[111].yyy * r15.xyz; - r0.w = saturate(50 * r6.y); - r0.w = r0.w * r2.w; - r16.xyz = r6.xyz * r2.zzz + r0.www; - r15.xyz = r16.xyz * r15.xyz; - r13.xyz = r13.xyz * cb0[111].xxx + r15.xyz; - r0.w = cmp(cb6[35].w < 0.99000001); - if (r0.w != 0) { - r0.w = (int)cb6[35].x; - r2.z = cmp((int)r0.w == 2); - r15.xyz = r2.zzz ? cb6[20].xyz : cb0[44].xyz; - r15.xyz = -r15.xyz + r0.xyz; - r2.z = dot(r15.xyz, r15.xyz); - r2.z = cb6[34].w + -r2.z; - r2.z = saturate(cb6[34].z * r2.z); - r2.w = cmp(0 < r2.z); - if (r2.w != 0) { - r0.w = cmp(0 < (int)r0.w); - if (r0.w != 0) { - r15.xyz = -cb6[20].xyz + r0.xyz; - r16.xyz = -cb6[21].xyz + r0.xyz; - r17.xyz = -cb6[22].xyz + r0.xyz; - r18.xyz = -cb6[23].xyz + r0.xyz; - r15.x = dot(r15.xyz, r15.xyz); - r15.y = dot(r16.xyz, r16.xyz); - r15.z = dot(r17.xyz, r17.xyz); - r15.w = dot(r18.xyz, r18.xyz); - r16.x = cmp(r15.x < cb6[20].w); - r16.y = cmp(r15.y < cb6[21].w); - r16.z = cmp(r15.z < cb6[22].w); - r16.w = cmp(r15.w < cb6[23].w); - r17.xyzw = r16.xyzw ? float4(1,1,1,1) : 0; - r16.xyz = r16.xyz ? float3(-1,-1,-1) : float3(-0,-0,-0); - r16.xyz = r17.yzw + r16.xyz; - r17.yzw = max(float3(0,0,0), r16.xyz); - r0.w = dot(r17.xyzw, float4(4,3,2,1)); - r0.w = 4 + -r0.w; - r0.w = max(0, r0.w); - r0.w = min(3, r0.w); - r2.w = 1 + r0.w; - r2.w = min(3, r2.w); - r2.w = (uint)r2.w; - r3.w = dot(r15.yzw, icb[r2.w+0].yzw); - r2.w = r3.w / cb6[r2.w+20].w; - r3.w = cmp(r2.w >= 0); - r2.w = cmp(1 >= r2.w); - r2.w = r2.w ? r3.w : 0; - if (r2.w != 0) { - r2.w = (uint)r0.w; - r14.zw = float2(2.08299994,4.8670001) + r14.xy; - r3.w = dot(r14.zw, float2(0.0671105608,0.00583714992)); - r3.w = frac(r3.w); - r3.w = 52.9829178 * r3.w; - r3.w = frac(r3.w); - r4.w = dot(r15.xyzw, icb[r2.w+0].xyzw); - r2.w = r4.w / cb6[r2.w+20].w; - r2.w = sqrt(r2.w); - r2.w = -0.899999976 + r2.w; - r2.w = 12 * r2.w; - r2.w = cmp(r2.w >= r3.w); - r2.w = r2.w ? 1.000000 : 0; - r0.w = r2.w + r0.w; - } - r2.w = dot(r5.xyz, cb5[0].xyz); - r2.w = max(0, r2.w); - r2.w = min(0.899999976, r2.w); - r2.w = 1 + -r2.w; - r3.w = (uint)r0.w; - r4.w = (uint)r3.w << 2; - r14.zw = cb6[r3.w+24].xy * r2.ww; - r2.w = max(0, r14.z); - r15.xyz = -cb5[0].xyz * r2.www + r0.xyz; - r15.xyz = r5.xyz * r14.www + r15.xyz; - r16.xyz = cb6[r4.w+1].xyz * r15.yyy; - r15.xyw = cb6[r4.w+0].xyz * r15.xxx + r16.xyz; - r15.xyz = cb6[r4.w+2].xyz * r15.zzz + r15.xyw; - r15.xyz = cb6[r4.w+3].xyz + r15.xyz; - r16.xyz = cmp(float3(0,0,0) >= r15.xyz); - r17.xyz = cmp(r15.xyz >= float3(1,1,1)); - r16.xyz = (int3)r16.xyz | (int3)r17.xyz; - r2.w = (int)r16.y | (int)r16.x; - r2.w = (int)r16.z | (int)r2.w; - r3.w = (int)r15.z & 0x7fffffff; - r3.w = cmp(0x7f800000 < (uint)r3.w); - r16.z = (int)r2.w | (int)r3.w; - r0.w = (int)r0.w; - r14.zw = r15.xy * cb6[r0.w+28].zw + cb6[r0.w+28].xy; - r15.xy = r14.zw * cb6[32].zw + float2(0.5,0.5); - r15.xy = floor(r15.xy); - r14.zw = r14.zw * cb6[32].zw + -r15.xy; - r17.xyzw = float4(0.5,1,0.5,1) + r14.zzww; - r18.xw = r17.xz * r17.xz; - r17.xz = min(float2(0,0), r14.zw); - r19.xy = max(float2(0,0), r14.zw); - r19.zw = r18.xw * float2(0.5,0.5) + -r14.zw; - r14.zw = float2(1,1) + -r14.zw; - r14.zw = -r17.xz * r17.xz + r14.zw; - r17.xy = -r19.xy * r19.xy + r17.yw; - r20.x = r19.z; - r20.y = r14.z; - r20.z = r17.x; - r20.w = r18.x; - r20.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r20.xyzw; - r18.x = r19.w; - r18.y = r14.w; - r18.z = r17.y; - r17.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r18.xyzw; - r18.xyzw = r20.xzxz + r20.ywyw; - r19.xyzw = r17.xxzz + r17.yyww; - r14.zw = r20.yw / r18.zw; - r14.zw = float2(-1.5,0.5) + r14.zw; - r20.xy = cb6[32].xx * r14.zw; - r14.zw = r17.yw / r19.yw; - r14.zw = float2(-1.5,0.5) + r14.zw; - r20.zw = cb6[32].yy * r14.zw; - r17.xyzw = r19.xyzw * r18.xyzw; - r18.xyzw = r15.xyxy * cb6[32].xyxy + r20.xzyz; - r0.w = t5.SampleCmpLevelZero(s3_s, r18.xy, r15.z).x; - r2.w = t5.SampleCmpLevelZero(s3_s, r18.zw, r15.z).x; - r2.w = r17.y * r2.w; - r0.w = r17.x * r0.w + r2.w; - r18.xyzw = r15.xyxy * cb6[32].xyxy + r20.xwyw; - r2.w = t5.SampleCmpLevelZero(s3_s, r18.xy, r15.z).x; - r0.w = r17.z * r2.w + r0.w; - r2.w = t5.SampleCmpLevelZero(s3_s, r18.zw, r15.z).x; - r0.w = r17.w * r2.w + r0.w; - r16.x = r16.z ? 1 : r0.w; - } else { - r16.xz = float2(1,0); - } - } else { - r16.xz = float2(1,0); - } - r0.w = cmp(r2.z < 1); - if (r0.w != 0) { - r0.w = dot(r5.xyz, cb5[0].xyz); - r0.w = max(0, r0.w); - r0.w = min(0.899999976, r0.w); - r0.w = 1 + -r0.w; - r14.zw = cb6[584].xy * r0.ww; - r15.xyz = -cb5[0].xyz * r14.zzz + r0.xyz; - r15.xyz = r5.xyz * r14.www + r15.xyz; - r14.zw = cb6[581].xy * r15.yy; - r14.zw = cb6[580].xy * r15.xx + r14.zw; - r14.zw = cb6[582].xy * r15.zz + r14.zw; - r14.zw = cb6[583].xy + r14.zw; - r17.xy = cmp(float2(0,0) < r14.zw); - r0.w = r17.y ? r17.x : 0; - r17.xy = cmp(r14.zw < float2(1,1)); - r2.w = r17.y ? r17.x : 0; - r0.w = (int)r0.w & (int)r2.w; - if (r0.w != 0) { - r0.w = cb6[585].z * r14.w; - r0.w = floor(r0.w); - r0.w = r0.w + r14.z; - r0.w = cb6[585].y * r0.w; - r0.w = (uint)r0.w; - r0.w = min(127, (uint)r0.w); - r2.w = 0x0000ffff & asint(cb6[r0.w+587].x); - r17.x = f16tof32(r2.w); - r2.w = cmp(r17.x >= 0); - if (r2.w != 0) { - r18.x = cb6[576].x; - r18.y = cb6[577].x; - r18.z = cb6[578].x; - r18.w = cb6[r0.w+587].y; - r15.w = 1; - r18.x = dot(r18.xyzw, r15.xyzw); - r19.x = cb6[576].y; - r19.y = cb6[577].y; - r19.z = cb6[578].y; - r19.w = cb6[r0.w+587].z; - r18.y = dot(r19.xyzw, r15.xyzw); - r19.x = cb6[576].z; - r19.y = cb6[577].z; - r19.z = cb6[578].z; - r19.w = cb6[r0.w+587].w; - r2.w = dot(r19.xyzw, r15.xyzw); - r14.zw = cmp(float2(0,0) < r18.xy); - r3.w = cmp(0 < r2.w); - r4.w = r14.w ? r14.z : 0; - r3.w = r3.w ? r4.w : 0; - r14.zw = cmp(r18.xy < float2(1,1)); - r4.w = cmp(r2.w < 1); - r5.w = r14.w ? r14.z : 0; - r4.w = r4.w ? r5.w : 0; - r3.w = r3.w ? r4.w : 0; - if (r3.w != 0) { - r0.w = asuint(cb6[r0.w+587].x) >> 16; - r17.y = f16tof32(r0.w); - r14.zw = r18.xy * cb6[584].zw + r17.xy; - r15.xy = r14.zw * cb6[586].zw + float2(0.5,0.5); - r15.xy = floor(r15.xy); - r14.zw = r14.zw * cb6[586].zw + -r15.xy; - r17.xyzw = float4(0.5,1,0.5,1) + r14.zzww; - r18.xw = r17.xz * r17.xz; - r15.zw = min(float2(0,0), r14.zw); - r17.xz = max(float2(0,0), r14.zw); - r19.xy = r18.xw * float2(0.5,0.5) + -r14.zw; - r14.zw = float2(1,1) + -r14.zw; - r14.zw = -r15.zw * r15.zw + r14.zw; - r15.zw = -r17.xz * r17.xz + r17.yw; - r17.x = r19.x; - r17.y = r14.z; - r17.z = r15.z; - r17.w = r18.x; - r17.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r17.xyzw; - r18.x = r19.y; - r18.y = r14.w; - r18.z = r15.w; - r18.xyzw = float4(0.444440007,0.444440007,0.444440007,0.222220004) * r18.xyzw; - r19.xyzw = r17.xzxz + r17.ywyw; - r20.xyzw = r18.xxzz + r18.yyww; - r14.zw = r17.yw / r19.zw; - r14.zw = float2(-1.5,0.5) + r14.zw; - r17.xy = cb6[586].xx * r14.zw; - r14.zw = r18.yw / r20.yw; - r14.zw = float2(-1.5,0.5) + r14.zw; - r17.zw = cb6[586].yy * r14.zw; - r18.xyzw = r20.xyzw * r19.xyzw; - r19.xyzw = r15.xyxy * cb6[586].xyxy + r17.xzyz; - r0.w = t8.SampleCmpLevelZero(s3_s, r19.xy, r2.w).x; - r3.w = t8.SampleCmpLevelZero(s3_s, r19.zw, r2.w).x; - r3.w = r18.y * r3.w; - r0.w = r18.x * r0.w + r3.w; - r15.xyzw = r15.xyxy * cb6[586].xyxy + r17.xwyw; - r3.w = t8.SampleCmpLevelZero(s3_s, r15.xy, r2.w).x; - r0.w = r18.z * r3.w + r0.w; - r2.w = t8.SampleCmpLevelZero(s3_s, r15.zw, r2.w).x; - r16.y = r18.w * r2.w + r0.w; - } else { - r16.y = 1; - } - } else { - r16.y = 1; - } - } else { - r16.y = 1; - } - r16.x = r16.z ? r16.y : r16.x; - } else { - r16.y = 1; - } - r0.w = r16.x + -r16.y; - r0.w = r2.z * r0.w + r16.y; - r2.z = cmp(0.00100000005 < r0.w); - if (r2.z != 0) { - r15.xyz = -cb0[173].xyz + r0.xyz; - r2.zw = cb0[176].xz * r15.yy + r15.xz; - r14.zw = cb0[174].zz * r2.zw; - r15.yw = cb0[183].ww * cb0[175].xy; - r2.zw = r2.zw * cb0[174].zz + r15.yw; - r2.z = t7.SampleLevel(s1_s, r2.zw, 0).x; - r14.zw = r14.zw * cb0[175].ww + r15.yw; - r2.w = t7.SampleLevel(s1_s, r14.zw, 0).x; - r3.w = dot(r15.xz, r15.xz); - r3.w = sqrt(r3.w); - r4.w = cb0[174].y + -cb0[174].x; - r3.w = -cb0[174].x + r3.w; - r4.w = 1 / r4.w; - r3.w = saturate(r4.w * r3.w); - r4.w = r3.w * -2 + 3; - r3.w = r3.w * r3.w; - r3.w = r4.w * r3.w; - r2.w = r2.w + -r2.z; - r2.z = r3.w * r2.w + r2.z; - r2.z = -1 + r2.z; - r2.z = cb0[175].z * r2.z + 1; - r0.w = r2.z * r0.w; - } - r2.z = cb6[35].z + -r0.w; - r0.w = cb6[35].w * r2.z + r0.w; - } else { - r0.w = cb6[35].z; - } - r0.w = min(1, r0.w); - r0.w = -1 + r0.w; - r15.x = cb6[34].x * r0.w + 1; - r0.w = cmp(0.00100000005 < r15.x); - if (r0.w != 0) { - r0.w = dot(-cb5[0].xyz, r12.xyz); - r16.xyz = cb5[0].xyz * r0.www + r12.xyz; - r0.w = cmp(r0.w < cb5[4].z); - r2.z = dot(r16.xyz, r16.xyz); - r2.z = max(6.10351562e-05, r2.z); - r2.z = rsqrt(r2.z); - r16.xyz = r16.xyz * r2.zzz; - r16.xyz = cb5[4].yyy * r16.xyz; - r16.xyz = -cb5[0].xyz * cb5[4].zzz + r16.xyz; - r2.z = dot(r16.xyz, r16.xyz); - r2.z = rsqrt(r2.z); - r16.xyz = r16.xyz * r2.zzz; - r16.xyz = r0.www ? r16.xyz : r12.xyz; - r17.xyz = r1.yzw * r2.yyy + r16.xyz; - r0.w = dot(r17.xyz, r17.xyz); - r0.w = max(6.10351562e-05, r0.w); - r0.w = rsqrt(r0.w); - r17.xyz = r17.xyz * r0.www; - r9.y = saturate(dot(r16.xyz, r5.xyz)); - r0.w = saturate(dot(r5.xyz, r17.xyz)); - r9.z = min(1, r1.x); - r2.z = r9.w * r9.w; - r2.z = r2.z * r2.z; - r2.w = r0.w * r2.z + -r0.w; - r0.w = r2.w * r0.w + 1; - r2.w = saturate(dot(r4.xyz, r17.xyz)); - r2.w = 1 + -r2.w; - r3.w = r2.w * r2.w; - r3.w = r3.w * r3.w; - r4.w = r3.w * r2.w; - r5.w = 1 + -r9.w; - r6.w = -r5.w * 0.383026004 + -0.0761947036; - r6.w = r5.w * r6.w + 1.04997003; - r5.w = r5.w * r6.w + 0.409254998; - r5.w = min(0.999000013, r5.w); - r6.w = 1 + -r5.w; - r16.xyz = float3(1,1,1) + -r6.xyz; - r16.xyz = r16.xyz * float3(0.0476190485,0.0476190485,0.0476190485) + r6.xyz; - r2.w = -r3.w * r2.w + 1; - r17.xyz = r6.xyz * r2.www + r4.www; - r0.w = r0.w * r0.w; - r0.w = r2.z / r0.w; - r14.zw = -r9.zy * r2.zz + r9.zy; - r2.zw = r14.zw * r9.zy + r2.zz; - r2.zw = sqrt(r2.zw); - r2.zw = r9.yz * r2.zw; - r2.z = r2.z + r2.w; - r2.z = 9.99999975e-05 + r2.z; - r2.z = 0.5 / r2.z; - r0.w = r2.z * r0.w; - r17.xyz = r17.xyz * r0.www; - r17.xyz = min(float3(2048,2048,2048), r17.xyz); - r18.xyzw = r9.zwyw * float4(0.96875,0.96875,0.96875,0.96875) + float4(0.015625,0.015625,0.015625,0.015625); - r0.w = t10.SampleLevel(s0_s, r18.xy, 0).x; - r2.z = t10.SampleLevel(s0_s, r18.zw, 0).x; - r0.w = r2.z * r0.w; - r0.w = r0.w * r5.w; - r0.w = r0.w / r6.w; - r18.xyz = r16.xyz * r16.xyz; - r18.xyz = r18.xyz * r0.www; - r16.xyz = -r16.xyz * r6.www + float3(1,1,1); - r16.xyz = r18.xyz / r16.xyz; - r16.xyz = r17.xyz + r16.xyz; - r16.xyz = cb5[4].xxx * r16.xyz; - r16.xyz = max(float3(0,0,0), r16.xyz); - r16.xyz = min(float3(1000,1000,1000), r16.xyz); - - // Reduce sun specular intensity on glass - if (GLASS_TRANSPARENCY > 0.5f) { - r16.xyz *= 0.5f; - } - - r17.xyz = r9.yyy * r7.xyw; - r16.xyz = r16.xyz * r9.yyy + r17.xyz; - r16.xyz = cb5[1].xyz * r16.xyz; - r15.y = 0.5; - r15.yzw = t9.SampleBias(s0_s, r15.xy, cb0[108].x).xyz; - r0.w = 1 + -r15.x; - r15.xyz = r16.xyz * r15.yzw + -r16.xyz; - r15.xyz = r0.www * r15.xyz + r16.xyz; - } else { - r15.xyz = float3(0,0,0); - } - r2.zw = float2(0.03125,0.03125) * r14.xy; - r2.zw = floor(r2.zw); - r0.w = r2.w * cb4[1].y + r2.z; - r0.w = 8 * r0.w; - r0.w = (int)r0.w; - r2.z = -cb0[85].y * cb4[2].w + r11.z; - r2.z = floor(r2.z); - r2.w = cb4[1].w + -1; - r3.w = max(0, r2.z); - r2.w = min(r3.w, r2.w); - r3.w = 8 * r2.w; - r3.w = (int)r3.w; - r2.z = cmp(r2.w >= r2.z); - r2.w = (int)r3.w + asint(cb0[110].y); - r3.w = r9.w * r9.w; - r9.x = min(1, r1.x); - r1.x = 1 + -r9.w; - r4.w = -r1.x * 0.383026004 + -0.0761947036; - r4.w = r1.x * r4.w + 1.04997003; - r1.x = r1.x * r4.w + 0.409254998; - r1.x = min(0.999000013, r1.x); - r4.w = 1 + -r1.x; - r16.xyz = float3(1,1,1) + -r6.xyz; - r16.xyz = r16.xyz * float3(0.0476190485,0.0476190485,0.0476190485) + r6.xyz; - r9.yz = r9.xw * float2(0.96875,0.96875) + float2(0.015625,0.015625); - r5.w = t10.SampleLevel(s0_s, r9.yz, 0).x; - r17.xyz = -r16.xyz * r4.www + float3(1,1,1); - r16.xyz = r16.xyz * r16.xyz; - r18.w = 1; - r19.y = 1; - r20.z = r9.w; - r21.xyz = float3(0,0,0); - r6.w = 1; - r7.z = 0; - while (true) { - r9.y = cmp(7 < (int)r7.z); - if (r9.y != 0) break; - r9.y = (int)r0.w + (int)r7.z; - r9.y = t0[r9.y].val[0/4]; - r9.z = (int)r2.w + (int)r7.z; - r9.z = t0[r9.z].val[0/4]; - r9.y = (int)r9.z & (int)r9.y; - r9.y = r2.z ? r9.y : 0; - r9.z = (uint)r7.z << 5; - r22.xyz = float3(0,0,0); - r10.w = r6.w; - r12.w = r9.y; - while (true) { - if (r12.w == 0) break; - r13.w = firstbitlow((uint)r12.w); - r14.z = 1 << (int)r13.w; - r14.z = (int)r12.w ^ (int)r14.z; - r13.w = (int)r9.z + (int)r13.w; - bitmask.x = ((~(-1 << 29)) << 3) & 0xffffffff; r23.x = (((uint)r13.w << 3) & bitmask.x) | ((uint)1 & ~bitmask.x); - bitmask.y = ((~(-1 << 29)) << 3) & 0xffffffff; r23.y = (((uint)r13.w << 3) & bitmask.y) | ((uint)3 & ~bitmask.y); - bitmask.z = ((~(-1 << 29)) << 3) & 0xffffffff; r23.z = (((uint)r13.w << 3) & bitmask.z) | ((uint)5 & ~bitmask.z); - bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r23.w = (((uint)r13.w << 3) & bitmask.w) | ((uint)6 & ~bitmask.w); - bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r14.w = (((uint)r13.w << 3) & bitmask.w) | ((uint)7 & ~bitmask.w); - r15.w = (uint)cb5[r23.z+6].w; - r15.w = cmp((int)r15.w == 1); - if (r15.w != 0) { - r18.xyz = -cb5[r23.x+6].xyz + r0.xyz; - r24.xyz = int3(0xffff,0xffff,0xffff) & asint(cb5[r23.z+6].xzy); - r25.xyz = int3(0xffff,0xffff,0xffff) & asint(cb5[r23.w+6].yxz); - r26.xyz = asuint(cb5[r23.z+6].xzy) >> int3(16,16,16); - r27.xyz = asuint(cb5[r23.w+6].yxz) >> int3(16,16,16); - r24.xyz = f16tof32(r24.xyz); - r25.xyz = f16tof32(r25.xyz); - r26.xyz = f16tof32(r26.xyz); - r27.xyw = f16tof32(r27.yxz); - r28.xz = r24.xz; - r28.yw = r26.xz; - r15.w = dot(r18.xyzw, r28.xyzw); - r26.x = r24.y; - r26.z = r25.y; - r26.w = r27.x; - r16.w = dot(r18.xyzw, r26.xyzw); - r27.xz = r25.xz; - r17.w = dot(r18.xyzw, r27.xyzw); - r15.w = max(abs(r16.w), abs(r15.w)); - r15.w = max(r15.w, abs(r17.w)); - r16.w = cb5[r14.w+6].x * 0.5 + 0.5; - r15.w = -r16.w + r15.w; - r16.w = -cb5[r14.w+6].x * 0.5 + 0.5; - r15.w = saturate(r15.w / r16.w); - r15.w = 1 + -r15.w; - r15.w = r15.w * r15.w; - } else { - r15.w = 1; - } - r16.w = cmp(0.5 < cb5[r23.y+6].z); - r17.w = cmp(r15.w < 0.00100000005); - r17.w = (int)r16.w | (int)r17.w; - if (r17.w != 0) { - r12.w = r14.z; - continue; - } - r17.w = (uint)r13.w << 3; - bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff; r13.w = (((uint)r13.w << 3) & bitmask.w) | ((uint)2 & ~bitmask.w); - r18.x = cmp(cb5[r17.w+6].w < 1.5); - if (r18.x != 0) { - r18.x = cb5[r13.w+6].y * 0.5 + 0.5; - r18.x = -abs(cb5[r13.w+6].x) + r18.x; - r18.y = cb5[r13.w+6].y + -r18.x; - r19.z = 1 + -abs(r18.x); - r19.z = r19.z + -abs(r18.y); - r19.z = max(0.00048828125, r19.z); - r19.w = cmp(cb5[r13.w+6].x >= 0); - r18.z = r19.w ? r19.z : -r19.z; - r19.z = dot(r18.xyz, r18.xyz); - r19.z = rsqrt(r19.z); - r18.xyz = r19.zzz * r18.xyz; - r24.xyz = cb5[r23.x+6].xyz + -r0.xyz; - r19.z = dot(r24.xyz, r24.xyz); - r19.w = rsqrt(r19.z); - r25.xyz = r24.xyz * r19.www; - r20.w = (int)cb5[r14.w+6].w; - r26.xyz = cb5[r13.w+6].zzz * r18.xyz; - r27.xyz = -r26.xyz * float3(0.5,0.5,0.5) + r24.xyz; - r28.xyz = r26.xyz * float3(0.5,0.5,0.5) + r24.xyz; - r21.w = (uint)cb5[r17.w+6].w; - r21.w = (int)r21.w & 1; - r22.w = cmp((int)r21.w == 0); - r22.w = ~(int)r22.w; - r23.z = cmp(0 < cb5[r13.w+6].z); - r22.w = r22.w ? r23.z : 0; - r23.z = dot(r27.xyz, r27.xyz); - r23.z = sqrt(r23.z); - r24.w = dot(r28.xyz, r28.xyz); - r24.w = sqrt(r24.w); - r25.w = dot(r5.xyz, r27.xyz); - r25.w = r25.w / r23.z; - r26.w = dot(r5.xyz, r28.xyz); - r26.w = r26.w / r24.w; - r25.w = r26.w + r25.w; - r29.x = saturate(0.5 * r25.w); - r25.w = dot(r27.xyz, r28.xyz); - r23.z = r23.z * r24.w + r25.w; - r23.z = r23.z * 0.5 + 1; - r29.y = 1 / r23.z; - r19.x = saturate(dot(r5.xyz, r25.xyz)); - r20.xy = r22.ww ? r29.xy : r19.xy; - r19.x = cmp(cb5[r23.w+6].w < 0); - if (r19.x != 0) { - r19.x = cb5[r23.x+6].w * cb5[r23.x+6].w; - r19.x = r19.z * r19.x; - r19.x = -r19.x * r19.x + 1; - r19.x = max(0, r19.x); - r19.z = 1 + r19.z; - r19.z = 1 / r19.z; - r23.z = r22.w ? 1.000000 : 0; - r24.w = r20.y + -r19.z; - r19.z = r23.z * r24.w + r19.z; - r19.x = r19.x * r19.x; - r19.x = r19.z * r19.x; - } else { - r28.xyz = cb5[r23.x+6].www * r24.xyz; - r19.z = dot(r28.xyz, r28.xyz); - r19.z = min(1, r19.z); - r19.z = 1 + -r19.z; - r19.z = log2(r19.z); - r19.z = cb5[r23.w+6].w * r19.z; - r19.z = exp2(r19.z); - r19.x = r20.y * r19.z; - } - r18.x = dot(r25.xyz, -r18.xyz); - r18.x = -cb5[r13.w+6].z + r18.x; - r18.x = saturate(cb5[r13.w+6].w * r18.x); - r18.x = r18.x * r18.x; - r18.x = r21.w ? 1 : r18.x; - r18.x = r19.x * r18.x; - r18.y = ~(int)r22.w; - r18.z = cmp((int)r20.w >= 0); - r18.y = r18.z ? r18.y : 0; - if (r18.y != 0) { - if (r21.w == 0) { - r18.y = (uint)r20.w << 2; - r28.xyz = cb7[r18.y+33].xyw * r0.yyy; - r28.xyz = cb7[r18.y+32].xyw * r0.xxx + r28.xyz; - r28.xyz = cb7[r18.y+34].xyw * r0.zzz + r28.xyz; - r28.xyz = cb7[r18.y+35].xyw + r28.xyz; - r18.yz = saturate(r28.xy / r28.zz); - r18.yz = r18.yz * cb7[r20.w+0].zw + cb7[r20.w+0].xy; - } else { - r19.x = (uint)r20.w << 2; - r28.x = dot(-r24.xyz, cb7[r19.x+32].xyz); - r28.y = dot(-r24.xyz, cb7[r19.x+33].xyz); - r28.z = dot(-r24.xyz, cb7[r19.x+34].xyz); - r19.x = cmp(abs(r28.x) < abs(r28.y)); - r19.x = r19.x ? 0.000000 : 0; - r19.z = dot(abs(r28.xy), icb[r19.x+0].xy); - r19.z = cmp(r19.z < abs(r28.z)); - r19.x = r19.z ? 2 : r19.x; - r19.z = dot(r28.xyz, icb[r19.x+0].xyz); - r19.z = cmp(r19.z < 0); - bitmask.x = ((~(-1 << 31)) << 1) & 0xffffffff; r19.x = (((uint)r19.x << 1) & bitmask.x) | ((uint)r19.z & ~bitmask.x); - r19.z = (uint)r19.x >> 1; - r19.z = dot(r28.xyz, icb[r19.z+0].xyz); - r20.y = 0.000244140625 / cb7[r20.w+0].w; - r20.y = 0.5 + -r20.y; - r23.z = (uint)r19.x; - r24.x = cmp((uint)r19.x < 2); - r24.x = r24.x ? 0.000000 : 0; - r24.x = dot(r28.xz, icb[r24.x+0].xz); - r24.x = icb[r19.x+4].z * r24.x; - r24.x = r24.x / abs(r19.z); - r23.z = r24.x * r20.y + r23.z; - r23.z = 0.5 + r23.z; - r24.x = saturate(0.166666672 * r23.z); - r23.z = -1 + (int)icb[r19.x+4].y; - r23.z = dot(r28.yz, icb[r23.z+0].xy); - r19.x = icb[r19.x+4].w * r23.z; - r19.x = r19.x / abs(r19.z); - r24.y = saturate(-r19.x * r20.y + 0.5); - r18.yz = r24.xy * cb7[r20.w+0].zw + cb7[r20.w+0].xy; - } - r18.y = t18.SampleLevel(s0_s, r18.yz, 0).x; - r18.x = r18.x * r18.y; - } - r18.y = cmp(0 < r18.x); - if (r18.y != 0) { - if (r21.w == 0) { - r18.z = (int)cb5[r23.y+6].x; - } else { - r24.xyz = -cb5[r23.x+6].xyz + r0.xyz; - r28.xyz = cmp(abs(r24.yzz) < abs(r24.xxy)); - r19.x = r28.y ? r28.x : 0; - r24.xyz = cmp(float3(0,0,0) < r24.xyz); - r19.z = asuint(cb5[r13.w+6].w) >> 24; - if (8 == 0) r20.y = 0; else if (8+16 < 32) { r20.y = (uint)cb5[r13.w+6].w << (32-(8 + 16)); r20.y = (uint)r20.y >> (32-8); } else r20.y = (uint)cb5[r13.w+6].w >> 16; - if (8 == 0) r20.w = 0; else if (8+8 < 32) { r20.w = (uint)cb5[r13.w+6].w << (32-(8 + 8)); r20.w = (uint)r20.w >> (32-8); } else r20.w = (uint)cb5[r13.w+6].w >> 8; - r19.z = r24.x ? r19.z : r20.y; - r20.y = 255 & asint(cb5[r13.w+6].w); - r20.y = r24.y ? r20.w : r20.y; - if (8 == 0) r20.w = 0; else if (8+8 < 32) { r20.w = (uint)cb5[r23.y+6].x << (32-(8 + 8)); r20.w = (uint)r20.w >> (32-8); } else r20.w = (uint)cb5[r23.y+6].x >> 8; - r21.w = 255 & asint(cb5[r23.y+6].x); - r20.w = r24.z ? r20.w : r21.w; - r20.y = r28.z ? r20.y : r20.w; - r19.x = r19.x ? r19.z : r20.y; - r19.z = cmp((int)r19.x < 80); - r18.z = r19.z ? r19.x : -1; - } - r24.xyz = r25.xyz * cb6[r18.z+288].xxx + r0.xyz; - r19.x = cb6[r18.z+288].y * 5; - r24.xyz = r5.xyz * r19.xxx + r24.xyz; - r19.x = (uint)r18.z << 2; - r28.xyzw = cb6[r19.x+65].xyzw * r24.yyyy; - r28.xyzw = cb6[r19.x+64].xyzw * r24.xxxx + r28.xyzw; - r24.xyzw = cb6[r19.x+66].xyzw * r24.zzzz + r28.xyzw; - r24.xyzw = cb6[r19.x+67].xyzw + r24.xyzw; - r24.xyz = r24.xyz / r24.www; - r28.xyz = cmp(float3(0,0,0) >= r24.xyz); - r29.xyz = cmp(r24.xyz >= float3(1,1,1)); - r19.xz = cb6[r18.z+344].zw + -cb6[r18.z+344].xy; - r19.xz = r24.xy * r19.xz + cb6[r18.z+344].xy; - r20.yw = r19.xz * cb6[400].zw + float2(0.5,0.5); - r20.yw = floor(r20.yw); - r19.xz = r19.xz * cb6[400].zw + -r20.yw; - r30.xyzw = float4(0.5,1,0.5,1) + r19.xxzz; - r31.xyzw = r30.xxzz * r30.xxzz; - r24.xy = float2(1,1) + -r19.xz; - r30.xz = min(float2(0,0), r19.xz); - r32.xy = max(float2(0,0), r19.xz); - r33.xy = float2(0.159999996,0.159999996) * r24.xy; - r32.xy = -r32.xy * r32.xy + r30.yw; - r32.xy = float2(1,1) + r32.xy; - r32.xy = float2(0.159999996,0.159999996) * r32.xy; - r31.xz = float2(0.0799999982,0.0799999982) * r31.xz; - r19.xz = r31.yw * float2(0.5,0.5) + -r19.xz; - r34.xy = float2(0.159999996,0.159999996) * r19.xz; - r19.xz = -r30.xz * r30.xz + r24.xy; - r19.xz = float2(1,1) + r19.xz; - r35.xy = float2(0.159999996,0.159999996) * r19.xz; - r19.xz = float2(0.159999996,0.159999996) * r30.yw; - r34.z = r35.x; - r34.w = r19.x; - r33.z = r32.x; - r33.w = r31.x; - r30.xyzw = r34.zwxz + r33.zwxz; - r35.z = r34.y; - r35.w = r19.z; - r32.z = r33.y; - r32.w = r31.z; - r24.xyw = r35.zyw + r32.zyw; - r31.xyz = r33.xzw / r30.zwy; - r31.xyz = float3(-2.5,-0.5,1.5) + r31.xyz; - r31.xyz = cb6[400].xxx * r31.xyz; - r32.xyz = r32.zyw / r24.xyw; - r32.xyz = float3(-2.5,-0.5,1.5) + r32.xyz; - r32.xyw = cb6[400].yyy * r32.xyz; - r33.xyzw = r30.zwyz * r24.xxxy; - r31.w = r32.x; - r34.xyzw = r20.ywyw * cb6[400].xyxy + r31.xwyw; - r19.x = t6.SampleCmpLevelZero(s3_s, r34.xy, r24.z).x; - r19.z = t6.SampleCmpLevelZero(s3_s, r34.zw, r24.z).x; - r19.z = r33.y * r19.z; - r19.x = r33.x * r19.x + r19.z; - r33.xy = r20.yw * cb6[400].xy + r31.zw; - r19.z = t6.SampleCmpLevelZero(s3_s, r33.xy, r24.z).x; - r19.x = r33.z * r19.z + r19.x; - r32.z = r31.x; - r34.xyzw = r20.ywyw * cb6[400].xyxy + r32.zyzw; - r19.z = t6.SampleCmpLevelZero(s3_s, r34.xy, r24.z).x; - r19.x = r33.w * r19.z + r19.x; - r33.xyzw = r30.xyzw * r24.yyww; - r32.xz = r31.yz; - r31.xyzw = r20.ywyw * cb6[400].xyxy + r32.xyzy; - r19.z = t6.SampleCmpLevelZero(s3_s, r31.xy, r24.z).x; - r19.x = r33.x * r19.z + r19.x; - r19.z = t6.SampleCmpLevelZero(s3_s, r31.zw, r24.z).x; - r19.x = r33.y * r19.z + r19.x; - r19.z = t6.SampleCmpLevelZero(s3_s, r34.zw, r24.z).x; - r19.x = r33.z * r19.z + r19.x; - r19.z = cmp((int)r18.z >= 0); - r28.xyz = (int3)r28.xyz | (int3)r29.xyz; - r21.w = (int)r28.y | (int)r28.x; - r21.w = (int)r28.z | (int)r21.w; - r23.z = (int)r24.z & 0x7fffffff; - r23.z = cmp(0x7f800000 < (uint)r23.z); - r21.w = (int)r21.w | (int)r23.z; - r28.xyzw = r20.ywyw * cb6[400].xyxy + r32.xwzw; - r20.y = t6.SampleCmpLevelZero(s3_s, r28.xy, r24.z).x; - r19.x = r33.w * r20.y + r19.x; - r20.y = r30.y * r24.w; - r20.w = t6.SampleCmpLevelZero(s3_s, r28.zw, r24.z).x; - r19.x = r20.y * r20.w + r19.x; - r19.x = -1 + r19.x; - r18.z = cb6[r18.z+288].w * r19.x + 1; - r18.z = r21.w ? 1 : r18.z; - r18.z = r19.z ? r18.z : 1; - } else { - r18.z = 1; - } - if (r22.w != 0) { - r19.x = dot(r12.xyz, r26.xyz); - r19.z = saturate(cb5[r13.w+6].z * r19.w); - r19.z = r19.z * 0.5 + r3.w; - r19.z = min(1, r19.z); - r19.z = r3.w / r19.z; - r24.xyz = r12.xyz * r19.xxx + -r26.xyz; - r20.y = dot(r27.xyz, r24.xyz); - r19.x = r19.x * r19.x; - r19.x = cb5[r13.w+6].z * cb5[r13.w+6].z + -r19.x; - r19.x = saturate(r20.y / r19.x); - r24.xyz = r26.xyz * r19.xxx + r27.xyz; - r19.x = dot(r24.xyz, r24.xyz); - r19.x = rsqrt(r19.x); - r25.xyz = r24.xyz * r19.xxx; - } else { - r19.z = 1; - } - if (r18.y != 0) { - r18.y = saturate(cb5[r14.w+6].y * r19.w); - r24.xyz = r1.yzw * r2.yyy + r25.xyz; - r19.x = dot(r24.xyz, r24.xyz); - r19.x = max(6.10351562e-05, r19.x); - r19.x = rsqrt(r19.x); - r24.xyz = r24.xyz * r19.xxx; - r19.x = saturate(dot(r5.xyz, r24.xyz)); - r19.w = saturate(dot(r4.xyz, r24.xyz)); - r20.y = cmp(0 < r18.y); - r18.y = r18.y * r18.y; - r20.w = r19.w * 3.5999999 + 0.400000006; - r18.y = r18.y / r20.w; - r18.y = r9.w * r9.w + r18.y; - r18.y = min(1, r18.y); - r18.y = r20.y ? r18.y : r3.w; - r18.y = r18.y * r18.y; - r20.y = r19.x * r18.y + -r19.x; - r19.x = r20.y * r19.x + 1; - r19.w = 1 + -r19.w; - r20.y = r19.w * r19.w; - r20.y = r20.y * r20.y; - r20.w = r20.y * r19.w; - r19.w = -r20.y * r19.w + 1; - r24.xyz = r6.xyz * r19.www + r20.www; - r19.x = r19.x * r19.x; - r19.x = r18.y / r19.x; - r19.x = r19.x * r19.z; - r19.z = -r9.x * r18.y + r9.x; - r19.z = r19.z * r9.x + r18.y; - r19.z = sqrt(r19.z); - r19.w = -r20.x * r18.y + r20.x; - r18.y = r19.w * r20.x + r18.y; - r18.y = sqrt(r18.y); - r18.y = r18.y * r9.x; - r18.y = r20.x * r19.z + r18.y; - r18.y = 9.99999975e-05 + r18.y; - r18.y = 0.5 / r18.y; - r18.y = r19.x * r18.y; - r19.xzw = r24.xyz * r18.yyy; - r19.xzw = min(float3(2048,2048,2048), r19.xzw); - r20.yw = r20.xz * float2(0.96875,0.96875) + float2(0.015625,0.015625); - r18.y = t10.SampleLevel(s0_s, r20.yw, 0).x; - r18.y = r18.y * r5.w; - r18.y = r18.y * r1.x; - r18.y = r18.y / r4.w; - r24.xyz = r18.yyy * r16.xyz; - r24.xyz = r24.xyz / r17.xyz; - r19.xzw = r24.xyz + r19.xzw; - r19.xzw = cb5[r14.w+6].zzz * r19.xzw; - r19.xzw = max(float3(0,0,0), r19.xzw); - r19.xzw = min(float3(1000,1000,1000), r19.xzw); - r24.xyz = r20.xxx * r7.xyw; - r19.xzw = r19.xzw * r20.xxx + r24.xyz; - r20.xyw = cb5[r17.w+6].xyz * r18.xxx; - r18.xyz = r20.xyw * r18.zzz; - r18.xyz = r18.xyz * r15.www; - r18.xyz = r19.xzw * r18.xyz; - } else { - r18.xyz = float3(0,0,0); - } - } else { - if (r16.w == 0) { - r15.w = cb5[r13.w+6].y * 0.5 + 0.5; - r24.x = -abs(cb5[r13.w+6].x) + r15.w; - r24.y = cb5[r13.w+6].y + -r24.x; - r15.w = 1 + -abs(r24.x); - r15.w = r15.w + -abs(r24.y); - r15.w = max(0.00048828125, r15.w); - r16.w = cmp(cb5[r13.w+6].x >= 0); - r24.z = r16.w ? r15.w : -r15.w; - r15.w = dot(r24.xyz, r24.xyz); - r15.w = rsqrt(r15.w); - r19.xzw = r24.xyz * r15.www; - r20.xyw = cb5[r23.x+6].xyz + -r0.xyz; - r15.w = dot(r20.xyw, r20.xyw); - r16.w = rsqrt(r15.w); - r24.xyz = r20.xyw * r16.www; - r14.w = (int)cb5[r14.w+6].w; - r25.xyz = cb5[r13.w+6].zzz * r19.xzw; - r26.xyz = -r25.xyz * float3(0.5,0.5,0.5) + r20.xyw; - r25.xyz = r25.xyz * float3(0.5,0.5,0.5) + r20.xyw; - r16.w = (uint)cb5[r17.w+6].w; - r16.w = (int)r16.w & 1; - r17.w = cmp((int)r16.w == 0); - r17.w = ~(int)r17.w; - r21.w = cmp(0 < cb5[r13.w+6].z); - r17.w = r17.w ? r21.w : 0; - r21.w = dot(r26.xyz, r26.xyz); - r21.w = sqrt(r21.w); - r22.w = dot(r25.xyz, r25.xyz); - r22.w = sqrt(r22.w); - r23.z = dot(r26.xyz, r25.xyz); - r21.w = r21.w * r22.w + r23.z; - r21.w = r21.w * 0.5 + 1; - r21.w = 1 / r21.w; - r21.w = r17.w ? r21.w : 1; - r22.w = cmp(cb5[r23.w+6].w < 0); - if (r22.w != 0) { - r22.w = cb5[r23.x+6].w * cb5[r23.x+6].w; - r22.w = r22.w * r15.w; - r22.w = -r22.w * r22.w + 1; - r22.w = max(0, r22.w); - r15.w = 1 + r15.w; - r15.w = 1 / r15.w; - r23.z = r17.w ? 1.000000 : 0; - r24.w = r21.w + -r15.w; - r15.w = r23.z * r24.w + r15.w; - r22.w = r22.w * r22.w; - r15.w = r22.w * r15.w; - } else { - r25.xyz = cb5[r23.x+6].www * r20.xyw; - r22.w = dot(r25.xyz, r25.xyz); - r22.w = min(1, r22.w); - r22.w = 1 + -r22.w; - r22.w = log2(r22.w); - r22.w = cb5[r23.w+6].w * r22.w; - r22.w = exp2(r22.w); - r15.w = r22.w * r21.w; - } - r19.x = dot(r24.xyz, -r19.xzw); - r19.x = -cb5[r13.w+6].z + r19.x; - r19.x = saturate(cb5[r13.w+6].w * r19.x); - r19.x = r19.x * r19.x; - r19.x = r16.w ? 1 : r19.x; - r15.w = r19.x * r15.w; - r17.w = ~(int)r17.w; - r19.x = cmp((int)r14.w >= 0); - r17.w = r17.w ? r19.x : 0; - if (r17.w != 0) { - if (r16.w == 0) { - r17.w = (uint)r14.w << 2; - r19.xzw = cb7[r17.w+33].xyw * r0.yyy; - r19.xzw = cb7[r17.w+32].xyw * r0.xxx + r19.xzw; - r19.xzw = cb7[r17.w+34].xyw * r0.zzz + r19.xzw; - r19.xzw = cb7[r17.w+35].xyw + r19.xzw; - r19.xz = saturate(r19.xz / r19.ww); - r19.xz = r19.xz * cb7[r14.w+0].zw + cb7[r14.w+0].xy; - } else { - r17.w = (uint)r14.w << 2; - r25.x = dot(-r20.xyw, cb7[r17.w+32].xyz); - r25.y = dot(-r20.xyw, cb7[r17.w+33].xyz); - r25.z = dot(-r20.xyw, cb7[r17.w+34].xyz); - r17.w = cmp(abs(r25.x) < abs(r25.y)); - r17.w = r17.w ? 0.000000 : 0; - r19.w = dot(abs(r25.xy), icb[r17.w+0].xy); - r19.w = cmp(r19.w < abs(r25.z)); - r17.w = r19.w ? 2 : r17.w; - r19.w = dot(r25.xyz, icb[r17.w+0].xyz); - r19.w = cmp(r19.w < 0); - bitmask.w = ((~(-1 << 31)) << 1) & 0xffffffff; r17.w = (((uint)r17.w << 1) & bitmask.w) | ((uint)r19.w & ~bitmask.w); - r19.w = (uint)r17.w >> 1; - r19.w = dot(r25.xyz, icb[r19.w+0].xyz); - r20.x = 0.000244140625 / cb7[r14.w+0].w; - r20.x = 0.5 + -r20.x; - r20.y = (uint)r17.w; - r20.w = cmp((uint)r17.w < 2); - r20.w = r20.w ? 0.000000 : 0; - r20.w = dot(r25.xz, icb[r20.w+0].xz); - r20.w = icb[r17.w+4].z * r20.w; - r20.w = r20.w / abs(r19.w); - r20.y = r20.w * r20.x + r20.y; - r20.y = 0.5 + r20.y; - r26.x = saturate(0.166666672 * r20.y); - r20.y = -1 + (int)icb[r17.w+4].y; - r20.y = dot(r25.yz, icb[r20.y+0].xy); - r17.w = icb[r17.w+4].w * r20.y; - r17.w = r17.w / abs(r19.w); - r26.y = saturate(-r17.w * r20.x + 0.5); - r19.xz = r26.xy * cb7[r14.w+0].zw + cb7[r14.w+0].xy; - } - r14.w = t18.SampleLevel(s0_s, r19.xz, 0).x; - r15.w = r15.w * r14.w; - } - r14.w = cmp(0 < r15.w); - if (r14.w != 0) { - if (r16.w == 0) { - r14.w = (int)cb5[r23.y+6].x; - } else { - r19.xzw = -cb5[r23.x+6].xyz + r0.xyz; - r20.xyw = cmp(abs(r19.zww) < abs(r19.xxz)); - r15.w = r20.y ? r20.x : 0; - r19.xzw = cmp(float3(0,0,0) < r19.xzw); - r16.w = asuint(cb5[r13.w+6].w) >> 24; - if (8 == 0) r20.x = 0; else if (8+16 < 32) { r20.x = (uint)cb5[r13.w+6].w << (32-(8 + 16)); r20.x = (uint)r20.x >> (32-8); } else r20.x = (uint)cb5[r13.w+6].w >> 16; - if (8 == 0) r20.y = 0; else if (8+8 < 32) { r20.y = (uint)cb5[r13.w+6].w << (32-(8 + 8)); r20.y = (uint)r20.y >> (32-8); } else r20.y = (uint)cb5[r13.w+6].w >> 8; - r16.w = r19.x ? r16.w : r20.x; - r13.w = 255 & asint(cb5[r13.w+6].w); - r13.w = r19.z ? r20.y : r13.w; - if (8 == 0) r17.w = 0; else if (8+8 < 32) { r17.w = (uint)cb5[r23.y+6].x << (32-(8 + 8)); r17.w = (uint)r17.w >> (32-8); } else r17.w = (uint)cb5[r23.y+6].x >> 8; - r19.x = 255 & asint(cb5[r23.y+6].x); - r17.w = r19.w ? r17.w : r19.x; - r13.w = r20.w ? r13.w : r17.w; - r13.w = r15.w ? r16.w : r13.w; - r15.w = cmp((int)r13.w < 80); - r14.w = r15.w ? r13.w : -1; - } - r19.xzw = r24.xyz * cb6[r14.w+288].xxx + r0.xyz; - r13.w = cb6[r14.w+288].y * 5; - r19.xzw = r5.xyz * r13.www + r19.xzw; - r13.w = (uint)r14.w << 2; - r23.xyzw = cb6[r13.w+65].xyzw * r19.zzzz; - r23.xyzw = cb6[r13.w+64].xyzw * r19.xxxx + r23.xyzw; - r23.xyzw = cb6[r13.w+66].xyzw * r19.wwww + r23.xyzw; - r23.xyzw = cb6[r13.w+67].xyzw + r23.xyzw; - r19.xzw = r23.xyz / r23.www; - r20.xyw = cmp(float3(0,0,0) >= r19.xzw); - r23.xyz = cmp(r19.xzw >= float3(1,1,1)); - r24.xy = cb6[r14.w+344].zw + -cb6[r14.w+344].xy; - r19.xz = r19.xz * r24.xy + cb6[r14.w+344].xy; - r24.xy = r19.xz * cb6[400].zw + float2(0.5,0.5); - r24.xy = floor(r24.xy); - r19.xz = r19.xz * cb6[400].zw + -r24.xy; - r25.xyzw = float4(0.5,1,0.5,1) + r19.xxzz; - r26.xyzw = r25.xxzz * r25.xxzz; - r24.zw = float2(1,1) + -r19.xz; - r25.xz = min(float2(0,0), r19.xz); - r27.xy = max(float2(0,0), r19.xz); - r28.xy = float2(0.159999996,0.159999996) * r24.zw; - r27.xy = -r27.xy * r27.xy + r25.yw; - r27.xy = float2(1,1) + r27.xy; - r27.xy = float2(0.159999996,0.159999996) * r27.xy; - r26.xz = float2(0.0799999982,0.0799999982) * r26.xz; - r19.xz = r26.yw * float2(0.5,0.5) + -r19.xz; - r29.xy = float2(0.159999996,0.159999996) * r19.xz; - r19.xz = -r25.xz * r25.xz + r24.zw; - r19.xz = float2(1,1) + r19.xz; - r30.xy = float2(0.159999996,0.159999996) * r19.xz; - r19.xz = float2(0.159999996,0.159999996) * r25.yw; - r29.z = r30.x; - r29.w = r19.x; - r28.z = r27.x; - r28.w = r26.x; - r25.xyzw = r29.zwxz + r28.zwxz; - r30.z = r29.y; - r30.w = r19.z; - r27.z = r28.y; - r27.w = r26.z; - r26.xyz = r30.zyw + r27.zyw; - r28.xyz = r28.xzw / r25.zwy; - r28.xyz = float3(-2.5,-0.5,1.5) + r28.xyz; - r28.xyz = cb6[400].xxx * r28.xyz; - r27.xyz = r27.zyw / r26.xyz; - r27.xyz = float3(-2.5,-0.5,1.5) + r27.xyz; - r27.xyw = cb6[400].yyy * r27.xyz; - r29.xyzw = r26.xxxy * r25.zwyz; - r28.w = r27.x; - r30.xyzw = r24.xyxy * cb6[400].xyxy + r28.xwyw; - r13.w = t6.SampleCmpLevelZero(s3_s, r30.xy, r19.w).x; - r15.w = t6.SampleCmpLevelZero(s3_s, r30.zw, r19.w).x; - r15.w = r29.y * r15.w; - r13.w = r29.x * r13.w + r15.w; - r19.xz = r24.xy * cb6[400].xy + r28.zw; - r15.w = t6.SampleCmpLevelZero(s3_s, r19.xz, r19.w).x; - r13.w = r29.z * r15.w + r13.w; - r27.z = r28.x; - r30.xyzw = r24.xyxy * cb6[400].xyxy + r27.zyzw; - r15.w = t6.SampleCmpLevelZero(s3_s, r30.xy, r19.w).x; - r13.w = r29.w * r15.w + r13.w; - r29.xyzw = r26.yyzz * r25.xyzw; - r27.xz = r28.yz; - r28.xyzw = r24.xyxy * cb6[400].xyxy + r27.xyzy; - r15.w = t6.SampleCmpLevelZero(s3_s, r28.xy, r19.w).x; - r13.w = r29.x * r15.w + r13.w; - r15.w = t6.SampleCmpLevelZero(s3_s, r28.zw, r19.w).x; - r13.w = r29.y * r15.w + r13.w; - r15.w = t6.SampleCmpLevelZero(s3_s, r30.zw, r19.w).x; - r13.w = r29.z * r15.w + r13.w; - r15.w = cmp((int)r14.w >= 0); - r20.xyw = (int3)r20.xyw | (int3)r23.xyz; - r16.w = (int)r20.y | (int)r20.x; - r16.w = (int)r20.w | (int)r16.w; - r17.w = (int)r19.w & 0x7fffffff; - r17.w = cmp(0x7f800000 < (uint)r17.w); - r16.w = (int)r16.w | (int)r17.w; - r23.xyzw = r24.xyxy * cb6[400].xyxy + r27.xwzw; - r17.w = t6.SampleCmpLevelZero(s3_s, r23.xy, r19.w).x; - r13.w = r29.w * r17.w + r13.w; - r17.w = r26.z * r25.y; - r19.x = t6.SampleCmpLevelZero(s3_s, r23.zw, r19.w).x; - r13.w = r17.w * r19.x + r13.w; - r13.w = -1 + r13.w; - r13.w = cb6[r14.w+288].w * r13.w + 1; - r13.w = r16.w ? 1 : r13.w; - r13.w = r15.w ? r13.w : 1; - } else { - r13.w = 1; - } - } else { - r13.w = 1; - } - r10.w = r13.w * r10.w; - r18.xyz = float3(0,0,0); - } - r22.xyz = r22.xyz + r18.xyz; - r12.w = r14.z; - } - r6.w = r10.w; - r21.xyz = r22.xyz + r21.xyz; - r7.z = (int)r7.z + 1; - } - r0.x = dot(r13.xyz, float3(0.212672904,0.715152204,0.0721750036)); - r1.xyz = r13.xyz + -r0.xxx; - r0.xzw = cb0[184].www * r1.xyz + r0.xxx; - - // Reduce clustered light contribution on glass - if (GLASS_TRANSPARENCY > 0.5f) { - r21.xyz *= 0.5f; - } - - r1.xyz = r21.xyz * r6.www + r15.xyz; - r0.xzw = r0.xzw * cb0[184].xyz + r1.xyz; - - // Apply glass brightness reduction - if (GLASS_TRANSPARENCY > 0.5f) { - r0.xzw *= 0.65f; - } - r1.x = r0.y * cb0[156].w + cb0[157].w; - r1.y = r2.x * cb0[154].w + -cb0[153].w; - r1.xy = max(float2(0.00999999978,0), r1.xy); - r1.z = -1.44269502 * r1.x; - r1.z = exp2(r1.z); - r1.z = 1 + -r1.z; - r1.x = r1.z / r1.x; - r1.z = r0.y * cb0[156].w + cb0[158].w; - r1.z = 1.44269502 * r1.z; - r1.z = exp2(r1.z); - r1.x = r1.x * r1.z; - r1.x = -r1.y * r1.x; - r1.xyz = cb0[155].xyz * r1.xxx; - r1.xyz = float3(1.44269502,1.44269502,1.44269502) * r1.xyz; - r1.xyz = exp2(r1.xyz); - r1.w = dot(-r4.xyz, cb0[154].xyz); - r2.y = cb0[155].w * cb0[155].w + 1; - r2.z = dot(r1.ww, cb0[155].ww); - r2.y = r2.y + -r2.z; - r2.z = cmp(0 < cb0[163].z); - if (r2.z != 0) { - r11.w = 7 & asint(cb0[108].w); - r5.xyz = mad((int3)r11.xyw, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f)); - r2.z = mad((int)r5.y, (int)r5.z, (int)r5.x); - r2.w = mad((int)r5.z, (int)r2.z, (int)r5.y); - r3.w = mad((int)r2.z, (int)r2.w, (int)r5.z); - r5.x = mad((int)r2.w, (int)r3.w, (int)r2.z); - r2.z = dot(-r4.xyz, -r3.xyz); - r3.x = -cb0[44].y + r0.y; - r3.y = cmp(5.96046448e-08 < r2.z); - r2.z = 1 / r2.z; - r2.z = r3.y ? r2.z : 0; - r2.z = cb0[163].w * r2.z; - r3.y = 1 / r2.x; - r3.z = r3.y * r2.z; - r4.x = r3.z * r3.x + cb0[44].y; - r3.x = -r3.z * r3.x + r3.x; - r3.z = cb0[159].z * r3.x; - r3.x = cb0[162].x * r3.x; - r3.xz = max(float2(-127,-127), r3.xz); - r4.y = -cb0[159].x + r4.x; - r4.y = cb0[159].z * r4.y; - r4.y = max(-127, r4.y); - r4.y = exp2(-r4.y); - r4.y = cb0[159].y * r4.y; - r4.z = cmp(5.96046448e-08 < abs(r3.z)); - r4.w = exp2(-r3.z); - r4.w = 1 + -r4.w; - r4.w = r4.w / r3.z; - r3.z = -r3.z * 0.240226507 + 0.693147182; - r3.z = r4.z ? r4.w : r3.z; - r4.x = -cb0[162].z + r4.x; - r4.x = cb0[162].x * r4.x; - r4.x = max(-127, r4.x); - r4.x = exp2(-r4.x); - r4.x = cb0[162].y * r4.x; - r4.z = cmp(5.96046448e-08 < abs(r3.x)); - r4.w = exp2(-r3.x); - r4.w = 1 + -r4.w; - r4.w = r4.w / r3.x; - r3.x = -r3.x * 0.240226507 + 0.693147182; - r3.x = r4.z ? r4.w : r3.x; - r3.x = r4.x * r3.x; - r3.x = r4.y * r3.z + r3.x; - r2.z = -r2.z * r3.y + 1; - r2.z = r2.z * r2.x; - r2.z = r3.x * r2.z; - r2.z = exp2(-r2.z); - r2.z = min(1, r2.z); - r2.z = max(cb0[161].w, r2.z); - r3.xy = saturate(r2.xx * cb0[160].yw + cb0[160].xz); - r2.z = r3.x + r2.z; - r2.z = r2.z + r3.y; - r2.z = min(1, r2.z); - r5.y = mad((int)r3.w, (int)r5.x, (int)r2.w); - r3.xy = (uint2)r5.xy >> int2(16,16); - r3.xy = (uint2)r3.xy; - r3.xy = r3.xy * float2(3.05180438e-05,3.05180438e-05) + float2(-1,-1); - r3.xy = r3.xy * cb0[167].ww + r14.xy; - r3.xy = cb0[165].xy * r3.xy; - r2.w = r11.z * cb0[164].x + cb0[164].y; - r2.w = log2(r2.w); - r2.w = cb0[164].z * r2.w; - r3.z = r2.w / cb0[163].z; - r3.xyzw = t17.SampleLevel(s0_s, r3.xyz, 0).xyzw; - r2.w = -cb0[166].z + r11.z; - r2.w = saturate(1000000 * r2.w); - r3.xyzw = float4(-0,-0,-0,-1) + r3.xyzw; - r3.xyzw = r2.wwww * r3.xyzw + float4(0,0,0,1); - r2.w = 1 + -r2.z; - r4.xyz = cb0[161].xyz * r2.www; - r3.xyz = r4.xyz * r3.www + r3.xyz; - r2.z = r3.w * r2.z; - } else { - r0.y = -cb0[44].y + r0.y; - r2.w = cb0[159].z * r0.y; - r2.w = max(-127, r2.w); - r0.y = cb0[162].x * r0.y; - r0.y = max(-127, r0.y); - r3.w = -cb0[159].x + cb0[44].y; - r3.w = cb0[159].z * r3.w; - r3.w = max(-127, r3.w); - r3.w = exp2(-r3.w); - r3.w = cb0[159].y * r3.w; - r4.x = cmp(5.96046448e-08 < abs(r2.w)); - r4.y = exp2(-r2.w); - r4.y = 1 + -r4.y; - r4.y = r4.y / r2.w; - r2.w = -r2.w * 0.240226507 + 0.693147182; - r2.w = r4.x ? r4.y : r2.w; - r4.x = -cb0[162].z + cb0[44].y; - r4.x = cb0[162].x * r4.x; - r4.x = max(-127, r4.x); - r4.x = exp2(-r4.x); - r4.x = cb0[162].y * r4.x; - r4.y = cmp(5.96046448e-08 < abs(r0.y)); - r4.z = exp2(-r0.y); - r4.z = 1 + -r4.z; - r4.z = r4.z / r0.y; - r0.y = -r0.y * 0.240226507 + 0.693147182; - r0.y = r4.y ? r4.z : r0.y; - r0.y = r4.x * r0.y; - r0.y = r3.w * r2.w + r0.y; - r0.y = r0.y * r2.x; - r0.y = exp2(-r0.y); - r0.y = min(1, r0.y); - r0.y = max(cb0[161].w, r0.y); - r2.xw = saturate(r2.xx * cb0[160].yw + cb0[160].xz); - r0.y = r2.x + r0.y; - r0.y = r0.y + r2.w; - r2.z = min(1, r0.y); - r0.y = 1 + -r2.z; - r3.xyz = cb0[161].xyz * r0.yyy; - } - r4.xyz = r2.zzz * r1.xyz; - r0.y = r1.w * r1.w + 1; - r0.y = 0.0596831031 * r0.y; - r5.xyz = cb0[156].xyz * r0.yyy + cb0[158].xyz; - r0.y = -cb0[155].w * cb0[155].w + 1; - r1.w = 12.566371 * r2.y; - r2.x = sqrt(r2.y); - r1.w = r2.x * r1.w; - r1.w = max(0.00100000005, r1.w); - r0.y = r0.y / r1.w; - r2.xyw = saturate(cb0[157].xyz * r0.yyy + r5.xyz); - r2.xyw = float3(255,255,255) * r2.xyw; - r1.xyz = float3(1,1,1) + -r1.xyz; - r1.xyz = r2.xyw * r1.xyz; - r1.xyz = r1.xyz * r2.zzz + r3.xyz; - - // Reduce fog/atmospheric contribution - if (GLASS_TRANSPARENCY > 0.5f) { - // Boost transmittance to reduce fog density on glass - float3 boostedTrans = lerp(r4.xyz, float3(1,1,1), 0.5f); - float3 reducedInscatter = r1.xyz * 0.35f; - r8.xyz = r0.xzw * boostedTrans + reducedInscatter; - } else { - // Vanilla behavior - r8.xyz = r0.xzw * r4.xyz + r1.xyz; - } - r0.xy = float2(0.5,-0.5) * r10.xy; - r0.xy = sqrt(abs(r0.xy)); - r0.xy = sqrt(r0.xy); - r10.z = -r10.y; - r0.zw = cmp(float2(0,0) < r10.xz); - r1.xy = cmp(r10.xz < float2(0,0)); - r0.zw = (int2)-r0.zw + (int2)r1.xy; - r0.zw = (int2)r0.zw; - r0.xy = r0.xy * r0.zw; - r0.xy = r0.xy * float2(0.5,0.5) + float2(0.5,0.5); - r0.z = (uint)v7.x << 4; - r0.z = max(cb1[r0.z+4].y, cb1[r0.z+4].z); - r0.z = -0.100000024 + r0.z; - r0.w = cmp(0 < r0.z); - r0.z = cmp(r0.z < 0); - r0.z = (int)-r0.w + (int)r0.z; - r0.z = (int)r0.z; - r0.z = saturate(r0.z); - r1.xy = float2(0.5,0.5) + -r0.xy; - r0.xy = r0.zz * r1.xy + r0.xy; - o1.xy = min(float2(1,1), r0.xy); - r0.x = dot(r8.xyz, float3(0.212672904,0.715152204,0.0721750036)); - r0.x = r0.x * r8.w; - r0.x = max(r0.x, r8.w); - r0.x = saturate(10 * r0.x); - r0.x = cmp(0.5 < r0.x); - o1.z = r0.x ? 1.000000 : 0; - - // Modifed Glass Final Output - if (GLASS_TRANSPARENCY > 0.5f) { - float3 glassColor = r8.xyz; - float glassLuma = dot(glassColor, float3(0.2126f, 0.7152f, 0.0722f)); - float maxBrightness = 2.0f; - if (glassLuma > 0.5f) { - float compression = 0.5f + (maxBrightness - 0.5f) * (1.0f - exp(-(glassLuma - 0.5f) / (maxBrightness - 0.5f))); - float scale = compression / max(glassLuma, 0.001f); - glassColor *= scale; - } - - o0.xyz = glassColor; - o0.w = r8.w; - } else { - // Vanilla output - o0.xyzw = r8.xyzw; - } - o1.w = 0; - return; -} \ No newline at end of file From 09f0d0ec720c11cad688e3105ee41e5caf2731aa Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Wed, 4 Feb 2026 10:08:10 +0000 Subject: [PATCH 14/19] fix(endfield) Using .asm to stop glass shader freezing --- .../endfield/deferred-lighting/0x0E84DFD1.cso | Bin 60116 -> 60152 bytes .../deferred-lighting/0x0E84DFD1.ps_5_0.asm | 3 +- .../endfield/deferred-lighting/0x1E8A471E.cso | Bin 47144 -> 47180 bytes .../deferred-lighting/0x1E8A471E.ps_5_0.asm | 3 +- .../endfield/deferred-lighting/0x7010AF4B.cso | Bin 27264 -> 27300 bytes .../deferred-lighting/0x7010AF4B.ps_5_0.asm | 3 +- .../endfield/deferred-lighting/0x8BA3C806.cso | Bin 48152 -> 48188 bytes .../deferred-lighting/0x8BA3C806.ps_5_0.asm | 3 +- .../endfield/deferred-lighting/0x99725481.cso | Bin 60636 -> 60672 bytes .../deferred-lighting/0x99725481.ps_5_0.asm | 3 +- .../endfield/deferred-lighting/0xA4113DE8.cso | Bin 39216 -> 39252 bytes .../deferred-lighting/0xA4113DE8.ps_5_0.asm | 3 +- .../endfield/deferred-lighting/0xD88CD7C9.cso | Bin 26256 -> 26292 bytes .../deferred-lighting/0xD88CD7C9.ps_5_0.asm | 3 +- src/games/endfield/glass/0x754218B1.cso | Bin 0 -> 55856 bytes .../endfield/glass/0x754218B1.ps_5_0.asm | 1822 +++++++++++++++++ .../0x754218B1.ps_5_0_original_backup.asm | 1772 ++++++++++++++++ src/games/endfield/glass/0xB317E9E1.cso | Bin 0 -> 53640 bytes .../endfield/glass/0xB317E9E1.ps_5_0.asm | 1757 ++++++++++++++++ .../0xB317E9E1.ps_5_0_original_backup.asm | 1707 +++++++++++++++ src/games/endfield/glass/0xB8941FB1.cso | Bin 0 -> 55376 bytes .../endfield/glass/0xB8941FB1.ps_5_0.asm | 1804 ++++++++++++++++ 22 files changed, 8876 insertions(+), 7 deletions(-) create mode 100644 src/games/endfield/glass/0x754218B1.cso create mode 100644 src/games/endfield/glass/0x754218B1.ps_5_0.asm create mode 100644 src/games/endfield/glass/0x754218B1.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/glass/0xB317E9E1.cso create mode 100644 src/games/endfield/glass/0xB317E9E1.ps_5_0.asm create mode 100644 src/games/endfield/glass/0xB317E9E1.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/glass/0xB8941FB1.cso create mode 100644 src/games/endfield/glass/0xB8941FB1.ps_5_0.asm diff --git a/src/games/endfield/deferred-lighting/0x0E84DFD1.cso b/src/games/endfield/deferred-lighting/0x0E84DFD1.cso index bfdbc5a283965666e403caaf74dd2f10037c18b2..61de4fdc049ac6fb66d233de0dfb189326b57f48 100644 GIT binary patch delta 75 zcmV-R0JQ(q)dTp|0~thELPJ7*Y6xVL$>s_Uv0=c{AWH!N008)r8KVg}>Hq*x0001v hvBhK4ldKvDlN8ht44Ro)KLJ1h0GgQ@KC>v)tQJRi8?OKW delta 58 zcmexymHEn5W=WR_CugBQI)avGEVA^&Rg=G!Gp%K0U|_g1QF1Y-$SVeh03fGz1Tp{s36tQU6bzb~Sw8_l005eq89uZ4pfDF3u^NH^ delta 58 zcmX@}foa7DCP|kFC+CGT{Fbfj%lrEH_w{1ud^rzB1_lO=iIR&sGqy7@1OPd=HXb!z OFj;2-&t{E6_jRlU|^UvGtwSHOWJKN@E4E<00#CLGynhq delta 58 zcmZ2-m9gO}qohlOlk=2qv!o@Ktf`mW^sc__(yCZS1_p+PiIR&s4`ebh1OPb&8;`E` Oo9rXSv3ZU^hcp1Bl@)0K diff --git a/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm index 271165ae6..e4af6e952 100644 --- a/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm @@ -685,7 +685,8 @@ mul r3.xyz, r3.xyzx, cb0[111].yyyy if_nz cb13[13].w max r23.w, r23.w, l(0.000000) // saturate step 1 min r23.w, r23.w, l(1.000000) // saturate step 2 - mul r3.xyz, r3.xyzx, r23.wwww // cubemap *= saturate(ambient_luminance) + mad r23.w, r23.w, l(0.850000), l(0.150000) // lerp(0.15, 1.0, ambient) = 0.15 + 0.85*ambient + mul r3.xyz, r3.xyzx, r23.wwww // cubemap *= lerp(0.15, 1.0, saturate(ambient_luminance)) endif if_nz r4.w sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x diff --git a/src/games/endfield/deferred-lighting/0x8BA3C806.cso b/src/games/endfield/deferred-lighting/0x8BA3C806.cso index aefa41c8ec872a3befec2ae20ec97e2dc807bd38..8937805dce827db73ea9c2089d88fce439a0303b 100644 GIT binary patch delta 76 zcmV-S0JHy?_yWB60vSYDLPOayKH%bdCujvaBkio8I)woM002CZ8KVh&y8r-C0002r ivBg861Tp{s36t=k6bzb~Sw8_l005eq89uWJp%5E7X&K=F delta 58 zcmdn$`lCz)NB{@ diff --git a/src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm index 2f9d11fd8..ba5ea86f2 100644 --- a/src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm @@ -1775,7 +1775,8 @@ mul r2.xyz, r2.xyzx, cb0[111].yyyy if_nz cb13[13].w max r38.w, r38.w, l(0.000000) // saturate step 1 min r38.w, r38.w, l(1.000000) // saturate step 2 - mul r2.xyz, r2.xyzx, r38.wwww // cubemap *= saturate(ambient_luminance) + mad r38.w, r38.w, l(0.850000), l(0.150000) // lerp(0.15, 1.0, ambient) = 0.15 + 0.85*ambient + mul r2.xyz, r2.xyzx, r38.wwww // cubemap *= lerp(0.15, 1.0, saturate(ambient_luminance)) endif if_nz r3.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x diff --git a/src/games/endfield/deferred-lighting/0xA4113DE8.cso b/src/games/endfield/deferred-lighting/0xA4113DE8.cso index 2b0eecb7a981786fb39d0dc14dcbab9aea942de2..3e4ace405e405a722ab9559d2db45ea99138f7a8 100644 GIT binary patch delta 75 zcmV-R0JQ(GvI5ky0vSYDLPHEnzQ%}u&*;Bi`iGU2iy8p{002~x8KVi5m;eA!0000b hvBl4SlN>e(lVpGp44Ro)KLJ1h0GgQ@KC_g7oET#w8_WOz delta 58 zcmV-A0LA~*vI4NO0vSYDLPHk&>X(4#t-tp@KcwF#6X*c|001zN8KVhsm;eA!0000S QvBl4SlgNJzv&4Xq7}!e}<^TWy diff --git a/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm index 461d62fd0..d6f64bd61 100644 --- a/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm @@ -1095,7 +1095,8 @@ mul r2.xyz, r2.xyzx, cb0[111].yyyy if_nz cb13[13].w max r23.w, r23.w, l(0.000000) // saturate step 1 min r23.w, r23.w, l(1.000000) // saturate step 2 - mul r2.xyz, r2.xyzx, r23.wwww // cubemap *= saturate(ambient_luminance) + mad r23.w, r23.w, l(0.850000), l(0.150000) // lerp(0.15, 1.0, ambient) = 0.15 + 0.85*ambient + mul r2.xyz, r2.xyzx, r23.wwww // cubemap *= lerp(0.15, 1.0, saturate(ambient_luminance)) endif if_nz r3.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.cso b/src/games/endfield/deferred-lighting/0xD88CD7C9.cso index b519a48d687c47be52c68c7ae3ec5ede4839d69f..2b05e4aae3f044b291692604a5cc3566c9ad5384 100644 GIT binary patch delta 91 zcmbPmmT}8jMoE_lCuh^Gxih^g=BV9W9F!@?vYdsHfq`MmM9IaRUs4$u0)U*_jYntu ksTeUZa5garFo*#~te`Zb0|UdXnUVGoTGDQFg1><{0Q|-n4gdfE delta 58 zcmdmTmT|&aMoE_lC+G6q^^devT9|vkls~QfASBGlz`!tJqU2)E3#kkY0YFa4#-p?S OCfi7HZ0_;b5C;H}$rQ~1 diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm index 524de663d..585ec2e46 100644 --- a/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm @@ -684,7 +684,8 @@ mul r3.xyz, r3.xyzx, cb0[111].yyyy if_nz cb13[13].w max r22.w, r22.w, l(0.000000) // saturate step 1 min r22.w, r22.w, l(1.000000) // saturate step 2 - mul r3.xyz, r3.xyzx, r22.wwww // cubemap *= saturate(ambient_luminance) + mad r22.w, r22.w, l(0.850000), l(0.150000) // lerp(0.15, 1.0, ambient) = 0.15 + 0.85*ambient + mul r3.xyz, r3.xyzx, r22.wwww // cubemap *= lerp(0.15, 1.0, saturate(ambient_luminance)) endif if_nz r4.w sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x diff --git a/src/games/endfield/glass/0x754218B1.cso b/src/games/endfield/glass/0x754218B1.cso new file mode 100644 index 0000000000000000000000000000000000000000..896c938f0fd65005bd2219d03c245f0be97897e1 GIT binary patch literal 55856 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 X*QTYubk770usy-3wPHhaR;T|L>+_c8 literal 0 HcmV?d00001 diff --git a/src/games/endfield/glass/0x754218B1.ps_5_0.asm b/src/games/endfield/glass/0x754218B1.ps_5_0.asm new file mode 100644 index 000000000..2eae33e10 --- /dev/null +++ b/src/games/endfield/glass/0x754218B1.ps_5_0.asm @@ -0,0 +1,1822 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Wed Feb 4 07:24:28 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4085], dynamicIndexed +dcl_constantbuffer CB2[24], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_constantbuffer CB13[15], 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_comparison +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_structured t0, 4 +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_texture2darray (float,float,float,float) t4 +dcl_resource_texture2d (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 37 +mul r0.xy, v0.xyxx, cb0[82].zwzz +mad r0.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r1.xyzw, -r0.wwww, cb0[25].xyzw +mad r1.xyzw, cb0[24].xyzw, r0.zzzz, r1.xyzw +mad r1.xyzw, cb0[26].xyzw, v0.zzzz, r1.xyzw +add r1.xyzw, r1.xyzw, cb0[27].xyzw +div r1.xyz, r1.xyzx, r1.wwww +mul r0.z, r1.y, cb0[1].z +mad r0.z, cb0[0].z, r1.x, r0.z +mad r0.z, cb0[2].z, r1.z, r0.z +add r0.z, r0.z, cb0[3].z +mov r2.z, |r0.z| +lt r0.z, l(0.000000), v3.w +movc r0.z, r0.z, l(1.000000), l(-1.000000) +eq r0.w, l(0.000000), cb0[86].w +add r3.xyz, -r1.xyzx, cb0[44].xyzx +mov r4.x, cb0[0].z +mov r4.y, cb0[1].z +mov r4.z, cb0[2].z +movc r3.xyz, r0.wwww, r3.xyzx, r4.xyzx +dp3 r0.w, r3.xyzx, r3.xyzx +max r2.w, r0.w, l(9.999999939E-09) +rsq r2.w, r2.w +mul r5.xyz, r2.wwww, r3.xyzx +mul r0.w, r0.w, r2.w +add r6.xy, -v1.xyxx, v1.zwzz +mad r6.zw, cb2[3].xxxx, r6.xxxy, v1.xxxy +mad r6.zw, r6.zzzw, cb2[12].xxxy, cb2[12].zzzw +mad r6.xy, cb2[2].wwww, r6.xyxx, v1.xyxx +mad r6.xy, r6.xyxx, cb2[11].xyxx, cb2[11].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r7.xyzw, r6.xyxx, t5.xyzw, s5, cb0[108].x +add r3.w, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r6.zwzz, t6.xywz, s6, r3.w +mul r8.x, r8.x, r8.z +mad r6.xy, r8.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r8.xy, r6.xyxx, cb2[0].xxxx +sample_b_indexable(texture2d)(float,float,float,float) r9.xyz, r6.zwzz, t7.xyzw, s7, cb0[108].x +mul r7.xyzw, r7.xyzw, cb2[8].xyzw +mul_sat r7.xyz, r7.xyzx, cb2[4].zzzz +add r10.xyz, -r7.xyzx, cb2[8].xyzx +mad r7.xyz, cb2[4].xxxx, r10.xyzx, r7.xyzx +mad r3.w, r7.w, v4.x, -r7.w +mad r10.w, cb2[23].x, r3.w, r7.w +add r3.w, -cb2[0].z, cb2[0].w +mad r11.w, r9.y, r3.w, cb2[0].z +add_sat r3.w, l(-1.000000), cb2[3].w +add r4.w, -r9.x, cb2[4].y +mad r3.w, r3.w, r4.w, r9.x +mul r9.xyw, v2.zxzy, v3.yzyx +mad r9.xyw, v2.yzyx, v3.zxzy, -r9.xyxw +mul r9.xyw, r0.zzzz, r9.xyxw +mul r8.yzw, r8.yyyy, r9.xxyw +mad r8.xyz, v3.xyzx, r8.xxxx, r8.yzwy +dp2 r0.z, r6.xyxx, r6.xyxx +min r0.z, r0.z, l(1.000000) +add r0.z, -r0.z, l(1.000000) +sqrt r0.z, r0.z +max r0.z, r0.z, l(1.000000017E-16) +lt r4.w, l(0.000000), cb2[1].w +movc r4.w, r4.w, l(-1.000000), l(1.000000) +movc r4.w, v8.x, l(1.000000), r4.w +mul r0.z, r0.z, r4.w +mad r6.xyz, v2.xyzx, r0.zzzz, r8.xyzx +dp3 r0.z, r6.xyzx, r6.xyzx +rsq r0.z, r0.z +mul r6.xyz, r0.zzzz, r6.xyzx +dp3 r0.z, r6.xyzx, r5.xyzx +dp3 r4.w, -r5.xyzx, r6.xyzx +mul r5.w, cb2[19].z, cb2[19].z +mad r7.w, -r4.w, r4.w, l(1.000000) +mad r5.w, -r5.w, r7.w, l(1.000000) +sqrt r7.w, r5.w +mad r7.w, cb2[19].z, r4.w, r7.w +ge r5.w, r5.w, l(0.000000) +mul r8.xyz, r6.xyzx, r7.wwww +mad r8.xyz, cb2[19].zzzz, -r5.xyzx, -r8.xyzx +and r8.xyz, r5.wwww, r8.xyzx +mul r5.w, r0.z, v0.z +max r5.w, r5.w, l(0.500000) +div r5.w, cb2[19].w, r5.w +add r5.w, r5.w, -cb2[19].w +mad r5.w, cb2[20].x, r5.w, cb2[19].w +mul r8.xyz, r5.wwww, r8.xyzx +mul r8.yw, r8.yyyy, cb0[1].xxxy +mad r8.xy, cb0[0].xyxx, r8.xxxx, r8.ywyy +mad r8.xy, cb0[2].xyxx, r8.zzzz, r8.xyxx +mad r8.zw, v1.xxxy, cb2[22].xxxy, cb2[22].zzzw +sample_b_indexable(texture2d)(float,float,float,float) r8.zw, r8.zwzz, t9.zwxy, s8, cb0[108].x +mad r8.zw, r8.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mad r8.zw, r8.zzzw, cb2[19].yyyy, -r8.xxxy +mad r8.xy, cb2[19].xxxx, r8.zwzz, r8.xyxx +mad r8.zw, v0.xxxy, cb0[82].zzzw, r8.xxxy +mul r8.xy, r8.xyxx, l(0.250000, 0.250000, 0.000000, 0.000000) +mad r9.xy, v0.xyxx, cb0[82].zwzz, r8.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r5.w, r8.zwzz, t1.yzwx, s0, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r7.w, r9.xyxx, t1.yzwx, s0, cb0[108].x +mad r7.w, cb0[84].z, r7.w, cb0[84].w +div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w +ge r7.w, r7.w, r2.z +and r7.w, r7.w, l(0x3f800000) +mad r8.xy, r7.wwww, r8.xyxx, r0.xyxx +mad r5.w, cb0[84].z, r5.w, cb0[84].w +div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +ge r5.w, r5.w, r2.z +and r5.w, r5.w, l(0x3f800000) +add r8.zw, -r8.xxxy, r8.zzzw +mad r8.xy, r5.wwww, r8.zwzz, r8.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r8.xyxx, t8.xyzw, s9, cb0[108].x +max r5.w, v5.z, l(9.999999939E-09) +div r9.xy, v5.xyxx, r5.wwww +max r5.w, v6.z, l(9.999999939E-09) +div r12.xy, v6.xyxx, r5.wwww +add r12.xy, r9.xyxx, -r12.xyxx +mul r5.w, l(0.080000), cb2[0].y +mad r9.xyw, -r7.xyxz, r3.wwww, r7.xyxz +mad r5.w, -r5.w, r3.w, r5.w +mad r7.xyz, r7.xyzx, r3.wwww, r5.wwww +mad r13.xyzw, r11.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r3.w, r13.x, r13.x +max r0.z, r0.z, l(0.000000) +mul r5.w, r0.z, l(-9.280000) +exp r5.w, r5.w +min r3.w, r3.w, r5.w +mad r3.w, r3.w, r13.x, r13.y +mad r13.xy, r3.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +eq r3.w, l(1.000000), cb0[113].y +mul r14.xyzw, r1.yyyy, cb0[241].xyzw +mad r14.xyzw, cb0[240].xyzw, r1.xxxx, r14.xyzw +mad r14.xyzw, cb0[242].xyzw, r1.zzzz, r14.xyzw +add r14.xyzw, r14.xyzw, cb0[243].xyzw +div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r14.w +mul r14.xyz, r14.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r14.xyz, r5.wwww, r14.xyzx +mad_sat r13.zw, r14.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) +mul r13.zw, r13.zzzw, cb0[82].xxxy +ftou r15.xy, r13.zwzz +mad r5.w, cb0[84].z, r14.z, cb0[84].w +div r15.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +ftou r2.xy, v0.xyxx +movc r14.xyz, r3.wwww, r15.xyzx, r2.xyzx +mad r2.xyz, r6.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r1.xyzx +mad r15.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r15.xyz, r2.xzyx, -r15.xyzx +max r3.w, |r15.y|, |r15.x| +add r3.w, r3.w, l(-464.000000) +mul_sat r3.w, r3.w, l(0.031250) +add r5.w, |r15.z|, l(-208.000000) +mul_sat r5.w, r5.w, l(0.031250) +max r3.w, r3.w, r5.w +ne r5.w, l(0.000000), cb0[210].w +lt r7.w, r3.w, l(1.000000) +and r5.w, r5.w, r7.w +if_nz r5.w + mad r15.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r15.xyz, r2.xzyx, -r15.xyzx + max r5.w, |r15.y|, |r15.x| + add r5.w, r5.w, l(-29.000000) + mul_sat r5.w, r5.w, l(0.500000) + add r7.w, |r15.z|, l(-13.000000) + mul_sat r7.w, r7.w, l(0.500000) + max r5.w, r5.w, r7.w + lt r7.w, r5.w, l(1.000000) + if_nz r7.w + mad r15.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r15.xyzx, cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r15.xyzx, t16.xyzw, s2, l(0.000000) + add r7.w, -r5.w, l(1.000000) + mul r8.w, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r8.w, r8.w, r15.y + min r8.w, r12.w, r8.w + mul r15.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t17.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r16.xxxx, r17.xyzx + add r17.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t17.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r16.yyyy, r17.xyzx + add r15.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t17.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r16.zzzz, r15.xyzx + mad r8.w, r17.w, r7.w, r3.w + mov r15.w, r16.z + mul r15.xyzw, r7.wwww, r15.xyzw + mov r19.w, r16.y + mul r17.xyzw, r7.wwww, r19.xyzw + mov r18.w, r16.x + mul r16.xyzw, r7.wwww, r18.xyzw + else + mov r15.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r8.w, r3.w + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r2.xzyx, -r18.xyzx + max r7.w, |r18.y|, |r18.x| + add r7.w, r7.w, l(-116.000000) + mul_sat r7.w, r7.w, l(0.125000) + add r12.w, |r18.z|, l(-52.000000) + mul_sat r12.w, r12.w, l(0.125000) + max r7.w, r7.w, r12.w + lt r12.w, r7.w, l(1.000000) + if_nz r12.w + mad r18.xyz, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r18.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r18.xyzx, t18.xyzw, s2, l(0.000000) + add r12.w, -r7.w, l(1.000000) + mul r5.w, r5.w, r12.w + mul r12.w, l(0.500000), cb0[211].y + mad r13.z, -cb0[211].y, l(0.500000), l(1.000000) + max r12.w, r12.w, r18.y + min r12.w, r13.z, r12.w + mul r18.w, r12.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t19.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.xxxx, r20.xyzx + add r20.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t19.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r19.yyyy, r20.xyzx + add r18.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t19.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.zzzz, r18.xyzx + mad r8.w, r20.w, r5.w, r8.w + mov r18.w, r19.z + mad r15.xyzw, r18.xyzw, r5.wwww, r15.xyzw + mov r22.w, r19.y + mad r17.xyzw, r22.xyzw, r5.wwww, r17.xyzw + mov r21.w, r19.x + mad r16.xyzw, r21.xyzw, r5.wwww, r16.xyzw + endif + lt r5.w, l(0.000000), r7.w + if_nz r5.w + mad r2.xyz, r2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r2.xyzx, cb0[211].xyzx + mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r2.xyz, r2.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r2.xyz, r19.xyzx, r2.xyzx + min r20.xyz, r18.xyzx, r2.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r20.xyzx, t20.yzwx, s2, l(0.000000) + add r2.x, -r3.w, l(1.000000) + mul r2.x, r2.x, r7.w + max r2.y, r19.y, r20.y + min r2.y, r18.y, r2.y + mul r20.w, r2.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r20.xwzx, t21.xyzw, s1, l(0.000000) + add r19.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t21.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.yyyy, r19.xyzx + mov r19.w, r21.y + mad r15.xyzw, r19.xyzw, r2.xxxx, r15.xyzw + add r19.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t21.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.xxxx, r19.xyzx + mov r19.w, r21.x + mad r17.xyzw, r19.xyzw, r2.xxxx, r17.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r18.xyzx + mad r16.xyzw, r21.xyzw, r2.xxxx, r16.xyzw + mad r8.w, r18.w, r2.x, r8.w + endif + mad_sat r2.x, r8.w, l(2.000000), l(-1.000000) + add r18.x, -r3.w, r2.x + add r2.x, r3.w, r2.x + mul r18.y, r2.x, l(0.500000) +else + mov r15.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r18.xy, l(0,1.000000,0,0) +endif +mul r19.xyzw, r18.yyyx, cb0[213].xyzw +mad r19.y, r19.w, l(0.500000), r19.y +mul r2.xy, r18.yxyy, cb0[213].wyww +mad r19.w, r2.y, l(0.375000), r2.x +add r16.xyzw, r16.xyzw, r19.xyzw +mul r19.xyzw, r18.yyyx, cb0[214].xyzw +mad r19.y, r19.w, l(0.500000), r19.y +mul r2.xy, r18.yxyy, cb0[214].wyww +mad r19.w, r2.y, l(0.375000), r2.x +add r17.xyzw, r17.xyzw, r19.xyzw +mul r19.xyzw, r18.yyyx, cb0[215].xyzw +mad r19.y, r19.w, l(0.500000), r19.y +mul r2.xy, r18.yxyy, cb0[215].wyww +mad r19.w, r2.y, l(0.375000), r2.x +add r15.xyzw, r15.xyzw, r19.xyzw +dp3 r2.x, r16.xyzx, r6.xyzx +add r2.x, r16.w, r2.x +max r2.x, r2.x, l(0.000000) +dp3 r3.w, r17.xyzx, r6.xyzx +add r3.w, r17.w, r3.w +max r2.y, r3.w, l(0.000000) +dp3 r3.w, r15.xyzx, r6.xyzx +add r3.w, r15.w, r3.w +max r2.z, r3.w, l(0.000000) +add r3.w, r4.w, r4.w +mad r15.xyz, r6.xyzx, -r3.wwww, -r5.xyzx +add r3.w, l(-1.000000), cb0[113].x +max r4.w, r11.w, l(0.001000) +log r4.w, r4.w +mad r4.w, -r4.w, l(1.200000), l(1.000000) +add r3.w, r3.w, -r4.w +utof r13.zw, r14.xxxy +mul r16.xy, r13.zwzz, cb3[0].wwww +round_ni r16.xy, r16.xyxx +add r4.w, r14.z, -cb3[2].y +round_ni r4.w, r4.w +add r5.w, l(-1.000000), cb3[1].x +max r7.w, r4.w, l(0.000000) +min r5.w, r5.w, r7.w +ge r4.w, r5.w, r4.w +mad r7.w, r16.y, cb3[0].x, r16.x +ftoi r7.w, r7.w +iadd r7.w, r7.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r7.w, r7.w, l(0), t0.xxxx +ftoi r5.w, r5.w +iadd r5.w, r5.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.w, r5.w, l(0), t0.xxxx +and r5.w, r5.w, r7.w +and r4.w, r4.w, r5.w +mul r16.xyz, r2.xyzx, cb0[111].xxxx +dp3 r5.w, r16.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r1.w, l(1.000000) +mov r6.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r7.w, l(1.000000) +mov r8.w, r4.w +mov r12.w, l(0) +loop + lt r15.w, l(0.010000), r7.w + ine r16.w, r8.w, l(0) + and r16.w, r15.w, r16.w + if_nz r16.w + firstbit_lo r16.w, r8.w + ishl r17.x, l(1), r16.w + xor r8.w, r8.w, r17.x + ishl r16.w, r16.w, l(3) + dp4 r17.x, cb3[r16.w + 6].xyzw, r1.xyzw + dp4 r17.y, cb3[r16.w + 7].xyzw, r1.xyzw + dp4 r17.z, cb3[r16.w + 8].xyzw, r1.xyzw + ge r18.xyz, cb3[r16.w + 5].xyzx, |r17.xyzx| + and r17.w, r18.y, r18.x + and r17.w, r18.z, r17.w + if_nz r17.w + mul r17.w, l(0.100000), cb3[r16.w + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb3[r16.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb3[r16.w + 9].xyzx + eq r18.w, l(1.000000), cb3[r16.w + 10].x + if_nz r18.w + dp3 r20.x, cb3[r16.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb3[r16.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb3[r16.w + 8].xyzx, r15.xyzx + add r21.xyz, -r17.xyzx, cb3[r16.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb3[r16.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r18.w, r21.y, r21.x + min r18.w, r21.z, r18.w + mad r17.xyz, r20.xyzx, r18.wwww, r17.xyzx + else + mov r17.xyz, r15.xyzx + endif + dp3 r18.w, r17.xyzx, r17.xyzx + rsq r18.w, r18.w + mul r17.xyz, r17.xyzx, r18.wwww + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r18.w, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r18.wwww + lt r17.z, r17.z, l(0.000000) + add r20.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.xy, r20.zwzz, r20.xyxx + movc r17.xy, r17.zzzz, r20.xyxx, r17.xyxx + dp4 r17.z, cb3[r16.w + 4].xyzw, r6.xyzw + max r17.z, r17.z, l(0.000000) + max r17.z, r17.z, l(0.000100) + min r18.w, r19.z, r19.y + min r18.w, r18.w, r19.x + add r18.x, r18.y, r18.x + mad r18.x, r18.z, r18.z, r18.x + mad r17.w, r17.w, r17.w, -r18.x + mul r17.w, r17.w, cb3[r16.w + 9].x + mul r17.w, r17.w, cb3[r16.w + 9].x + add r18.x, l(1.000000), -cb3[r16.w + 10].y + mul r17.w, r17.w, r18.x + mul r17.w, r17.w, l(100.000000) + mad_sat r17.w, r18.w, cb3[r16.w + 10].y, r17.w + mul r18.x, r17.w, cb3[r16.w + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r19.xy, r17.xyxx, cb3[1].wwww, cb3[2].wwww + mov r19.z, cb3[r16.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r18.yzw, r19.xyzx, t4.wxyz, s3, r3.w + mul r18.yzw, r18.yyzw, cb3[r16.w + 9].wwww + div r17.x, r5.w, r17.z + min r17.x, |r17.x|, l(1.000000) + mad r17.x, r17.x, l(2.000000), r5.w + add r17.y, r17.z, l(2.000000) + div r17.x, r17.x, r17.y + add r17.x, r17.x, l(-1.000000) + mad r17.x, r17.x, cb0[112].w, l(1.000000) + mul r17.xyz, r17.xxxx, r18.yzwy + mul r17.xyz, r18.xxxx, r17.xyzx + mad r16.xyz, r17.xyzx, r7.wwww, r16.xyzx + mad r16.w, -r17.w, cb3[r16.w + 10].w, l(1.000000) + mul r7.w, r7.w, r16.w + endif + mov r12.w, l(-1) + continue + else + mov r12.w, r15.w + break + endif + mov r12.w, r15.w +endloop +if_nz r12.w + dp3 r1.w, r15.xyzx, r15.xyzx + rsq r1.w, r1.w + mul r17.xyz, r1.wwww, r15.xyzx + lt r18.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r19.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r18.xyz, -r18.xyzx, r19.xyzx + itof r18.xyz, r18.xyzx + dp3 r1.w, r17.xyzx, r18.xyzx + div r17.xyz, r17.xyzx, r1.wwww + lt r1.w, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r18.xxxy + movc r17.xy, r1.wwww, r17.zwzz, r17.xyxx + mov r6.w, l(1.000000) + dp4 r1.w, cb3[3].xyzw, r6.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r17.xyxx, cb3[1].wwww, cb3[2].wwww + mov r17.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t4.xyzw, s3, r3.w + div r3.w, r5.w, r1.w + min r3.w, |r3.w|, l(1.000000) + mad r3.w, r3.w, l(2.000000), r5.w + add r1.w, r1.w, l(2.000000) + div r1.w, r3.w, r1.w + add r1.w, r1.w, l(-1.000000) + mad r1.w, r1.w, cb0[112].w, l(1.000000) + mul r17.xyz, r1.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r7.wwww, r16.xyzx +endif +mul r16.xyz, r16.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +lt r32.x, l(0.500000), cb13[14].x +if_nz r32.x + mul r16.xyz, r16.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) +endif +mul r16.xyz, r16.xyzx, cb0[111].yyyy +ne r1.w, l(0.000000), cb0[112].y +if_nz r1.w + sample_b_indexable(texture2d)(float,float,float,float) r1.w, r0.xyxx, t3.yzwx, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r17.xyz, r0.xyxx, t2.xyzw, s1, cb0[108].x + add r0.x, -r1.w, l(1.000000) + mul r18.xyz, r0.xxxx, r16.xyzx + mad r16.xyz, r17.xyzx, r1.wwww, r18.xyzx +endif +mul r2.xyz, r9.xywx, r2.xyzx +add r0.x, r9.z, l(-1.000000) +mad r0.x, cb2[1].x, r0.x, l(1.000000) +mul r2.xyz, r0.xxxx, r2.xyzx +mul_sat r0.x, r7.y, l(50.000000) +mul r0.x, r13.y, r0.x +mad r17.xyz, r7.xyzx, r13.xxxx, r0.xxxx +mul r16.xyz, r16.xyzx, r17.xyzx +mad r2.xyz, r2.xyzx, cb0[111].xxxx, r16.xyzx +lt r0.x, cb6[35].w, l(0.990000) +if_nz r0.x + ftoi r0.x, cb6[35].x + ieq r0.y, r0.x, l(2) + movc r16.xyz, r0.yyyy, cb6[20].xyzx, cb0[44].xyzx + add r16.xyz, r1.xyzx, -r16.xyzx + dp3 r0.y, r16.xyzx, r16.xyzx + add r0.y, -r0.y, cb6[34].w + mul_sat r0.y, r0.y, cb6[34].z + lt r1.w, l(0.000000), r0.y + if_nz r1.w + ilt r0.x, l(0), r0.x + if_nz r0.x + add r16.xyz, r1.xyzx, -cb6[20].xyzx + add r17.xyz, r1.xyzx, -cb6[21].xyzx + add r18.xyz, r1.xyzx, -cb6[22].xyzx + add r19.xyz, r1.xyzx, -cb6[23].xyzx + dp3 r16.x, r16.xyzx, r16.xyzx + dp3 r16.y, r17.xyzx, r17.xyzx + dp3 r16.z, r18.xyzx, r18.xyzx + dp3 r16.w, r19.xyzx, r19.xyzx + lt r17.x, r16.x, cb6[20].w + lt r17.y, r16.y, cb6[21].w + lt r17.z, r16.z, cb6[22].w + lt r17.w, r16.w, cb6[23].w + and r18.xyzw, r17.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r17.xyz, r17.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r17.xyz, r17.xyzx, r18.yzwy + max r18.yzw, r17.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.x, r18.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.x, -r0.x, l(4.000000) + max r0.x, r0.x, l(0.000000) + min r0.x, r0.x, l(3.000000) + add r1.w, r0.x, l(1.000000) + min r1.w, r1.w, l(3.000000) + ftou r1.w, r1.w + dp3 r3.w, r16.yzwy, icb[r1.w + 0].yzwy + div r1.w, r3.w, cb6[r1.w + 20].w + ge r3.w, r1.w, l(0.000000) + ge r1.w, l(1.000000), r1.w + and r1.w, r1.w, r3.w + if_nz r1.w + ftou r1.w, r0.x + add r13.xy, r13.zwzz, l(2.083000, 4.867000, 0.000000, 0.000000) + dp2 r3.w, r13.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r3.w, r3.w + mul r3.w, r3.w, l(52.982918) + frc r3.w, r3.w + dp4 r4.w, r16.xyzw, icb[r1.w + 0].xyzw + div r1.w, r4.w, cb6[r1.w + 20].w + sqrt r1.w, r1.w + add r1.w, r1.w, l(-0.900000) + mul r1.w, r1.w, l(12.000000) + ge r1.w, r1.w, r3.w + and r1.w, r1.w, l(0x3f800000) + add r0.x, r0.x, r1.w + endif + dp3 r1.w, r6.xyzx, cb5[0].xyzx + max r1.w, r1.w, l(0.000000) + min r1.w, r1.w, l(0.900000) + add r1.w, -r1.w, l(1.000000) + ftou r3.w, r0.x + ishl r4.w, r3.w, l(2) + mul r13.xy, r1.wwww, cb6[r3.w + 24].xyxx + max r1.w, r13.x, l(0.000000) + mad r16.xyz, -cb5[0].xyzx, r1.wwww, r1.xyzx + mad r16.xyz, r6.xyzx, r13.yyyy, r16.xyzx + mul r17.xyz, r16.yyyy, cb6[r4.w + 1].xyzx + mad r16.xyw, cb6[r4.w + 0].xyxz, r16.xxxx, r17.xyxz + mad r16.xyz, cb6[r4.w + 2].xyzx, r16.zzzz, r16.xywx + add r16.xyz, r16.xyzx, cb6[r4.w + 3].xyzx + ge r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + ge r18.xyz, r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r17.xyz, r17.xyzx, r18.xyzx + or r1.w, r17.y, r17.x + or r1.w, r17.z, r1.w + and r3.w, r16.z, l(0x7fffffff) + ult r3.w, l(0x7f800000), r3.w + or r17.z, r1.w, r3.w + ftoi r0.x, r0.x + mad r13.xy, r16.xyxx, cb6[r0.x + 28].zwzz, cb6[r0.x + 28].xyxx + mad r16.xy, r13.xyxx, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r16.xy, r16.xyxx + mad r13.xy, r13.xyxx, cb6[32].zwzz, -r16.xyxx + add r18.xyzw, r13.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r19.xw, r18.xxxz, r18.xxxz + min r18.xz, r13.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r20.xy, r13.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r20.zw, r19.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r13.xxxy + add r13.xy, -r13.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mad r13.xy, -r18.xzxx, r18.xzxx, r13.xyxx + mad r18.xy, -r20.xyxx, r20.xyxx, r18.ywyy + mov r21.x, r20.z + mov r21.y, r13.x + mov r21.z, r18.x + mov r21.w, r19.x + mul r21.xyzw, r21.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r19.x, r20.w + mov r19.y, r13.y + mov r19.z, r18.y + mul r18.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r19.xyzw, r21.ywyw, r21.xzxz + add r20.xyzw, r18.yyww, r18.xxzz + div r13.xy, r21.ywyy, r19.zwzz + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r21.xy, r13.xyxx, cb6[32].xxxx + div r13.xy, r18.ywyy, r20.ywyy + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r21.zw, r13.xxxy, cb6[32].yyyy + mul r18.xyzw, r19.xyzw, r20.xyzw + mad r19.xyzw, r16.xyxy, cb6[32].xyxy, r21.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r19.xyxx, t10.xxxx, s4, r16.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t10.xxxx, s4, r16.z + mul r1.w, r1.w, r18.y + mad r0.x, r18.x, r0.x, r1.w + mad r19.xyzw, r16.xyxy, cb6[32].xyxy, r21.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.xyxx, t10.xxxx, s4, r16.z + mad r0.x, r18.z, r1.w, r0.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t10.xxxx, s4, r16.z + mad r0.x, r18.w, r1.w, r0.x + movc r17.x, r17.z, l(1.000000), r0.x + else + mov r17.xz, l(1.000000,0,0,0) + endif + else + mov r17.xz, l(1.000000,0,0,0) + endif + lt r0.x, r0.y, l(1.000000) + if_nz r0.x + dp3 r0.x, r6.xyzx, cb5[0].xyzx + max r0.x, r0.x, l(0.000000) + min r0.x, r0.x, l(0.900000) + add r0.x, -r0.x, l(1.000000) + mul r13.xy, r0.xxxx, cb6[584].xyxx + mad r16.xyz, -cb5[0].xyzx, r13.xxxx, r1.xyzx + mad r16.xyz, r6.xyzx, r13.yyyy, r16.xyzx + mul r13.xy, r16.yyyy, cb6[581].xyxx + mad r13.xy, cb6[580].xyxx, r16.xxxx, r13.xyxx + mad r13.xy, cb6[582].xyxx, r16.zzzz, r13.xyxx + add r13.xy, r13.xyxx, cb6[583].xyxx + lt r18.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xyxx + and r0.x, r18.y, r18.x + lt r18.xy, r13.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + and r1.w, r18.y, r18.x + and r0.x, r0.x, r1.w + if_nz r0.x + mul r0.x, r13.y, cb6[585].z + round_ni r0.x, r0.x + add r0.x, r13.x, r0.x + mul r0.x, r0.x, cb6[585].y + ftou r0.x, r0.x + umin r0.x, r0.x, l(127) + and r1.w, l(0x0000ffff), cb6[r0.x + 587].x + f16tof32 r13.x, r1.w + ge r1.w, r13.x, l(0.000000) + if_nz r1.w + mov r18.x, cb6[576].x + mov r18.y, cb6[577].x + mov r18.z, cb6[578].x + mov r18.w, cb6[r0.x + 587].y + mov r16.w, l(1.000000) + dp4 r18.x, r18.xyzw, r16.xyzw + mov r19.x, cb6[576].y + mov r19.y, cb6[577].y + mov r19.z, cb6[578].y + mov r19.w, cb6[r0.x + 587].z + dp4 r18.y, r19.xyzw, r16.xyzw + mov r19.x, cb6[576].z + mov r19.y, cb6[577].z + mov r19.z, cb6[578].z + mov r19.w, cb6[r0.x + 587].w + dp4 r1.w, r19.xyzw, r16.xyzw + lt r16.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyxx + lt r3.w, l(0.000000), r1.w + and r4.w, r16.y, r16.x + and r3.w, r3.w, r4.w + lt r16.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + lt r4.w, r1.w, l(1.000000) + and r5.w, r16.y, r16.x + and r4.w, r4.w, r5.w + and r3.w, r3.w, r4.w + if_nz r3.w + ushr r0.x, cb6[r0.x + 587].x, l(16) + f16tof32 r13.y, r0.x + mad r13.xy, r18.xyxx, cb6[584].zwzz, r13.xyxx + mad r16.xy, r13.xyxx, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r16.xy, r16.xyxx + mad r13.xy, r13.xyxx, cb6[586].zwzz, -r16.xyxx + add r18.xyzw, r13.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r19.xw, r18.xxxz, r18.xxxz + min r16.zw, r13.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r18.xz, r13.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r20.xy, r19.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r13.xyxx + add r13.xy, -r13.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mad r13.xy, -r16.zwzz, r16.zwzz, r13.xyxx + mad r16.zw, -r18.xxxz, r18.xxxz, r18.yyyw + mov r18.x, r20.x + mov r18.y, r13.x + mov r18.z, r16.z + mov r18.w, r19.x + mul r18.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r19.x, r20.y + mov r19.y, r13.y + mov r19.z, r16.w + mul r19.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r20.xyzw, r18.ywyw, r18.xzxz + add r21.xyzw, r19.yyww, r19.xxzz + div r13.xy, r18.ywyy, r20.zwzz + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r18.xy, r13.xyxx, cb6[586].xxxx + div r13.xy, r19.ywyy, r21.ywyy + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r18.zw, r13.xxxy, cb6[586].yyyy + mul r19.xyzw, r20.xyzw, r21.xyzw + mad r20.xyzw, r16.xyxy, cb6[586].xyxy, r18.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r20.xyxx, t13.xxxx, s4, r1.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r20.zwzz, t13.xxxx, s4, r1.w + mul r3.w, r3.w, r19.y + mad r0.x, r19.x, r0.x, r3.w + mad r16.xyzw, r16.xyxy, cb6[586].xyxy, r18.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r16.xyxx, t13.xxxx, s4, r1.w + mad r0.x, r19.z, r3.w, r0.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r16.zwzz, t13.xxxx, s4, r1.w + mad r17.y, r19.w, r1.w, r0.x + else + mov r17.y, l(1.000000) + endif + else + mov r17.y, l(1.000000) + endif + else + mov r17.y, l(1.000000) + endif + movc r17.x, r17.z, r17.y, r17.x + else + mov r17.y, l(1.000000) + endif + add r0.x, -r17.y, r17.x + mad r0.x, r0.y, r0.x, r17.y + lt r0.y, l(0.001000), r0.x + if_nz r0.y + add r16.xyz, r1.xyzx, -cb0[173].xyzx + mad r13.xy, cb0[176].xzxx, r16.yyyy, r16.xzxx + mul r16.yw, r13.xxxy, cb0[174].zzzz + mul r17.xy, cb0[175].xyxx, cb0[183].wwww + mad r13.xy, r13.xyxx, cb0[174].zzzz, r17.xyxx + sample_l_indexable(texture2d)(float,float,float,float) r0.y, r13.xyxx, t12.yxzw, s2, l(0.000000) + mad r13.xy, r16.ywyy, cb0[175].wwww, r17.xyxx + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r13.xyxx, t12.yzwx, s2, l(0.000000) + dp2 r3.w, r16.xzxx, r16.xzxx + sqrt r3.w, r3.w + add r4.w, -cb0[174].x, cb0[174].y + add r3.w, r3.w, -cb0[174].x + div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul_sat r3.w, r3.w, r4.w + mad r4.w, r3.w, l(-2.000000), l(3.000000) + mul r3.w, r3.w, r3.w + mul r3.w, r3.w, r4.w + add r1.w, -r0.y, r1.w + mad r0.y, r3.w, r1.w, r0.y + add r0.y, r0.y, l(-1.000000) + mad r0.y, cb0[175].z, r0.y, l(1.000000) + mul r0.x, r0.y, r0.x + endif + add r0.y, -r0.x, cb6[35].z + mad r0.x, cb6[35].w, r0.y, r0.x +else + mov r0.x, cb6[35].z +endif +min r0.x, r0.x, l(1.000000) +add r0.x, r0.x, l(-1.000000) +mad r0.x, cb6[34].x, r0.x, l(1.000000) +lt r1.w, l(0.001000), r0.x +if_nz r1.w + dp3 r1.w, -cb5[0].xyzx, r15.xyzx + mad r16.xyz, cb5[0].xyzx, r1.wwww, r15.xyzx + lt r1.w, r1.w, cb5[4].z + dp3 r3.w, r16.xyzx, r16.xyzx + max r3.w, r3.w, l(0.0000610351562) + rsq r3.w, r3.w + mul r16.xyz, r3.wwww, r16.xyzx + mul r16.xyz, r16.xyzx, cb5[4].yyyy + mad r16.xyz, -cb5[0].xyzx, cb5[4].zzzz, r16.xyzx + dp3 r3.w, r16.xyzx, r16.xyzx + rsq r3.w, r3.w + mul r16.xyz, r3.wwww, r16.xyzx + movc r16.xyz, r1.wwww, r16.xyzx, r15.xyzx + mad r17.xyz, r3.xyzx, r2.wwww, r16.xyzx + dp3 r1.w, r17.xyzx, r17.xyzx + max r1.w, r1.w, l(0.0000610351562) + rsq r1.w, r1.w + mul r17.xyz, r1.wwww, r17.xyzx + dp3_sat r11.y, r16.xyzx, r6.xyzx + dp3_sat r1.w, r6.xyzx, r17.xyzx + min r11.z, r0.z, l(1.000000) + mul r3.w, r11.w, r11.w + mul r3.w, r3.w, r3.w + mad r4.w, r1.w, r3.w, -r1.w + mad r1.w, r4.w, r1.w, l(1.000000) + dp3_sat r4.w, r5.xyzx, r17.xyzx + add r4.w, -r4.w, l(1.000000) + mul r5.w, r4.w, r4.w + mul r5.w, r5.w, r5.w + mul r6.w, r4.w, r5.w + add r7.w, -r11.w, l(1.000000) + mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) + mad r8.w, r7.w, r8.w, l(1.049970) + mad r7.w, r7.w, r8.w, l(0.409255) + min r7.w, r7.w, l(0.999000) + add r8.w, -r7.w, l(1.000000) + add r16.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r7.xyzx + mad r4.w, -r5.w, r4.w, l(1.000000) + mad r17.xyz, r7.xyzx, r4.wwww, r6.wwww + mul r1.w, r1.w, r1.w + div r1.w, r3.w, r1.w + mad r13.xy, -r11.zyzz, r3.wwww, r11.zyzz + mad r13.xy, r13.xyxx, r11.zyzz, r3.wwww + sqrt r13.xy, r13.xyxx + mul r13.xy, r11.yzyy, r13.xyxx + add r3.w, r13.y, r13.x + add r3.w, r3.w, l(0.000100) + div r3.w, l(0.500000), r3.w + mul r1.w, r1.w, r3.w + mul r17.xyz, r1.wwww, r17.xyzx + min r17.xyz, r17.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r18.xyxx, t15.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r3.w, r18.zwzz, t15.yzwx, s1, l(0.000000) + mul r1.w, r1.w, r3.w + mul r1.w, r7.w, r1.w + div r1.w, r1.w, r8.w + mul r18.xyz, r16.xyzx, r16.xyzx + mul r18.xyz, r1.wwww, r18.xyzx + mad r16.xyz, -r16.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r16.xyz, r18.xyzx, r16.xyzx + add r16.xyz, r16.xyzx, r17.xyzx + mul r16.xyz, r16.xyzx, cb5[4].xxxx + // === Glass Fix: Reduce sun specular intensity === + lt r32.x, l(0.500000), cb13[14].x + if_nz r32.x + mul r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + endif + max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r16.xyz, r16.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + max r1.w, r10.w, l(0.010000) + div r16.xyz, r16.xyzx, r1.wwww + min r16.xyz, r16.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r17.xyz, r9.xywx, r11.yyyy + mad r16.xyz, r16.xyzx, r11.yyyy, r17.xyzx + mul r16.xyz, r16.xyzx, cb5[1].xyzx + mov r0.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r17.xyz, r0.xyxx, t14.xyzw, s1, cb0[108].x + add r0.x, -r0.x, l(1.000000) + mad r17.xyz, r16.xyzx, r17.xyzx, -r16.xyzx + mad r16.xyz, r0.xxxx, r17.xyzx, r16.xyzx +else + mov r16.xyz, l(0,0,0,0) +endif +mul r0.xy, r13.zwzz, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r0.xy, r0.xyxx +mad r0.x, r0.y, cb4[1].y, r0.x +mul r0.x, r0.x, l(8.000000) +ftoi r0.x, r0.x +mad r0.y, -cb0[85].y, cb4[2].w, r14.z +round_ni r0.y, r0.y +add r1.w, l(-1.000000), cb4[1].w +max r3.w, r0.y, l(0.000000) +min r1.w, r1.w, r3.w +mul r3.w, r1.w, l(8.000000) +ftoi r3.w, r3.w +ge r0.y, r1.w, r0.y +iadd r1.w, r3.w, cb0[110].y +mul r3.w, r11.w, r11.w +min r11.x, r0.z, l(1.000000) +add r0.z, -r11.w, l(1.000000) +mad r4.w, -r0.z, l(0.383026), l(-0.0761947036) +mad r4.w, r0.z, r4.w, l(1.049970) +mad r0.z, r0.z, r4.w, l(0.409255) +min r0.z, r0.z, l(0.999000) +add r4.w, -r0.z, l(1.000000) +add r17.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r17.xyz, r17.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r7.xyzx +mad r11.yz, r11.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r5.w, r11.yzyy, t15.yzwx, s1, l(0.000000) +mad r18.xyz, -r17.xyzx, r4.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r17.xyz, r17.xyzx, r17.xyzx +mov r19.w, l(1.000000) +mov r13.y, l(1.000000) +mov r20.z, r11.w +mov r21.xyz, l(0,0,0,0) +mov r6.w, l(1.000000) +mov r7.w, l(0) +loop + ilt r8.w, l(7), r7.w + breakc_nz r8.w + iadd r8.w, r0.x, r7.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.w, r8.w, l(0), t0.xxxx + iadd r9.z, r1.w, r7.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.z, r9.z, l(0), t0.xxxx + and r8.w, r8.w, r9.z + and r8.w, r0.y, r8.w + ishl r9.z, r7.w, l(5) + mov r22.xyz, l(0,0,0,0) + mov r11.y, r6.w + mov r11.z, r8.w + loop + breakc_z r11.z + firstbit_lo r12.w, r11.z + ishl r15.w, l(1), r12.w + xor r15.w, r11.z, r15.w + iadd r12.w, r9.z, r12.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r12.wwww, l(1, 3, 5, 6) + bfi r16.w, l(29), l(3), r12.w, l(7) + ftou r17.w, cb5[r23.z + 6].w + ieq r17.w, r17.w, l(1) + if_nz r17.w + add r19.xyz, r1.xyzx, -cb5[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r23.w + 6].yxzy + ushr r26.xyz, cb5[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb5[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r17.w, r19.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r18.w, r19.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r19.x, r19.xyzw, r27.xyzw + max r17.w, |r17.w|, |r18.w| + max r17.w, |r19.x|, r17.w + mad r18.w, cb5[r16.w + 6].x, l(0.500000), l(0.500000) + add r17.w, r17.w, -r18.w + mad r18.w, -cb5[r16.w + 6].x, l(0.500000), l(0.500000) + div_sat r17.w, r17.w, r18.w + add r17.w, -r17.w, l(1.000000) + mul r17.w, r17.w, r17.w + else + mov r17.w, l(1.000000) + endif + lt r18.w, l(0.500000), cb5[r23.y + 6].z + lt r19.x, r17.w, l(0.001000) + or r19.x, r18.w, r19.x + if_nz r19.x + mov r11.z, r15.w + continue + endif + ishl r19.x, r12.w, l(3) + bfi r12.w, l(29), l(3), r12.w, l(2) + lt r19.y, cb5[r19.x + 6].w, l(1.500000) + if_nz r19.y + mad r19.y, cb5[r12.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r19.y, -|cb5[r12.w + 6].x| + add r24.y, -r24.x, cb5[r12.w + 6].y + add r19.y, -|r24.x|, l(1.000000) + add r19.y, -|r24.y|, r19.y + max r19.y, r19.y, l(0.000488281250) + ge r19.z, cb5[r12.w + 6].x, l(0.000000) + movc r24.z, r19.z, r19.y, -r19.y + dp3 r19.y, r24.xyzx, r24.xyzx + rsq r19.y, r19.y + mul r24.xyz, r19.yyyy, r24.xyzx + add r25.xyz, -r1.xyzx, cb5[r23.x + 6].xyzx + dp3 r19.y, r25.xyzx, r25.xyzx + rsq r19.z, r19.y + mul r26.xyz, r19.zzzz, r25.xyzx + ftoi r20.w, cb5[r16.w + 6].w + mul r27.xyz, r24.xyzx, cb5[r12.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r21.w, cb5[r19.x + 6].w + and r21.w, r21.w, l(1) + ieq r22.w, r21.w, l(0) + not r22.w, r22.w + lt r23.z, l(0.000000), cb5[r12.w + 6].z + and r22.w, r22.w, r23.z + dp3 r23.z, r28.xyzx, r28.xyzx + sqrt r23.z, r23.z + dp3 r24.w, r29.xyzx, r29.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r6.xyzx, r28.xyzx + div r25.w, r25.w, r23.z + dp3 r26.w, r6.xyzx, r29.xyzx + div r26.w, r26.w, r24.w + add r25.w, r25.w, r26.w + mul_sat r30.x, r25.w, l(0.500000) + dp3 r25.w, r28.xyzx, r29.xyzx + mad r23.z, r23.z, r24.w, r25.w + mad r23.z, r23.z, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r23.z + dp3_sat r13.x, r6.xyzx, r26.xyzx + movc r20.xy, r22.wwww, r30.xyxx, r13.xyxx + lt r13.x, cb5[r23.w + 6].w, l(0.000000) + if_nz r13.x + mul r13.x, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r13.x, r13.x, r19.y + mad r13.x, -r13.x, r13.x, l(1.000000) + max r13.x, r13.x, l(0.000000) + add r19.y, r19.y, l(1.000000) + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), r19.y + and r23.z, r22.w, l(0x3f800000) + add r24.w, -r19.y, r20.y + mad r19.y, r23.z, r24.w, r19.y + mul r13.x, r13.x, r13.x + mul r13.x, r13.x, r19.y + else + mul r29.xyz, r25.xyzx, cb5[r23.x + 6].wwww + dp3 r19.y, r29.xyzx, r29.xyzx + min r19.y, r19.y, l(1.000000) + add r19.y, -r19.y, l(1.000000) + log r19.y, r19.y + mul r19.y, r19.y, cb5[r23.w + 6].w + exp r19.y, r19.y + mul r13.x, r19.y, r20.y + endif + dp3 r19.y, r26.xyzx, -r24.xyzx + add r19.y, r19.y, -cb5[r12.w + 6].z + mul_sat r19.y, r19.y, cb5[r12.w + 6].w + mul r19.y, r19.y, r19.y + movc r19.y, r21.w, l(1.000000), r19.y + mul r13.x, r13.x, r19.y + not r19.y, r22.w + ige r20.y, r20.w, l(0) + and r19.y, r19.y, r20.y + if_nz r19.y + if_z r21.w + ishl r19.y, r20.w, l(2) + mul r24.xyz, r1.yyyy, cb7[r19.y + 33].xywx + mad r24.xyz, cb7[r19.y + 32].xywx, r1.xxxx, r24.xyzx + mad r24.xyz, cb7[r19.y + 34].xywx, r1.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb7[r19.y + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb7[r20.w + 0].zwzz, cb7[r20.w + 0].xyxx + else + ishl r19.y, r20.w, l(2) + dp3 r29.x, -r25.xyzx, cb7[r19.y + 32].xyzx + dp3 r29.y, -r25.xyzx, cb7[r19.y + 33].xyzx + dp3 r29.z, -r25.xyzx, cb7[r19.y + 34].xyzx + lt r19.y, |r29.x|, |r29.y| + and r19.y, r19.y, l(1) + dp2 r20.y, |r29.xyxx|, icb[r19.y + 0].xyxx + lt r20.y, r20.y, |r29.z| + movc r19.y, r20.y, l(2), r19.y + dp3 r20.y, r29.xyzx, icb[r19.y + 0].xyzx + lt r20.y, r20.y, l(0.000000) + bfi r19.y, l(31), l(1), r19.y, r20.y + ushr r20.y, r19.y, l(1) + dp3 r20.y, r29.xyzx, icb[r20.y + 0].xyzx + div r23.z, l(0.000244140625), cb7[r20.w + 0].w + add r23.z, -r23.z, l(0.500000) + utof r24.z, r19.y + ult r24.w, r19.y, l(2) + and r24.w, r24.w, l(2) + dp2 r24.w, r29.xzxx, icb[r24.w + 0].xzxx + mul r24.w, r24.w, icb[r19.y + 4].z + div r24.w, r24.w, |r20.y| + mad r24.z, r24.w, r23.z, r24.z + add r24.z, r24.z, l(0.500000) + mul_sat r25.x, r24.z, l(0.166666672) + iadd r24.z, l(-1), icb[r19.y + 4].y + dp2 r24.z, r29.yzyy, icb[r24.z + 0].xyxx + mul r19.y, r24.z, icb[r19.y + 4].w + div r19.y, r19.y, |r20.y| + mad_sat r25.y, -r19.y, r23.z, l(0.500000) + mad r24.xy, r25.xyxx, cb7[r20.w + 0].zwzz, cb7[r20.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r24.xyxx, t23.yxzw, s1, l(0.000000) + mul r13.x, r13.x, r19.y + endif + lt r19.y, l(0.000000), r13.x + if_nz r19.y + if_z r21.w + ftoi r20.y, cb5[r23.y + 6].x + else + add r24.xyz, r1.xyzx, -cb5[r23.x + 6].xyzx + lt r25.xyz, |r24.yzzy|, |r24.xxyx| + and r20.w, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r21.w, cb5[r12.w + 6].w, l(24) + ubfe r25.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r12.w + 6].wwww + movc r21.w, r24.x, r21.w, r25.x + and r23.z, l(255), cb5[r12.w + 6].w + movc r23.z, r24.y, r25.y, r23.z + ubfe r24.x, l(8), l(8), cb5[r23.y + 6].x + and r24.y, l(255), cb5[r23.y + 6].x + movc r24.x, r24.z, r24.x, r24.y + movc r23.z, r25.z, r23.z, r24.x + movc r20.w, r20.w, r21.w, r23.z + ilt r21.w, r20.w, l(80) + movc r20.y, r21.w, r20.w, l(-1) + endif + mad r24.xyz, r26.xyzx, cb6[r20.y + 288].xxxx, r1.xyzx + mul r20.w, l(5.000000), cb6[r20.y + 288].y + mad r24.xyz, r6.xyzx, r20.wwww, r24.xyzx + ishl r20.w, r20.y, l(2) + mul r25.xyzw, r24.yyyy, cb6[r20.w + 65].xyzw + mad r25.xyzw, cb6[r20.w + 64].xyzw, r24.xxxx, r25.xyzw + mad r24.xyzw, cb6[r20.w + 66].xyzw, r24.zzzz, r25.xyzw + add r24.xyzw, r24.xyzw, cb6[r20.w + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r30.xy, -cb6[r20.y + 344].xyxx, cb6[r20.y + 344].zwzz + mad r24.xy, r24.xyxx, r30.xyxx, cb6[r20.y + 344].xyxx + mad r30.xy, r24.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r30.xy, r30.xyxx + mad r24.xy, r24.xyxx, cb6[400].zwzz, -r30.xyxx + add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx + mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz + add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r35.z, r36.x + mov r35.w, r24.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r24.y + mov r33.z, r34.y + mov r33.w, r32.z + add r24.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.xyzx, cb6[400].xxxx + div r33.xyz, r33.zywz, r24.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyw, r33.xyxz, cb6[400].yyyy + mul r34.xyzw, r24.xxxy, r31.zwyz + mov r32.w, r33.x + mad r35.xyzw, r30.xyxy, cb6[400].xyxy, r32.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r35.xyxx, t11.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.zwzz, t11.xxxx, s4, r24.z + mul r21.w, r21.w, r34.y + mad r20.w, r34.x, r20.w, r21.w + mad r30.zw, r30.xxxy, cb6[400].xxxy, r32.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r30.zwzz, t11.xxxx, s4, r24.z + mad r20.w, r34.z, r21.w, r20.w + mov r33.z, r32.x + mad r35.xyzw, r30.xyxy, cb6[400].xyxy, r33.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.xyxx, t11.xxxx, s4, r24.z + mad r20.w, r34.w, r21.w, r20.w + mul r34.xyzw, r24.yyww, r31.xyzw + mov r33.xz, r32.yyzy + mad r32.xyzw, r30.xyxy, cb6[400].xyxy, r33.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r32.xyxx, t11.xxxx, s4, r24.z + mad r20.w, r34.x, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r32.zwzz, t11.xxxx, s4, r24.z + mad r20.w, r34.y, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.zwzz, t11.xxxx, s4, r24.z + mad r20.w, r34.z, r21.w, r20.w + ige r21.w, r20.y, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r23.z, r25.y, r25.x + or r23.z, r25.z, r23.z + and r24.x, r24.z, l(0x7fffffff) + ult r24.x, l(0x7f800000), r24.x + or r23.z, r23.z, r24.x + mad r25.xyzw, r30.xyxy, cb6[400].xyxy, r33.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r25.xyxx, t11.xxxx, s4, r24.z + mad r20.w, r34.w, r24.x, r20.w + mul r24.x, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r25.zwzz, t11.xxxx, s4, r24.z + mad r20.w, r24.x, r24.y, r20.w + add r20.w, r20.w, l(-1.000000) + mad r20.y, cb6[r20.y + 288].w, r20.w, l(1.000000) + movc r20.y, r23.z, l(1.000000), r20.y + movc r20.y, r21.w, r20.y, l(1.000000) + else + mov r20.y, l(1.000000) + endif + if_nz r22.w + dp3 r20.w, r15.xyzx, r27.xyzx + mul_sat r21.w, r19.z, cb5[r12.w + 6].z + mad r21.w, r21.w, l(0.500000), r3.w + min r21.w, r21.w, l(1.000000) + div r21.w, r3.w, r21.w + mad r24.xyz, r15.xyzx, r20.wwww, -r27.xyzx + dp3 r22.w, r28.xyzx, r24.xyzx + mul r20.w, r20.w, r20.w + mad r20.w, cb5[r12.w + 6].z, cb5[r12.w + 6].z, -r20.w + div_sat r20.w, r22.w, r20.w + mad r24.xyz, r27.xyzx, r20.wwww, r28.xyzx + dp3 r20.w, r24.xyzx, r24.xyzx + rsq r20.w, r20.w + mul r26.xyz, r20.wwww, r24.xyzx + else + mov r21.w, l(1.000000) + endif + if_nz r19.y + mul_sat r19.y, r19.z, cb5[r16.w + 6].y + mad r24.xyz, r3.xyzx, r2.wwww, r26.xyzx + dp3 r19.z, r24.xyzx, r24.xyzx + max r19.z, r19.z, l(0.0000610351562) + rsq r19.z, r19.z + mul r24.xyz, r19.zzzz, r24.xyzx + dp3_sat r19.z, r6.xyzx, r24.xyzx + dp3_sat r20.w, r5.xyzx, r24.xyzx + lt r22.w, l(0.000000), r19.y + mul r19.y, r19.y, r19.y + mad r23.z, r20.w, l(3.600000), l(0.400000) + div r19.y, r19.y, r23.z + mad r19.y, r11.w, r11.w, r19.y + min r19.y, r19.y, l(1.000000) + movc r19.y, r22.w, r19.y, r3.w + mul r19.y, r19.y, r19.y + mad r22.w, r19.z, r19.y, -r19.z + mad r19.z, r22.w, r19.z, l(1.000000) + add r20.w, -r20.w, l(1.000000) + mul r22.w, r20.w, r20.w + mul r22.w, r22.w, r22.w + mul r23.z, r20.w, r22.w + mad r20.w, -r22.w, r20.w, l(1.000000) + mad r24.xyz, r7.xyzx, r20.wwww, r23.zzzz + mul r19.z, r19.z, r19.z + div r19.z, r19.y, r19.z + mul r19.z, r21.w, r19.z + mad r20.w, -r11.x, r19.y, r11.x + mad r20.w, r20.w, r11.x, r19.y + sqrt r20.w, r20.w + mad r21.w, -r20.x, r19.y, r20.x + mad r19.y, r21.w, r20.x, r19.y + sqrt r19.y, r19.y + mul r19.y, r11.x, r19.y + mad r19.y, r20.x, r20.w, r19.y + add r19.y, r19.y, l(0.000100) + div r19.y, l(0.500000), r19.y + mul r19.y, r19.y, r19.z + mul r24.xyz, r19.yyyy, r24.xyzx + min r24.xyz, r24.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r19.yz, r20.xxzx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t15.yxzw, s1, l(0.000000) + mul r19.y, r5.w, r19.y + mul r19.y, r0.z, r19.y + div r19.y, r19.y, r4.w + mul r25.xyz, r17.xyzx, r19.yyyy + div r25.xyz, r25.xyzx, r18.xyzx + add r24.xyz, r24.xyzx, r25.xyzx + mul r24.xyz, r24.xyzx, cb5[r16.w + 6].zzzz + max r24.xyz, r24.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r24.xyz, r24.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r25.xyz, r9.xywx, r20.xxxx + mad r24.xyz, r24.xyzx, r20.xxxx, r25.xyzx + mul r25.xyz, r13.xxxx, cb5[r19.x + 6].xyzx + mul r20.xyw, r20.yyyy, r25.xyxz + mul r20.xyw, r17.wwww, r20.xyxw + mul r20.xyw, r20.xyxw, r24.xyxz + else + mov r20.xyw, l(0,0,0,0) + endif + else + if_z r18.w + mad r13.x, cb5[r12.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r13.x, -|cb5[r12.w + 6].x| + add r24.y, -r24.x, cb5[r12.w + 6].y + add r13.x, -|r24.x|, l(1.000000) + add r13.x, -|r24.y|, r13.x + max r13.x, r13.x, l(0.000488281250) + ge r17.w, cb5[r12.w + 6].x, l(0.000000) + movc r24.z, r17.w, r13.x, -r13.x + dp3 r13.x, r24.xyzx, r24.xyzx + rsq r13.x, r13.x + mul r24.xyz, r13.xxxx, r24.xyzx + add r25.xyz, -r1.xyzx, cb5[r23.x + 6].xyzx + dp3 r13.x, r25.xyzx, r25.xyzx + rsq r17.w, r13.x + mul r26.xyz, r17.wwww, r25.xyzx + ftoi r16.w, cb5[r16.w + 6].w + mul r27.xyz, r24.xyzx, cb5[r12.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r27.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r17.w, cb5[r19.x + 6].w + and r17.w, r17.w, l(1) + ieq r18.w, r17.w, l(0) + not r18.w, r18.w + lt r19.x, l(0.000000), cb5[r12.w + 6].z + and r18.w, r18.w, r19.x + dp3 r19.x, r28.xyzx, r28.xyzx + dp3 r19.y, r27.xyzx, r27.xyzx + sqrt r19.xy, r19.xyxx + dp3 r19.z, r28.xyzx, r27.xyzx + mad r19.x, r19.x, r19.y, r19.z + mad r19.x, r19.x, l(0.500000), l(1.000000) + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x + movc r19.x, r18.w, r19.x, l(1.000000) + lt r19.y, cb5[r23.w + 6].w, l(0.000000) + if_nz r19.y + mul r19.y, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r19.y, r13.x, r19.y + mad r19.y, -r19.y, r19.y, l(1.000000) + max r19.y, r19.y, l(0.000000) + add r13.x, r13.x, l(1.000000) + div r13.x, l(1.000000, 1.000000, 1.000000, 1.000000), r13.x + and r19.z, r18.w, l(0x3f800000) + add r21.w, -r13.x, r19.x + mad r13.x, r19.z, r21.w, r13.x + mul r19.y, r19.y, r19.y + mul r13.x, r13.x, r19.y + else + mul r27.xyz, r25.xyzx, cb5[r23.x + 6].wwww + dp3 r19.y, r27.xyzx, r27.xyzx + min r19.y, r19.y, l(1.000000) + add r19.y, -r19.y, l(1.000000) + log r19.y, r19.y + mul r19.y, r19.y, cb5[r23.w + 6].w + exp r19.y, r19.y + mul r13.x, r19.y, r19.x + endif + dp3 r19.x, r26.xyzx, -r24.xyzx + add r19.x, r19.x, -cb5[r12.w + 6].z + mul_sat r19.x, r19.x, cb5[r12.w + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r17.w, l(1.000000), r19.x + mul r13.x, r13.x, r19.x + not r18.w, r18.w + ige r19.x, r16.w, l(0) + and r18.w, r18.w, r19.x + if_nz r18.w + if_z r17.w + ishl r18.w, r16.w, l(2) + mul r19.xyz, r1.yyyy, cb7[r18.w + 33].xywx + mad r19.xyz, cb7[r18.w + 32].xywx, r1.xxxx, r19.xyzx + mad r19.xyz, cb7[r18.w + 34].xywx, r1.zzzz, r19.xyzx + add r19.xyz, r19.xyzx, cb7[r18.w + 35].xywx + div_sat r19.xy, r19.xyxx, r19.zzzz + mad r19.xy, r19.xyxx, cb7[r16.w + 0].zwzz, cb7[r16.w + 0].xyxx + else + ishl r18.w, r16.w, l(2) + dp3 r24.x, -r25.xyzx, cb7[r18.w + 32].xyzx + dp3 r24.y, -r25.xyzx, cb7[r18.w + 33].xyzx + dp3 r24.z, -r25.xyzx, cb7[r18.w + 34].xyzx + lt r18.w, |r24.x|, |r24.y| + and r18.w, r18.w, l(1) + dp2 r19.z, |r24.xyxx|, icb[r18.w + 0].xyxx + lt r19.z, r19.z, |r24.z| + movc r18.w, r19.z, l(2), r18.w + dp3 r19.z, r24.xyzx, icb[r18.w + 0].xyzx + lt r19.z, r19.z, l(0.000000) + bfi r18.w, l(31), l(1), r18.w, r19.z + ushr r19.z, r18.w, l(1) + dp3 r19.z, r24.xyzx, icb[r19.z + 0].xyzx + div r21.w, l(0.000244140625), cb7[r16.w + 0].w + add r21.w, -r21.w, l(0.500000) + utof r22.w, r18.w + ult r23.z, r18.w, l(2) + and r23.z, r23.z, l(2) + dp2 r23.z, r24.xzxx, icb[r23.z + 0].xzxx + mul r23.z, r23.z, icb[r18.w + 4].z + div r23.z, r23.z, |r19.z| + mad r22.w, r23.z, r21.w, r22.w + add r22.w, r22.w, l(0.500000) + mul_sat r25.x, r22.w, l(0.166666672) + iadd r22.w, l(-1), icb[r18.w + 4].y + dp2 r22.w, r24.yzyy, icb[r22.w + 0].xyxx + mul r18.w, r22.w, icb[r18.w + 4].w + div r18.w, r18.w, |r19.z| + mad_sat r25.y, -r18.w, r21.w, l(0.500000) + mad r19.xy, r25.xyxx, cb7[r16.w + 0].zwzz, cb7[r16.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r16.w, r19.xyxx, t23.yzwx, s1, l(0.000000) + mul r13.x, r13.x, r16.w + endif + lt r13.x, l(0.000000), r13.x + if_nz r13.x + if_z r17.w + ftoi r13.x, cb5[r23.y + 6].x + else + add r19.xyz, r1.xyzx, -cb5[r23.x + 6].xyzx + lt r23.xzw, |r19.yyzz|, |r19.xxxy| + and r16.w, r23.z, r23.x + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ushr r17.w, cb5[r12.w + 6].w, l(24) + ubfe r23.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb5[r12.w + 6].wwww + movc r17.w, r19.x, r17.w, r23.x + and r12.w, l(255), cb5[r12.w + 6].w + movc r12.w, r19.y, r23.z, r12.w + ubfe r18.w, l(8), l(8), cb5[r23.y + 6].x + and r19.x, l(255), cb5[r23.y + 6].x + movc r18.w, r19.z, r18.w, r19.x + movc r12.w, r23.w, r12.w, r18.w + movc r12.w, r16.w, r17.w, r12.w + ilt r16.w, r12.w, l(80) + movc r13.x, r16.w, r12.w, l(-1) + endif + mad r19.xyz, r26.xyzx, cb6[r13.x + 288].xxxx, r1.xyzx + mul r12.w, l(5.000000), cb6[r13.x + 288].y + mad r19.xyz, r6.xyzx, r12.wwww, r19.xyzx + ishl r12.w, r13.x, l(2) + mul r23.xyzw, r19.yyyy, cb6[r12.w + 65].xyzw + mad r23.xyzw, cb6[r12.w + 64].xyzw, r19.xxxx, r23.xyzw + mad r23.xyzw, cb6[r12.w + 66].xyzw, r19.zzzz, r23.xyzw + add r23.xyzw, r23.xyzw, cb6[r12.w + 67].xyzw + div r19.xyz, r23.xyzx, r23.wwww + ge r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ge r24.xyz, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r25.xy, -cb6[r13.x + 344].xyxx, cb6[r13.x + 344].zwzz + mad r19.xy, r19.xyxx, r25.xyxx, cb6[r13.x + 344].xyxx + mad r25.xy, r19.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r19.xy, r19.xyxx, cb6[400].zwzz, -r25.xyxx + add r26.xyzw, r19.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r19.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r19.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r19.xyxx + mul r30.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xy, -r26.xzxx, r26.xzxx, r25.zwzz + add r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r30.z, r31.x + mov r30.w, r19.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r19.y + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.xyzx, cb6[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyw, r28.xyxz, cb6[400].yyyy + mul r30.xyzw, r26.zwyz, r27.xxxy + mov r29.w, r28.x + mad r31.xyzw, r25.xyxy, cb6[400].xyxy, r29.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r12.w, r31.xyxx, t11.xxxx, s4, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.zwzz, t11.xxxx, s4, r19.z + mul r16.w, r16.w, r30.y + mad r12.w, r30.x, r12.w, r16.w + mad r19.xy, r25.xyxx, cb6[400].xyxx, r29.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r19.xyxx, t11.xxxx, s4, r19.z + mad r12.w, r30.z, r16.w, r12.w + mov r28.z, r29.x + mad r31.xyzw, r25.xyxy, cb6[400].xyxy, r28.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.xyxx, t11.xxxx, s4, r19.z + mad r12.w, r30.w, r16.w, r12.w + mul r30.xyzw, r26.xyzw, r27.yyzz + mov r28.xz, r29.yyzy + mad r29.xyzw, r25.xyxy, cb6[400].xyxy, r28.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r29.xyxx, t11.xxxx, s4, r19.z + mad r12.w, r30.x, r16.w, r12.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r29.zwzz, t11.xxxx, s4, r19.z + mad r12.w, r30.y, r16.w, r12.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.zwzz, t11.xxxx, s4, r19.z + mad r12.w, r30.z, r16.w, r12.w + ige r16.w, r13.x, l(0) + or r23.xyz, r23.xyzx, r24.xyzx + or r17.w, r23.y, r23.x + or r17.w, r23.z, r17.w + and r18.w, r19.z, l(0x7fffffff) + ult r18.w, l(0x7f800000), r18.w + or r17.w, r17.w, r18.w + mad r23.xyzw, r25.xyxy, cb6[400].xyxy, r28.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r23.xyxx, t11.xxxx, s4, r19.z + mad r12.w, r30.w, r18.w, r12.w + mul r18.w, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r23.zwzz, t11.xxxx, s4, r19.z + mad r12.w, r18.w, r19.x, r12.w + add r12.w, r12.w, l(-1.000000) + mad r12.w, cb6[r13.x + 288].w, r12.w, l(1.000000) + movc r12.w, r17.w, l(1.000000), r12.w + movc r12.w, r16.w, r12.w, l(1.000000) + else + mov r12.w, l(1.000000) + endif + else + mov r12.w, l(1.000000) + endif + mul r11.y, r11.y, r12.w + mov r20.xyw, l(0,0,0,0) + endif + add r22.xyz, r20.xywx, r22.xyzx + mov r11.z, r15.w + endloop + mov r6.w, r11.y + add r21.xyz, r21.xyzx, r22.xyzx + iadd r7.w, r7.w, l(1) +endloop +// === Glass Fix: Reduce clustered lights and overall brightness === +lt r32.x, l(0.500000), cb13[14].x +if_nz r32.x + mul r21.xyz, r21.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r2.xyz, r2.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) +endif +dp3 r0.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xzw, -r0.xxxx, r2.xxyz +mad r0.xyz, cb0[184].wwww, r1.xzwx, r0.xxxx +mad r1.xzw, r21.xxyz, r6.wwww, r16.xxyz +mul r2.xyz, cb2[20].zzzz, cb2[21].xyzx +add r2.w, -r10.w, l(1.000000) +add r3.x, l(1.000000), -cb2[20].y +max r3.x, r3.x, l(0.010000) +div_sat r2.w, r2.w, r3.x +mad r2.xyz, r8.xyzx, r2.xyzx, -r1.xzwx +mad r1.xzw, r2.wwww, r2.xxyz, r1.xxzw +mad r0.xyz, r0.xyzx, cb0[184].xyzx, r1.xzwx +mad r1.x, r1.y, cb0[156].w, cb0[157].w +mad r1.z, r0.w, cb0[154].w, -cb0[153].w +max r1.xz, r1.xxzx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.w, r1.x, l(-1.442695) +exp r1.w, r1.w +add r1.w, -r1.w, l(1.000000) +div r1.x, r1.w, r1.x +mad r1.w, r1.y, cb0[156].w, cb0[158].w +mul r1.w, r1.w, l(1.442695) +exp r1.w, r1.w +mul r1.x, r1.w, r1.x +mul r1.x, r1.x, -r1.z +mul r1.xzw, r1.xxxx, cb0[155].xxyz +mul r1.xzw, r1.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r1.xzw, r1.xxzw +dp3 r2.x, -r5.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r2.xxxx, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r14.w, l(7), cb0[108].w + imad r3.xyz, r14.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.z, r3.y, r3.z, r3.x + imad r2.w, r3.z, r2.z, r3.y + imad r3.x, r2.z, r2.w, r3.z + imad r6.x, r2.w, r3.x, r2.z + dp3 r2.z, -r5.xyzx, -r4.xyzx + add r3.y, r1.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.z + mul r2.z, r2.z, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r3.w, r2.z, r3.z + mad r4.x, r3.w, r3.y, cb0[44].y + mad r3.y, -r3.w, r3.y, r3.y + mul r3.w, r3.y, cb0[159].z + mul r3.y, r3.y, cb0[162].x + max r3.yw, r3.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r4.y, r4.x, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r3.w| + exp r4.w, -r3.w + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r4.z, r4.w, r3.w + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.z, l(5.960464478E-08), |r3.y| + exp r4.w, -r3.y + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.y + mad r3.y, -r3.y, l(0.240226507), l(0.693147182) + movc r3.y, r4.z, r4.w, r3.y + mul r3.y, r3.y, r4.x + mad r3.y, r4.y, r3.w, r3.y + mad r2.z, -r2.z, r3.z, l(1.000000) + mul r2.z, r0.w, r2.z + mul r2.z, r2.z, r3.y + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r2.z, r2.z, r3.y + add r2.z, r3.z, r2.z + min r2.z, r2.z, l(1.000000) + imad r6.y, r3.x, r6.x, r2.w + ushr r3.xy, r6.xyxx, l(16, 16, 0, 0) + utof r3.xy, r3.xyxx + mad r3.xy, r3.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb0[167].wwww, r13.zwzz + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r2.w, r14.z, cb0[164].x, cb0[164].y + log r2.w, r2.w + mul r2.w, r2.w, cb0[164].z + div r3.z, r2.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t22.xyzw, s1, l(0.000000) + add r2.w, r14.z, -cb0[166].z + mul_sat r2.w, r2.w, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r2.wwww, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r2.w, -r2.z, l(1.000000) + mul r4.xyz, r2.wwww, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.z, r2.z, r3.w +else + add r1.y, r1.y, -cb0[44].y + mul r2.w, r1.y, cb0[159].z + max r2.w, r2.w, l(-127.000000) + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r2.w| + exp r4.y, -r2.w + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r4.x, r4.y, r2.w + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r2.w, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r2.z, r0.w, l(1.000000) + add r0.w, -r2.z, l(1.000000) + mul r3.xyz, r0.wwww, cb0[161].xyzx +endif +mul r4.xyz, r1.xzwx, r2.zzzz +mad r0.w, r2.x, r2.x, l(1.000000) +mul r0.w, r0.w, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.wwww, cb0[158].xyzx +mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r1.y, r2.y, l(12.566371) +sqrt r2.x, r2.y +mul r1.y, r1.y, r2.x +max r1.y, r1.y, l(0.001000) +div r0.w, r0.w, r1.y +mad_sat r2.xyw, cb0[157].xyxz, r0.wwww, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx +// === Glass Transparency Fix === +lt r30.x, l(0.500000), cb13[14].x +if_nz r30.x + // Boost transmittance: lerp(r4, 1, 0.5) + add r30.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r30.xyz, r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r4.xyzx + // Reduce inscatter intensity + mul r31.xyz, r1.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + // Modified fog blend + mad r10.xyz, r0.xyzx, r30.xyzx, r31.xyzx +else + // Original fog blend + mad r10.xyz, r0.xyzx, r4.xyzx, r1.xyzx +endif +mul r0.xy, r12.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r0.xy, |r0.xyxx| +sqrt r0.xy, r0.xyxx +mov r12.z, -r12.y +lt r0.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xxxz +lt r1.xy, r12.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r0.zw, -r0.zzzw, r1.xxxy +itof r0.zw, r0.zzzw +mul r0.xy, r0.zwzz, r0.xyxx +mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +ishl r0.z, v7.x, l(4) +max r0.z, cb1[r0.z + 4].z, cb1[r0.z + 4].y +add r0.z, r0.z, l(-0.100000024) +lt r0.w, l(0.000000), r0.z +lt r0.z, r0.z, l(0.000000) +iadd r0.z, -r0.w, r0.z +itof r0.z, r0.z +mov_sat r0.z, r0.z +add r1.xy, -r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.zzzz, r1.xyxx, r0.xyxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r10.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r10.w, r0.x +max r0.x, r10.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +// === Glass Highlight Compression === +lt r30.x, l(0.500000), cb13[14].x +if_nz r30.x + // Compute luminance + dp3 r30.y, r10.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) + // Soft compress if luminance > 0.5 + lt r30.z, l(0.500000), r30.y + if_nz r30.z + // compression = 0.5 + 1.5 * (1 - exp(-(luma - 0.5) / 1.5)) + add r30.w, r30.y, l(-0.500000) + mul r30.w, r30.w, l(-0.666667) + exp r30.w, r30.w + add r30.w, -r30.w, l(1.000000) + mad r30.w, r30.w, l(1.500000), l(0.500000) + // scale = compression / luma + max r31.x, r30.y, l(0.001000) + div r31.x, r30.w, r31.x + mul r10.xyz, r10.xyzx, r31.xxxx + endif +endif +mov o0.xyzw, r10.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0x754218B1.ps_5_0_original_backup.asm b/src/games/endfield/glass/0x754218B1.ps_5_0_original_backup.asm new file mode 100644 index 000000000..944253237 --- /dev/null +++ b/src/games/endfield/glass/0x754218B1.ps_5_0_original_backup.asm @@ -0,0 +1,1772 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Wed Feb 4 07:24:28 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4085], dynamicIndexed +dcl_constantbuffer CB2[24], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_default +dcl_sampler s4, mode_comparison +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_structured t0, 4 +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_texture2darray (float,float,float,float) t4 +dcl_resource_texture2d (float,float,float,float) t5 +dcl_resource_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture2d (float,float,float,float) t14 +dcl_resource_texture2d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture3d (float,float,float,float) t21 +dcl_resource_texture3d (float,float,float,float) t22 +dcl_resource_texture2d (float,float,float,float) t23 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 37 +mul r0.xy, v0.xyxx, cb0[82].zwzz +mad r0.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r1.xyzw, -r0.wwww, cb0[25].xyzw +mad r1.xyzw, cb0[24].xyzw, r0.zzzz, r1.xyzw +mad r1.xyzw, cb0[26].xyzw, v0.zzzz, r1.xyzw +add r1.xyzw, r1.xyzw, cb0[27].xyzw +div r1.xyz, r1.xyzx, r1.wwww +mul r0.z, r1.y, cb0[1].z +mad r0.z, cb0[0].z, r1.x, r0.z +mad r0.z, cb0[2].z, r1.z, r0.z +add r0.z, r0.z, cb0[3].z +mov r2.z, |r0.z| +lt r0.z, l(0.000000), v3.w +movc r0.z, r0.z, l(1.000000), l(-1.000000) +eq r0.w, l(0.000000), cb0[86].w +add r3.xyz, -r1.xyzx, cb0[44].xyzx +mov r4.x, cb0[0].z +mov r4.y, cb0[1].z +mov r4.z, cb0[2].z +movc r3.xyz, r0.wwww, r3.xyzx, r4.xyzx +dp3 r0.w, r3.xyzx, r3.xyzx +max r2.w, r0.w, l(9.999999939E-09) +rsq r2.w, r2.w +mul r5.xyz, r2.wwww, r3.xyzx +mul r0.w, r0.w, r2.w +add r6.xy, -v1.xyxx, v1.zwzz +mad r6.zw, cb2[3].xxxx, r6.xxxy, v1.xxxy +mad r6.zw, r6.zzzw, cb2[12].xxxy, cb2[12].zzzw +mad r6.xy, cb2[2].wwww, r6.xyxx, v1.xyxx +mad r6.xy, r6.xyxx, cb2[11].xyxx, cb2[11].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r7.xyzw, r6.xyxx, t5.xyzw, s5, cb0[108].x +add r3.w, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r6.zwzz, t6.xywz, s6, r3.w +mul r8.x, r8.x, r8.z +mad r6.xy, r8.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r8.xy, r6.xyxx, cb2[0].xxxx +sample_b_indexable(texture2d)(float,float,float,float) r9.xyz, r6.zwzz, t7.xyzw, s7, cb0[108].x +mul r7.xyzw, r7.xyzw, cb2[8].xyzw +mul_sat r7.xyz, r7.xyzx, cb2[4].zzzz +add r10.xyz, -r7.xyzx, cb2[8].xyzx +mad r7.xyz, cb2[4].xxxx, r10.xyzx, r7.xyzx +mad r3.w, r7.w, v4.x, -r7.w +mad r10.w, cb2[23].x, r3.w, r7.w +add r3.w, -cb2[0].z, cb2[0].w +mad r11.w, r9.y, r3.w, cb2[0].z +add_sat r3.w, l(-1.000000), cb2[3].w +add r4.w, -r9.x, cb2[4].y +mad r3.w, r3.w, r4.w, r9.x +mul r9.xyw, v2.zxzy, v3.yzyx +mad r9.xyw, v2.yzyx, v3.zxzy, -r9.xyxw +mul r9.xyw, r0.zzzz, r9.xyxw +mul r8.yzw, r8.yyyy, r9.xxyw +mad r8.xyz, v3.xyzx, r8.xxxx, r8.yzwy +dp2 r0.z, r6.xyxx, r6.xyxx +min r0.z, r0.z, l(1.000000) +add r0.z, -r0.z, l(1.000000) +sqrt r0.z, r0.z +max r0.z, r0.z, l(1.000000017E-16) +lt r4.w, l(0.000000), cb2[1].w +movc r4.w, r4.w, l(-1.000000), l(1.000000) +movc r4.w, v8.x, l(1.000000), r4.w +mul r0.z, r0.z, r4.w +mad r6.xyz, v2.xyzx, r0.zzzz, r8.xyzx +dp3 r0.z, r6.xyzx, r6.xyzx +rsq r0.z, r0.z +mul r6.xyz, r0.zzzz, r6.xyzx +dp3 r0.z, r6.xyzx, r5.xyzx +dp3 r4.w, -r5.xyzx, r6.xyzx +mul r5.w, cb2[19].z, cb2[19].z +mad r7.w, -r4.w, r4.w, l(1.000000) +mad r5.w, -r5.w, r7.w, l(1.000000) +sqrt r7.w, r5.w +mad r7.w, cb2[19].z, r4.w, r7.w +ge r5.w, r5.w, l(0.000000) +mul r8.xyz, r6.xyzx, r7.wwww +mad r8.xyz, cb2[19].zzzz, -r5.xyzx, -r8.xyzx +and r8.xyz, r5.wwww, r8.xyzx +mul r5.w, r0.z, v0.z +max r5.w, r5.w, l(0.500000) +div r5.w, cb2[19].w, r5.w +add r5.w, r5.w, -cb2[19].w +mad r5.w, cb2[20].x, r5.w, cb2[19].w +mul r8.xyz, r5.wwww, r8.xyzx +mul r8.yw, r8.yyyy, cb0[1].xxxy +mad r8.xy, cb0[0].xyxx, r8.xxxx, r8.ywyy +mad r8.xy, cb0[2].xyxx, r8.zzzz, r8.xyxx +mad r8.zw, v1.xxxy, cb2[22].xxxy, cb2[22].zzzw +sample_b_indexable(texture2d)(float,float,float,float) r8.zw, r8.zwzz, t9.zwxy, s8, cb0[108].x +mad r8.zw, r8.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mad r8.zw, r8.zzzw, cb2[19].yyyy, -r8.xxxy +mad r8.xy, cb2[19].xxxx, r8.zwzz, r8.xyxx +mad r8.zw, v0.xxxy, cb0[82].zzzw, r8.xxxy +mul r8.xy, r8.xyxx, l(0.250000, 0.250000, 0.000000, 0.000000) +mad r9.xy, v0.xyxx, cb0[82].zwzz, r8.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r5.w, r8.zwzz, t1.yzwx, s0, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r7.w, r9.xyxx, t1.yzwx, s0, cb0[108].x +mad r7.w, cb0[84].z, r7.w, cb0[84].w +div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w +ge r7.w, r7.w, r2.z +and r7.w, r7.w, l(0x3f800000) +mad r8.xy, r7.wwww, r8.xyxx, r0.xyxx +mad r5.w, cb0[84].z, r5.w, cb0[84].w +div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +ge r5.w, r5.w, r2.z +and r5.w, r5.w, l(0x3f800000) +add r8.zw, -r8.xxxy, r8.zzzw +mad r8.xy, r5.wwww, r8.zwzz, r8.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r8.xyxx, t8.xyzw, s9, cb0[108].x +max r5.w, v5.z, l(9.999999939E-09) +div r9.xy, v5.xyxx, r5.wwww +max r5.w, v6.z, l(9.999999939E-09) +div r12.xy, v6.xyxx, r5.wwww +add r12.xy, r9.xyxx, -r12.xyxx +mul r5.w, l(0.080000), cb2[0].y +mad r9.xyw, -r7.xyxz, r3.wwww, r7.xyxz +mad r5.w, -r5.w, r3.w, r5.w +mad r7.xyz, r7.xyzx, r3.wwww, r5.wwww +mad r13.xyzw, r11.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r3.w, r13.x, r13.x +max r0.z, r0.z, l(0.000000) +mul r5.w, r0.z, l(-9.280000) +exp r5.w, r5.w +min r3.w, r3.w, r5.w +mad r3.w, r3.w, r13.x, r13.y +mad r13.xy, r3.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +eq r3.w, l(1.000000), cb0[113].y +mul r14.xyzw, r1.yyyy, cb0[241].xyzw +mad r14.xyzw, cb0[240].xyzw, r1.xxxx, r14.xyzw +mad r14.xyzw, cb0[242].xyzw, r1.zzzz, r14.xyzw +add r14.xyzw, r14.xyzw, cb0[243].xyzw +div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r14.w +mul r14.xyz, r14.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r14.xyz, r5.wwww, r14.xyzx +mad_sat r13.zw, r14.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) +mul r13.zw, r13.zzzw, cb0[82].xxxy +ftou r15.xy, r13.zwzz +mad r5.w, cb0[84].z, r14.z, cb0[84].w +div r15.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +ftou r2.xy, v0.xyxx +movc r14.xyz, r3.wwww, r15.xyzx, r2.xyzx +mad r2.xyz, r6.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r1.xyzx +mad r15.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r15.xyz, r2.xzyx, -r15.xyzx +max r3.w, |r15.y|, |r15.x| +add r3.w, r3.w, l(-464.000000) +mul_sat r3.w, r3.w, l(0.031250) +add r5.w, |r15.z|, l(-208.000000) +mul_sat r5.w, r5.w, l(0.031250) +max r3.w, r3.w, r5.w +ne r5.w, l(0.000000), cb0[210].w +lt r7.w, r3.w, l(1.000000) +and r5.w, r5.w, r7.w +if_nz r5.w + mad r15.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r15.xyz, r2.xzyx, -r15.xyzx + max r5.w, |r15.y|, |r15.x| + add r5.w, r5.w, l(-29.000000) + mul_sat r5.w, r5.w, l(0.500000) + add r7.w, |r15.z|, l(-13.000000) + mul_sat r7.w, r7.w, l(0.500000) + max r5.w, r5.w, r7.w + lt r7.w, r5.w, l(1.000000) + if_nz r7.w + mad r15.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r15.xyzx, cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r16.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r15.xyzx, t16.xyzw, s2, l(0.000000) + add r7.w, -r5.w, l(1.000000) + mul r8.w, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r8.w, r8.w, r15.y + min r8.w, r12.w, r8.w + mul r15.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t17.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r16.xxxx, r17.xyzx + add r17.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t17.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r16.yyyy, r17.xyzx + add r15.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t17.xyzw, s1, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r15.xyz, r16.zzzz, r15.xyzx + mad r8.w, r17.w, r7.w, r3.w + mov r15.w, r16.z + mul r15.xyzw, r7.wwww, r15.xyzw + mov r19.w, r16.y + mul r17.xyzw, r7.wwww, r19.xyzw + mov r18.w, r16.x + mul r16.xyzw, r7.wwww, r18.xyzw + else + mov r15.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r8.w, r3.w + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r2.xzyx, -r18.xyzx + max r7.w, |r18.y|, |r18.x| + add r7.w, r7.w, l(-116.000000) + mul_sat r7.w, r7.w, l(0.125000) + add r12.w, |r18.z|, l(-52.000000) + mul_sat r12.w, r12.w, l(0.125000) + max r7.w, r7.w, r12.w + lt r12.w, r7.w, l(1.000000) + if_nz r12.w + mad r18.xyz, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r18.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r18.xyzx, t18.xyzw, s2, l(0.000000) + add r12.w, -r7.w, l(1.000000) + mul r5.w, r5.w, r12.w + mul r12.w, l(0.500000), cb0[211].y + mad r13.z, -cb0[211].y, l(0.500000), l(1.000000) + max r12.w, r12.w, r18.y + min r12.w, r13.z, r12.w + mul r18.w, r12.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t19.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.xxxx, r20.xyzx + add r20.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t19.xyzw, s1, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r19.yyyy, r20.xyzx + add r18.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t19.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.zzzz, r18.xyzx + mad r8.w, r20.w, r5.w, r8.w + mov r18.w, r19.z + mad r15.xyzw, r18.xyzw, r5.wwww, r15.xyzw + mov r22.w, r19.y + mad r17.xyzw, r22.xyzw, r5.wwww, r17.xyzw + mov r21.w, r19.x + mad r16.xyzw, r21.xyzw, r5.wwww, r16.xyzw + endif + lt r5.w, l(0.000000), r7.w + if_nz r5.w + mad r2.xyz, r2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r2.xyzx, cb0[211].xyzx + mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r2.xyz, r2.xyzx, cb0[211].xyzx, -r18.xyzx + mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r2.xyz, r19.xyzx, r2.xyzx + min r20.xyz, r18.xyzx, r2.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r20.xyzx, t20.yzwx, s2, l(0.000000) + add r2.x, -r3.w, l(1.000000) + mul r2.x, r2.x, r7.w + max r2.y, r19.y, r20.y + min r2.y, r18.y, r2.y + mul r20.w, r2.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r20.xwzx, t21.xyzw, s1, l(0.000000) + add r19.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t21.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.yyyy, r19.xyzx + mov r19.w, r21.y + mad r15.xyzw, r19.xyzw, r2.xxxx, r15.xyzw + add r19.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t21.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r21.xxxx, r19.xyzx + mov r19.w, r21.x + mad r17.xyzw, r19.xyzw, r2.xxxx, r17.xyzw + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r21.wwww, r18.xyzx + mad r16.xyzw, r21.xyzw, r2.xxxx, r16.xyzw + mad r8.w, r18.w, r2.x, r8.w + endif + mad_sat r2.x, r8.w, l(2.000000), l(-1.000000) + add r18.x, -r3.w, r2.x + add r2.x, r3.w, r2.x + mul r18.y, r2.x, l(0.500000) +else + mov r15.xyzw, l(0,0,0,0) + mov r17.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r18.xy, l(0,1.000000,0,0) +endif +mul r19.xyzw, r18.yyyx, cb0[213].xyzw +mad r19.y, r19.w, l(0.500000), r19.y +mul r2.xy, r18.yxyy, cb0[213].wyww +mad r19.w, r2.y, l(0.375000), r2.x +add r16.xyzw, r16.xyzw, r19.xyzw +mul r19.xyzw, r18.yyyx, cb0[214].xyzw +mad r19.y, r19.w, l(0.500000), r19.y +mul r2.xy, r18.yxyy, cb0[214].wyww +mad r19.w, r2.y, l(0.375000), r2.x +add r17.xyzw, r17.xyzw, r19.xyzw +mul r19.xyzw, r18.yyyx, cb0[215].xyzw +mad r19.y, r19.w, l(0.500000), r19.y +mul r2.xy, r18.yxyy, cb0[215].wyww +mad r19.w, r2.y, l(0.375000), r2.x +add r15.xyzw, r15.xyzw, r19.xyzw +dp3 r2.x, r16.xyzx, r6.xyzx +add r2.x, r16.w, r2.x +max r2.x, r2.x, l(0.000000) +dp3 r3.w, r17.xyzx, r6.xyzx +add r3.w, r17.w, r3.w +max r2.y, r3.w, l(0.000000) +dp3 r3.w, r15.xyzx, r6.xyzx +add r3.w, r15.w, r3.w +max r2.z, r3.w, l(0.000000) +add r3.w, r4.w, r4.w +mad r15.xyz, r6.xyzx, -r3.wwww, -r5.xyzx +add r3.w, l(-1.000000), cb0[113].x +max r4.w, r11.w, l(0.001000) +log r4.w, r4.w +mad r4.w, -r4.w, l(1.200000), l(1.000000) +add r3.w, r3.w, -r4.w +utof r13.zw, r14.xxxy +mul r16.xy, r13.zwzz, cb3[0].wwww +round_ni r16.xy, r16.xyxx +add r4.w, r14.z, -cb3[2].y +round_ni r4.w, r4.w +add r5.w, l(-1.000000), cb3[1].x +max r7.w, r4.w, l(0.000000) +min r5.w, r5.w, r7.w +ge r4.w, r5.w, r4.w +mad r7.w, r16.y, cb3[0].x, r16.x +ftoi r7.w, r7.w +iadd r7.w, r7.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r7.w, r7.w, l(0), t0.xxxx +ftoi r5.w, r5.w +iadd r5.w, r5.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.w, r5.w, l(0), t0.xxxx +and r5.w, r5.w, r7.w +and r4.w, r4.w, r5.w +mul r16.xyz, r2.xyzx, cb0[111].xxxx +dp3 r5.w, r16.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r1.w, l(1.000000) +mov r6.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r7.w, l(1.000000) +mov r8.w, r4.w +mov r12.w, l(0) +loop + lt r15.w, l(0.010000), r7.w + ine r16.w, r8.w, l(0) + and r16.w, r15.w, r16.w + if_nz r16.w + firstbit_lo r16.w, r8.w + ishl r17.x, l(1), r16.w + xor r8.w, r8.w, r17.x + ishl r16.w, r16.w, l(3) + dp4 r17.x, cb3[r16.w + 6].xyzw, r1.xyzw + dp4 r17.y, cb3[r16.w + 7].xyzw, r1.xyzw + dp4 r17.z, cb3[r16.w + 8].xyzw, r1.xyzw + ge r18.xyz, cb3[r16.w + 5].xyzx, |r17.xyzx| + and r17.w, r18.y, r18.x + and r17.w, r18.z, r17.w + if_nz r17.w + mul r17.w, l(0.100000), cb3[r16.w + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb3[r16.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb3[r16.w + 9].xyzx + eq r18.w, l(1.000000), cb3[r16.w + 10].x + if_nz r18.w + dp3 r20.x, cb3[r16.w + 6].xyzx, r15.xyzx + dp3 r20.y, cb3[r16.w + 7].xyzx, r15.xyzx + dp3 r20.z, cb3[r16.w + 8].xyzx, r15.xyzx + add r21.xyz, -r17.xyzx, cb3[r16.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb3[r16.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r18.w, r21.y, r21.x + min r18.w, r21.z, r18.w + mad r17.xyz, r20.xyzx, r18.wwww, r17.xyzx + else + mov r17.xyz, r15.xyzx + endif + dp3 r18.w, r17.xyzx, r17.xyzx + rsq r18.w, r18.w + mul r17.xyz, r17.xyzx, r18.wwww + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r18.w, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r18.wwww + lt r17.z, r17.z, l(0.000000) + add r20.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.xy, r20.zwzz, r20.xyxx + movc r17.xy, r17.zzzz, r20.xyxx, r17.xyxx + dp4 r17.z, cb3[r16.w + 4].xyzw, r6.xyzw + max r17.z, r17.z, l(0.000000) + max r17.z, r17.z, l(0.000100) + min r18.w, r19.z, r19.y + min r18.w, r18.w, r19.x + add r18.x, r18.y, r18.x + mad r18.x, r18.z, r18.z, r18.x + mad r17.w, r17.w, r17.w, -r18.x + mul r17.w, r17.w, cb3[r16.w + 9].x + mul r17.w, r17.w, cb3[r16.w + 9].x + add r18.x, l(1.000000), -cb3[r16.w + 10].y + mul r17.w, r17.w, r18.x + mul r17.w, r17.w, l(100.000000) + mad_sat r17.w, r18.w, cb3[r16.w + 10].y, r17.w + mul r18.x, r17.w, cb3[r16.w + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r19.xy, r17.xyxx, cb3[1].wwww, cb3[2].wwww + mov r19.z, cb3[r16.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r18.yzw, r19.xyzx, t4.wxyz, s3, r3.w + mul r18.yzw, r18.yyzw, cb3[r16.w + 9].wwww + div r17.x, r5.w, r17.z + min r17.x, |r17.x|, l(1.000000) + mad r17.x, r17.x, l(2.000000), r5.w + add r17.y, r17.z, l(2.000000) + div r17.x, r17.x, r17.y + add r17.x, r17.x, l(-1.000000) + mad r17.x, r17.x, cb0[112].w, l(1.000000) + mul r17.xyz, r17.xxxx, r18.yzwy + mul r17.xyz, r18.xxxx, r17.xyzx + mad r16.xyz, r17.xyzx, r7.wwww, r16.xyzx + mad r16.w, -r17.w, cb3[r16.w + 10].w, l(1.000000) + mul r7.w, r7.w, r16.w + endif + mov r12.w, l(-1) + continue + else + mov r12.w, r15.w + break + endif + mov r12.w, r15.w +endloop +if_nz r12.w + dp3 r1.w, r15.xyzx, r15.xyzx + rsq r1.w, r1.w + mul r17.xyz, r1.wwww, r15.xyzx + lt r18.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r19.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r18.xyz, -r18.xyzx, r19.xyzx + itof r18.xyz, r18.xyzx + dp3 r1.w, r17.xyzx, r18.xyzx + div r17.xyz, r17.xyzx, r1.wwww + lt r1.w, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r18.xxxy + movc r17.xy, r1.wwww, r17.zwzz, r17.xyxx + mov r6.w, l(1.000000) + dp4 r1.w, cb3[3].xyzw, r6.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r17.xyxx, cb3[1].wwww, cb3[2].wwww + mov r17.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t4.xyzw, s3, r3.w + div r3.w, r5.w, r1.w + min r3.w, |r3.w|, l(1.000000) + mad r3.w, r3.w, l(2.000000), r5.w + add r1.w, r1.w, l(2.000000) + div r1.w, r3.w, r1.w + add r1.w, r1.w, l(-1.000000) + mad r1.w, r1.w, cb0[112].w, l(1.000000) + mul r17.xyz, r1.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r7.wwww, r16.xyzx +endif +mul r16.xyz, r16.xyzx, cb0[112].zzzz +mul r16.xyz, r16.xyzx, cb0[111].yyyy +ne r1.w, l(0.000000), cb0[112].y +if_nz r1.w + sample_b_indexable(texture2d)(float,float,float,float) r1.w, r0.xyxx, t3.yzwx, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r17.xyz, r0.xyxx, t2.xyzw, s1, cb0[108].x + add r0.x, -r1.w, l(1.000000) + mul r18.xyz, r0.xxxx, r16.xyzx + mad r16.xyz, r17.xyzx, r1.wwww, r18.xyzx +endif +mul r2.xyz, r9.xywx, r2.xyzx +add r0.x, r9.z, l(-1.000000) +mad r0.x, cb2[1].x, r0.x, l(1.000000) +mul r2.xyz, r0.xxxx, r2.xyzx +mul_sat r0.x, r7.y, l(50.000000) +mul r0.x, r13.y, r0.x +mad r17.xyz, r7.xyzx, r13.xxxx, r0.xxxx +mul r16.xyz, r16.xyzx, r17.xyzx +mad r2.xyz, r2.xyzx, cb0[111].xxxx, r16.xyzx +lt r0.x, cb6[35].w, l(0.990000) +if_nz r0.x + ftoi r0.x, cb6[35].x + ieq r0.y, r0.x, l(2) + movc r16.xyz, r0.yyyy, cb6[20].xyzx, cb0[44].xyzx + add r16.xyz, r1.xyzx, -r16.xyzx + dp3 r0.y, r16.xyzx, r16.xyzx + add r0.y, -r0.y, cb6[34].w + mul_sat r0.y, r0.y, cb6[34].z + lt r1.w, l(0.000000), r0.y + if_nz r1.w + ilt r0.x, l(0), r0.x + if_nz r0.x + add r16.xyz, r1.xyzx, -cb6[20].xyzx + add r17.xyz, r1.xyzx, -cb6[21].xyzx + add r18.xyz, r1.xyzx, -cb6[22].xyzx + add r19.xyz, r1.xyzx, -cb6[23].xyzx + dp3 r16.x, r16.xyzx, r16.xyzx + dp3 r16.y, r17.xyzx, r17.xyzx + dp3 r16.z, r18.xyzx, r18.xyzx + dp3 r16.w, r19.xyzx, r19.xyzx + lt r17.x, r16.x, cb6[20].w + lt r17.y, r16.y, cb6[21].w + lt r17.z, r16.z, cb6[22].w + lt r17.w, r16.w, cb6[23].w + and r18.xyzw, r17.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r17.xyz, r17.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r17.xyz, r17.xyzx, r18.yzwy + max r18.yzw, r17.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.x, r18.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.x, -r0.x, l(4.000000) + max r0.x, r0.x, l(0.000000) + min r0.x, r0.x, l(3.000000) + add r1.w, r0.x, l(1.000000) + min r1.w, r1.w, l(3.000000) + ftou r1.w, r1.w + dp3 r3.w, r16.yzwy, icb[r1.w + 0].yzwy + div r1.w, r3.w, cb6[r1.w + 20].w + ge r3.w, r1.w, l(0.000000) + ge r1.w, l(1.000000), r1.w + and r1.w, r1.w, r3.w + if_nz r1.w + ftou r1.w, r0.x + add r13.xy, r13.zwzz, l(2.083000, 4.867000, 0.000000, 0.000000) + dp2 r3.w, r13.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r3.w, r3.w + mul r3.w, r3.w, l(52.982918) + frc r3.w, r3.w + dp4 r4.w, r16.xyzw, icb[r1.w + 0].xyzw + div r1.w, r4.w, cb6[r1.w + 20].w + sqrt r1.w, r1.w + add r1.w, r1.w, l(-0.900000) + mul r1.w, r1.w, l(12.000000) + ge r1.w, r1.w, r3.w + and r1.w, r1.w, l(0x3f800000) + add r0.x, r0.x, r1.w + endif + dp3 r1.w, r6.xyzx, cb5[0].xyzx + max r1.w, r1.w, l(0.000000) + min r1.w, r1.w, l(0.900000) + add r1.w, -r1.w, l(1.000000) + ftou r3.w, r0.x + ishl r4.w, r3.w, l(2) + mul r13.xy, r1.wwww, cb6[r3.w + 24].xyxx + max r1.w, r13.x, l(0.000000) + mad r16.xyz, -cb5[0].xyzx, r1.wwww, r1.xyzx + mad r16.xyz, r6.xyzx, r13.yyyy, r16.xyzx + mul r17.xyz, r16.yyyy, cb6[r4.w + 1].xyzx + mad r16.xyw, cb6[r4.w + 0].xyxz, r16.xxxx, r17.xyxz + mad r16.xyz, cb6[r4.w + 2].xyzx, r16.zzzz, r16.xywx + add r16.xyz, r16.xyzx, cb6[r4.w + 3].xyzx + ge r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + ge r18.xyz, r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r17.xyz, r17.xyzx, r18.xyzx + or r1.w, r17.y, r17.x + or r1.w, r17.z, r1.w + and r3.w, r16.z, l(0x7fffffff) + ult r3.w, l(0x7f800000), r3.w + or r17.z, r1.w, r3.w + ftoi r0.x, r0.x + mad r13.xy, r16.xyxx, cb6[r0.x + 28].zwzz, cb6[r0.x + 28].xyxx + mad r16.xy, r13.xyxx, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r16.xy, r16.xyxx + mad r13.xy, r13.xyxx, cb6[32].zwzz, -r16.xyxx + add r18.xyzw, r13.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r19.xw, r18.xxxz, r18.xxxz + min r18.xz, r13.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r20.xy, r13.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r20.zw, r19.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r13.xxxy + add r13.xy, -r13.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mad r13.xy, -r18.xzxx, r18.xzxx, r13.xyxx + mad r18.xy, -r20.xyxx, r20.xyxx, r18.ywyy + mov r21.x, r20.z + mov r21.y, r13.x + mov r21.z, r18.x + mov r21.w, r19.x + mul r21.xyzw, r21.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r19.x, r20.w + mov r19.y, r13.y + mov r19.z, r18.y + mul r18.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r19.xyzw, r21.ywyw, r21.xzxz + add r20.xyzw, r18.yyww, r18.xxzz + div r13.xy, r21.ywyy, r19.zwzz + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r21.xy, r13.xyxx, cb6[32].xxxx + div r13.xy, r18.ywyy, r20.ywyy + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r21.zw, r13.xxxy, cb6[32].yyyy + mul r18.xyzw, r19.xyzw, r20.xyzw + mad r19.xyzw, r16.xyxy, cb6[32].xyxy, r21.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r19.xyxx, t10.xxxx, s4, r16.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t10.xxxx, s4, r16.z + mul r1.w, r1.w, r18.y + mad r0.x, r18.x, r0.x, r1.w + mad r19.xyzw, r16.xyxy, cb6[32].xyxy, r21.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.xyxx, t10.xxxx, s4, r16.z + mad r0.x, r18.z, r1.w, r0.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t10.xxxx, s4, r16.z + mad r0.x, r18.w, r1.w, r0.x + movc r17.x, r17.z, l(1.000000), r0.x + else + mov r17.xz, l(1.000000,0,0,0) + endif + else + mov r17.xz, l(1.000000,0,0,0) + endif + lt r0.x, r0.y, l(1.000000) + if_nz r0.x + dp3 r0.x, r6.xyzx, cb5[0].xyzx + max r0.x, r0.x, l(0.000000) + min r0.x, r0.x, l(0.900000) + add r0.x, -r0.x, l(1.000000) + mul r13.xy, r0.xxxx, cb6[584].xyxx + mad r16.xyz, -cb5[0].xyzx, r13.xxxx, r1.xyzx + mad r16.xyz, r6.xyzx, r13.yyyy, r16.xyzx + mul r13.xy, r16.yyyy, cb6[581].xyxx + mad r13.xy, cb6[580].xyxx, r16.xxxx, r13.xyxx + mad r13.xy, cb6[582].xyxx, r16.zzzz, r13.xyxx + add r13.xy, r13.xyxx, cb6[583].xyxx + lt r18.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xyxx + and r0.x, r18.y, r18.x + lt r18.xy, r13.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + and r1.w, r18.y, r18.x + and r0.x, r0.x, r1.w + if_nz r0.x + mul r0.x, r13.y, cb6[585].z + round_ni r0.x, r0.x + add r0.x, r13.x, r0.x + mul r0.x, r0.x, cb6[585].y + ftou r0.x, r0.x + umin r0.x, r0.x, l(127) + and r1.w, l(0x0000ffff), cb6[r0.x + 587].x + f16tof32 r13.x, r1.w + ge r1.w, r13.x, l(0.000000) + if_nz r1.w + mov r18.x, cb6[576].x + mov r18.y, cb6[577].x + mov r18.z, cb6[578].x + mov r18.w, cb6[r0.x + 587].y + mov r16.w, l(1.000000) + dp4 r18.x, r18.xyzw, r16.xyzw + mov r19.x, cb6[576].y + mov r19.y, cb6[577].y + mov r19.z, cb6[578].y + mov r19.w, cb6[r0.x + 587].z + dp4 r18.y, r19.xyzw, r16.xyzw + mov r19.x, cb6[576].z + mov r19.y, cb6[577].z + mov r19.z, cb6[578].z + mov r19.w, cb6[r0.x + 587].w + dp4 r1.w, r19.xyzw, r16.xyzw + lt r16.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyxx + lt r3.w, l(0.000000), r1.w + and r4.w, r16.y, r16.x + and r3.w, r3.w, r4.w + lt r16.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + lt r4.w, r1.w, l(1.000000) + and r5.w, r16.y, r16.x + and r4.w, r4.w, r5.w + and r3.w, r3.w, r4.w + if_nz r3.w + ushr r0.x, cb6[r0.x + 587].x, l(16) + f16tof32 r13.y, r0.x + mad r13.xy, r18.xyxx, cb6[584].zwzz, r13.xyxx + mad r16.xy, r13.xyxx, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r16.xy, r16.xyxx + mad r13.xy, r13.xyxx, cb6[586].zwzz, -r16.xyxx + add r18.xyzw, r13.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r19.xw, r18.xxxz, r18.xxxz + min r16.zw, r13.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r18.xz, r13.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r20.xy, r19.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r13.xyxx + add r13.xy, -r13.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mad r13.xy, -r16.zwzz, r16.zwzz, r13.xyxx + mad r16.zw, -r18.xxxz, r18.xxxz, r18.yyyw + mov r18.x, r20.x + mov r18.y, r13.x + mov r18.z, r16.z + mov r18.w, r19.x + mul r18.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r19.x, r20.y + mov r19.y, r13.y + mov r19.z, r16.w + mul r19.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r20.xyzw, r18.ywyw, r18.xzxz + add r21.xyzw, r19.yyww, r19.xxzz + div r13.xy, r18.ywyy, r20.zwzz + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r18.xy, r13.xyxx, cb6[586].xxxx + div r13.xy, r19.ywyy, r21.ywyy + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r18.zw, r13.xxxy, cb6[586].yyyy + mul r19.xyzw, r20.xyzw, r21.xyzw + mad r20.xyzw, r16.xyxy, cb6[586].xyxy, r18.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r20.xyxx, t13.xxxx, s4, r1.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r20.zwzz, t13.xxxx, s4, r1.w + mul r3.w, r3.w, r19.y + mad r0.x, r19.x, r0.x, r3.w + mad r16.xyzw, r16.xyxy, cb6[586].xyxy, r18.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r16.xyxx, t13.xxxx, s4, r1.w + mad r0.x, r19.z, r3.w, r0.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r16.zwzz, t13.xxxx, s4, r1.w + mad r17.y, r19.w, r1.w, r0.x + else + mov r17.y, l(1.000000) + endif + else + mov r17.y, l(1.000000) + endif + else + mov r17.y, l(1.000000) + endif + movc r17.x, r17.z, r17.y, r17.x + else + mov r17.y, l(1.000000) + endif + add r0.x, -r17.y, r17.x + mad r0.x, r0.y, r0.x, r17.y + lt r0.y, l(0.001000), r0.x + if_nz r0.y + add r16.xyz, r1.xyzx, -cb0[173].xyzx + mad r13.xy, cb0[176].xzxx, r16.yyyy, r16.xzxx + mul r16.yw, r13.xxxy, cb0[174].zzzz + mul r17.xy, cb0[175].xyxx, cb0[183].wwww + mad r13.xy, r13.xyxx, cb0[174].zzzz, r17.xyxx + sample_l_indexable(texture2d)(float,float,float,float) r0.y, r13.xyxx, t12.yxzw, s2, l(0.000000) + mad r13.xy, r16.ywyy, cb0[175].wwww, r17.xyxx + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r13.xyxx, t12.yzwx, s2, l(0.000000) + dp2 r3.w, r16.xzxx, r16.xzxx + sqrt r3.w, r3.w + add r4.w, -cb0[174].x, cb0[174].y + add r3.w, r3.w, -cb0[174].x + div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul_sat r3.w, r3.w, r4.w + mad r4.w, r3.w, l(-2.000000), l(3.000000) + mul r3.w, r3.w, r3.w + mul r3.w, r3.w, r4.w + add r1.w, -r0.y, r1.w + mad r0.y, r3.w, r1.w, r0.y + add r0.y, r0.y, l(-1.000000) + mad r0.y, cb0[175].z, r0.y, l(1.000000) + mul r0.x, r0.y, r0.x + endif + add r0.y, -r0.x, cb6[35].z + mad r0.x, cb6[35].w, r0.y, r0.x +else + mov r0.x, cb6[35].z +endif +min r0.x, r0.x, l(1.000000) +add r0.x, r0.x, l(-1.000000) +mad r0.x, cb6[34].x, r0.x, l(1.000000) +lt r1.w, l(0.001000), r0.x +if_nz r1.w + dp3 r1.w, -cb5[0].xyzx, r15.xyzx + mad r16.xyz, cb5[0].xyzx, r1.wwww, r15.xyzx + lt r1.w, r1.w, cb5[4].z + dp3 r3.w, r16.xyzx, r16.xyzx + max r3.w, r3.w, l(0.0000610351562) + rsq r3.w, r3.w + mul r16.xyz, r3.wwww, r16.xyzx + mul r16.xyz, r16.xyzx, cb5[4].yyyy + mad r16.xyz, -cb5[0].xyzx, cb5[4].zzzz, r16.xyzx + dp3 r3.w, r16.xyzx, r16.xyzx + rsq r3.w, r3.w + mul r16.xyz, r3.wwww, r16.xyzx + movc r16.xyz, r1.wwww, r16.xyzx, r15.xyzx + mad r17.xyz, r3.xyzx, r2.wwww, r16.xyzx + dp3 r1.w, r17.xyzx, r17.xyzx + max r1.w, r1.w, l(0.0000610351562) + rsq r1.w, r1.w + mul r17.xyz, r1.wwww, r17.xyzx + dp3_sat r11.y, r16.xyzx, r6.xyzx + dp3_sat r1.w, r6.xyzx, r17.xyzx + min r11.z, r0.z, l(1.000000) + mul r3.w, r11.w, r11.w + mul r3.w, r3.w, r3.w + mad r4.w, r1.w, r3.w, -r1.w + mad r1.w, r4.w, r1.w, l(1.000000) + dp3_sat r4.w, r5.xyzx, r17.xyzx + add r4.w, -r4.w, l(1.000000) + mul r5.w, r4.w, r4.w + mul r5.w, r5.w, r5.w + mul r6.w, r4.w, r5.w + add r7.w, -r11.w, l(1.000000) + mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) + mad r8.w, r7.w, r8.w, l(1.049970) + mad r7.w, r7.w, r8.w, l(0.409255) + min r7.w, r7.w, l(0.999000) + add r8.w, -r7.w, l(1.000000) + add r16.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r7.xyzx + mad r4.w, -r5.w, r4.w, l(1.000000) + mad r17.xyz, r7.xyzx, r4.wwww, r6.wwww + mul r1.w, r1.w, r1.w + div r1.w, r3.w, r1.w + mad r13.xy, -r11.zyzz, r3.wwww, r11.zyzz + mad r13.xy, r13.xyxx, r11.zyzz, r3.wwww + sqrt r13.xy, r13.xyxx + mul r13.xy, r11.yzyy, r13.xyxx + add r3.w, r13.y, r13.x + add r3.w, r3.w, l(0.000100) + div r3.w, l(0.500000), r3.w + mul r1.w, r1.w, r3.w + mul r17.xyz, r1.wwww, r17.xyzx + min r17.xyz, r17.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r18.xyxx, t15.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r3.w, r18.zwzz, t15.yzwx, s1, l(0.000000) + mul r1.w, r1.w, r3.w + mul r1.w, r7.w, r1.w + div r1.w, r1.w, r8.w + mul r18.xyz, r16.xyzx, r16.xyzx + mul r18.xyz, r1.wwww, r18.xyzx + mad r16.xyz, -r16.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r16.xyz, r18.xyzx, r16.xyzx + add r16.xyz, r16.xyzx, r17.xyzx + mul r16.xyz, r16.xyzx, cb5[4].xxxx + max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r16.xyz, r16.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + max r1.w, r10.w, l(0.010000) + div r16.xyz, r16.xyzx, r1.wwww + min r16.xyz, r16.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r17.xyz, r9.xywx, r11.yyyy + mad r16.xyz, r16.xyzx, r11.yyyy, r17.xyzx + mul r16.xyz, r16.xyzx, cb5[1].xyzx + mov r0.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r17.xyz, r0.xyxx, t14.xyzw, s1, cb0[108].x + add r0.x, -r0.x, l(1.000000) + mad r17.xyz, r16.xyzx, r17.xyzx, -r16.xyzx + mad r16.xyz, r0.xxxx, r17.xyzx, r16.xyzx +else + mov r16.xyz, l(0,0,0,0) +endif +mul r0.xy, r13.zwzz, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r0.xy, r0.xyxx +mad r0.x, r0.y, cb4[1].y, r0.x +mul r0.x, r0.x, l(8.000000) +ftoi r0.x, r0.x +mad r0.y, -cb0[85].y, cb4[2].w, r14.z +round_ni r0.y, r0.y +add r1.w, l(-1.000000), cb4[1].w +max r3.w, r0.y, l(0.000000) +min r1.w, r1.w, r3.w +mul r3.w, r1.w, l(8.000000) +ftoi r3.w, r3.w +ge r0.y, r1.w, r0.y +iadd r1.w, r3.w, cb0[110].y +mul r3.w, r11.w, r11.w +min r11.x, r0.z, l(1.000000) +add r0.z, -r11.w, l(1.000000) +mad r4.w, -r0.z, l(0.383026), l(-0.0761947036) +mad r4.w, r0.z, r4.w, l(1.049970) +mad r0.z, r0.z, r4.w, l(0.409255) +min r0.z, r0.z, l(0.999000) +add r4.w, -r0.z, l(1.000000) +add r17.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r17.xyz, r17.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r7.xyzx +mad r11.yz, r11.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r5.w, r11.yzyy, t15.yzwx, s1, l(0.000000) +mad r18.xyz, -r17.xyzx, r4.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r17.xyz, r17.xyzx, r17.xyzx +mov r19.w, l(1.000000) +mov r13.y, l(1.000000) +mov r20.z, r11.w +mov r21.xyz, l(0,0,0,0) +mov r6.w, l(1.000000) +mov r7.w, l(0) +loop + ilt r8.w, l(7), r7.w + breakc_nz r8.w + iadd r8.w, r0.x, r7.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.w, r8.w, l(0), t0.xxxx + iadd r9.z, r1.w, r7.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.z, r9.z, l(0), t0.xxxx + and r8.w, r8.w, r9.z + and r8.w, r0.y, r8.w + ishl r9.z, r7.w, l(5) + mov r22.xyz, l(0,0,0,0) + mov r11.y, r6.w + mov r11.z, r8.w + loop + breakc_z r11.z + firstbit_lo r12.w, r11.z + ishl r15.w, l(1), r12.w + xor r15.w, r11.z, r15.w + iadd r12.w, r9.z, r12.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r12.wwww, l(1, 3, 5, 6) + bfi r16.w, l(29), l(3), r12.w, l(7) + ftou r17.w, cb5[r23.z + 6].w + ieq r17.w, r17.w, l(1) + if_nz r17.w + add r19.xyz, r1.xyzx, -cb5[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r23.w + 6].yxzy + ushr r26.xyz, cb5[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb5[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r17.w, r19.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r18.w, r19.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r19.x, r19.xyzw, r27.xyzw + max r17.w, |r17.w|, |r18.w| + max r17.w, |r19.x|, r17.w + mad r18.w, cb5[r16.w + 6].x, l(0.500000), l(0.500000) + add r17.w, r17.w, -r18.w + mad r18.w, -cb5[r16.w + 6].x, l(0.500000), l(0.500000) + div_sat r17.w, r17.w, r18.w + add r17.w, -r17.w, l(1.000000) + mul r17.w, r17.w, r17.w + else + mov r17.w, l(1.000000) + endif + lt r18.w, l(0.500000), cb5[r23.y + 6].z + lt r19.x, r17.w, l(0.001000) + or r19.x, r18.w, r19.x + if_nz r19.x + mov r11.z, r15.w + continue + endif + ishl r19.x, r12.w, l(3) + bfi r12.w, l(29), l(3), r12.w, l(2) + lt r19.y, cb5[r19.x + 6].w, l(1.500000) + if_nz r19.y + mad r19.y, cb5[r12.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r19.y, -|cb5[r12.w + 6].x| + add r24.y, -r24.x, cb5[r12.w + 6].y + add r19.y, -|r24.x|, l(1.000000) + add r19.y, -|r24.y|, r19.y + max r19.y, r19.y, l(0.000488281250) + ge r19.z, cb5[r12.w + 6].x, l(0.000000) + movc r24.z, r19.z, r19.y, -r19.y + dp3 r19.y, r24.xyzx, r24.xyzx + rsq r19.y, r19.y + mul r24.xyz, r19.yyyy, r24.xyzx + add r25.xyz, -r1.xyzx, cb5[r23.x + 6].xyzx + dp3 r19.y, r25.xyzx, r25.xyzx + rsq r19.z, r19.y + mul r26.xyz, r19.zzzz, r25.xyzx + ftoi r20.w, cb5[r16.w + 6].w + mul r27.xyz, r24.xyzx, cb5[r12.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r21.w, cb5[r19.x + 6].w + and r21.w, r21.w, l(1) + ieq r22.w, r21.w, l(0) + not r22.w, r22.w + lt r23.z, l(0.000000), cb5[r12.w + 6].z + and r22.w, r22.w, r23.z + dp3 r23.z, r28.xyzx, r28.xyzx + sqrt r23.z, r23.z + dp3 r24.w, r29.xyzx, r29.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r6.xyzx, r28.xyzx + div r25.w, r25.w, r23.z + dp3 r26.w, r6.xyzx, r29.xyzx + div r26.w, r26.w, r24.w + add r25.w, r25.w, r26.w + mul_sat r30.x, r25.w, l(0.500000) + dp3 r25.w, r28.xyzx, r29.xyzx + mad r23.z, r23.z, r24.w, r25.w + mad r23.z, r23.z, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r23.z + dp3_sat r13.x, r6.xyzx, r26.xyzx + movc r20.xy, r22.wwww, r30.xyxx, r13.xyxx + lt r13.x, cb5[r23.w + 6].w, l(0.000000) + if_nz r13.x + mul r13.x, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r13.x, r13.x, r19.y + mad r13.x, -r13.x, r13.x, l(1.000000) + max r13.x, r13.x, l(0.000000) + add r19.y, r19.y, l(1.000000) + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), r19.y + and r23.z, r22.w, l(0x3f800000) + add r24.w, -r19.y, r20.y + mad r19.y, r23.z, r24.w, r19.y + mul r13.x, r13.x, r13.x + mul r13.x, r13.x, r19.y + else + mul r29.xyz, r25.xyzx, cb5[r23.x + 6].wwww + dp3 r19.y, r29.xyzx, r29.xyzx + min r19.y, r19.y, l(1.000000) + add r19.y, -r19.y, l(1.000000) + log r19.y, r19.y + mul r19.y, r19.y, cb5[r23.w + 6].w + exp r19.y, r19.y + mul r13.x, r19.y, r20.y + endif + dp3 r19.y, r26.xyzx, -r24.xyzx + add r19.y, r19.y, -cb5[r12.w + 6].z + mul_sat r19.y, r19.y, cb5[r12.w + 6].w + mul r19.y, r19.y, r19.y + movc r19.y, r21.w, l(1.000000), r19.y + mul r13.x, r13.x, r19.y + not r19.y, r22.w + ige r20.y, r20.w, l(0) + and r19.y, r19.y, r20.y + if_nz r19.y + if_z r21.w + ishl r19.y, r20.w, l(2) + mul r24.xyz, r1.yyyy, cb7[r19.y + 33].xywx + mad r24.xyz, cb7[r19.y + 32].xywx, r1.xxxx, r24.xyzx + mad r24.xyz, cb7[r19.y + 34].xywx, r1.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb7[r19.y + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb7[r20.w + 0].zwzz, cb7[r20.w + 0].xyxx + else + ishl r19.y, r20.w, l(2) + dp3 r29.x, -r25.xyzx, cb7[r19.y + 32].xyzx + dp3 r29.y, -r25.xyzx, cb7[r19.y + 33].xyzx + dp3 r29.z, -r25.xyzx, cb7[r19.y + 34].xyzx + lt r19.y, |r29.x|, |r29.y| + and r19.y, r19.y, l(1) + dp2 r20.y, |r29.xyxx|, icb[r19.y + 0].xyxx + lt r20.y, r20.y, |r29.z| + movc r19.y, r20.y, l(2), r19.y + dp3 r20.y, r29.xyzx, icb[r19.y + 0].xyzx + lt r20.y, r20.y, l(0.000000) + bfi r19.y, l(31), l(1), r19.y, r20.y + ushr r20.y, r19.y, l(1) + dp3 r20.y, r29.xyzx, icb[r20.y + 0].xyzx + div r23.z, l(0.000244140625), cb7[r20.w + 0].w + add r23.z, -r23.z, l(0.500000) + utof r24.z, r19.y + ult r24.w, r19.y, l(2) + and r24.w, r24.w, l(2) + dp2 r24.w, r29.xzxx, icb[r24.w + 0].xzxx + mul r24.w, r24.w, icb[r19.y + 4].z + div r24.w, r24.w, |r20.y| + mad r24.z, r24.w, r23.z, r24.z + add r24.z, r24.z, l(0.500000) + mul_sat r25.x, r24.z, l(0.166666672) + iadd r24.z, l(-1), icb[r19.y + 4].y + dp2 r24.z, r29.yzyy, icb[r24.z + 0].xyxx + mul r19.y, r24.z, icb[r19.y + 4].w + div r19.y, r19.y, |r20.y| + mad_sat r25.y, -r19.y, r23.z, l(0.500000) + mad r24.xy, r25.xyxx, cb7[r20.w + 0].zwzz, cb7[r20.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r24.xyxx, t23.yxzw, s1, l(0.000000) + mul r13.x, r13.x, r19.y + endif + lt r19.y, l(0.000000), r13.x + if_nz r19.y + if_z r21.w + ftoi r20.y, cb5[r23.y + 6].x + else + add r24.xyz, r1.xyzx, -cb5[r23.x + 6].xyzx + lt r25.xyz, |r24.yzzy|, |r24.xxyx| + and r20.w, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r21.w, cb5[r12.w + 6].w, l(24) + ubfe r25.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r12.w + 6].wwww + movc r21.w, r24.x, r21.w, r25.x + and r23.z, l(255), cb5[r12.w + 6].w + movc r23.z, r24.y, r25.y, r23.z + ubfe r24.x, l(8), l(8), cb5[r23.y + 6].x + and r24.y, l(255), cb5[r23.y + 6].x + movc r24.x, r24.z, r24.x, r24.y + movc r23.z, r25.z, r23.z, r24.x + movc r20.w, r20.w, r21.w, r23.z + ilt r21.w, r20.w, l(80) + movc r20.y, r21.w, r20.w, l(-1) + endif + mad r24.xyz, r26.xyzx, cb6[r20.y + 288].xxxx, r1.xyzx + mul r20.w, l(5.000000), cb6[r20.y + 288].y + mad r24.xyz, r6.xyzx, r20.wwww, r24.xyzx + ishl r20.w, r20.y, l(2) + mul r25.xyzw, r24.yyyy, cb6[r20.w + 65].xyzw + mad r25.xyzw, cb6[r20.w + 64].xyzw, r24.xxxx, r25.xyzw + mad r24.xyzw, cb6[r20.w + 66].xyzw, r24.zzzz, r25.xyzw + add r24.xyzw, r24.xyzw, cb6[r20.w + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r30.xy, -cb6[r20.y + 344].xyxx, cb6[r20.y + 344].zwzz + mad r24.xy, r24.xyxx, r30.xyxx, cb6[r20.y + 344].xyxx + mad r30.xy, r24.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r30.xy, r30.xyxx + mad r24.xy, r24.xyxx, cb6[400].zwzz, -r30.xyxx + add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx + mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz + add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r35.z, r36.x + mov r35.w, r24.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r24.y + mov r33.z, r34.y + mov r33.w, r32.z + add r24.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.xyzx, cb6[400].xxxx + div r33.xyz, r33.zywz, r24.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyw, r33.xyxz, cb6[400].yyyy + mul r34.xyzw, r24.xxxy, r31.zwyz + mov r32.w, r33.x + mad r35.xyzw, r30.xyxy, cb6[400].xyxy, r32.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r35.xyxx, t11.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.zwzz, t11.xxxx, s4, r24.z + mul r21.w, r21.w, r34.y + mad r20.w, r34.x, r20.w, r21.w + mad r30.zw, r30.xxxy, cb6[400].xxxy, r32.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r30.zwzz, t11.xxxx, s4, r24.z + mad r20.w, r34.z, r21.w, r20.w + mov r33.z, r32.x + mad r35.xyzw, r30.xyxy, cb6[400].xyxy, r33.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.xyxx, t11.xxxx, s4, r24.z + mad r20.w, r34.w, r21.w, r20.w + mul r34.xyzw, r24.yyww, r31.xyzw + mov r33.xz, r32.yyzy + mad r32.xyzw, r30.xyxy, cb6[400].xyxy, r33.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r32.xyxx, t11.xxxx, s4, r24.z + mad r20.w, r34.x, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r32.zwzz, t11.xxxx, s4, r24.z + mad r20.w, r34.y, r21.w, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.zwzz, t11.xxxx, s4, r24.z + mad r20.w, r34.z, r21.w, r20.w + ige r21.w, r20.y, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r23.z, r25.y, r25.x + or r23.z, r25.z, r23.z + and r24.x, r24.z, l(0x7fffffff) + ult r24.x, l(0x7f800000), r24.x + or r23.z, r23.z, r24.x + mad r25.xyzw, r30.xyxy, cb6[400].xyxy, r33.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r25.xyxx, t11.xxxx, s4, r24.z + mad r20.w, r34.w, r24.x, r20.w + mul r24.x, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r25.zwzz, t11.xxxx, s4, r24.z + mad r20.w, r24.x, r24.y, r20.w + add r20.w, r20.w, l(-1.000000) + mad r20.y, cb6[r20.y + 288].w, r20.w, l(1.000000) + movc r20.y, r23.z, l(1.000000), r20.y + movc r20.y, r21.w, r20.y, l(1.000000) + else + mov r20.y, l(1.000000) + endif + if_nz r22.w + dp3 r20.w, r15.xyzx, r27.xyzx + mul_sat r21.w, r19.z, cb5[r12.w + 6].z + mad r21.w, r21.w, l(0.500000), r3.w + min r21.w, r21.w, l(1.000000) + div r21.w, r3.w, r21.w + mad r24.xyz, r15.xyzx, r20.wwww, -r27.xyzx + dp3 r22.w, r28.xyzx, r24.xyzx + mul r20.w, r20.w, r20.w + mad r20.w, cb5[r12.w + 6].z, cb5[r12.w + 6].z, -r20.w + div_sat r20.w, r22.w, r20.w + mad r24.xyz, r27.xyzx, r20.wwww, r28.xyzx + dp3 r20.w, r24.xyzx, r24.xyzx + rsq r20.w, r20.w + mul r26.xyz, r20.wwww, r24.xyzx + else + mov r21.w, l(1.000000) + endif + if_nz r19.y + mul_sat r19.y, r19.z, cb5[r16.w + 6].y + mad r24.xyz, r3.xyzx, r2.wwww, r26.xyzx + dp3 r19.z, r24.xyzx, r24.xyzx + max r19.z, r19.z, l(0.0000610351562) + rsq r19.z, r19.z + mul r24.xyz, r19.zzzz, r24.xyzx + dp3_sat r19.z, r6.xyzx, r24.xyzx + dp3_sat r20.w, r5.xyzx, r24.xyzx + lt r22.w, l(0.000000), r19.y + mul r19.y, r19.y, r19.y + mad r23.z, r20.w, l(3.600000), l(0.400000) + div r19.y, r19.y, r23.z + mad r19.y, r11.w, r11.w, r19.y + min r19.y, r19.y, l(1.000000) + movc r19.y, r22.w, r19.y, r3.w + mul r19.y, r19.y, r19.y + mad r22.w, r19.z, r19.y, -r19.z + mad r19.z, r22.w, r19.z, l(1.000000) + add r20.w, -r20.w, l(1.000000) + mul r22.w, r20.w, r20.w + mul r22.w, r22.w, r22.w + mul r23.z, r20.w, r22.w + mad r20.w, -r22.w, r20.w, l(1.000000) + mad r24.xyz, r7.xyzx, r20.wwww, r23.zzzz + mul r19.z, r19.z, r19.z + div r19.z, r19.y, r19.z + mul r19.z, r21.w, r19.z + mad r20.w, -r11.x, r19.y, r11.x + mad r20.w, r20.w, r11.x, r19.y + sqrt r20.w, r20.w + mad r21.w, -r20.x, r19.y, r20.x + mad r19.y, r21.w, r20.x, r19.y + sqrt r19.y, r19.y + mul r19.y, r11.x, r19.y + mad r19.y, r20.x, r20.w, r19.y + add r19.y, r19.y, l(0.000100) + div r19.y, l(0.500000), r19.y + mul r19.y, r19.y, r19.z + mul r24.xyz, r19.yyyy, r24.xyzx + min r24.xyz, r24.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r19.yz, r20.xxzx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t15.yxzw, s1, l(0.000000) + mul r19.y, r5.w, r19.y + mul r19.y, r0.z, r19.y + div r19.y, r19.y, r4.w + mul r25.xyz, r17.xyzx, r19.yyyy + div r25.xyz, r25.xyzx, r18.xyzx + add r24.xyz, r24.xyzx, r25.xyzx + mul r24.xyz, r24.xyzx, cb5[r16.w + 6].zzzz + max r24.xyz, r24.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r24.xyz, r24.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r25.xyz, r9.xywx, r20.xxxx + mad r24.xyz, r24.xyzx, r20.xxxx, r25.xyzx + mul r25.xyz, r13.xxxx, cb5[r19.x + 6].xyzx + mul r20.xyw, r20.yyyy, r25.xyxz + mul r20.xyw, r17.wwww, r20.xyxw + mul r20.xyw, r20.xyxw, r24.xyxz + else + mov r20.xyw, l(0,0,0,0) + endif + else + if_z r18.w + mad r13.x, cb5[r12.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r13.x, -|cb5[r12.w + 6].x| + add r24.y, -r24.x, cb5[r12.w + 6].y + add r13.x, -|r24.x|, l(1.000000) + add r13.x, -|r24.y|, r13.x + max r13.x, r13.x, l(0.000488281250) + ge r17.w, cb5[r12.w + 6].x, l(0.000000) + movc r24.z, r17.w, r13.x, -r13.x + dp3 r13.x, r24.xyzx, r24.xyzx + rsq r13.x, r13.x + mul r24.xyz, r13.xxxx, r24.xyzx + add r25.xyz, -r1.xyzx, cb5[r23.x + 6].xyzx + dp3 r13.x, r25.xyzx, r25.xyzx + rsq r17.w, r13.x + mul r26.xyz, r17.wwww, r25.xyzx + ftoi r16.w, cb5[r16.w + 6].w + mul r27.xyz, r24.xyzx, cb5[r12.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r27.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r17.w, cb5[r19.x + 6].w + and r17.w, r17.w, l(1) + ieq r18.w, r17.w, l(0) + not r18.w, r18.w + lt r19.x, l(0.000000), cb5[r12.w + 6].z + and r18.w, r18.w, r19.x + dp3 r19.x, r28.xyzx, r28.xyzx + dp3 r19.y, r27.xyzx, r27.xyzx + sqrt r19.xy, r19.xyxx + dp3 r19.z, r28.xyzx, r27.xyzx + mad r19.x, r19.x, r19.y, r19.z + mad r19.x, r19.x, l(0.500000), l(1.000000) + div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x + movc r19.x, r18.w, r19.x, l(1.000000) + lt r19.y, cb5[r23.w + 6].w, l(0.000000) + if_nz r19.y + mul r19.y, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r19.y, r13.x, r19.y + mad r19.y, -r19.y, r19.y, l(1.000000) + max r19.y, r19.y, l(0.000000) + add r13.x, r13.x, l(1.000000) + div r13.x, l(1.000000, 1.000000, 1.000000, 1.000000), r13.x + and r19.z, r18.w, l(0x3f800000) + add r21.w, -r13.x, r19.x + mad r13.x, r19.z, r21.w, r13.x + mul r19.y, r19.y, r19.y + mul r13.x, r13.x, r19.y + else + mul r27.xyz, r25.xyzx, cb5[r23.x + 6].wwww + dp3 r19.y, r27.xyzx, r27.xyzx + min r19.y, r19.y, l(1.000000) + add r19.y, -r19.y, l(1.000000) + log r19.y, r19.y + mul r19.y, r19.y, cb5[r23.w + 6].w + exp r19.y, r19.y + mul r13.x, r19.y, r19.x + endif + dp3 r19.x, r26.xyzx, -r24.xyzx + add r19.x, r19.x, -cb5[r12.w + 6].z + mul_sat r19.x, r19.x, cb5[r12.w + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r17.w, l(1.000000), r19.x + mul r13.x, r13.x, r19.x + not r18.w, r18.w + ige r19.x, r16.w, l(0) + and r18.w, r18.w, r19.x + if_nz r18.w + if_z r17.w + ishl r18.w, r16.w, l(2) + mul r19.xyz, r1.yyyy, cb7[r18.w + 33].xywx + mad r19.xyz, cb7[r18.w + 32].xywx, r1.xxxx, r19.xyzx + mad r19.xyz, cb7[r18.w + 34].xywx, r1.zzzz, r19.xyzx + add r19.xyz, r19.xyzx, cb7[r18.w + 35].xywx + div_sat r19.xy, r19.xyxx, r19.zzzz + mad r19.xy, r19.xyxx, cb7[r16.w + 0].zwzz, cb7[r16.w + 0].xyxx + else + ishl r18.w, r16.w, l(2) + dp3 r24.x, -r25.xyzx, cb7[r18.w + 32].xyzx + dp3 r24.y, -r25.xyzx, cb7[r18.w + 33].xyzx + dp3 r24.z, -r25.xyzx, cb7[r18.w + 34].xyzx + lt r18.w, |r24.x|, |r24.y| + and r18.w, r18.w, l(1) + dp2 r19.z, |r24.xyxx|, icb[r18.w + 0].xyxx + lt r19.z, r19.z, |r24.z| + movc r18.w, r19.z, l(2), r18.w + dp3 r19.z, r24.xyzx, icb[r18.w + 0].xyzx + lt r19.z, r19.z, l(0.000000) + bfi r18.w, l(31), l(1), r18.w, r19.z + ushr r19.z, r18.w, l(1) + dp3 r19.z, r24.xyzx, icb[r19.z + 0].xyzx + div r21.w, l(0.000244140625), cb7[r16.w + 0].w + add r21.w, -r21.w, l(0.500000) + utof r22.w, r18.w + ult r23.z, r18.w, l(2) + and r23.z, r23.z, l(2) + dp2 r23.z, r24.xzxx, icb[r23.z + 0].xzxx + mul r23.z, r23.z, icb[r18.w + 4].z + div r23.z, r23.z, |r19.z| + mad r22.w, r23.z, r21.w, r22.w + add r22.w, r22.w, l(0.500000) + mul_sat r25.x, r22.w, l(0.166666672) + iadd r22.w, l(-1), icb[r18.w + 4].y + dp2 r22.w, r24.yzyy, icb[r22.w + 0].xyxx + mul r18.w, r22.w, icb[r18.w + 4].w + div r18.w, r18.w, |r19.z| + mad_sat r25.y, -r18.w, r21.w, l(0.500000) + mad r19.xy, r25.xyxx, cb7[r16.w + 0].zwzz, cb7[r16.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r16.w, r19.xyxx, t23.yzwx, s1, l(0.000000) + mul r13.x, r13.x, r16.w + endif + lt r13.x, l(0.000000), r13.x + if_nz r13.x + if_z r17.w + ftoi r13.x, cb5[r23.y + 6].x + else + add r19.xyz, r1.xyzx, -cb5[r23.x + 6].xyzx + lt r23.xzw, |r19.yyzz|, |r19.xxxy| + and r16.w, r23.z, r23.x + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ushr r17.w, cb5[r12.w + 6].w, l(24) + ubfe r23.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb5[r12.w + 6].wwww + movc r17.w, r19.x, r17.w, r23.x + and r12.w, l(255), cb5[r12.w + 6].w + movc r12.w, r19.y, r23.z, r12.w + ubfe r18.w, l(8), l(8), cb5[r23.y + 6].x + and r19.x, l(255), cb5[r23.y + 6].x + movc r18.w, r19.z, r18.w, r19.x + movc r12.w, r23.w, r12.w, r18.w + movc r12.w, r16.w, r17.w, r12.w + ilt r16.w, r12.w, l(80) + movc r13.x, r16.w, r12.w, l(-1) + endif + mad r19.xyz, r26.xyzx, cb6[r13.x + 288].xxxx, r1.xyzx + mul r12.w, l(5.000000), cb6[r13.x + 288].y + mad r19.xyz, r6.xyzx, r12.wwww, r19.xyzx + ishl r12.w, r13.x, l(2) + mul r23.xyzw, r19.yyyy, cb6[r12.w + 65].xyzw + mad r23.xyzw, cb6[r12.w + 64].xyzw, r19.xxxx, r23.xyzw + mad r23.xyzw, cb6[r12.w + 66].xyzw, r19.zzzz, r23.xyzw + add r23.xyzw, r23.xyzw, cb6[r12.w + 67].xyzw + div r19.xyz, r23.xyzx, r23.wwww + ge r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ge r24.xyz, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r25.xy, -cb6[r13.x + 344].xyxx, cb6[r13.x + 344].zwzz + mad r19.xy, r19.xyxx, r25.xyxx, cb6[r13.x + 344].xyxx + mad r25.xy, r19.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r19.xy, r19.xyxx, cb6[400].zwzz, -r25.xyxx + add r26.xyzw, r19.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r19.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r19.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r19.xyxx + mul r30.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xy, -r26.xzxx, r26.xzxx, r25.zwzz + add r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r30.z, r31.x + mov r30.w, r19.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r19.y + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.xyzx, cb6[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyw, r28.xyxz, cb6[400].yyyy + mul r30.xyzw, r26.zwyz, r27.xxxy + mov r29.w, r28.x + mad r31.xyzw, r25.xyxy, cb6[400].xyxy, r29.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r12.w, r31.xyxx, t11.xxxx, s4, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.zwzz, t11.xxxx, s4, r19.z + mul r16.w, r16.w, r30.y + mad r12.w, r30.x, r12.w, r16.w + mad r19.xy, r25.xyxx, cb6[400].xyxx, r29.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r19.xyxx, t11.xxxx, s4, r19.z + mad r12.w, r30.z, r16.w, r12.w + mov r28.z, r29.x + mad r31.xyzw, r25.xyxy, cb6[400].xyxy, r28.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.xyxx, t11.xxxx, s4, r19.z + mad r12.w, r30.w, r16.w, r12.w + mul r30.xyzw, r26.xyzw, r27.yyzz + mov r28.xz, r29.yyzy + mad r29.xyzw, r25.xyxy, cb6[400].xyxy, r28.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r29.xyxx, t11.xxxx, s4, r19.z + mad r12.w, r30.x, r16.w, r12.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r29.zwzz, t11.xxxx, s4, r19.z + mad r12.w, r30.y, r16.w, r12.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.zwzz, t11.xxxx, s4, r19.z + mad r12.w, r30.z, r16.w, r12.w + ige r16.w, r13.x, l(0) + or r23.xyz, r23.xyzx, r24.xyzx + or r17.w, r23.y, r23.x + or r17.w, r23.z, r17.w + and r18.w, r19.z, l(0x7fffffff) + ult r18.w, l(0x7f800000), r18.w + or r17.w, r17.w, r18.w + mad r23.xyzw, r25.xyxy, cb6[400].xyxy, r28.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r23.xyxx, t11.xxxx, s4, r19.z + mad r12.w, r30.w, r18.w, r12.w + mul r18.w, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r23.zwzz, t11.xxxx, s4, r19.z + mad r12.w, r18.w, r19.x, r12.w + add r12.w, r12.w, l(-1.000000) + mad r12.w, cb6[r13.x + 288].w, r12.w, l(1.000000) + movc r12.w, r17.w, l(1.000000), r12.w + movc r12.w, r16.w, r12.w, l(1.000000) + else + mov r12.w, l(1.000000) + endif + else + mov r12.w, l(1.000000) + endif + mul r11.y, r11.y, r12.w + mov r20.xyw, l(0,0,0,0) + endif + add r22.xyz, r20.xywx, r22.xyzx + mov r11.z, r15.w + endloop + mov r6.w, r11.y + add r21.xyz, r21.xyzx, r22.xyzx + iadd r7.w, r7.w, l(1) +endloop +dp3 r0.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xzw, -r0.xxxx, r2.xxyz +mad r0.xyz, cb0[184].wwww, r1.xzwx, r0.xxxx +mad r1.xzw, r21.xxyz, r6.wwww, r16.xxyz +mul r2.xyz, cb2[20].zzzz, cb2[21].xyzx +add r2.w, -r10.w, l(1.000000) +add r3.x, l(1.000000), -cb2[20].y +max r3.x, r3.x, l(0.010000) +div_sat r2.w, r2.w, r3.x +mad r2.xyz, r8.xyzx, r2.xyzx, -r1.xzwx +mad r1.xzw, r2.wwww, r2.xxyz, r1.xxzw +mad r0.xyz, r0.xyzx, cb0[184].xyzx, r1.xzwx +mad r1.x, r1.y, cb0[156].w, cb0[157].w +mad r1.z, r0.w, cb0[154].w, -cb0[153].w +max r1.xz, r1.xxzx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.w, r1.x, l(-1.442695) +exp r1.w, r1.w +add r1.w, -r1.w, l(1.000000) +div r1.x, r1.w, r1.x +mad r1.w, r1.y, cb0[156].w, cb0[158].w +mul r1.w, r1.w, l(1.442695) +exp r1.w, r1.w +mul r1.x, r1.w, r1.x +mul r1.x, r1.x, -r1.z +mul r1.xzw, r1.xxxx, cb0[155].xxyz +mul r1.xzw, r1.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r1.xzw, r1.xxzw +dp3 r2.x, -r5.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r2.xxxx, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r14.w, l(7), cb0[108].w + imad r3.xyz, r14.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.z, r3.y, r3.z, r3.x + imad r2.w, r3.z, r2.z, r3.y + imad r3.x, r2.z, r2.w, r3.z + imad r6.x, r2.w, r3.x, r2.z + dp3 r2.z, -r5.xyzx, -r4.xyzx + add r3.y, r1.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.z + mul r2.z, r2.z, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r3.w, r2.z, r3.z + mad r4.x, r3.w, r3.y, cb0[44].y + mad r3.y, -r3.w, r3.y, r3.y + mul r3.w, r3.y, cb0[159].z + mul r3.y, r3.y, cb0[162].x + max r3.yw, r3.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r4.y, r4.x, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r3.w| + exp r4.w, -r3.w + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r4.z, r4.w, r3.w + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.z, l(5.960464478E-08), |r3.y| + exp r4.w, -r3.y + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.y + mad r3.y, -r3.y, l(0.240226507), l(0.693147182) + movc r3.y, r4.z, r4.w, r3.y + mul r3.y, r3.y, r4.x + mad r3.y, r4.y, r3.w, r3.y + mad r2.z, -r2.z, r3.z, l(1.000000) + mul r2.z, r0.w, r2.z + mul r2.z, r2.z, r3.y + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r2.z, r2.z, r3.y + add r2.z, r3.z, r2.z + min r2.z, r2.z, l(1.000000) + imad r6.y, r3.x, r6.x, r2.w + ushr r3.xy, r6.xyxx, l(16, 16, 0, 0) + utof r3.xy, r3.xyxx + mad r3.xy, r3.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb0[167].wwww, r13.zwzz + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r2.w, r14.z, cb0[164].x, cb0[164].y + log r2.w, r2.w + mul r2.w, r2.w, cb0[164].z + div r3.z, r2.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t22.xyzw, s1, l(0.000000) + add r2.w, r14.z, -cb0[166].z + mul_sat r2.w, r2.w, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r2.wwww, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r2.w, -r2.z, l(1.000000) + mul r4.xyz, r2.wwww, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.z, r2.z, r3.w +else + add r1.y, r1.y, -cb0[44].y + mul r2.w, r1.y, cb0[159].z + max r2.w, r2.w, l(-127.000000) + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r2.w| + exp r4.y, -r2.w + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r4.x, r4.y, r2.w + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r2.w, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r2.z, r0.w, l(1.000000) + add r0.w, -r2.z, l(1.000000) + mul r3.xyz, r0.wwww, cb0[161].xyzx +endif +mul r4.xyz, r1.xzwx, r2.zzzz +mad r0.w, r2.x, r2.x, l(1.000000) +mul r0.w, r0.w, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.wwww, cb0[158].xyzx +mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r1.y, r2.y, l(12.566371) +sqrt r2.x, r2.y +mul r1.y, r1.y, r2.x +max r1.y, r1.y, l(0.001000) +div r0.w, r0.w, r1.y +mad_sat r2.xyw, cb0[157].xyxz, r0.wwww, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx +mad r10.xyz, r0.xyzx, r4.xyzx, r1.xyzx +mul r0.xy, r12.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r0.xy, |r0.xyxx| +sqrt r0.xy, r0.xyxx +mov r12.z, -r12.y +lt r0.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xxxz +lt r1.xy, r12.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r0.zw, -r0.zzzw, r1.xxxy +itof r0.zw, r0.zzzw +mul r0.xy, r0.zwzz, r0.xyxx +mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +ishl r0.z, v7.x, l(4) +max r0.z, cb1[r0.z + 4].z, cb1[r0.z + 4].y +add r0.z, r0.z, l(-0.100000024) +lt r0.w, l(0.000000), r0.z +lt r0.z, r0.z, l(0.000000) +iadd r0.z, -r0.w, r0.z +itof r0.z, r0.z +mov_sat r0.z, r0.z +add r1.xy, -r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.zzzz, r1.xyxx, r0.xyxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r10.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r10.w, r0.x +max r0.x, r10.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +mov o0.xyzw, r10.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0xB317E9E1.cso b/src/games/endfield/glass/0xB317E9E1.cso new file mode 100644 index 0000000000000000000000000000000000000000..069ffe1073adf0d7de2ab782046e28fb7bae09f4 GIT binary patch literal 53640 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

  • lD+Y)1s>|ZduVJIYl35#?aJ_M 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 XZ_a9d>7EH%VEclRYt`@Wf=>Sr!_O0F literal 0 HcmV?d00001 diff --git a/src/games/endfield/glass/0xB317E9E1.ps_5_0.asm b/src/games/endfield/glass/0xB317E9E1.ps_5_0.asm new file mode 100644 index 000000000..bf3ebe07c --- /dev/null +++ b/src/games/endfield/glass/0xB317E9E1.ps_5_0.asm @@ -0,0 +1,1757 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Wed Feb 4 07:24:28 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4085], dynamicIndexed +dcl_constantbuffer CB2[20], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_constantbuffer CB13[15], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_comparison +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_sampler s6, mode_default +dcl_resource_structured t0, 4 +dcl_resource_texture2darray (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_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture3d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 36 +mul r0.xy, v0.xyxx, cb0[82].zwzz +mad r0.xy, r0.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r1.xyzw, -r0.yyyy, cb0[25].xyzw +mad r0.xyzw, cb0[24].xyzw, r0.xxxx, r1.xyzw +mad r0.xyzw, cb0[26].xyzw, v0.zzzz, r0.xyzw +add r0.xyzw, r0.xyzw, cb0[27].xyzw +div r0.xyz, r0.xyzx, r0.wwww +lt r1.x, l(0.000000), v3.w +movc r1.x, r1.x, l(1.000000), l(-1.000000) +eq r1.y, l(0.000000), cb0[86].w +add r2.xyz, -r0.xyzx, cb0[44].xyzx +mov r3.x, cb0[0].z +mov r3.y, cb0[1].z +mov r3.z, cb0[2].z +movc r1.yzw, r1.yyyy, r2.xxyz, r3.xxyz +dp3 r2.x, r1.yzwy, r1.yzwy +max r2.y, r2.x, l(9.999999939E-09) +rsq r2.y, r2.y +mul r4.xyz, r1.yzwy, r2.yyyy +mul r2.x, r2.y, r2.x +add r2.zw, -v1.xxxy, v1.zzzw +mad r5.xy, cb2[3].xxxx, r2.zwzz, v1.xyxx +mad r5.xy, r5.xyxx, cb2[12].xyxx, cb2[12].zwzz +mad r2.zw, cb2[2].wwww, r2.zzzw, v1.xxxy +mad r2.zw, r2.zzzw, cb2[11].xxxy, cb2[11].zzzw +sample_b_indexable(texture2d)(float,float,float,float) r6.xyzw, r2.zwzz, t2.xyzw, s4, cb0[108].x +add r2.z, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, r5.xyxx, t3.xywz, s5, r2.z +mul r7.x, r7.x, r7.z +mad r2.zw, r7.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r5.zw, r2.zzzw, cb2[0].xxxx +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, r5.xyxx, t4.xyzw, s6, cb0[108].x +mul r6.xyzw, r6.xyzw, cb2[8].xyzw +mul_sat r6.xyz, r6.xyzx, cb2[4].zzzz +add r8.xyz, -r6.xyzx, cb2[8].xyzx +mad r6.xyz, cb2[4].xxxx, r8.xyzx, r6.xyzx +mad r3.w, r6.w, v4.x, -r6.w +mad r8.w, cb2[19].x, r3.w, r6.w +add r3.w, -cb2[0].z, cb2[0].w +mad r9.w, r7.y, r3.w, cb2[0].z +add_sat r3.w, l(-1.000000), cb2[3].w +add r4.w, -r7.x, cb2[4].y +mad r3.w, r3.w, r4.w, r7.x +mul r7.xyw, v2.zxzy, v3.yzyx +mad r7.xyw, v2.yzyx, v3.zxzy, -r7.xyxw +mul r7.xyw, r1.xxxx, r7.xyxw +mul r5.xyw, r5.wwww, r7.xyxw +mad r5.xyz, v3.xyzx, r5.zzzz, r5.xywx +dp2 r1.x, r2.zwzz, r2.zwzz +min r1.x, r1.x, l(1.000000) +add r1.x, -r1.x, l(1.000000) +sqrt r1.x, r1.x +max r1.x, r1.x, l(1.000000017E-16) +lt r2.z, l(0.000000), cb2[1].w +movc r2.z, r2.z, l(-1.000000), l(1.000000) +movc r2.z, v8.x, l(1.000000), r2.z +mul r1.x, r1.x, r2.z +mad r5.xyz, v2.xyzx, r1.xxxx, r5.xyzx +dp3 r1.x, r5.xyzx, r5.xyzx +rsq r1.x, r1.x +mul r5.xyz, r1.xxxx, r5.xyzx +max r1.x, v5.z, l(9.999999939E-09) +div r2.zw, v5.xxxy, r1.xxxx +max r1.x, v6.z, l(9.999999939E-09) +div r7.xy, v6.xyxx, r1.xxxx +add r10.xy, r2.zwzz, -r7.xyxx +mul r1.x, l(0.080000), cb2[0].y +mad r7.xyw, -r6.xyxz, r3.wwww, r6.xyxz +mad r1.x, -r1.x, r3.w, r1.x +mad r6.xyz, r6.xyzx, r3.wwww, r1.xxxx +dp3 r1.x, r5.xyzx, r4.xyzx +mad r11.xyzw, r9.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r2.z, r11.x, r11.x +max r1.x, r1.x, l(0.000000) +mul r2.w, r1.x, l(-9.280000) +exp r2.w, r2.w +min r2.z, r2.w, r2.z +mad r2.z, r2.z, r11.x, r11.y +mad r2.zw, r2.zzzz, l(0.000000, 0.000000, -1.040000, 1.040000), r11.zzzw +eq r3.w, l(1.000000), cb0[113].y +mul r11.xyzw, r0.yyyy, cb0[241].xyzw +mad r11.xyzw, cb0[240].xyzw, r0.xxxx, r11.xyzw +mad r11.xyzw, cb0[242].xyzw, r0.zzzz, r11.xyzw +add r11.xyzw, r11.xyzw, cb0[243].xyzw +div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul r11.xyz, r11.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r11.xyz, r4.wwww, r11.xyzx +mad_sat r11.xy, r11.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +mul r11.xy, r11.xyxx, cb0[82].xyxx +ftou r12.xy, r11.xyxx +mad r4.w, cb0[84].z, r11.z, cb0[84].w +div r12.z, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w +ftou r11.xy, v0.xyxx +mul r4.w, r0.y, cb0[1].z +mad r4.w, cb0[0].z, r0.x, r4.w +mad r4.w, cb0[2].z, r0.z, r4.w +add r4.w, r4.w, cb0[3].z +mov r11.z, |r4.w| +movc r11.xyz, r3.wwww, r12.xyzx, r11.xyzx +mad r12.xyz, r5.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r0.xyzx +mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r13.xyz, r12.xzyx, -r13.xyzx +max r3.w, |r13.y|, |r13.x| +add r3.w, r3.w, l(-464.000000) +mul_sat r3.w, r3.w, l(0.031250) +add r4.w, |r13.z|, l(-208.000000) +mul_sat r4.w, r4.w, l(0.031250) +max r3.w, r3.w, r4.w +ne r4.w, l(0.000000), cb0[210].w +lt r6.w, r3.w, l(1.000000) +and r4.w, r4.w, r6.w +if_nz r4.w + mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r13.xyz, r12.xzyx, -r13.xyzx + max r4.w, |r13.y|, |r13.x| + add r4.w, r4.w, l(-29.000000) + mul_sat r4.w, r4.w, l(0.500000) + add r6.w, |r13.z|, l(-13.000000) + mul_sat r6.w, r6.w, l(0.500000) + max r4.w, r4.w, r6.w + lt r6.w, r4.w, l(1.000000) + if_nz r6.w + mad r13.xyz, r12.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r13.xyzx, cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r13.xyzx, t11.xyzw, s1, l(0.000000) + add r6.w, -r4.w, l(1.000000) + mul r10.w, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r10.w, r10.w, r13.y + min r10.w, r12.w, r10.w + mul r13.w, r10.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t12.xyzw, s0, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r14.xxxx, r15.xyzx + add r15.xyz, r13.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t12.xyzw, s0, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r14.yyyy, r15.xyzx + add r13.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xyz, r13.xyzx, t12.xyzw, s0, l(0.000000) + mad r13.xyz, r13.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r13.xyz, r14.zzzz, r13.xyzx + mad r10.w, r15.w, r6.w, r3.w + mov r13.w, r14.z + mul r13.xyzw, r6.wwww, r13.xyzw + mov r17.w, r14.y + mul r15.xyzw, r6.wwww, r17.xyzw + mov r16.w, r14.x + mul r14.xyzw, r6.wwww, r16.xyzw + else + mov r13.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r10.w, r3.w + endif + mad r16.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r16.xyz, r12.xzyx, -r16.xyzx + max r6.w, |r16.y|, |r16.x| + add r6.w, r6.w, l(-116.000000) + mul_sat r6.w, r6.w, l(0.125000) + add r12.w, |r16.z|, l(-52.000000) + mul_sat r12.w, r12.w, l(0.125000) + max r6.w, r6.w, r12.w + lt r12.w, r6.w, l(1.000000) + if_nz r12.w + mad r16.xyz, r12.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r16.xyzx, t13.xyzw, s1, l(0.000000) + add r12.w, -r6.w, l(1.000000) + mul r4.w, r4.w, r12.w + mul r12.w, l(0.500000), cb0[211].y + mad r17.w, -cb0[211].y, l(0.500000), l(1.000000) + max r12.w, r12.w, r16.y + min r12.w, r17.w, r12.w + mul r16.w, r12.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t14.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.xxxx, r18.xyzx + add r18.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t14.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r17.yyyy, r18.xyzx + add r16.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t14.xyzw, s0, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.zzzz, r16.xyzx + mad r10.w, r18.w, r4.w, r10.w + mov r16.w, r17.z + mad r13.xyzw, r16.xyzw, r4.wwww, r13.xyzw + mov r20.w, r17.y + mad r15.xyzw, r20.xyzw, r4.wwww, r15.xyzw + mov r19.w, r17.x + mad r14.xyzw, r19.xyzw, r4.wwww, r14.xyzw + endif + lt r4.w, l(0.000000), r6.w + if_nz r4.w + mad r12.xyz, r12.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r12.xyzx, cb0[211].xyzx + mul r17.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r12.xyz, r12.xyzx, cb0[211].xyzx, -r16.xyzx + mad r16.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r12.xyz, r17.xyzx, r12.xyzx + min r12.xyz, r16.xyzx, r12.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r12.xyzx, t15.yzwx, s1, l(0.000000) + add r4.w, -r3.w, l(1.000000) + mul r4.w, r4.w, r6.w + max r6.w, r17.y, r12.y + min r6.w, r16.y, r6.w + mul r12.w, r6.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r12.xwzx, t16.xyzw, s0, l(0.000000) + add r17.xyz, r12.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s0, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.yyyy, r17.xyzx + mov r17.w, r18.y + mad r13.xyzw, r17.xyzw, r4.wwww, r13.xyzw + add r12.xyz, r12.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t16.xyzw, s0, l(0.000000) + mad r12.xyz, r12.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r12.xyz, r18.xxxx, r12.xyzx + mov r12.w, r18.x + mad r15.xyzw, r12.xyzw, r4.wwww, r15.xyzw + mad r12.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r12.xyzx + mad r14.xyzw, r18.xyzw, r4.wwww, r14.xyzw + mad r10.w, r16.w, r4.w, r10.w + endif + mad_sat r4.w, r10.w, l(2.000000), l(-1.000000) + add r12.x, -r3.w, r4.w + add r3.w, r3.w, r4.w + mul r12.y, r3.w, l(0.500000) +else + mov r13.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r12.xy, l(0,1.000000,0,0) +endif +mul r16.xyzw, r12.yyyx, cb0[213].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r12.zw, r12.yyyx, cb0[213].wwwy +mad r16.w, r12.w, l(0.375000), r12.z +add r14.xyzw, r14.xyzw, r16.xyzw +mul r16.xyzw, r12.yyyx, cb0[214].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r12.zw, r12.yyyx, cb0[214].wwwy +mad r16.w, r12.w, l(0.375000), r12.z +add r15.xyzw, r15.xyzw, r16.xyzw +mul r16.xyzw, r12.yyyx, cb0[215].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r12.xy, r12.yxyy, cb0[215].wyww +mad r16.w, r12.y, l(0.375000), r12.x +add r12.xyzw, r13.xyzw, r16.xyzw +dp3 r3.w, r14.xyzx, r5.xyzx +add r3.w, r14.w, r3.w +max r13.x, r3.w, l(0.000000) +dp3 r3.w, r15.xyzx, r5.xyzx +add r3.w, r15.w, r3.w +max r13.y, r3.w, l(0.000000) +dp3 r3.w, r12.xyzx, r5.xyzx +add r3.w, r12.w, r3.w +max r13.z, r3.w, l(0.000000) +dp3 r3.w, -r4.xyzx, r5.xyzx +add r3.w, r3.w, r3.w +mad r12.xyz, r5.xyzx, -r3.wwww, -r4.xyzx +add r3.w, l(-1.000000), cb0[113].x +max r4.w, r9.w, l(0.001000) +log r4.w, r4.w +mad r4.w, -r4.w, l(1.200000), l(1.000000) +add r3.w, r3.w, -r4.w +utof r14.xy, r11.xyxx +mul r14.zw, r14.xxxy, cb3[0].wwww +round_ni r14.zw, r14.zzzw +add r4.w, r11.z, -cb3[2].y +round_ni r4.w, r4.w +add r6.w, l(-1.000000), cb3[1].x +max r10.w, r4.w, l(0.000000) +min r6.w, r6.w, r10.w +ge r4.w, r6.w, r4.w +mad r10.w, r14.w, cb3[0].x, r14.z +ftoi r10.w, r10.w +iadd r10.w, r10.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.w, r10.w, l(0), t0.xxxx +ftoi r6.w, r6.w +iadd r6.w, r6.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r6.w, r6.w, l(0), t0.xxxx +and r6.w, r6.w, r10.w +and r4.w, r4.w, r6.w +mul r15.xyz, r13.xyzx, cb0[111].xxxx +dp3 r6.w, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r0.w, l(1.000000) +mov r5.w, l(1.000000) +mov r15.xyz, l(0,0,0,0) +mov r10.w, l(1.000000) +mov r12.w, r4.w +mov r13.w, l(0) +loop + lt r14.z, l(0.010000), r10.w + ine r14.w, r12.w, l(0) + and r14.w, r14.z, r14.w + if_nz r14.w + firstbit_lo r14.w, r12.w + ishl r15.w, l(1), r14.w + xor r12.w, r12.w, r15.w + ishl r14.w, r14.w, l(3) + dp4 r16.x, cb3[r14.w + 6].xyzw, r0.xyzw + dp4 r16.y, cb3[r14.w + 7].xyzw, r0.xyzw + dp4 r16.z, cb3[r14.w + 8].xyzw, r0.xyzw + ge r17.xyz, cb3[r14.w + 5].xyzx, |r16.xyzx| + and r15.w, r17.y, r17.x + and r15.w, r17.z, r15.w + if_nz r15.w + mul r15.w, l(0.100000), cb3[r14.w + 5].x + mul r17.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r18.xyz, -|r16.xyzx|, cb3[r14.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb3[r14.w + 9].xyzx + eq r16.w, l(1.000000), cb3[r14.w + 10].x + if_nz r16.w + dp3 r19.x, cb3[r14.w + 6].xyzx, r12.xyzx + dp3 r19.y, cb3[r14.w + 7].xyzx, r12.xyzx + dp3 r19.z, cb3[r14.w + 8].xyzx, r12.xyzx + add r20.xyz, -r16.xyzx, cb3[r14.w + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r16.xyzx, -cb3[r14.w + 5].xyzx + div r21.xyz, r21.xyzx, r19.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + movc r20.xyz, r22.xyzx, r20.xyzx, r21.xyzx + min r16.w, r20.y, r20.x + min r16.w, r20.z, r16.w + mad r16.xyz, r19.xyzx, r16.wwww, r16.xyzx + else + mov r16.xyz, r12.xyzx + endif + dp3 r16.w, r16.xyzx, r16.xyzx + rsq r16.w, r16.w + mul r16.xyz, r16.wwww, r16.xyzx + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r20.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r19.xyz, -r19.xyzx, r20.xyzx + itof r19.xyz, r19.xyzx + dp3 r16.w, r16.xyzx, r19.xyzx + div r16.xyz, r16.xyzx, r16.wwww + lt r16.z, r16.z, l(0.000000) + add r19.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r19.xy, r19.zwzz, r19.xyxx + movc r16.xy, r16.zzzz, r19.xyxx, r16.xyxx + dp4 r16.z, cb3[r14.w + 4].xyzw, r5.xyzw + max r16.z, r16.z, l(0.000000) + max r16.z, r16.z, l(0.000100) + min r16.w, r18.z, r18.y + min r16.w, r16.w, r18.x + add r17.x, r17.y, r17.x + mad r17.x, r17.z, r17.z, r17.x + mad r15.w, r15.w, r15.w, -r17.x + mul r15.w, r15.w, cb3[r14.w + 9].x + mul r15.w, r15.w, cb3[r14.w + 9].x + add r17.x, l(1.000000), -cb3[r14.w + 10].y + mul r15.w, r15.w, r17.x + mul r15.w, r15.w, l(100.000000) + mad_sat r15.w, r16.w, cb3[r14.w + 10].y, r15.w + mul r16.w, r15.w, cb3[r14.w + 10].w + mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r16.xyxx, cb3[1].wwww, cb3[2].wwww + mov r17.z, cb3[r14.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t1.xyzw, s2, r3.w + mul r17.xyz, r17.xyzx, cb3[r14.w + 9].wwww + div r16.x, r6.w, r16.z + min r16.x, |r16.x|, l(1.000000) + mad r16.x, r16.x, l(2.000000), r6.w + add r16.y, r16.z, l(2.000000) + div r16.x, r16.x, r16.y + add r16.x, r16.x, l(-1.000000) + mad r16.x, r16.x, cb0[112].w, l(1.000000) + mul r16.xyz, r16.xxxx, r17.xyzx + mul r16.xyz, r16.wwww, r16.xyzx + mad r15.xyz, r16.xyzx, r10.wwww, r15.xyzx + mad r14.w, -r15.w, cb3[r14.w + 10].w, l(1.000000) + mul r10.w, r10.w, r14.w + endif + mov r13.w, l(-1) + continue + else + mov r13.w, r14.z + break + endif + mov r13.w, r14.z +endloop +if_nz r13.w + dp3 r0.w, r12.xyzx, r12.xyzx + rsq r0.w, r0.w + mul r16.xyz, r0.wwww, r12.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r18.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r18.xyzx + itof r17.xyz, r17.xyzx + dp3 r0.w, r16.xyzx, r17.xyzx + div r16.xyz, r16.xyzx, r0.wwww + lt r0.w, r16.z, l(0.000000) + add r14.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r14.zw, r14.zzzw, r17.xxxy + movc r14.zw, r0.wwww, r14.zzzw, r16.xxxy + mov r5.w, l(1.000000) + dp4 r0.w, cb3[3].xyzw, r5.xyzw + max r0.w, r0.w, l(0.000000) + max r0.w, r0.w, l(0.000100) + mad r14.zw, r14.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r16.xy, r14.zwzz, cb3[1].wwww, cb3[2].wwww + mov r16.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t1.xyzw, s2, r3.w + div r3.w, r6.w, r0.w + min r3.w, |r3.w|, l(1.000000) + mad r3.w, r3.w, l(2.000000), r6.w + add r0.w, r0.w, l(2.000000) + div r0.w, r3.w, r0.w + add r0.w, r0.w, l(-1.000000) + mad r0.w, r0.w, cb0[112].w, l(1.000000) + mul r16.xyz, r0.wwww, r16.xyzx + mad r15.xyz, r16.xyzx, r10.wwww, r15.xyzx +endif +mul r13.xyz, r7.xywx, r13.xyzx +add r0.w, r7.z, l(-1.000000) +mad r0.w, cb2[1].x, r0.w, l(1.000000) +mul r13.xyz, r0.wwww, r13.xyzx +mul r15.xyz, r15.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +lt r30.x, l(0.500000), cb13[14].x +if_nz r30.x + mul r15.xyz, r15.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) +endif +mul r15.xyz, r15.xyzx, cb0[111].yyyy +mul_sat r0.w, r6.y, l(50.000000) +mul r0.w, r2.w, r0.w +mad r16.xyz, r6.xyzx, r2.zzzz, r0.wwww +mul r15.xyz, r15.xyzx, r16.xyzx +mad r13.xyz, r13.xyzx, cb0[111].xxxx, r15.xyzx +lt r0.w, cb6[35].w, l(0.990000) +if_nz r0.w + ftoi r0.w, cb6[35].x + ieq r2.z, r0.w, l(2) + movc r15.xyz, r2.zzzz, cb6[20].xyzx, cb0[44].xyzx + add r15.xyz, r0.xyzx, -r15.xyzx + dp3 r2.z, r15.xyzx, r15.xyzx + add r2.z, -r2.z, cb6[34].w + mul_sat r2.z, r2.z, cb6[34].z + lt r2.w, l(0.000000), r2.z + if_nz r2.w + ilt r0.w, l(0), r0.w + if_nz r0.w + add r15.xyz, r0.xyzx, -cb6[20].xyzx + add r16.xyz, r0.xyzx, -cb6[21].xyzx + add r17.xyz, r0.xyzx, -cb6[22].xyzx + add r18.xyz, r0.xyzx, -cb6[23].xyzx + dp3 r15.x, r15.xyzx, r15.xyzx + dp3 r15.y, r16.xyzx, r16.xyzx + dp3 r15.z, r17.xyzx, r17.xyzx + dp3 r15.w, r18.xyzx, r18.xyzx + lt r16.x, r15.x, cb6[20].w + lt r16.y, r15.y, cb6[21].w + lt r16.z, r15.z, cb6[22].w + lt r16.w, r15.w, cb6[23].w + and r17.xyzw, r16.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r16.xyz, r16.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r16.xyz, r16.xyzx, r17.yzwy + max r17.yzw, r16.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.w, r17.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.w, -r0.w, l(4.000000) + max r0.w, r0.w, l(0.000000) + min r0.w, r0.w, l(3.000000) + add r2.w, r0.w, l(1.000000) + min r2.w, r2.w, l(3.000000) + ftou r2.w, r2.w + dp3 r3.w, r15.yzwy, icb[r2.w + 0].yzwy + div r2.w, r3.w, cb6[r2.w + 20].w + ge r3.w, r2.w, l(0.000000) + ge r2.w, l(1.000000), r2.w + and r2.w, r2.w, r3.w + if_nz r2.w + ftou r2.w, r0.w + add r14.zw, r14.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r3.w, r14.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r3.w, r3.w + mul r3.w, r3.w, l(52.982918) + frc r3.w, r3.w + dp4 r4.w, r15.xyzw, icb[r2.w + 0].xyzw + div r2.w, r4.w, cb6[r2.w + 20].w + sqrt r2.w, r2.w + add r2.w, r2.w, l(-0.900000) + mul r2.w, r2.w, l(12.000000) + ge r2.w, r2.w, r3.w + and r2.w, r2.w, l(0x3f800000) + add r0.w, r0.w, r2.w + endif + dp3 r2.w, r5.xyzx, cb5[0].xyzx + max r2.w, r2.w, l(0.000000) + min r2.w, r2.w, l(0.900000) + add r2.w, -r2.w, l(1.000000) + ftou r3.w, r0.w + ishl r4.w, r3.w, l(2) + mul r14.zw, r2.wwww, cb6[r3.w + 24].xxxy + max r2.w, r14.z, l(0.000000) + mad r15.xyz, -cb5[0].xyzx, r2.wwww, r0.xyzx + mad r15.xyz, r5.xyzx, r14.wwww, r15.xyzx + mul r16.xyz, r15.yyyy, cb6[r4.w + 1].xyzx + mad r15.xyw, cb6[r4.w + 0].xyxz, r15.xxxx, r16.xyxz + mad r15.xyz, cb6[r4.w + 2].xyzx, r15.zzzz, r15.xywx + add r15.xyz, r15.xyzx, cb6[r4.w + 3].xyzx + ge r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + ge r17.xyz, r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r16.xyz, r16.xyzx, r17.xyzx + or r2.w, r16.y, r16.x + or r2.w, r16.z, r2.w + and r3.w, r15.z, l(0x7fffffff) + ult r3.w, l(0x7f800000), r3.w + or r16.z, r2.w, r3.w + ftoi r0.w, r0.w + mad r14.zw, r15.xxxy, cb6[r0.w + 28].zzzw, cb6[r0.w + 28].xxxy + mad r15.xy, r14.zwzz, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r15.xy, r15.xyxx + mad r14.zw, r14.zzzw, cb6[32].zzzw, -r15.xxxy + add r17.xyzw, r14.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r17.xz, r14.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r19.xy, r14.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.zw, r18.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r14.zzzw + add r14.zw, -r14.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r14.zw, -r17.xxxz, r17.xxxz, r14.zzzw + mad r17.xy, -r19.xyxx, r19.xyxx, r17.ywyy + mov r20.x, r19.z + mov r20.y, r14.z + mov r20.z, r17.x + mov r20.w, r18.x + mul r20.xyzw, r20.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r18.x, r19.w + mov r18.y, r14.w + mov r18.z, r17.y + mul r17.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r18.xyzw, r20.ywyw, r20.xzxz + add r19.xyzw, r17.yyww, r17.xxzz + div r14.zw, r20.yyyw, r18.zzzw + add r14.zw, r14.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r20.xy, r14.zwzz, cb6[32].xxxx + div r14.zw, r17.yyyw, r19.yyyw + add r14.zw, r14.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r20.zw, r14.zzzw, cb6[32].yyyy + mul r17.xyzw, r18.xyzw, r19.xyzw + mad r18.xyzw, r15.xyxy, cb6[32].xyxy, r20.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r18.xyxx, t5.xxxx, s3, r15.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.zwzz, t5.xxxx, s3, r15.z + mul r2.w, r2.w, r17.y + mad r0.w, r17.x, r0.w, r2.w + mad r18.xyzw, r15.xyxy, cb6[32].xyxy, r20.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.xyxx, t5.xxxx, s3, r15.z + mad r0.w, r17.z, r2.w, r0.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.zwzz, t5.xxxx, s3, r15.z + mad r0.w, r17.w, r2.w, r0.w + movc r16.x, r16.z, l(1.000000), r0.w + else + mov r16.xz, l(1.000000,0,0,0) + endif + else + mov r16.xz, l(1.000000,0,0,0) + endif + lt r0.w, r2.z, l(1.000000) + if_nz r0.w + dp3 r0.w, r5.xyzx, cb5[0].xyzx + max r0.w, r0.w, l(0.000000) + min r0.w, r0.w, l(0.900000) + add r0.w, -r0.w, l(1.000000) + mul r14.zw, r0.wwww, cb6[584].xxxy + mad r15.xyz, -cb5[0].xyzx, r14.zzzz, r0.xyzx + mad r15.xyz, r5.xyzx, r14.wwww, r15.xyzx + mul r14.zw, r15.yyyy, cb6[581].xxxy + mad r14.zw, cb6[580].xxxy, r15.xxxx, r14.zzzw + mad r14.zw, cb6[582].xxxy, r15.zzzz, r14.zzzw + add r14.zw, r14.zzzw, cb6[583].xxxy + lt r17.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r14.zwzz + and r0.w, r17.y, r17.x + lt r17.xy, r14.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r2.w, r17.y, r17.x + and r0.w, r0.w, r2.w + if_nz r0.w + mul r0.w, r14.w, cb6[585].z + round_ni r0.w, r0.w + add r0.w, r14.z, r0.w + mul r0.w, r0.w, cb6[585].y + ftou r0.w, r0.w + umin r0.w, r0.w, l(127) + and r2.w, l(0x0000ffff), cb6[r0.w + 587].x + f16tof32 r17.x, r2.w + ge r2.w, r17.x, l(0.000000) + if_nz r2.w + mov r18.x, cb6[576].x + mov r18.y, cb6[577].x + mov r18.z, cb6[578].x + mov r18.w, cb6[r0.w + 587].y + mov r15.w, l(1.000000) + dp4 r18.x, r18.xyzw, r15.xyzw + mov r19.x, cb6[576].y + mov r19.y, cb6[577].y + mov r19.z, cb6[578].y + mov r19.w, cb6[r0.w + 587].z + dp4 r18.y, r19.xyzw, r15.xyzw + mov r19.x, cb6[576].z + mov r19.y, cb6[577].z + mov r19.z, cb6[578].z + mov r19.w, cb6[r0.w + 587].w + dp4 r2.w, r19.xyzw, r15.xyzw + lt r14.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xxxy + lt r3.w, l(0.000000), r2.w + and r4.w, r14.w, r14.z + and r3.w, r3.w, r4.w + lt r14.zw, r18.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + lt r4.w, r2.w, l(1.000000) + and r5.w, r14.w, r14.z + and r4.w, r4.w, r5.w + and r3.w, r3.w, r4.w + if_nz r3.w + ushr r0.w, cb6[r0.w + 587].x, l(16) + f16tof32 r17.y, r0.w + mad r14.zw, r18.xxxy, cb6[584].zzzw, r17.xxxy + mad r15.xy, r14.zwzz, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r15.xy, r15.xyxx + mad r14.zw, r14.zzzw, cb6[586].zzzw, -r15.xxxy + add r17.xyzw, r14.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r15.zw, r14.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + max r17.xz, r14.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r14.zwzz + add r14.zw, -r14.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r14.zw, -r15.zzzw, r15.zzzw, r14.zzzw + mad r15.zw, -r17.xxxz, r17.xxxz, r17.yyyw + mov r17.x, r19.x + mov r17.y, r14.z + mov r17.z, r15.z + mov r17.w, r18.x + mul r17.xyzw, r17.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r18.x, r19.y + mov r18.y, r14.w + mov r18.z, r15.w + mul r18.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r19.xyzw, r17.ywyw, r17.xzxz + add r20.xyzw, r18.yyww, r18.xxzz + div r14.zw, r17.yyyw, r19.zzzw + add r14.zw, r14.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r17.xy, r14.zwzz, cb6[586].xxxx + div r14.zw, r18.yyyw, r20.yyyw + add r14.zw, r14.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r17.zw, r14.zzzw, cb6[586].yyyy + mul r18.xyzw, r19.xyzw, r20.xyzw + mad r19.xyzw, r15.xyxy, cb6[586].xyxy, r17.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r19.xyxx, t8.xxxx, s3, r2.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r19.zwzz, t8.xxxx, s3, r2.w + mul r3.w, r3.w, r18.y + mad r0.w, r18.x, r0.w, r3.w + mad r15.xyzw, r15.xyxy, cb6[586].xyxy, r17.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r15.xyxx, t8.xxxx, s3, r2.w + mad r0.w, r18.z, r3.w, r0.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r15.zwzz, t8.xxxx, s3, r2.w + mad r16.y, r18.w, r2.w, r0.w + else + mov r16.y, l(1.000000) + endif + else + mov r16.y, l(1.000000) + endif + else + mov r16.y, l(1.000000) + endif + movc r16.x, r16.z, r16.y, r16.x + else + mov r16.y, l(1.000000) + endif + add r0.w, -r16.y, r16.x + mad r0.w, r2.z, r0.w, r16.y + lt r2.z, l(0.001000), r0.w + if_nz r2.z + add r15.xyz, r0.xyzx, -cb0[173].xyzx + mad r2.zw, cb0[176].xxxz, r15.yyyy, r15.xxxz + mul r14.zw, r2.zzzw, cb0[174].zzzz + mul r15.yw, cb0[175].xxxy, cb0[183].wwww + mad r2.zw, r2.zzzw, cb0[174].zzzz, r15.yyyw + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r2.zwzz, t7.yzxw, s1, l(0.000000) + mad r14.zw, r14.zzzw, cb0[175].wwww, r15.yyyw + sample_l_indexable(texture2d)(float,float,float,float) r2.w, r14.zwzz, t7.yzwx, s1, l(0.000000) + dp2 r3.w, r15.xzxx, r15.xzxx + sqrt r3.w, r3.w + add r4.w, -cb0[174].x, cb0[174].y + add r3.w, r3.w, -cb0[174].x + div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul_sat r3.w, r3.w, r4.w + mad r4.w, r3.w, l(-2.000000), l(3.000000) + mul r3.w, r3.w, r3.w + mul r3.w, r3.w, r4.w + add r2.w, -r2.z, r2.w + mad r2.z, r3.w, r2.w, r2.z + add r2.z, r2.z, l(-1.000000) + mad r2.z, cb0[175].z, r2.z, l(1.000000) + mul r0.w, r0.w, r2.z + endif + add r2.z, -r0.w, cb6[35].z + mad r0.w, cb6[35].w, r2.z, r0.w +else + mov r0.w, cb6[35].z +endif +min r0.w, r0.w, l(1.000000) +add r0.w, r0.w, l(-1.000000) +mad r15.x, cb6[34].x, r0.w, l(1.000000) +lt r0.w, l(0.001000), r15.x +if_nz r0.w + dp3 r0.w, -cb5[0].xyzx, r12.xyzx + mad r16.xyz, cb5[0].xyzx, r0.wwww, r12.xyzx + lt r0.w, r0.w, cb5[4].z + dp3 r2.z, r16.xyzx, r16.xyzx + max r2.z, r2.z, l(0.0000610351562) + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb5[4].yyyy + mad r16.xyz, -cb5[0].xyzx, cb5[4].zzzz, r16.xyzx + dp3 r2.z, r16.xyzx, r16.xyzx + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + movc r16.xyz, r0.wwww, r16.xyzx, r12.xyzx + mad r17.xyz, r1.yzwy, r2.yyyy, r16.xyzx + dp3 r0.w, r17.xyzx, r17.xyzx + max r0.w, r0.w, l(0.0000610351562) + rsq r0.w, r0.w + mul r17.xyz, r0.wwww, r17.xyzx + dp3_sat r9.y, r16.xyzx, r5.xyzx + dp3_sat r0.w, r5.xyzx, r17.xyzx + min r9.z, r1.x, l(1.000000) + mul r2.z, r9.w, r9.w + mul r2.z, r2.z, r2.z + mad r2.w, r0.w, r2.z, -r0.w + mad r0.w, r2.w, r0.w, l(1.000000) + dp3_sat r2.w, r4.xyzx, r17.xyzx + add r2.w, -r2.w, l(1.000000) + mul r3.w, r2.w, r2.w + mul r3.w, r3.w, r3.w + mul r4.w, r2.w, r3.w + add r5.w, -r9.w, l(1.000000) + mad r6.w, -r5.w, l(0.383026), l(-0.0761947036) + mad r6.w, r5.w, r6.w, l(1.049970) + mad r5.w, r5.w, r6.w, l(0.409255) + min r5.w, r5.w, l(0.999000) + add r6.w, -r5.w, l(1.000000) + add r16.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r6.xyzx + mad r2.w, -r3.w, r2.w, l(1.000000) + mad r17.xyz, r6.xyzx, r2.wwww, r4.wwww + mul r0.w, r0.w, r0.w + div r0.w, r2.z, r0.w + mad r14.zw, -r9.zzzy, r2.zzzz, r9.zzzy + mad r2.zw, r14.zzzw, r9.zzzy, r2.zzzz + sqrt r2.zw, r2.zzzw + mul r2.zw, r2.zzzw, r9.yyyz + add r2.z, r2.w, r2.z + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.w, r0.w, r2.z + mul r17.xyz, r0.wwww, r17.xyzx + min r17.xyz, r17.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.xyzw, r9.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.w, r18.xyxx, t10.yzwx, s0, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r18.zwzz, t10.yzxw, s0, l(0.000000) + mul r0.w, r0.w, r2.z + mul r0.w, r5.w, r0.w + div r0.w, r0.w, r6.w + mul r18.xyz, r16.xyzx, r16.xyzx + mul r18.xyz, r0.wwww, r18.xyzx + mad r16.xyz, -r16.xyzx, r6.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r16.xyz, r18.xyzx, r16.xyzx + add r16.xyz, r16.xyzx, r17.xyzx + mul r16.xyz, r16.xyzx, cb5[4].xxxx + // === Glass Fix: Reduce sun specular intensity === + lt r30.x, l(0.500000), cb13[14].x + if_nz r30.x + mul r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + endif + max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r16.xyz, r16.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r17.xyz, r7.xywx, r9.yyyy + mad r16.xyz, r16.xyzx, r9.yyyy, r17.xyzx + mul r16.xyz, r16.xyzx, cb5[1].xyzx + mov r15.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r15.yzw, r15.xyxx, t9.wxyz, s0, cb0[108].x + add r0.w, -r15.x, l(1.000000) + mad r15.xyz, r16.xyzx, r15.yzwy, -r16.xyzx + mad r15.xyz, r0.wwww, r15.xyzx, r16.xyzx +else + mov r15.xyz, l(0,0,0,0) +endif +mul r2.zw, r14.xxxy, l(0.000000, 0.000000, 0.031250, 0.031250) +round_ni r2.zw, r2.zzzw +mad r0.w, r2.w, cb4[1].y, r2.z +mul r0.w, r0.w, l(8.000000) +ftoi r0.w, r0.w +mad r2.z, -cb0[85].y, cb4[2].w, r11.z +round_ni r2.z, r2.z +add r2.w, l(-1.000000), cb4[1].w +max r3.w, r2.z, l(0.000000) +min r2.w, r2.w, r3.w +mul r3.w, r2.w, l(8.000000) +ftoi r3.w, r3.w +ge r2.z, r2.w, r2.z +iadd r2.w, r3.w, cb0[110].y +mul r3.w, r9.w, r9.w +min r9.x, r1.x, l(1.000000) +add r1.x, -r9.w, l(1.000000) +mad r4.w, -r1.x, l(0.383026), l(-0.0761947036) +mad r4.w, r1.x, r4.w, l(1.049970) +mad r1.x, r1.x, r4.w, l(0.409255) +min r1.x, r1.x, l(0.999000) +add r4.w, -r1.x, l(1.000000) +add r16.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r6.xyzx +mad r9.yz, r9.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r5.w, r9.yzyy, t10.yzwx, s0, l(0.000000) +mad r17.xyz, -r16.xyzx, r4.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r18.w, l(1.000000) +mov r19.y, l(1.000000) +mov r20.z, r9.w +mov r21.xyz, l(0,0,0,0) +mov r6.w, l(1.000000) +mov r7.z, l(0) +loop + ilt r9.y, l(7), r7.z + breakc_nz r9.y + iadd r9.y, r0.w, r7.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.y, r9.y, l(0), t0.xxxx + iadd r9.z, r2.w, r7.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.z, r9.z, l(0), t0.xxxx + and r9.y, r9.z, r9.y + and r9.y, r2.z, r9.y + ishl r9.z, r7.z, l(5) + mov r22.xyz, l(0,0,0,0) + mov r10.w, r6.w + mov r12.w, r9.y + loop + breakc_z r12.w + firstbit_lo r13.w, r12.w + ishl r14.z, l(1), r13.w + xor r14.z, r12.w, r14.z + iadd r13.w, r9.z, r13.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r13.wwww, l(1, 3, 5, 6) + bfi r14.w, l(29), l(3), r13.w, l(7) + ftou r15.w, cb5[r23.z + 6].w + ieq r15.w, r15.w, l(1) + if_nz r15.w + add r18.xyz, r0.xyzx, -cb5[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r23.w + 6].yxzy + ushr r26.xyz, cb5[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb5[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r15.w, r18.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r16.w, r18.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r17.w, r18.xyzw, r27.xyzw + max r15.w, |r15.w|, |r16.w| + max r15.w, |r17.w|, r15.w + mad r16.w, cb5[r14.w + 6].x, l(0.500000), l(0.500000) + add r15.w, r15.w, -r16.w + mad r16.w, -cb5[r14.w + 6].x, l(0.500000), l(0.500000) + div_sat r15.w, r15.w, r16.w + add r15.w, -r15.w, l(1.000000) + mul r15.w, r15.w, r15.w + else + mov r15.w, l(1.000000) + endif + lt r16.w, l(0.500000), cb5[r23.y + 6].z + lt r17.w, r15.w, l(0.001000) + or r17.w, r16.w, r17.w + if_nz r17.w + mov r12.w, r14.z + continue + endif + ishl r17.w, r13.w, l(3) + bfi r13.w, l(29), l(3), r13.w, l(2) + lt r18.x, cb5[r17.w + 6].w, l(1.500000) + if_nz r18.x + mad r18.x, cb5[r13.w + 6].y, l(0.500000), l(0.500000) + add r18.x, r18.x, -|cb5[r13.w + 6].x| + add r18.y, -r18.x, cb5[r13.w + 6].y + add r19.z, -|r18.x|, l(1.000000) + add r19.z, -|r18.y|, r19.z + max r19.z, r19.z, l(0.000488281250) + ge r19.w, cb5[r13.w + 6].x, l(0.000000) + movc r18.z, r19.w, r19.z, -r19.z + dp3 r19.z, r18.xyzx, r18.xyzx + rsq r19.z, r19.z + mul r18.xyz, r18.xyzx, r19.zzzz + add r24.xyz, -r0.xyzx, cb5[r23.x + 6].xyzx + dp3 r19.z, r24.xyzx, r24.xyzx + rsq r19.w, r19.z + mul r25.xyz, r19.wwww, r24.xyzx + ftoi r20.w, cb5[r14.w + 6].w + mul r26.xyz, r18.xyzx, cb5[r13.w + 6].zzzz + mad r27.xyz, -r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + mad r28.xyz, r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + ftou r21.w, cb5[r17.w + 6].w + and r21.w, r21.w, l(1) + ieq r22.w, r21.w, l(0) + not r22.w, r22.w + lt r23.z, l(0.000000), cb5[r13.w + 6].z + and r22.w, r22.w, r23.z + dp3 r23.z, r27.xyzx, r27.xyzx + sqrt r23.z, r23.z + dp3 r24.w, r28.xyzx, r28.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r5.xyzx, r27.xyzx + div r25.w, r25.w, r23.z + dp3 r26.w, r5.xyzx, r28.xyzx + div r26.w, r26.w, r24.w + add r25.w, r25.w, r26.w + mul_sat r29.x, r25.w, l(0.500000) + dp3 r25.w, r27.xyzx, r28.xyzx + mad r23.z, r23.z, r24.w, r25.w + mad r23.z, r23.z, l(0.500000), l(1.000000) + div r29.y, l(1.000000, 1.000000, 1.000000, 1.000000), r23.z + dp3_sat r19.x, r5.xyzx, r25.xyzx + movc r20.xy, r22.wwww, r29.xyxx, r19.xyxx + lt r19.x, cb5[r23.w + 6].w, l(0.000000) + if_nz r19.x + mul r19.x, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r19.x, r19.x, r19.z + mad r19.x, -r19.x, r19.x, l(1.000000) + max r19.x, r19.x, l(0.000000) + add r19.z, r19.z, l(1.000000) + div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z + and r23.z, r22.w, l(0x3f800000) + add r24.w, -r19.z, r20.y + mad r19.z, r23.z, r24.w, r19.z + mul r19.x, r19.x, r19.x + mul r19.x, r19.x, r19.z + else + mul r28.xyz, r24.xyzx, cb5[r23.x + 6].wwww + dp3 r19.z, r28.xyzx, r28.xyzx + min r19.z, r19.z, l(1.000000) + add r19.z, -r19.z, l(1.000000) + log r19.z, r19.z + mul r19.z, r19.z, cb5[r23.w + 6].w + exp r19.z, r19.z + mul r19.x, r19.z, r20.y + endif + dp3 r18.x, r25.xyzx, -r18.xyzx + add r18.x, r18.x, -cb5[r13.w + 6].z + mul_sat r18.x, r18.x, cb5[r13.w + 6].w + mul r18.x, r18.x, r18.x + movc r18.x, r21.w, l(1.000000), r18.x + mul r18.x, r18.x, r19.x + not r18.y, r22.w + ige r18.z, r20.w, l(0) + and r18.y, r18.z, r18.y + if_nz r18.y + if_z r21.w + ishl r18.y, r20.w, l(2) + mul r28.xyz, r0.yyyy, cb7[r18.y + 33].xywx + mad r28.xyz, cb7[r18.y + 32].xywx, r0.xxxx, r28.xyzx + mad r28.xyz, cb7[r18.y + 34].xywx, r0.zzzz, r28.xyzx + add r28.xyz, r28.xyzx, cb7[r18.y + 35].xywx + div_sat r18.yz, r28.xxyx, r28.zzzz + mad r18.yz, r18.yyzy, cb7[r20.w + 0].zzwz, cb7[r20.w + 0].xxyx + else + ishl r19.x, r20.w, l(2) + dp3 r28.x, -r24.xyzx, cb7[r19.x + 32].xyzx + dp3 r28.y, -r24.xyzx, cb7[r19.x + 33].xyzx + dp3 r28.z, -r24.xyzx, cb7[r19.x + 34].xyzx + lt r19.x, |r28.x|, |r28.y| + and r19.x, r19.x, l(1) + dp2 r19.z, |r28.xyxx|, icb[r19.x + 0].xyxx + lt r19.z, r19.z, |r28.z| + movc r19.x, r19.z, l(2), r19.x + dp3 r19.z, r28.xyzx, icb[r19.x + 0].xyzx + lt r19.z, r19.z, l(0.000000) + bfi r19.x, l(31), l(1), r19.x, r19.z + ushr r19.z, r19.x, l(1) + dp3 r19.z, r28.xyzx, icb[r19.z + 0].xyzx + div r20.y, l(0.000244140625), cb7[r20.w + 0].w + add r20.y, -r20.y, l(0.500000) + utof r23.z, r19.x + ult r24.x, r19.x, l(2) + and r24.x, r24.x, l(2) + dp2 r24.x, r28.xzxx, icb[r24.x + 0].xzxx + mul r24.x, r24.x, icb[r19.x + 4].z + div r24.x, r24.x, |r19.z| + mad r23.z, r24.x, r20.y, r23.z + add r23.z, r23.z, l(0.500000) + mul_sat r24.x, r23.z, l(0.166666672) + iadd r23.z, l(-1), icb[r19.x + 4].y + dp2 r23.z, r28.yzyy, icb[r23.z + 0].xyxx + mul r19.x, r23.z, icb[r19.x + 4].w + div r19.x, r19.x, |r19.z| + mad_sat r24.y, -r19.x, r20.y, l(0.500000) + mad r18.yz, r24.xxyx, cb7[r20.w + 0].zzwz, cb7[r20.w + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r18.yzyy, t18.yxzw, s0, l(0.000000) + mul r18.x, r18.y, r18.x + endif + lt r18.y, l(0.000000), r18.x + if_nz r18.y + if_z r21.w + ftoi r18.z, cb5[r23.y + 6].x + else + add r24.xyz, r0.xyzx, -cb5[r23.x + 6].xyzx + lt r28.xyz, |r24.yzzy|, |r24.xxyx| + and r19.x, r28.y, r28.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r19.z, cb5[r13.w + 6].w, l(24) + ubfe r20.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb5[r13.w + 6].wwww + movc r19.z, r24.x, r19.z, r20.y + and r20.y, l(255), cb5[r13.w + 6].w + movc r20.y, r24.y, r20.w, r20.y + ubfe r20.w, l(8), l(8), cb5[r23.y + 6].x + and r21.w, l(255), cb5[r23.y + 6].x + movc r20.w, r24.z, r20.w, r21.w + movc r20.y, r28.z, r20.y, r20.w + movc r19.x, r19.x, r19.z, r20.y + ilt r19.z, r19.x, l(80) + movc r18.z, r19.z, r19.x, l(-1) + endif + mad r24.xyz, r25.xyzx, cb6[r18.z + 288].xxxx, r0.xyzx + mul r19.x, l(5.000000), cb6[r18.z + 288].y + mad r24.xyz, r5.xyzx, r19.xxxx, r24.xyzx + ishl r19.x, r18.z, l(2) + mul r28.xyzw, r24.yyyy, cb6[r19.x + 65].xyzw + mad r28.xyzw, cb6[r19.x + 64].xyzw, r24.xxxx, r28.xyzw + mad r24.xyzw, cb6[r19.x + 66].xyzw, r24.zzzz, r28.xyzw + add r24.xyzw, r24.xyzw, cb6[r19.x + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r28.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r19.xz, -cb6[r18.z + 344].xxyx, cb6[r18.z + 344].zzwz + mad r19.xz, r24.xxyx, r19.xxzx, cb6[r18.z + 344].xxyx + mad r20.yw, r19.xxxz, cb6[400].zzzw, l(0.000000, 0.500000, 0.000000, 0.500000) + round_ni r20.yw, r20.yyyw + mad r19.xz, r19.xxzx, cb6[400].zzwz, -r20.yywy + add r30.xyzw, r19.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r31.xyzw, r30.xxzz, r30.xxzz + add r24.xy, -r19.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + min r30.xz, r19.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r32.xy, r19.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r33.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r32.xy, -r32.xyxx, r32.xyxx, r30.ywyy + add r32.xy, r32.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r32.xy, r32.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r31.xz, r31.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xz, r31.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r19.xxzx + mul r34.xy, r19.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xz, -r30.xxzx, r30.xxzx, r24.xxyx + add r19.xz, r19.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r35.xy, r19.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xz, r30.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r34.z, r35.x + mov r34.w, r19.x + mov r33.z, r32.x + mov r33.w, r31.x + add r30.xyzw, r33.zwxz, r34.zwxz + mov r35.z, r34.y + mov r35.w, r19.z + mov r32.z, r33.y + mov r32.w, r31.z + add r24.xyw, r32.zyzw, r35.zyzw + div r31.xyz, r33.xzwx, r30.zwyz + add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r31.xyz, r31.xyzx, cb6[400].xxxx + div r32.xyz, r32.zywz, r24.xywx + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyw, r32.xyxz, cb6[400].yyyy + mul r33.xyzw, r24.xxxy, r30.zwyz + mov r31.w, r32.x + mad r34.xyzw, r20.ywyw, cb6[400].xyxy, r31.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r34.xyxx, t6.xxxx, s3, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r34.zwzz, t6.xxxx, s3, r24.z + mul r19.z, r19.z, r33.y + mad r19.x, r33.x, r19.x, r19.z + mad r33.xy, r20.ywyy, cb6[400].xyxx, r31.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r33.xyxx, t6.xxxx, s3, r24.z + mad r19.x, r33.z, r19.z, r19.x + mov r32.z, r31.x + mad r34.xyzw, r20.ywyw, cb6[400].xyxy, r32.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r34.xyxx, t6.xxxx, s3, r24.z + mad r19.x, r33.w, r19.z, r19.x + mul r33.xyzw, r24.yyww, r30.xyzw + mov r32.xz, r31.yyzy + mad r31.xyzw, r20.ywyw, cb6[400].xyxy, r32.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r31.xyxx, t6.xxxx, s3, r24.z + mad r19.x, r33.x, r19.z, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r31.zwzz, t6.xxxx, s3, r24.z + mad r19.x, r33.y, r19.z, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r34.zwzz, t6.xxxx, s3, r24.z + mad r19.x, r33.z, r19.z, r19.x + ige r19.z, r18.z, l(0) + or r28.xyz, r28.xyzx, r29.xyzx + or r21.w, r28.y, r28.x + or r21.w, r28.z, r21.w + and r23.z, r24.z, l(0x7fffffff) + ult r23.z, l(0x7f800000), r23.z + or r21.w, r21.w, r23.z + mad r28.xyzw, r20.ywyw, cb6[400].xyxy, r32.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.y, r28.xyxx, t6.xxxx, s3, r24.z + mad r19.x, r33.w, r20.y, r19.x + mul r20.y, r24.w, r30.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r28.zwzz, t6.xxxx, s3, r24.z + mad r19.x, r20.y, r20.w, r19.x + add r19.x, r19.x, l(-1.000000) + mad r18.z, cb6[r18.z + 288].w, r19.x, l(1.000000) + movc r18.z, r21.w, l(1.000000), r18.z + movc r18.z, r19.z, r18.z, l(1.000000) + else + mov r18.z, l(1.000000) + endif + if_nz r22.w + dp3 r19.x, r12.xyzx, r26.xyzx + mul_sat r19.z, r19.w, cb5[r13.w + 6].z + mad r19.z, r19.z, l(0.500000), r3.w + min r19.z, r19.z, l(1.000000) + div r19.z, r3.w, r19.z + mad r24.xyz, r12.xyzx, r19.xxxx, -r26.xyzx + dp3 r20.y, r27.xyzx, r24.xyzx + mul r19.x, r19.x, r19.x + mad r19.x, cb5[r13.w + 6].z, cb5[r13.w + 6].z, -r19.x + div_sat r19.x, r20.y, r19.x + mad r24.xyz, r26.xyzx, r19.xxxx, r27.xyzx + dp3 r19.x, r24.xyzx, r24.xyzx + rsq r19.x, r19.x + mul r25.xyz, r19.xxxx, r24.xyzx + else + mov r19.z, l(1.000000) + endif + if_nz r18.y + mul_sat r18.y, r19.w, cb5[r14.w + 6].y + mad r24.xyz, r1.yzwy, r2.yyyy, r25.xyzx + dp3 r19.x, r24.xyzx, r24.xyzx + max r19.x, r19.x, l(0.0000610351562) + rsq r19.x, r19.x + mul r24.xyz, r19.xxxx, r24.xyzx + dp3_sat r19.x, r5.xyzx, r24.xyzx + dp3_sat r19.w, r4.xyzx, r24.xyzx + lt r20.y, l(0.000000), r18.y + mul r18.y, r18.y, r18.y + mad r20.w, r19.w, l(3.600000), l(0.400000) + div r18.y, r18.y, r20.w + mad r18.y, r9.w, r9.w, r18.y + min r18.y, r18.y, l(1.000000) + movc r18.y, r20.y, r18.y, r3.w + mul r18.y, r18.y, r18.y + mad r20.y, r19.x, r18.y, -r19.x + mad r19.x, r20.y, r19.x, l(1.000000) + add r19.w, -r19.w, l(1.000000) + mul r20.y, r19.w, r19.w + mul r20.y, r20.y, r20.y + mul r20.w, r19.w, r20.y + mad r19.w, -r20.y, r19.w, l(1.000000) + mad r24.xyz, r6.xyzx, r19.wwww, r20.wwww + mul r19.x, r19.x, r19.x + div r19.x, r18.y, r19.x + mul r19.x, r19.z, r19.x + mad r19.z, -r9.x, r18.y, r9.x + mad r19.z, r19.z, r9.x, r18.y + sqrt r19.z, r19.z + mad r19.w, -r20.x, r18.y, r20.x + mad r18.y, r19.w, r20.x, r18.y + sqrt r18.y, r18.y + mul r18.y, r9.x, r18.y + mad r18.y, r20.x, r19.z, r18.y + add r18.y, r18.y, l(0.000100) + div r18.y, l(0.500000), r18.y + mul r18.y, r18.y, r19.x + mul r19.xzw, r18.yyyy, r24.xxyz + min r19.xzw, r19.xxzw, l(2048.000000, 0.000000, 2048.000000, 2048.000000) + mad r20.yw, r20.xxxz, l(0.000000, 0.968750, 0.000000, 0.968750), l(0.000000, 0.015625, 0.000000, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r20.ywyy, t10.yxzw, s0, l(0.000000) + mul r18.y, r5.w, r18.y + mul r18.y, r1.x, r18.y + div r18.y, r18.y, r4.w + mul r24.xyz, r16.xyzx, r18.yyyy + div r24.xyz, r24.xyzx, r17.xyzx + add r19.xzw, r19.xxzw, r24.xxyz + mul r19.xzw, r19.xxzw, cb5[r14.w + 6].zzzz + max r19.xzw, r19.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r19.xzw, r19.xxzw, l(1000.000000, 0.000000, 1000.000000, 1000.000000) + mul r24.xyz, r7.xywx, r20.xxxx + mad r19.xzw, r19.xxzw, r20.xxxx, r24.xxyz + mul r20.xyw, r18.xxxx, cb5[r17.w + 6].xyxz + mul r18.xyz, r18.zzzz, r20.xywx + mul r18.xyz, r15.wwww, r18.xyzx + mul r18.xyz, r18.xyzx, r19.xzwx + else + mov r18.xyz, l(0,0,0,0) + endif + else + if_z r16.w + mad r15.w, cb5[r13.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r15.w, -|cb5[r13.w + 6].x| + add r24.y, -r24.x, cb5[r13.w + 6].y + add r15.w, -|r24.x|, l(1.000000) + add r15.w, -|r24.y|, r15.w + max r15.w, r15.w, l(0.000488281250) + ge r16.w, cb5[r13.w + 6].x, l(0.000000) + movc r24.z, r16.w, r15.w, -r15.w + dp3 r15.w, r24.xyzx, r24.xyzx + rsq r15.w, r15.w + mul r19.xzw, r15.wwww, r24.xxyz + add r20.xyw, -r0.xyxz, cb5[r23.x + 6].xyxz + dp3 r15.w, r20.xywx, r20.xywx + rsq r16.w, r15.w + mul r24.xyz, r16.wwww, r20.xywx + ftoi r14.w, cb5[r14.w + 6].w + mul r25.xyz, r19.xzwx, cb5[r13.w + 6].zzzz + mad r26.xyz, -r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r20.xywx + mad r25.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r20.xywx + ftou r16.w, cb5[r17.w + 6].w + and r16.w, r16.w, l(1) + ieq r17.w, r16.w, l(0) + not r17.w, r17.w + lt r21.w, l(0.000000), cb5[r13.w + 6].z + and r17.w, r17.w, r21.w + dp3 r21.w, r26.xyzx, r26.xyzx + sqrt r21.w, r21.w + dp3 r22.w, r25.xyzx, r25.xyzx + sqrt r22.w, r22.w + dp3 r23.z, r26.xyzx, r25.xyzx + mad r21.w, r21.w, r22.w, r23.z + mad r21.w, r21.w, l(0.500000), l(1.000000) + div r21.w, l(1.000000, 1.000000, 1.000000, 1.000000), r21.w + movc r21.w, r17.w, r21.w, l(1.000000) + lt r22.w, cb5[r23.w + 6].w, l(0.000000) + if_nz r22.w + mul r22.w, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r22.w, r15.w, r22.w + mad r22.w, -r22.w, r22.w, l(1.000000) + max r22.w, r22.w, l(0.000000) + add r15.w, r15.w, l(1.000000) + div r15.w, l(1.000000, 1.000000, 1.000000, 1.000000), r15.w + and r23.z, r17.w, l(0x3f800000) + add r24.w, -r15.w, r21.w + mad r15.w, r23.z, r24.w, r15.w + mul r22.w, r22.w, r22.w + mul r15.w, r15.w, r22.w + else + mul r25.xyz, r20.xywx, cb5[r23.x + 6].wwww + dp3 r22.w, r25.xyzx, r25.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb5[r23.w + 6].w + exp r22.w, r22.w + mul r15.w, r21.w, r22.w + endif + dp3 r19.x, r24.xyzx, -r19.xzwx + add r19.x, r19.x, -cb5[r13.w + 6].z + mul_sat r19.x, r19.x, cb5[r13.w + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r16.w, l(1.000000), r19.x + mul r15.w, r15.w, r19.x + not r17.w, r17.w + ige r19.x, r14.w, l(0) + and r17.w, r17.w, r19.x + if_nz r17.w + if_z r16.w + ishl r17.w, r14.w, l(2) + mul r19.xzw, r0.yyyy, cb7[r17.w + 33].xxyw + mad r19.xzw, cb7[r17.w + 32].xxyw, r0.xxxx, r19.xxzw + mad r19.xzw, cb7[r17.w + 34].xxyw, r0.zzzz, r19.xxzw + add r19.xzw, r19.xxzw, cb7[r17.w + 35].xxyw + div_sat r19.xz, r19.xxzx, r19.wwww + mad r19.xz, r19.xxzx, cb7[r14.w + 0].zzwz, cb7[r14.w + 0].xxyx + else + ishl r17.w, r14.w, l(2) + dp3 r25.x, -r20.xywx, cb7[r17.w + 32].xyzx + dp3 r25.y, -r20.xywx, cb7[r17.w + 33].xyzx + dp3 r25.z, -r20.xywx, cb7[r17.w + 34].xyzx + lt r17.w, |r25.x|, |r25.y| + and r17.w, r17.w, l(1) + dp2 r19.w, |r25.xyxx|, icb[r17.w + 0].xyxx + lt r19.w, r19.w, |r25.z| + movc r17.w, r19.w, l(2), r17.w + dp3 r19.w, r25.xyzx, icb[r17.w + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r17.w, l(31), l(1), r17.w, r19.w + ushr r19.w, r17.w, l(1) + dp3 r19.w, r25.xyzx, icb[r19.w + 0].xyzx + div r20.x, l(0.000244140625), cb7[r14.w + 0].w + add r20.x, -r20.x, l(0.500000) + utof r20.y, r17.w + ult r20.w, r17.w, l(2) + and r20.w, r20.w, l(2) + dp2 r20.w, r25.xzxx, icb[r20.w + 0].xzxx + mul r20.w, r20.w, icb[r17.w + 4].z + div r20.w, r20.w, |r19.w| + mad r20.y, r20.w, r20.x, r20.y + add r20.y, r20.y, l(0.500000) + mul_sat r26.x, r20.y, l(0.166666672) + iadd r20.y, l(-1), icb[r17.w + 4].y + dp2 r20.y, r25.yzyy, icb[r20.y + 0].xyxx + mul r17.w, r20.y, icb[r17.w + 4].w + div r17.w, r17.w, |r19.w| + mad_sat r26.y, -r17.w, r20.x, l(0.500000) + mad r19.xz, r26.xxyx, cb7[r14.w + 0].zzwz, cb7[r14.w + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r14.w, r19.xzxx, t18.yzwx, s0, l(0.000000) + mul r15.w, r14.w, r15.w + endif + lt r14.w, l(0.000000), r15.w + if_nz r14.w + if_z r16.w + ftoi r14.w, cb5[r23.y + 6].x + else + add r19.xzw, r0.xxyz, -cb5[r23.x + 6].xxyz + lt r20.xyw, |r19.zwzw|, |r19.xxxz| + and r15.w, r20.y, r20.x + lt r19.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxzw + ushr r16.w, cb5[r13.w + 6].w, l(24) + ubfe r20.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r13.w + 6].wwww + movc r16.w, r19.x, r16.w, r20.x + and r13.w, l(255), cb5[r13.w + 6].w + movc r13.w, r19.z, r20.y, r13.w + ubfe r17.w, l(8), l(8), cb5[r23.y + 6].x + and r19.x, l(255), cb5[r23.y + 6].x + movc r17.w, r19.w, r17.w, r19.x + movc r13.w, r20.w, r13.w, r17.w + movc r13.w, r15.w, r16.w, r13.w + ilt r15.w, r13.w, l(80) + movc r14.w, r15.w, r13.w, l(-1) + endif + mad r19.xzw, r24.xxyz, cb6[r14.w + 288].xxxx, r0.xxyz + mul r13.w, l(5.000000), cb6[r14.w + 288].y + mad r19.xzw, r5.xxyz, r13.wwww, r19.xxzw + ishl r13.w, r14.w, l(2) + mul r23.xyzw, r19.zzzz, cb6[r13.w + 65].xyzw + mad r23.xyzw, cb6[r13.w + 64].xyzw, r19.xxxx, r23.xyzw + mad r23.xyzw, cb6[r13.w + 66].xyzw, r19.wwww, r23.xyzw + add r23.xyzw, r23.xyzw, cb6[r13.w + 67].xyzw + div r19.xzw, r23.xxyz, r23.wwww + ge r20.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xzxw + ge r23.xyz, r19.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r24.xy, -cb6[r14.w + 344].xyxx, cb6[r14.w + 344].zwzz + mad r19.xz, r19.xxzx, r24.xxyx, cb6[r14.w + 344].xxyx + mad r24.xy, r19.xzxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r24.xy, r24.xyxx + mad r19.xz, r19.xxzx, cb6[400].zzwz, -r24.xxyx + add r25.xyzw, r19.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r26.xyzw, r25.xxzz, r25.xxzz + add r24.zw, -r19.xxxz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r25.xz, r19.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r27.xy, r19.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r28.xy, r24.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r27.xy, -r27.xyxx, r27.xyxx, r25.ywyy + add r27.xy, r27.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r27.xy, r27.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r26.xz, r26.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xz, r26.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r19.xxzx + mul r29.xy, r19.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xz, -r25.xxzx, r25.xxzx, r24.zzwz + add r19.xz, r19.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r30.xy, r19.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xz, r25.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r29.z, r30.x + mov r29.w, r19.x + mov r28.z, r27.x + mov r28.w, r26.x + add r25.xyzw, r28.zwxz, r29.zwxz + mov r30.z, r29.y + mov r30.w, r19.z + mov r27.z, r28.y + mov r27.w, r26.z + add r26.xyz, r27.zywz, r30.zywz + div r28.xyz, r28.xzwx, r25.zwyz + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb6[400].xxxx + div r27.xyz, r27.zywz, r26.xyzx + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyw, r27.xyxz, cb6[400].yyyy + mul r29.xyzw, r25.zwyz, r26.xxxy + mov r28.w, r27.x + mad r30.xyzw, r24.xyxy, cb6[400].xyxy, r28.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r13.w, r30.xyxx, t6.xxxx, s3, r19.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r30.zwzz, t6.xxxx, s3, r19.w + mul r15.w, r15.w, r29.y + mad r13.w, r29.x, r13.w, r15.w + mad r19.xz, r24.xxyx, cb6[400].xxyx, r28.zzwz + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r19.xzxx, t6.xxxx, s3, r19.w + mad r13.w, r29.z, r15.w, r13.w + mov r27.z, r28.x + mad r30.xyzw, r24.xyxy, cb6[400].xyxy, r27.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r30.xyxx, t6.xxxx, s3, r19.w + mad r13.w, r29.w, r15.w, r13.w + mul r29.xyzw, r25.xyzw, r26.yyzz + mov r27.xz, r28.yyzy + mad r28.xyzw, r24.xyxy, cb6[400].xyxy, r27.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r28.xyxx, t6.xxxx, s3, r19.w + mad r13.w, r29.x, r15.w, r13.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r28.zwzz, t6.xxxx, s3, r19.w + mad r13.w, r29.y, r15.w, r13.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r30.zwzz, t6.xxxx, s3, r19.w + mad r13.w, r29.z, r15.w, r13.w + ige r15.w, r14.w, l(0) + or r20.xyw, r20.xyxw, r23.xyxz + or r16.w, r20.y, r20.x + or r16.w, r20.w, r16.w + and r17.w, r19.w, l(0x7fffffff) + ult r17.w, l(0x7f800000), r17.w + or r16.w, r16.w, r17.w + mad r23.xyzw, r24.xyxy, cb6[400].xyxy, r27.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r23.xyxx, t6.xxxx, s3, r19.w + mad r13.w, r29.w, r17.w, r13.w + mul r17.w, r25.y, r26.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r23.zwzz, t6.xxxx, s3, r19.w + mad r13.w, r17.w, r19.x, r13.w + add r13.w, r13.w, l(-1.000000) + mad r13.w, cb6[r14.w + 288].w, r13.w, l(1.000000) + movc r13.w, r16.w, l(1.000000), r13.w + movc r13.w, r15.w, r13.w, l(1.000000) + else + mov r13.w, l(1.000000) + endif + else + mov r13.w, l(1.000000) + endif + mul r10.w, r10.w, r13.w + mov r18.xyz, l(0,0,0,0) + endif + add r22.xyz, r18.xyzx, r22.xyzx + mov r12.w, r14.z + endloop + mov r6.w, r10.w + add r21.xyz, r21.xyzx, r22.xyzx + iadd r7.z, r7.z, l(1) +endloop +// === Glass Fix: Reduce clustered lights and overall brightness === +lt r30.x, l(0.500000), cb13[14].x +if_nz r30.x + mul r21.xyz, r21.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r13.xyz, r13.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) +endif +dp3 r0.x, r13.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xyz, -r0.xxxx, r13.xyzx +mad r0.xzw, cb0[184].wwww, r1.xxyz, r0.xxxx +mad r1.xyz, r21.xyzx, r6.wwww, r15.xyzx +mad r0.xzw, r0.xxzw, cb0[184].xxyz, r1.xxyz +mad r1.x, r0.y, cb0[156].w, cb0[157].w +mad r1.y, r2.x, cb0[154].w, -cb0[153].w +max r1.xy, r1.xyxx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.z, r1.x, l(-1.442695) +exp r1.z, r1.z +add r1.z, -r1.z, l(1.000000) +div r1.x, r1.z, r1.x +mad r1.z, r0.y, cb0[156].w, cb0[158].w +mul r1.z, r1.z, l(1.442695) +exp r1.z, r1.z +mul r1.x, r1.z, r1.x +mul r1.x, r1.x, -r1.y +mul r1.xyz, r1.xxxx, cb0[155].xyzx +mul r1.xyz, r1.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r1.xyz, r1.xyzx +dp3 r1.w, -r4.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r1.wwww, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r11.w, l(7), cb0[108].w + imad r5.xyz, r11.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.z, r5.y, r5.z, r5.x + imad r2.w, r5.z, r2.z, r5.y + imad r3.w, r2.z, r2.w, r5.z + imad r5.x, r2.w, r3.w, r2.z + dp3 r2.z, -r4.xyzx, -r3.xyzx + add r3.x, r0.y, -cb0[44].y + lt r3.y, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.y + mul r2.z, r2.z, cb0[163].w + div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x + mul r3.z, r2.z, r3.y + mad r4.x, r3.z, r3.x, cb0[44].y + mad r3.x, -r3.z, r3.x, r3.x + mul r3.z, r3.x, cb0[159].z + mul r3.x, r3.x, cb0[162].x + max r3.xz, r3.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + add r4.y, r4.x, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r3.z| + exp r4.w, -r3.z + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r4.z, r4.w, r3.z + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.z, l(5.960464478E-08), |r3.x| + exp r4.w, -r3.x + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.x + mad r3.x, -r3.x, l(0.240226507), l(0.693147182) + movc r3.x, r4.z, r4.w, r3.x + mul r3.x, r3.x, r4.x + mad r3.x, r4.y, r3.z, r3.x + mad r2.z, -r2.z, r3.y, l(1.000000) + mul r2.z, r2.x, r2.z + mul r2.z, r2.z, r3.x + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.xy, r2.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r2.z, r2.z, r3.x + add r2.z, r3.y, r2.z + min r2.z, r2.z, l(1.000000) + imad r5.y, r3.w, r5.x, r2.w + ushr r3.xy, r5.xyxx, l(16, 16, 0, 0) + utof r3.xy, r3.xyxx + mad r3.xy, r3.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb0[167].wwww, r14.xyxx + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r2.w, r11.z, cb0[164].x, cb0[164].y + log r2.w, r2.w + mul r2.w, r2.w, cb0[164].z + div r3.z, r2.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t17.xyzw, s0, l(0.000000) + add r2.w, r11.z, -cb0[166].z + mul_sat r2.w, r2.w, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r2.wwww, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r2.w, -r2.z, l(1.000000) + mul r4.xyz, r2.wwww, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.z, r2.z, r3.w +else + add r0.y, r0.y, -cb0[44].y + mul r2.w, r0.y, cb0[159].z + max r2.w, r2.w, l(-127.000000) + mul r0.y, r0.y, cb0[162].x + max r0.y, r0.y, l(-127.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r2.w| + exp r4.y, -r2.w + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r4.x, r4.y, r2.w + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r0.y| + exp r4.z, -r0.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.y, r4.z, r0.y + mul r0.y, r0.y, r4.x + mad r0.y, r3.w, r2.w, r0.y + mul r0.y, r2.x, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r2.xw, r2.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r0.y, r0.y, r2.x + add r0.y, r2.w, r0.y + min r2.z, r0.y, l(1.000000) + add r0.y, -r2.z, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r1.xyzx, r2.zzzz +mad r0.y, r1.w, r1.w, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.yyyy, cb0[158].xyzx +mad r0.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r1.w, r2.y, l(12.566371) +sqrt r2.x, r2.y +mul r1.w, r1.w, r2.x +max r1.w, r1.w, l(0.001000) +div r0.y, r0.y, r1.w +mad_sat r2.xyw, cb0[157].xyxz, r0.yyyy, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx +// === Glass Transparency Fix === +lt r30.x, l(0.500000), cb13[14].x +if_nz r30.x + // Boost transmittance: lerp(r4, 1, 0.5) + add r30.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r30.xyz, r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r4.xyzx + // Reduce inscatter intensity + mul r31.xyz, r1.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + // Modified fog blend + mad r8.xyz, r0.xzwx, r30.xyzx, r31.xyzx +else + // Original fog blend + mad r8.xyz, r0.xzwx, r4.xyzx, r1.xyzx +endif +mul r0.xy, r10.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r0.xy, |r0.xyxx| +sqrt r0.xy, r0.xyxx +mov r10.z, -r10.y +lt r0.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r10.xxxz +lt r1.xy, r10.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r0.zw, -r0.zzzw, r1.xxxy +itof r0.zw, r0.zzzw +mul r0.xy, r0.zwzz, r0.xyxx +mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +ishl r0.z, v7.x, l(4) +max r0.z, cb1[r0.z + 4].z, cb1[r0.z + 4].y +add r0.z, r0.z, l(-0.100000024) +lt r0.w, l(0.000000), r0.z +lt r0.z, r0.z, l(0.000000) +iadd r0.z, -r0.w, r0.z +itof r0.z, r0.z +mov_sat r0.z, r0.z +add r1.xy, -r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.zzzz, r1.xyxx, r0.xyxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r8.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r8.w, r0.x +max r0.x, r8.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +// === Glass Highlight Compression === +lt r30.x, l(0.500000), cb13[14].x +if_nz r30.x + // Compute luminance + dp3 r30.y, r8.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) + // Soft compress if luminance > 0.5 + lt r30.z, l(0.500000), r30.y + if_nz r30.z + // compression = 0.5 + 1.5 * (1 - exp(-(luma - 0.5) / 1.5)) + add r30.w, r30.y, l(-0.500000) + mul r30.w, r30.w, l(-0.666667) + exp r30.w, r30.w + add r30.w, -r30.w, l(1.000000) + mad r30.w, r30.w, l(1.500000), l(0.500000) + // scale = compression / luma + max r31.x, r30.y, l(0.001000) + div r31.x, r30.w, r31.x + mul r8.xyz, r8.xyzx, r31.xxxx + endif +endif +mov o0.xyzw, r8.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0xB317E9E1.ps_5_0_original_backup.asm b/src/games/endfield/glass/0xB317E9E1.ps_5_0_original_backup.asm new file mode 100644 index 000000000..5c6d3bd90 --- /dev/null +++ b/src/games/endfield/glass/0xB317E9E1.ps_5_0_original_backup.asm @@ -0,0 +1,1707 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Wed Feb 4 07:24:28 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4085], dynamicIndexed +dcl_constantbuffer CB2[20], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_comparison +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_sampler s6, mode_default +dcl_resource_structured t0, 4 +dcl_resource_texture2darray (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_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture3d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 36 +mul r0.xy, v0.xyxx, cb0[82].zwzz +mad r0.xy, r0.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r1.xyzw, -r0.yyyy, cb0[25].xyzw +mad r0.xyzw, cb0[24].xyzw, r0.xxxx, r1.xyzw +mad r0.xyzw, cb0[26].xyzw, v0.zzzz, r0.xyzw +add r0.xyzw, r0.xyzw, cb0[27].xyzw +div r0.xyz, r0.xyzx, r0.wwww +lt r1.x, l(0.000000), v3.w +movc r1.x, r1.x, l(1.000000), l(-1.000000) +eq r1.y, l(0.000000), cb0[86].w +add r2.xyz, -r0.xyzx, cb0[44].xyzx +mov r3.x, cb0[0].z +mov r3.y, cb0[1].z +mov r3.z, cb0[2].z +movc r1.yzw, r1.yyyy, r2.xxyz, r3.xxyz +dp3 r2.x, r1.yzwy, r1.yzwy +max r2.y, r2.x, l(9.999999939E-09) +rsq r2.y, r2.y +mul r4.xyz, r1.yzwy, r2.yyyy +mul r2.x, r2.y, r2.x +add r2.zw, -v1.xxxy, v1.zzzw +mad r5.xy, cb2[3].xxxx, r2.zwzz, v1.xyxx +mad r5.xy, r5.xyxx, cb2[12].xyxx, cb2[12].zwzz +mad r2.zw, cb2[2].wwww, r2.zzzw, v1.xxxy +mad r2.zw, r2.zzzw, cb2[11].xxxy, cb2[11].zzzw +sample_b_indexable(texture2d)(float,float,float,float) r6.xyzw, r2.zwzz, t2.xyzw, s4, cb0[108].x +add r2.z, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, r5.xyxx, t3.xywz, s5, r2.z +mul r7.x, r7.x, r7.z +mad r2.zw, r7.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r5.zw, r2.zzzw, cb2[0].xxxx +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, r5.xyxx, t4.xyzw, s6, cb0[108].x +mul r6.xyzw, r6.xyzw, cb2[8].xyzw +mul_sat r6.xyz, r6.xyzx, cb2[4].zzzz +add r8.xyz, -r6.xyzx, cb2[8].xyzx +mad r6.xyz, cb2[4].xxxx, r8.xyzx, r6.xyzx +mad r3.w, r6.w, v4.x, -r6.w +mad r8.w, cb2[19].x, r3.w, r6.w +add r3.w, -cb2[0].z, cb2[0].w +mad r9.w, r7.y, r3.w, cb2[0].z +add_sat r3.w, l(-1.000000), cb2[3].w +add r4.w, -r7.x, cb2[4].y +mad r3.w, r3.w, r4.w, r7.x +mul r7.xyw, v2.zxzy, v3.yzyx +mad r7.xyw, v2.yzyx, v3.zxzy, -r7.xyxw +mul r7.xyw, r1.xxxx, r7.xyxw +mul r5.xyw, r5.wwww, r7.xyxw +mad r5.xyz, v3.xyzx, r5.zzzz, r5.xywx +dp2 r1.x, r2.zwzz, r2.zwzz +min r1.x, r1.x, l(1.000000) +add r1.x, -r1.x, l(1.000000) +sqrt r1.x, r1.x +max r1.x, r1.x, l(1.000000017E-16) +lt r2.z, l(0.000000), cb2[1].w +movc r2.z, r2.z, l(-1.000000), l(1.000000) +movc r2.z, v8.x, l(1.000000), r2.z +mul r1.x, r1.x, r2.z +mad r5.xyz, v2.xyzx, r1.xxxx, r5.xyzx +dp3 r1.x, r5.xyzx, r5.xyzx +rsq r1.x, r1.x +mul r5.xyz, r1.xxxx, r5.xyzx +max r1.x, v5.z, l(9.999999939E-09) +div r2.zw, v5.xxxy, r1.xxxx +max r1.x, v6.z, l(9.999999939E-09) +div r7.xy, v6.xyxx, r1.xxxx +add r10.xy, r2.zwzz, -r7.xyxx +mul r1.x, l(0.080000), cb2[0].y +mad r7.xyw, -r6.xyxz, r3.wwww, r6.xyxz +mad r1.x, -r1.x, r3.w, r1.x +mad r6.xyz, r6.xyzx, r3.wwww, r1.xxxx +dp3 r1.x, r5.xyzx, r4.xyzx +mad r11.xyzw, r9.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r2.z, r11.x, r11.x +max r1.x, r1.x, l(0.000000) +mul r2.w, r1.x, l(-9.280000) +exp r2.w, r2.w +min r2.z, r2.w, r2.z +mad r2.z, r2.z, r11.x, r11.y +mad r2.zw, r2.zzzz, l(0.000000, 0.000000, -1.040000, 1.040000), r11.zzzw +eq r3.w, l(1.000000), cb0[113].y +mul r11.xyzw, r0.yyyy, cb0[241].xyzw +mad r11.xyzw, cb0[240].xyzw, r0.xxxx, r11.xyzw +mad r11.xyzw, cb0[242].xyzw, r0.zzzz, r11.xyzw +add r11.xyzw, r11.xyzw, cb0[243].xyzw +div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w +mul r11.xyz, r11.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r11.xyz, r4.wwww, r11.xyzx +mad_sat r11.xy, r11.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +mul r11.xy, r11.xyxx, cb0[82].xyxx +ftou r12.xy, r11.xyxx +mad r4.w, cb0[84].z, r11.z, cb0[84].w +div r12.z, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w +ftou r11.xy, v0.xyxx +mul r4.w, r0.y, cb0[1].z +mad r4.w, cb0[0].z, r0.x, r4.w +mad r4.w, cb0[2].z, r0.z, r4.w +add r4.w, r4.w, cb0[3].z +mov r11.z, |r4.w| +movc r11.xyz, r3.wwww, r12.xyzx, r11.xyzx +mad r12.xyz, r5.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r0.xyzx +mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r13.xyz, r12.xzyx, -r13.xyzx +max r3.w, |r13.y|, |r13.x| +add r3.w, r3.w, l(-464.000000) +mul_sat r3.w, r3.w, l(0.031250) +add r4.w, |r13.z|, l(-208.000000) +mul_sat r4.w, r4.w, l(0.031250) +max r3.w, r3.w, r4.w +ne r4.w, l(0.000000), cb0[210].w +lt r6.w, r3.w, l(1.000000) +and r4.w, r4.w, r6.w +if_nz r4.w + mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r13.xyz, r12.xzyx, -r13.xyzx + max r4.w, |r13.y|, |r13.x| + add r4.w, r4.w, l(-29.000000) + mul_sat r4.w, r4.w, l(0.500000) + add r6.w, |r13.z|, l(-13.000000) + mul_sat r6.w, r6.w, l(0.500000) + max r4.w, r4.w, r6.w + lt r6.w, r4.w, l(1.000000) + if_nz r6.w + mad r13.xyz, r12.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r13.xyzx, cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r13.xyzx, t11.xyzw, s1, l(0.000000) + add r6.w, -r4.w, l(1.000000) + mul r10.w, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r10.w, r10.w, r13.y + min r10.w, r12.w, r10.w + mul r13.w, r10.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t12.xyzw, s0, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r14.xxxx, r15.xyzx + add r15.xyz, r13.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t12.xyzw, s0, l(0.000000) + mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r14.yyyy, r15.xyzx + add r13.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xyz, r13.xyzx, t12.xyzw, s0, l(0.000000) + mad r13.xyz, r13.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r13.xyz, r14.zzzz, r13.xyzx + mad r10.w, r15.w, r6.w, r3.w + mov r13.w, r14.z + mul r13.xyzw, r6.wwww, r13.xyzw + mov r17.w, r14.y + mul r15.xyzw, r6.wwww, r17.xyzw + mov r16.w, r14.x + mul r14.xyzw, r6.wwww, r16.xyzw + else + mov r13.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r10.w, r3.w + endif + mad r16.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r16.xyz, r12.xzyx, -r16.xyzx + max r6.w, |r16.y|, |r16.x| + add r6.w, r6.w, l(-116.000000) + mul_sat r6.w, r6.w, l(0.125000) + add r12.w, |r16.z|, l(-52.000000) + mul_sat r12.w, r12.w, l(0.125000) + max r6.w, r6.w, r12.w + lt r12.w, r6.w, l(1.000000) + if_nz r12.w + mad r16.xyz, r12.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r16.xyzx, cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r16.xyzx, t13.xyzw, s1, l(0.000000) + add r12.w, -r6.w, l(1.000000) + mul r4.w, r4.w, r12.w + mul r12.w, l(0.500000), cb0[211].y + mad r17.w, -cb0[211].y, l(0.500000), l(1.000000) + max r12.w, r12.w, r16.y + min r12.w, r17.w, r12.w + mul r16.w, r12.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t14.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r17.xxxx, r18.xyzx + add r18.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t14.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r17.yyyy, r18.xyzx + add r16.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t14.xyzw, s0, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r16.xyz, r17.zzzz, r16.xyzx + mad r10.w, r18.w, r4.w, r10.w + mov r16.w, r17.z + mad r13.xyzw, r16.xyzw, r4.wwww, r13.xyzw + mov r20.w, r17.y + mad r15.xyzw, r20.xyzw, r4.wwww, r15.xyzw + mov r19.w, r17.x + mad r14.xyzw, r19.xyzw, r4.wwww, r14.xyzw + endif + lt r4.w, l(0.000000), r6.w + if_nz r4.w + mad r12.xyz, r12.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r16.xyz, r12.xyzx, cb0[211].xyzx + mul r17.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r16.xyz, r16.xyzx + mad r12.xyz, r12.xyzx, cb0[211].xyzx, -r16.xyzx + mad r16.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r12.xyz, r17.xyzx, r12.xyzx + min r12.xyz, r16.xyzx, r12.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r12.xyzx, t15.yzwx, s1, l(0.000000) + add r4.w, -r3.w, l(1.000000) + mul r4.w, r4.w, r6.w + max r6.w, r17.y, r12.y + min r6.w, r16.y, r6.w + mul r12.w, r6.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r12.xwzx, t16.xyzw, s0, l(0.000000) + add r17.xyz, r12.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s0, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.yyyy, r17.xyzx + mov r17.w, r18.y + mad r13.xyzw, r17.xyzw, r4.wwww, r13.xyzw + add r12.xyz, r12.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t16.xyzw, s0, l(0.000000) + mad r12.xyz, r12.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r12.xyz, r18.xxxx, r12.xyzx + mov r12.w, r18.x + mad r15.xyzw, r12.xyzw, r4.wwww, r15.xyzw + mad r12.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r18.wwww, r12.xyzx + mad r14.xyzw, r18.xyzw, r4.wwww, r14.xyzw + mad r10.w, r16.w, r4.w, r10.w + endif + mad_sat r4.w, r10.w, l(2.000000), l(-1.000000) + add r12.x, -r3.w, r4.w + add r3.w, r3.w, r4.w + mul r12.y, r3.w, l(0.500000) +else + mov r13.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r12.xy, l(0,1.000000,0,0) +endif +mul r16.xyzw, r12.yyyx, cb0[213].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r12.zw, r12.yyyx, cb0[213].wwwy +mad r16.w, r12.w, l(0.375000), r12.z +add r14.xyzw, r14.xyzw, r16.xyzw +mul r16.xyzw, r12.yyyx, cb0[214].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r12.zw, r12.yyyx, cb0[214].wwwy +mad r16.w, r12.w, l(0.375000), r12.z +add r15.xyzw, r15.xyzw, r16.xyzw +mul r16.xyzw, r12.yyyx, cb0[215].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r12.xy, r12.yxyy, cb0[215].wyww +mad r16.w, r12.y, l(0.375000), r12.x +add r12.xyzw, r13.xyzw, r16.xyzw +dp3 r3.w, r14.xyzx, r5.xyzx +add r3.w, r14.w, r3.w +max r13.x, r3.w, l(0.000000) +dp3 r3.w, r15.xyzx, r5.xyzx +add r3.w, r15.w, r3.w +max r13.y, r3.w, l(0.000000) +dp3 r3.w, r12.xyzx, r5.xyzx +add r3.w, r12.w, r3.w +max r13.z, r3.w, l(0.000000) +dp3 r3.w, -r4.xyzx, r5.xyzx +add r3.w, r3.w, r3.w +mad r12.xyz, r5.xyzx, -r3.wwww, -r4.xyzx +add r3.w, l(-1.000000), cb0[113].x +max r4.w, r9.w, l(0.001000) +log r4.w, r4.w +mad r4.w, -r4.w, l(1.200000), l(1.000000) +add r3.w, r3.w, -r4.w +utof r14.xy, r11.xyxx +mul r14.zw, r14.xxxy, cb3[0].wwww +round_ni r14.zw, r14.zzzw +add r4.w, r11.z, -cb3[2].y +round_ni r4.w, r4.w +add r6.w, l(-1.000000), cb3[1].x +max r10.w, r4.w, l(0.000000) +min r6.w, r6.w, r10.w +ge r4.w, r6.w, r4.w +mad r10.w, r14.w, cb3[0].x, r14.z +ftoi r10.w, r10.w +iadd r10.w, r10.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.w, r10.w, l(0), t0.xxxx +ftoi r6.w, r6.w +iadd r6.w, r6.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r6.w, r6.w, l(0), t0.xxxx +and r6.w, r6.w, r10.w +and r4.w, r4.w, r6.w +mul r15.xyz, r13.xyzx, cb0[111].xxxx +dp3 r6.w, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r0.w, l(1.000000) +mov r5.w, l(1.000000) +mov r15.xyz, l(0,0,0,0) +mov r10.w, l(1.000000) +mov r12.w, r4.w +mov r13.w, l(0) +loop + lt r14.z, l(0.010000), r10.w + ine r14.w, r12.w, l(0) + and r14.w, r14.z, r14.w + if_nz r14.w + firstbit_lo r14.w, r12.w + ishl r15.w, l(1), r14.w + xor r12.w, r12.w, r15.w + ishl r14.w, r14.w, l(3) + dp4 r16.x, cb3[r14.w + 6].xyzw, r0.xyzw + dp4 r16.y, cb3[r14.w + 7].xyzw, r0.xyzw + dp4 r16.z, cb3[r14.w + 8].xyzw, r0.xyzw + ge r17.xyz, cb3[r14.w + 5].xyzx, |r16.xyzx| + and r15.w, r17.y, r17.x + and r15.w, r17.z, r15.w + if_nz r15.w + mul r15.w, l(0.100000), cb3[r14.w + 5].x + mul r17.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.xy, r17.xyxx, r17.xyxx + add r18.xyz, -|r16.xyzx|, cb3[r14.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb3[r14.w + 9].xyzx + eq r16.w, l(1.000000), cb3[r14.w + 10].x + if_nz r16.w + dp3 r19.x, cb3[r14.w + 6].xyzx, r12.xyzx + dp3 r19.y, cb3[r14.w + 7].xyzx, r12.xyzx + dp3 r19.z, cb3[r14.w + 8].xyzx, r12.xyzx + add r20.xyz, -r16.xyzx, cb3[r14.w + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r16.xyzx, -cb3[r14.w + 5].xyzx + div r21.xyz, r21.xyzx, r19.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + movc r20.xyz, r22.xyzx, r20.xyzx, r21.xyzx + min r16.w, r20.y, r20.x + min r16.w, r20.z, r16.w + mad r16.xyz, r19.xyzx, r16.wwww, r16.xyzx + else + mov r16.xyz, r12.xyzx + endif + dp3 r16.w, r16.xyzx, r16.xyzx + rsq r16.w, r16.w + mul r16.xyz, r16.wwww, r16.xyzx + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r20.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r19.xyz, -r19.xyzx, r20.xyzx + itof r19.xyz, r19.xyzx + dp3 r16.w, r16.xyzx, r19.xyzx + div r16.xyz, r16.xyzx, r16.wwww + lt r16.z, r16.z, l(0.000000) + add r19.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r19.xy, r19.zwzz, r19.xyxx + movc r16.xy, r16.zzzz, r19.xyxx, r16.xyxx + dp4 r16.z, cb3[r14.w + 4].xyzw, r5.xyzw + max r16.z, r16.z, l(0.000000) + max r16.z, r16.z, l(0.000100) + min r16.w, r18.z, r18.y + min r16.w, r16.w, r18.x + add r17.x, r17.y, r17.x + mad r17.x, r17.z, r17.z, r17.x + mad r15.w, r15.w, r15.w, -r17.x + mul r15.w, r15.w, cb3[r14.w + 9].x + mul r15.w, r15.w, cb3[r14.w + 9].x + add r17.x, l(1.000000), -cb3[r14.w + 10].y + mul r15.w, r15.w, r17.x + mul r15.w, r15.w, l(100.000000) + mad_sat r15.w, r16.w, cb3[r14.w + 10].y, r15.w + mul r16.w, r15.w, cb3[r14.w + 10].w + mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r17.xy, r16.xyxx, cb3[1].wwww, cb3[2].wwww + mov r17.z, cb3[r14.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t1.xyzw, s2, r3.w + mul r17.xyz, r17.xyzx, cb3[r14.w + 9].wwww + div r16.x, r6.w, r16.z + min r16.x, |r16.x|, l(1.000000) + mad r16.x, r16.x, l(2.000000), r6.w + add r16.y, r16.z, l(2.000000) + div r16.x, r16.x, r16.y + add r16.x, r16.x, l(-1.000000) + mad r16.x, r16.x, cb0[112].w, l(1.000000) + mul r16.xyz, r16.xxxx, r17.xyzx + mul r16.xyz, r16.wwww, r16.xyzx + mad r15.xyz, r16.xyzx, r10.wwww, r15.xyzx + mad r14.w, -r15.w, cb3[r14.w + 10].w, l(1.000000) + mul r10.w, r10.w, r14.w + endif + mov r13.w, l(-1) + continue + else + mov r13.w, r14.z + break + endif + mov r13.w, r14.z +endloop +if_nz r13.w + dp3 r0.w, r12.xyzx, r12.xyzx + rsq r0.w, r0.w + mul r16.xyz, r0.wwww, r12.xyzx + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r18.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r17.xyz, -r17.xyzx, r18.xyzx + itof r17.xyz, r17.xyzx + dp3 r0.w, r16.xyzx, r17.xyzx + div r16.xyz, r16.xyzx, r0.wwww + lt r0.w, r16.z, l(0.000000) + add r14.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r14.zw, r14.zzzw, r17.xxxy + movc r14.zw, r0.wwww, r14.zzzw, r16.xxxy + mov r5.w, l(1.000000) + dp4 r0.w, cb3[3].xyzw, r5.xyzw + max r0.w, r0.w, l(0.000000) + max r0.w, r0.w, l(0.000100) + mad r14.zw, r14.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r16.xy, r14.zwzz, cb3[1].wwww, cb3[2].wwww + mov r16.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t1.xyzw, s2, r3.w + div r3.w, r6.w, r0.w + min r3.w, |r3.w|, l(1.000000) + mad r3.w, r3.w, l(2.000000), r6.w + add r0.w, r0.w, l(2.000000) + div r0.w, r3.w, r0.w + add r0.w, r0.w, l(-1.000000) + mad r0.w, r0.w, cb0[112].w, l(1.000000) + mul r16.xyz, r0.wwww, r16.xyzx + mad r15.xyz, r16.xyzx, r10.wwww, r15.xyzx +endif +mul r13.xyz, r7.xywx, r13.xyzx +add r0.w, r7.z, l(-1.000000) +mad r0.w, cb2[1].x, r0.w, l(1.000000) +mul r13.xyz, r0.wwww, r13.xyzx +mul r15.xyz, r15.xyzx, cb0[112].zzzz +mul r15.xyz, r15.xyzx, cb0[111].yyyy +mul_sat r0.w, r6.y, l(50.000000) +mul r0.w, r2.w, r0.w +mad r16.xyz, r6.xyzx, r2.zzzz, r0.wwww +mul r15.xyz, r15.xyzx, r16.xyzx +mad r13.xyz, r13.xyzx, cb0[111].xxxx, r15.xyzx +lt r0.w, cb6[35].w, l(0.990000) +if_nz r0.w + ftoi r0.w, cb6[35].x + ieq r2.z, r0.w, l(2) + movc r15.xyz, r2.zzzz, cb6[20].xyzx, cb0[44].xyzx + add r15.xyz, r0.xyzx, -r15.xyzx + dp3 r2.z, r15.xyzx, r15.xyzx + add r2.z, -r2.z, cb6[34].w + mul_sat r2.z, r2.z, cb6[34].z + lt r2.w, l(0.000000), r2.z + if_nz r2.w + ilt r0.w, l(0), r0.w + if_nz r0.w + add r15.xyz, r0.xyzx, -cb6[20].xyzx + add r16.xyz, r0.xyzx, -cb6[21].xyzx + add r17.xyz, r0.xyzx, -cb6[22].xyzx + add r18.xyz, r0.xyzx, -cb6[23].xyzx + dp3 r15.x, r15.xyzx, r15.xyzx + dp3 r15.y, r16.xyzx, r16.xyzx + dp3 r15.z, r17.xyzx, r17.xyzx + dp3 r15.w, r18.xyzx, r18.xyzx + lt r16.x, r15.x, cb6[20].w + lt r16.y, r15.y, cb6[21].w + lt r16.z, r15.z, cb6[22].w + lt r16.w, r15.w, cb6[23].w + and r17.xyzw, r16.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r16.xyz, r16.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r16.xyz, r16.xyzx, r17.yzwy + max r17.yzw, r16.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.w, r17.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.w, -r0.w, l(4.000000) + max r0.w, r0.w, l(0.000000) + min r0.w, r0.w, l(3.000000) + add r2.w, r0.w, l(1.000000) + min r2.w, r2.w, l(3.000000) + ftou r2.w, r2.w + dp3 r3.w, r15.yzwy, icb[r2.w + 0].yzwy + div r2.w, r3.w, cb6[r2.w + 20].w + ge r3.w, r2.w, l(0.000000) + ge r2.w, l(1.000000), r2.w + and r2.w, r2.w, r3.w + if_nz r2.w + ftou r2.w, r0.w + add r14.zw, r14.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r3.w, r14.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r3.w, r3.w + mul r3.w, r3.w, l(52.982918) + frc r3.w, r3.w + dp4 r4.w, r15.xyzw, icb[r2.w + 0].xyzw + div r2.w, r4.w, cb6[r2.w + 20].w + sqrt r2.w, r2.w + add r2.w, r2.w, l(-0.900000) + mul r2.w, r2.w, l(12.000000) + ge r2.w, r2.w, r3.w + and r2.w, r2.w, l(0x3f800000) + add r0.w, r0.w, r2.w + endif + dp3 r2.w, r5.xyzx, cb5[0].xyzx + max r2.w, r2.w, l(0.000000) + min r2.w, r2.w, l(0.900000) + add r2.w, -r2.w, l(1.000000) + ftou r3.w, r0.w + ishl r4.w, r3.w, l(2) + mul r14.zw, r2.wwww, cb6[r3.w + 24].xxxy + max r2.w, r14.z, l(0.000000) + mad r15.xyz, -cb5[0].xyzx, r2.wwww, r0.xyzx + mad r15.xyz, r5.xyzx, r14.wwww, r15.xyzx + mul r16.xyz, r15.yyyy, cb6[r4.w + 1].xyzx + mad r15.xyw, cb6[r4.w + 0].xyxz, r15.xxxx, r16.xyxz + mad r15.xyz, cb6[r4.w + 2].xyzx, r15.zzzz, r15.xywx + add r15.xyz, r15.xyzx, cb6[r4.w + 3].xyzx + ge r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx + ge r17.xyz, r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r16.xyz, r16.xyzx, r17.xyzx + or r2.w, r16.y, r16.x + or r2.w, r16.z, r2.w + and r3.w, r15.z, l(0x7fffffff) + ult r3.w, l(0x7f800000), r3.w + or r16.z, r2.w, r3.w + ftoi r0.w, r0.w + mad r14.zw, r15.xxxy, cb6[r0.w + 28].zzzw, cb6[r0.w + 28].xxxy + mad r15.xy, r14.zwzz, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r15.xy, r15.xyxx + mad r14.zw, r14.zzzw, cb6[32].zzzw, -r15.xxxy + add r17.xyzw, r14.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r17.xz, r14.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r19.xy, r14.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.zw, r18.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r14.zzzw + add r14.zw, -r14.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r14.zw, -r17.xxxz, r17.xxxz, r14.zzzw + mad r17.xy, -r19.xyxx, r19.xyxx, r17.ywyy + mov r20.x, r19.z + mov r20.y, r14.z + mov r20.z, r17.x + mov r20.w, r18.x + mul r20.xyzw, r20.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r18.x, r19.w + mov r18.y, r14.w + mov r18.z, r17.y + mul r17.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r18.xyzw, r20.ywyw, r20.xzxz + add r19.xyzw, r17.yyww, r17.xxzz + div r14.zw, r20.yyyw, r18.zzzw + add r14.zw, r14.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r20.xy, r14.zwzz, cb6[32].xxxx + div r14.zw, r17.yyyw, r19.yyyw + add r14.zw, r14.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r20.zw, r14.zzzw, cb6[32].yyyy + mul r17.xyzw, r18.xyzw, r19.xyzw + mad r18.xyzw, r15.xyxy, cb6[32].xyxy, r20.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r18.xyxx, t5.xxxx, s3, r15.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.zwzz, t5.xxxx, s3, r15.z + mul r2.w, r2.w, r17.y + mad r0.w, r17.x, r0.w, r2.w + mad r18.xyzw, r15.xyxy, cb6[32].xyxy, r20.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.xyxx, t5.xxxx, s3, r15.z + mad r0.w, r17.z, r2.w, r0.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.zwzz, t5.xxxx, s3, r15.z + mad r0.w, r17.w, r2.w, r0.w + movc r16.x, r16.z, l(1.000000), r0.w + else + mov r16.xz, l(1.000000,0,0,0) + endif + else + mov r16.xz, l(1.000000,0,0,0) + endif + lt r0.w, r2.z, l(1.000000) + if_nz r0.w + dp3 r0.w, r5.xyzx, cb5[0].xyzx + max r0.w, r0.w, l(0.000000) + min r0.w, r0.w, l(0.900000) + add r0.w, -r0.w, l(1.000000) + mul r14.zw, r0.wwww, cb6[584].xxxy + mad r15.xyz, -cb5[0].xyzx, r14.zzzz, r0.xyzx + mad r15.xyz, r5.xyzx, r14.wwww, r15.xyzx + mul r14.zw, r15.yyyy, cb6[581].xxxy + mad r14.zw, cb6[580].xxxy, r15.xxxx, r14.zzzw + mad r14.zw, cb6[582].xxxy, r15.zzzz, r14.zzzw + add r14.zw, r14.zzzw, cb6[583].xxxy + lt r17.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r14.zwzz + and r0.w, r17.y, r17.x + lt r17.xy, r14.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r2.w, r17.y, r17.x + and r0.w, r0.w, r2.w + if_nz r0.w + mul r0.w, r14.w, cb6[585].z + round_ni r0.w, r0.w + add r0.w, r14.z, r0.w + mul r0.w, r0.w, cb6[585].y + ftou r0.w, r0.w + umin r0.w, r0.w, l(127) + and r2.w, l(0x0000ffff), cb6[r0.w + 587].x + f16tof32 r17.x, r2.w + ge r2.w, r17.x, l(0.000000) + if_nz r2.w + mov r18.x, cb6[576].x + mov r18.y, cb6[577].x + mov r18.z, cb6[578].x + mov r18.w, cb6[r0.w + 587].y + mov r15.w, l(1.000000) + dp4 r18.x, r18.xyzw, r15.xyzw + mov r19.x, cb6[576].y + mov r19.y, cb6[577].y + mov r19.z, cb6[578].y + mov r19.w, cb6[r0.w + 587].z + dp4 r18.y, r19.xyzw, r15.xyzw + mov r19.x, cb6[576].z + mov r19.y, cb6[577].z + mov r19.z, cb6[578].z + mov r19.w, cb6[r0.w + 587].w + dp4 r2.w, r19.xyzw, r15.xyzw + lt r14.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xxxy + lt r3.w, l(0.000000), r2.w + and r4.w, r14.w, r14.z + and r3.w, r3.w, r4.w + lt r14.zw, r18.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + lt r4.w, r2.w, l(1.000000) + and r5.w, r14.w, r14.z + and r4.w, r4.w, r5.w + and r3.w, r3.w, r4.w + if_nz r3.w + ushr r0.w, cb6[r0.w + 587].x, l(16) + f16tof32 r17.y, r0.w + mad r14.zw, r18.xxxy, cb6[584].zzzw, r17.xxxy + mad r15.xy, r14.zwzz, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r15.xy, r15.xyxx + mad r14.zw, r14.zzzw, cb6[586].zzzw, -r15.xxxy + add r17.xyzw, r14.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r15.zw, r14.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + max r17.xz, r14.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r14.zwzz + add r14.zw, -r14.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r14.zw, -r15.zzzw, r15.zzzw, r14.zzzw + mad r15.zw, -r17.xxxz, r17.xxxz, r17.yyyw + mov r17.x, r19.x + mov r17.y, r14.z + mov r17.z, r15.z + mov r17.w, r18.x + mul r17.xyzw, r17.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r18.x, r19.y + mov r18.y, r14.w + mov r18.z, r15.w + mul r18.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r19.xyzw, r17.ywyw, r17.xzxz + add r20.xyzw, r18.yyww, r18.xxzz + div r14.zw, r17.yyyw, r19.zzzw + add r14.zw, r14.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r17.xy, r14.zwzz, cb6[586].xxxx + div r14.zw, r18.yyyw, r20.yyyw + add r14.zw, r14.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r17.zw, r14.zzzw, cb6[586].yyyy + mul r18.xyzw, r19.xyzw, r20.xyzw + mad r19.xyzw, r15.xyxy, cb6[586].xyxy, r17.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r19.xyxx, t8.xxxx, s3, r2.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r19.zwzz, t8.xxxx, s3, r2.w + mul r3.w, r3.w, r18.y + mad r0.w, r18.x, r0.w, r3.w + mad r15.xyzw, r15.xyxy, cb6[586].xyxy, r17.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r15.xyxx, t8.xxxx, s3, r2.w + mad r0.w, r18.z, r3.w, r0.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r15.zwzz, t8.xxxx, s3, r2.w + mad r16.y, r18.w, r2.w, r0.w + else + mov r16.y, l(1.000000) + endif + else + mov r16.y, l(1.000000) + endif + else + mov r16.y, l(1.000000) + endif + movc r16.x, r16.z, r16.y, r16.x + else + mov r16.y, l(1.000000) + endif + add r0.w, -r16.y, r16.x + mad r0.w, r2.z, r0.w, r16.y + lt r2.z, l(0.001000), r0.w + if_nz r2.z + add r15.xyz, r0.xyzx, -cb0[173].xyzx + mad r2.zw, cb0[176].xxxz, r15.yyyy, r15.xxxz + mul r14.zw, r2.zzzw, cb0[174].zzzz + mul r15.yw, cb0[175].xxxy, cb0[183].wwww + mad r2.zw, r2.zzzw, cb0[174].zzzz, r15.yyyw + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r2.zwzz, t7.yzxw, s1, l(0.000000) + mad r14.zw, r14.zzzw, cb0[175].wwww, r15.yyyw + sample_l_indexable(texture2d)(float,float,float,float) r2.w, r14.zwzz, t7.yzwx, s1, l(0.000000) + dp2 r3.w, r15.xzxx, r15.xzxx + sqrt r3.w, r3.w + add r4.w, -cb0[174].x, cb0[174].y + add r3.w, r3.w, -cb0[174].x + div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul_sat r3.w, r3.w, r4.w + mad r4.w, r3.w, l(-2.000000), l(3.000000) + mul r3.w, r3.w, r3.w + mul r3.w, r3.w, r4.w + add r2.w, -r2.z, r2.w + mad r2.z, r3.w, r2.w, r2.z + add r2.z, r2.z, l(-1.000000) + mad r2.z, cb0[175].z, r2.z, l(1.000000) + mul r0.w, r0.w, r2.z + endif + add r2.z, -r0.w, cb6[35].z + mad r0.w, cb6[35].w, r2.z, r0.w +else + mov r0.w, cb6[35].z +endif +min r0.w, r0.w, l(1.000000) +add r0.w, r0.w, l(-1.000000) +mad r15.x, cb6[34].x, r0.w, l(1.000000) +lt r0.w, l(0.001000), r15.x +if_nz r0.w + dp3 r0.w, -cb5[0].xyzx, r12.xyzx + mad r16.xyz, cb5[0].xyzx, r0.wwww, r12.xyzx + lt r0.w, r0.w, cb5[4].z + dp3 r2.z, r16.xyzx, r16.xyzx + max r2.z, r2.z, l(0.0000610351562) + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + mul r16.xyz, r16.xyzx, cb5[4].yyyy + mad r16.xyz, -cb5[0].xyzx, cb5[4].zzzz, r16.xyzx + dp3 r2.z, r16.xyzx, r16.xyzx + rsq r2.z, r2.z + mul r16.xyz, r2.zzzz, r16.xyzx + movc r16.xyz, r0.wwww, r16.xyzx, r12.xyzx + mad r17.xyz, r1.yzwy, r2.yyyy, r16.xyzx + dp3 r0.w, r17.xyzx, r17.xyzx + max r0.w, r0.w, l(0.0000610351562) + rsq r0.w, r0.w + mul r17.xyz, r0.wwww, r17.xyzx + dp3_sat r9.y, r16.xyzx, r5.xyzx + dp3_sat r0.w, r5.xyzx, r17.xyzx + min r9.z, r1.x, l(1.000000) + mul r2.z, r9.w, r9.w + mul r2.z, r2.z, r2.z + mad r2.w, r0.w, r2.z, -r0.w + mad r0.w, r2.w, r0.w, l(1.000000) + dp3_sat r2.w, r4.xyzx, r17.xyzx + add r2.w, -r2.w, l(1.000000) + mul r3.w, r2.w, r2.w + mul r3.w, r3.w, r3.w + mul r4.w, r2.w, r3.w + add r5.w, -r9.w, l(1.000000) + mad r6.w, -r5.w, l(0.383026), l(-0.0761947036) + mad r6.w, r5.w, r6.w, l(1.049970) + mad r5.w, r5.w, r6.w, l(0.409255) + min r5.w, r5.w, l(0.999000) + add r6.w, -r5.w, l(1.000000) + add r16.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r6.xyzx + mad r2.w, -r3.w, r2.w, l(1.000000) + mad r17.xyz, r6.xyzx, r2.wwww, r4.wwww + mul r0.w, r0.w, r0.w + div r0.w, r2.z, r0.w + mad r14.zw, -r9.zzzy, r2.zzzz, r9.zzzy + mad r2.zw, r14.zzzw, r9.zzzy, r2.zzzz + sqrt r2.zw, r2.zzzw + mul r2.zw, r2.zzzw, r9.yyyz + add r2.z, r2.w, r2.z + add r2.z, r2.z, l(0.000100) + div r2.z, l(0.500000), r2.z + mul r0.w, r0.w, r2.z + mul r17.xyz, r0.wwww, r17.xyzx + min r17.xyz, r17.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.xyzw, r9.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.w, r18.xyxx, t10.yzwx, s0, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.z, r18.zwzz, t10.yzxw, s0, l(0.000000) + mul r0.w, r0.w, r2.z + mul r0.w, r5.w, r0.w + div r0.w, r0.w, r6.w + mul r18.xyz, r16.xyzx, r16.xyzx + mul r18.xyz, r0.wwww, r18.xyzx + mad r16.xyz, -r16.xyzx, r6.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r16.xyz, r18.xyzx, r16.xyzx + add r16.xyz, r16.xyzx, r17.xyzx + mul r16.xyz, r16.xyzx, cb5[4].xxxx + max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r16.xyz, r16.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r17.xyz, r7.xywx, r9.yyyy + mad r16.xyz, r16.xyzx, r9.yyyy, r17.xyzx + mul r16.xyz, r16.xyzx, cb5[1].xyzx + mov r15.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r15.yzw, r15.xyxx, t9.wxyz, s0, cb0[108].x + add r0.w, -r15.x, l(1.000000) + mad r15.xyz, r16.xyzx, r15.yzwy, -r16.xyzx + mad r15.xyz, r0.wwww, r15.xyzx, r16.xyzx +else + mov r15.xyz, l(0,0,0,0) +endif +mul r2.zw, r14.xxxy, l(0.000000, 0.000000, 0.031250, 0.031250) +round_ni r2.zw, r2.zzzw +mad r0.w, r2.w, cb4[1].y, r2.z +mul r0.w, r0.w, l(8.000000) +ftoi r0.w, r0.w +mad r2.z, -cb0[85].y, cb4[2].w, r11.z +round_ni r2.z, r2.z +add r2.w, l(-1.000000), cb4[1].w +max r3.w, r2.z, l(0.000000) +min r2.w, r2.w, r3.w +mul r3.w, r2.w, l(8.000000) +ftoi r3.w, r3.w +ge r2.z, r2.w, r2.z +iadd r2.w, r3.w, cb0[110].y +mul r3.w, r9.w, r9.w +min r9.x, r1.x, l(1.000000) +add r1.x, -r9.w, l(1.000000) +mad r4.w, -r1.x, l(0.383026), l(-0.0761947036) +mad r4.w, r1.x, r4.w, l(1.049970) +mad r1.x, r1.x, r4.w, l(0.409255) +min r1.x, r1.x, l(0.999000) +add r4.w, -r1.x, l(1.000000) +add r16.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r16.xyz, r16.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r6.xyzx +mad r9.yz, r9.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r5.w, r9.yzyy, t10.yzwx, s0, l(0.000000) +mad r17.xyz, -r16.xyzx, r4.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r18.w, l(1.000000) +mov r19.y, l(1.000000) +mov r20.z, r9.w +mov r21.xyz, l(0,0,0,0) +mov r6.w, l(1.000000) +mov r7.z, l(0) +loop + ilt r9.y, l(7), r7.z + breakc_nz r9.y + iadd r9.y, r0.w, r7.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.y, r9.y, l(0), t0.xxxx + iadd r9.z, r2.w, r7.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.z, r9.z, l(0), t0.xxxx + and r9.y, r9.z, r9.y + and r9.y, r2.z, r9.y + ishl r9.z, r7.z, l(5) + mov r22.xyz, l(0,0,0,0) + mov r10.w, r6.w + mov r12.w, r9.y + loop + breakc_z r12.w + firstbit_lo r13.w, r12.w + ishl r14.z, l(1), r13.w + xor r14.z, r12.w, r14.z + iadd r13.w, r9.z, r13.w + bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r13.wwww, l(1, 3, 5, 6) + bfi r14.w, l(29), l(3), r13.w, l(7) + ftou r15.w, cb5[r23.z + 6].w + ieq r15.w, r15.w, l(1) + if_nz r15.w + add r18.xyz, r0.xyzx, -cb5[r23.x + 6].xyzx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r23.z + 6].xzyx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r23.w + 6].yxzy + ushr r26.xyz, cb5[r23.z + 6].xzyx, l(16, 16, 16, 0) + ushr r27.xyz, cb5[r23.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyw, r27.yxyz + mov r28.xz, r24.xxzx + mov r28.yw, r26.xxxz + dp4 r15.w, r18.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r16.w, r18.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r17.w, r18.xyzw, r27.xyzw + max r15.w, |r15.w|, |r16.w| + max r15.w, |r17.w|, r15.w + mad r16.w, cb5[r14.w + 6].x, l(0.500000), l(0.500000) + add r15.w, r15.w, -r16.w + mad r16.w, -cb5[r14.w + 6].x, l(0.500000), l(0.500000) + div_sat r15.w, r15.w, r16.w + add r15.w, -r15.w, l(1.000000) + mul r15.w, r15.w, r15.w + else + mov r15.w, l(1.000000) + endif + lt r16.w, l(0.500000), cb5[r23.y + 6].z + lt r17.w, r15.w, l(0.001000) + or r17.w, r16.w, r17.w + if_nz r17.w + mov r12.w, r14.z + continue + endif + ishl r17.w, r13.w, l(3) + bfi r13.w, l(29), l(3), r13.w, l(2) + lt r18.x, cb5[r17.w + 6].w, l(1.500000) + if_nz r18.x + mad r18.x, cb5[r13.w + 6].y, l(0.500000), l(0.500000) + add r18.x, r18.x, -|cb5[r13.w + 6].x| + add r18.y, -r18.x, cb5[r13.w + 6].y + add r19.z, -|r18.x|, l(1.000000) + add r19.z, -|r18.y|, r19.z + max r19.z, r19.z, l(0.000488281250) + ge r19.w, cb5[r13.w + 6].x, l(0.000000) + movc r18.z, r19.w, r19.z, -r19.z + dp3 r19.z, r18.xyzx, r18.xyzx + rsq r19.z, r19.z + mul r18.xyz, r18.xyzx, r19.zzzz + add r24.xyz, -r0.xyzx, cb5[r23.x + 6].xyzx + dp3 r19.z, r24.xyzx, r24.xyzx + rsq r19.w, r19.z + mul r25.xyz, r19.wwww, r24.xyzx + ftoi r20.w, cb5[r14.w + 6].w + mul r26.xyz, r18.xyzx, cb5[r13.w + 6].zzzz + mad r27.xyz, -r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + mad r28.xyz, r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + ftou r21.w, cb5[r17.w + 6].w + and r21.w, r21.w, l(1) + ieq r22.w, r21.w, l(0) + not r22.w, r22.w + lt r23.z, l(0.000000), cb5[r13.w + 6].z + and r22.w, r22.w, r23.z + dp3 r23.z, r27.xyzx, r27.xyzx + sqrt r23.z, r23.z + dp3 r24.w, r28.xyzx, r28.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r5.xyzx, r27.xyzx + div r25.w, r25.w, r23.z + dp3 r26.w, r5.xyzx, r28.xyzx + div r26.w, r26.w, r24.w + add r25.w, r25.w, r26.w + mul_sat r29.x, r25.w, l(0.500000) + dp3 r25.w, r27.xyzx, r28.xyzx + mad r23.z, r23.z, r24.w, r25.w + mad r23.z, r23.z, l(0.500000), l(1.000000) + div r29.y, l(1.000000, 1.000000, 1.000000, 1.000000), r23.z + dp3_sat r19.x, r5.xyzx, r25.xyzx + movc r20.xy, r22.wwww, r29.xyxx, r19.xyxx + lt r19.x, cb5[r23.w + 6].w, l(0.000000) + if_nz r19.x + mul r19.x, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r19.x, r19.x, r19.z + mad r19.x, -r19.x, r19.x, l(1.000000) + max r19.x, r19.x, l(0.000000) + add r19.z, r19.z, l(1.000000) + div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z + and r23.z, r22.w, l(0x3f800000) + add r24.w, -r19.z, r20.y + mad r19.z, r23.z, r24.w, r19.z + mul r19.x, r19.x, r19.x + mul r19.x, r19.x, r19.z + else + mul r28.xyz, r24.xyzx, cb5[r23.x + 6].wwww + dp3 r19.z, r28.xyzx, r28.xyzx + min r19.z, r19.z, l(1.000000) + add r19.z, -r19.z, l(1.000000) + log r19.z, r19.z + mul r19.z, r19.z, cb5[r23.w + 6].w + exp r19.z, r19.z + mul r19.x, r19.z, r20.y + endif + dp3 r18.x, r25.xyzx, -r18.xyzx + add r18.x, r18.x, -cb5[r13.w + 6].z + mul_sat r18.x, r18.x, cb5[r13.w + 6].w + mul r18.x, r18.x, r18.x + movc r18.x, r21.w, l(1.000000), r18.x + mul r18.x, r18.x, r19.x + not r18.y, r22.w + ige r18.z, r20.w, l(0) + and r18.y, r18.z, r18.y + if_nz r18.y + if_z r21.w + ishl r18.y, r20.w, l(2) + mul r28.xyz, r0.yyyy, cb7[r18.y + 33].xywx + mad r28.xyz, cb7[r18.y + 32].xywx, r0.xxxx, r28.xyzx + mad r28.xyz, cb7[r18.y + 34].xywx, r0.zzzz, r28.xyzx + add r28.xyz, r28.xyzx, cb7[r18.y + 35].xywx + div_sat r18.yz, r28.xxyx, r28.zzzz + mad r18.yz, r18.yyzy, cb7[r20.w + 0].zzwz, cb7[r20.w + 0].xxyx + else + ishl r19.x, r20.w, l(2) + dp3 r28.x, -r24.xyzx, cb7[r19.x + 32].xyzx + dp3 r28.y, -r24.xyzx, cb7[r19.x + 33].xyzx + dp3 r28.z, -r24.xyzx, cb7[r19.x + 34].xyzx + lt r19.x, |r28.x|, |r28.y| + and r19.x, r19.x, l(1) + dp2 r19.z, |r28.xyxx|, icb[r19.x + 0].xyxx + lt r19.z, r19.z, |r28.z| + movc r19.x, r19.z, l(2), r19.x + dp3 r19.z, r28.xyzx, icb[r19.x + 0].xyzx + lt r19.z, r19.z, l(0.000000) + bfi r19.x, l(31), l(1), r19.x, r19.z + ushr r19.z, r19.x, l(1) + dp3 r19.z, r28.xyzx, icb[r19.z + 0].xyzx + div r20.y, l(0.000244140625), cb7[r20.w + 0].w + add r20.y, -r20.y, l(0.500000) + utof r23.z, r19.x + ult r24.x, r19.x, l(2) + and r24.x, r24.x, l(2) + dp2 r24.x, r28.xzxx, icb[r24.x + 0].xzxx + mul r24.x, r24.x, icb[r19.x + 4].z + div r24.x, r24.x, |r19.z| + mad r23.z, r24.x, r20.y, r23.z + add r23.z, r23.z, l(0.500000) + mul_sat r24.x, r23.z, l(0.166666672) + iadd r23.z, l(-1), icb[r19.x + 4].y + dp2 r23.z, r28.yzyy, icb[r23.z + 0].xyxx + mul r19.x, r23.z, icb[r19.x + 4].w + div r19.x, r19.x, |r19.z| + mad_sat r24.y, -r19.x, r20.y, l(0.500000) + mad r18.yz, r24.xxyx, cb7[r20.w + 0].zzwz, cb7[r20.w + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r18.yzyy, t18.yxzw, s0, l(0.000000) + mul r18.x, r18.y, r18.x + endif + lt r18.y, l(0.000000), r18.x + if_nz r18.y + if_z r21.w + ftoi r18.z, cb5[r23.y + 6].x + else + add r24.xyz, r0.xyzx, -cb5[r23.x + 6].xyzx + lt r28.xyz, |r24.yzzy|, |r24.xxyx| + and r19.x, r28.y, r28.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r19.z, cb5[r13.w + 6].w, l(24) + ubfe r20.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb5[r13.w + 6].wwww + movc r19.z, r24.x, r19.z, r20.y + and r20.y, l(255), cb5[r13.w + 6].w + movc r20.y, r24.y, r20.w, r20.y + ubfe r20.w, l(8), l(8), cb5[r23.y + 6].x + and r21.w, l(255), cb5[r23.y + 6].x + movc r20.w, r24.z, r20.w, r21.w + movc r20.y, r28.z, r20.y, r20.w + movc r19.x, r19.x, r19.z, r20.y + ilt r19.z, r19.x, l(80) + movc r18.z, r19.z, r19.x, l(-1) + endif + mad r24.xyz, r25.xyzx, cb6[r18.z + 288].xxxx, r0.xyzx + mul r19.x, l(5.000000), cb6[r18.z + 288].y + mad r24.xyz, r5.xyzx, r19.xxxx, r24.xyzx + ishl r19.x, r18.z, l(2) + mul r28.xyzw, r24.yyyy, cb6[r19.x + 65].xyzw + mad r28.xyzw, cb6[r19.x + 64].xyzw, r24.xxxx, r28.xyzw + mad r24.xyzw, cb6[r19.x + 66].xyzw, r24.zzzz, r28.xyzw + add r24.xyzw, r24.xyzw, cb6[r19.x + 67].xyzw + div r24.xyz, r24.xyzx, r24.wwww + ge r28.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r19.xz, -cb6[r18.z + 344].xxyx, cb6[r18.z + 344].zzwz + mad r19.xz, r24.xxyx, r19.xxzx, cb6[r18.z + 344].xxyx + mad r20.yw, r19.xxxz, cb6[400].zzzw, l(0.000000, 0.500000, 0.000000, 0.500000) + round_ni r20.yw, r20.yyyw + mad r19.xz, r19.xxzx, cb6[400].zzwz, -r20.yywy + add r30.xyzw, r19.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r31.xyzw, r30.xxzz, r30.xxzz + add r24.xy, -r19.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + min r30.xz, r19.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r32.xy, r19.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r33.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r32.xy, -r32.xyxx, r32.xyxx, r30.ywyy + add r32.xy, r32.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r32.xy, r32.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r31.xz, r31.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xz, r31.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r19.xxzx + mul r34.xy, r19.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xz, -r30.xxzx, r30.xxzx, r24.xxyx + add r19.xz, r19.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r35.xy, r19.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xz, r30.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r34.z, r35.x + mov r34.w, r19.x + mov r33.z, r32.x + mov r33.w, r31.x + add r30.xyzw, r33.zwxz, r34.zwxz + mov r35.z, r34.y + mov r35.w, r19.z + mov r32.z, r33.y + mov r32.w, r31.z + add r24.xyw, r32.zyzw, r35.zyzw + div r31.xyz, r33.xzwx, r30.zwyz + add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r31.xyz, r31.xyzx, cb6[400].xxxx + div r32.xyz, r32.zywz, r24.xywx + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyw, r32.xyxz, cb6[400].yyyy + mul r33.xyzw, r24.xxxy, r30.zwyz + mov r31.w, r32.x + mad r34.xyzw, r20.ywyw, cb6[400].xyxy, r31.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r34.xyxx, t6.xxxx, s3, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r34.zwzz, t6.xxxx, s3, r24.z + mul r19.z, r19.z, r33.y + mad r19.x, r33.x, r19.x, r19.z + mad r33.xy, r20.ywyy, cb6[400].xyxx, r31.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r33.xyxx, t6.xxxx, s3, r24.z + mad r19.x, r33.z, r19.z, r19.x + mov r32.z, r31.x + mad r34.xyzw, r20.ywyw, cb6[400].xyxy, r32.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r34.xyxx, t6.xxxx, s3, r24.z + mad r19.x, r33.w, r19.z, r19.x + mul r33.xyzw, r24.yyww, r30.xyzw + mov r32.xz, r31.yyzy + mad r31.xyzw, r20.ywyw, cb6[400].xyxy, r32.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r31.xyxx, t6.xxxx, s3, r24.z + mad r19.x, r33.x, r19.z, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r31.zwzz, t6.xxxx, s3, r24.z + mad r19.x, r33.y, r19.z, r19.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r34.zwzz, t6.xxxx, s3, r24.z + mad r19.x, r33.z, r19.z, r19.x + ige r19.z, r18.z, l(0) + or r28.xyz, r28.xyzx, r29.xyzx + or r21.w, r28.y, r28.x + or r21.w, r28.z, r21.w + and r23.z, r24.z, l(0x7fffffff) + ult r23.z, l(0x7f800000), r23.z + or r21.w, r21.w, r23.z + mad r28.xyzw, r20.ywyw, cb6[400].xyxy, r32.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.y, r28.xyxx, t6.xxxx, s3, r24.z + mad r19.x, r33.w, r20.y, r19.x + mul r20.y, r24.w, r30.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r28.zwzz, t6.xxxx, s3, r24.z + mad r19.x, r20.y, r20.w, r19.x + add r19.x, r19.x, l(-1.000000) + mad r18.z, cb6[r18.z + 288].w, r19.x, l(1.000000) + movc r18.z, r21.w, l(1.000000), r18.z + movc r18.z, r19.z, r18.z, l(1.000000) + else + mov r18.z, l(1.000000) + endif + if_nz r22.w + dp3 r19.x, r12.xyzx, r26.xyzx + mul_sat r19.z, r19.w, cb5[r13.w + 6].z + mad r19.z, r19.z, l(0.500000), r3.w + min r19.z, r19.z, l(1.000000) + div r19.z, r3.w, r19.z + mad r24.xyz, r12.xyzx, r19.xxxx, -r26.xyzx + dp3 r20.y, r27.xyzx, r24.xyzx + mul r19.x, r19.x, r19.x + mad r19.x, cb5[r13.w + 6].z, cb5[r13.w + 6].z, -r19.x + div_sat r19.x, r20.y, r19.x + mad r24.xyz, r26.xyzx, r19.xxxx, r27.xyzx + dp3 r19.x, r24.xyzx, r24.xyzx + rsq r19.x, r19.x + mul r25.xyz, r19.xxxx, r24.xyzx + else + mov r19.z, l(1.000000) + endif + if_nz r18.y + mul_sat r18.y, r19.w, cb5[r14.w + 6].y + mad r24.xyz, r1.yzwy, r2.yyyy, r25.xyzx + dp3 r19.x, r24.xyzx, r24.xyzx + max r19.x, r19.x, l(0.0000610351562) + rsq r19.x, r19.x + mul r24.xyz, r19.xxxx, r24.xyzx + dp3_sat r19.x, r5.xyzx, r24.xyzx + dp3_sat r19.w, r4.xyzx, r24.xyzx + lt r20.y, l(0.000000), r18.y + mul r18.y, r18.y, r18.y + mad r20.w, r19.w, l(3.600000), l(0.400000) + div r18.y, r18.y, r20.w + mad r18.y, r9.w, r9.w, r18.y + min r18.y, r18.y, l(1.000000) + movc r18.y, r20.y, r18.y, r3.w + mul r18.y, r18.y, r18.y + mad r20.y, r19.x, r18.y, -r19.x + mad r19.x, r20.y, r19.x, l(1.000000) + add r19.w, -r19.w, l(1.000000) + mul r20.y, r19.w, r19.w + mul r20.y, r20.y, r20.y + mul r20.w, r19.w, r20.y + mad r19.w, -r20.y, r19.w, l(1.000000) + mad r24.xyz, r6.xyzx, r19.wwww, r20.wwww + mul r19.x, r19.x, r19.x + div r19.x, r18.y, r19.x + mul r19.x, r19.z, r19.x + mad r19.z, -r9.x, r18.y, r9.x + mad r19.z, r19.z, r9.x, r18.y + sqrt r19.z, r19.z + mad r19.w, -r20.x, r18.y, r20.x + mad r18.y, r19.w, r20.x, r18.y + sqrt r18.y, r18.y + mul r18.y, r9.x, r18.y + mad r18.y, r20.x, r19.z, r18.y + add r18.y, r18.y, l(0.000100) + div r18.y, l(0.500000), r18.y + mul r18.y, r18.y, r19.x + mul r19.xzw, r18.yyyy, r24.xxyz + min r19.xzw, r19.xxzw, l(2048.000000, 0.000000, 2048.000000, 2048.000000) + mad r20.yw, r20.xxxz, l(0.000000, 0.968750, 0.000000, 0.968750), l(0.000000, 0.015625, 0.000000, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r20.ywyy, t10.yxzw, s0, l(0.000000) + mul r18.y, r5.w, r18.y + mul r18.y, r1.x, r18.y + div r18.y, r18.y, r4.w + mul r24.xyz, r16.xyzx, r18.yyyy + div r24.xyz, r24.xyzx, r17.xyzx + add r19.xzw, r19.xxzw, r24.xxyz + mul r19.xzw, r19.xxzw, cb5[r14.w + 6].zzzz + max r19.xzw, r19.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r19.xzw, r19.xxzw, l(1000.000000, 0.000000, 1000.000000, 1000.000000) + mul r24.xyz, r7.xywx, r20.xxxx + mad r19.xzw, r19.xxzw, r20.xxxx, r24.xxyz + mul r20.xyw, r18.xxxx, cb5[r17.w + 6].xyxz + mul r18.xyz, r18.zzzz, r20.xywx + mul r18.xyz, r15.wwww, r18.xyzx + mul r18.xyz, r18.xyzx, r19.xzwx + else + mov r18.xyz, l(0,0,0,0) + endif + else + if_z r16.w + mad r15.w, cb5[r13.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r15.w, -|cb5[r13.w + 6].x| + add r24.y, -r24.x, cb5[r13.w + 6].y + add r15.w, -|r24.x|, l(1.000000) + add r15.w, -|r24.y|, r15.w + max r15.w, r15.w, l(0.000488281250) + ge r16.w, cb5[r13.w + 6].x, l(0.000000) + movc r24.z, r16.w, r15.w, -r15.w + dp3 r15.w, r24.xyzx, r24.xyzx + rsq r15.w, r15.w + mul r19.xzw, r15.wwww, r24.xxyz + add r20.xyw, -r0.xyxz, cb5[r23.x + 6].xyxz + dp3 r15.w, r20.xywx, r20.xywx + rsq r16.w, r15.w + mul r24.xyz, r16.wwww, r20.xywx + ftoi r14.w, cb5[r14.w + 6].w + mul r25.xyz, r19.xzwx, cb5[r13.w + 6].zzzz + mad r26.xyz, -r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r20.xywx + mad r25.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r20.xywx + ftou r16.w, cb5[r17.w + 6].w + and r16.w, r16.w, l(1) + ieq r17.w, r16.w, l(0) + not r17.w, r17.w + lt r21.w, l(0.000000), cb5[r13.w + 6].z + and r17.w, r17.w, r21.w + dp3 r21.w, r26.xyzx, r26.xyzx + sqrt r21.w, r21.w + dp3 r22.w, r25.xyzx, r25.xyzx + sqrt r22.w, r22.w + dp3 r23.z, r26.xyzx, r25.xyzx + mad r21.w, r21.w, r22.w, r23.z + mad r21.w, r21.w, l(0.500000), l(1.000000) + div r21.w, l(1.000000, 1.000000, 1.000000, 1.000000), r21.w + movc r21.w, r17.w, r21.w, l(1.000000) + lt r22.w, cb5[r23.w + 6].w, l(0.000000) + if_nz r22.w + mul r22.w, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r22.w, r15.w, r22.w + mad r22.w, -r22.w, r22.w, l(1.000000) + max r22.w, r22.w, l(0.000000) + add r15.w, r15.w, l(1.000000) + div r15.w, l(1.000000, 1.000000, 1.000000, 1.000000), r15.w + and r23.z, r17.w, l(0x3f800000) + add r24.w, -r15.w, r21.w + mad r15.w, r23.z, r24.w, r15.w + mul r22.w, r22.w, r22.w + mul r15.w, r15.w, r22.w + else + mul r25.xyz, r20.xywx, cb5[r23.x + 6].wwww + dp3 r22.w, r25.xyzx, r25.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb5[r23.w + 6].w + exp r22.w, r22.w + mul r15.w, r21.w, r22.w + endif + dp3 r19.x, r24.xyzx, -r19.xzwx + add r19.x, r19.x, -cb5[r13.w + 6].z + mul_sat r19.x, r19.x, cb5[r13.w + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r16.w, l(1.000000), r19.x + mul r15.w, r15.w, r19.x + not r17.w, r17.w + ige r19.x, r14.w, l(0) + and r17.w, r17.w, r19.x + if_nz r17.w + if_z r16.w + ishl r17.w, r14.w, l(2) + mul r19.xzw, r0.yyyy, cb7[r17.w + 33].xxyw + mad r19.xzw, cb7[r17.w + 32].xxyw, r0.xxxx, r19.xxzw + mad r19.xzw, cb7[r17.w + 34].xxyw, r0.zzzz, r19.xxzw + add r19.xzw, r19.xxzw, cb7[r17.w + 35].xxyw + div_sat r19.xz, r19.xxzx, r19.wwww + mad r19.xz, r19.xxzx, cb7[r14.w + 0].zzwz, cb7[r14.w + 0].xxyx + else + ishl r17.w, r14.w, l(2) + dp3 r25.x, -r20.xywx, cb7[r17.w + 32].xyzx + dp3 r25.y, -r20.xywx, cb7[r17.w + 33].xyzx + dp3 r25.z, -r20.xywx, cb7[r17.w + 34].xyzx + lt r17.w, |r25.x|, |r25.y| + and r17.w, r17.w, l(1) + dp2 r19.w, |r25.xyxx|, icb[r17.w + 0].xyxx + lt r19.w, r19.w, |r25.z| + movc r17.w, r19.w, l(2), r17.w + dp3 r19.w, r25.xyzx, icb[r17.w + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r17.w, l(31), l(1), r17.w, r19.w + ushr r19.w, r17.w, l(1) + dp3 r19.w, r25.xyzx, icb[r19.w + 0].xyzx + div r20.x, l(0.000244140625), cb7[r14.w + 0].w + add r20.x, -r20.x, l(0.500000) + utof r20.y, r17.w + ult r20.w, r17.w, l(2) + and r20.w, r20.w, l(2) + dp2 r20.w, r25.xzxx, icb[r20.w + 0].xzxx + mul r20.w, r20.w, icb[r17.w + 4].z + div r20.w, r20.w, |r19.w| + mad r20.y, r20.w, r20.x, r20.y + add r20.y, r20.y, l(0.500000) + mul_sat r26.x, r20.y, l(0.166666672) + iadd r20.y, l(-1), icb[r17.w + 4].y + dp2 r20.y, r25.yzyy, icb[r20.y + 0].xyxx + mul r17.w, r20.y, icb[r17.w + 4].w + div r17.w, r17.w, |r19.w| + mad_sat r26.y, -r17.w, r20.x, l(0.500000) + mad r19.xz, r26.xxyx, cb7[r14.w + 0].zzwz, cb7[r14.w + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r14.w, r19.xzxx, t18.yzwx, s0, l(0.000000) + mul r15.w, r14.w, r15.w + endif + lt r14.w, l(0.000000), r15.w + if_nz r14.w + if_z r16.w + ftoi r14.w, cb5[r23.y + 6].x + else + add r19.xzw, r0.xxyz, -cb5[r23.x + 6].xxyz + lt r20.xyw, |r19.zwzw|, |r19.xxxz| + and r15.w, r20.y, r20.x + lt r19.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxzw + ushr r16.w, cb5[r13.w + 6].w, l(24) + ubfe r20.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r13.w + 6].wwww + movc r16.w, r19.x, r16.w, r20.x + and r13.w, l(255), cb5[r13.w + 6].w + movc r13.w, r19.z, r20.y, r13.w + ubfe r17.w, l(8), l(8), cb5[r23.y + 6].x + and r19.x, l(255), cb5[r23.y + 6].x + movc r17.w, r19.w, r17.w, r19.x + movc r13.w, r20.w, r13.w, r17.w + movc r13.w, r15.w, r16.w, r13.w + ilt r15.w, r13.w, l(80) + movc r14.w, r15.w, r13.w, l(-1) + endif + mad r19.xzw, r24.xxyz, cb6[r14.w + 288].xxxx, r0.xxyz + mul r13.w, l(5.000000), cb6[r14.w + 288].y + mad r19.xzw, r5.xxyz, r13.wwww, r19.xxzw + ishl r13.w, r14.w, l(2) + mul r23.xyzw, r19.zzzz, cb6[r13.w + 65].xyzw + mad r23.xyzw, cb6[r13.w + 64].xyzw, r19.xxxx, r23.xyzw + mad r23.xyzw, cb6[r13.w + 66].xyzw, r19.wwww, r23.xyzw + add r23.xyzw, r23.xyzw, cb6[r13.w + 67].xyzw + div r19.xzw, r23.xxyz, r23.wwww + ge r20.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xzxw + ge r23.xyz, r19.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r24.xy, -cb6[r14.w + 344].xyxx, cb6[r14.w + 344].zwzz + mad r19.xz, r19.xxzx, r24.xxyx, cb6[r14.w + 344].xxyx + mad r24.xy, r19.xzxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r24.xy, r24.xyxx + mad r19.xz, r19.xxzx, cb6[400].zzwz, -r24.xxyx + add r25.xyzw, r19.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r26.xyzw, r25.xxzz, r25.xxzz + add r24.zw, -r19.xxxz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r25.xz, r19.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r27.xy, r19.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r28.xy, r24.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r27.xy, -r27.xyxx, r27.xyxx, r25.ywyy + add r27.xy, r27.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r27.xy, r27.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r26.xz, r26.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r19.xz, r26.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r19.xxzx + mul r29.xy, r19.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r19.xz, -r25.xxzx, r25.xxzx, r24.zzwz + add r19.xz, r19.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r30.xy, r19.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r19.xz, r25.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r29.z, r30.x + mov r29.w, r19.x + mov r28.z, r27.x + mov r28.w, r26.x + add r25.xyzw, r28.zwxz, r29.zwxz + mov r30.z, r29.y + mov r30.w, r19.z + mov r27.z, r28.y + mov r27.w, r26.z + add r26.xyz, r27.zywz, r30.zywz + div r28.xyz, r28.xzwx, r25.zwyz + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyz, r28.xyzx, cb6[400].xxxx + div r27.xyz, r27.zywz, r26.xyzx + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyw, r27.xyxz, cb6[400].yyyy + mul r29.xyzw, r25.zwyz, r26.xxxy + mov r28.w, r27.x + mad r30.xyzw, r24.xyxy, cb6[400].xyxy, r28.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r13.w, r30.xyxx, t6.xxxx, s3, r19.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r30.zwzz, t6.xxxx, s3, r19.w + mul r15.w, r15.w, r29.y + mad r13.w, r29.x, r13.w, r15.w + mad r19.xz, r24.xxyx, cb6[400].xxyx, r28.zzwz + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r19.xzxx, t6.xxxx, s3, r19.w + mad r13.w, r29.z, r15.w, r13.w + mov r27.z, r28.x + mad r30.xyzw, r24.xyxy, cb6[400].xyxy, r27.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r30.xyxx, t6.xxxx, s3, r19.w + mad r13.w, r29.w, r15.w, r13.w + mul r29.xyzw, r25.xyzw, r26.yyzz + mov r27.xz, r28.yyzy + mad r28.xyzw, r24.xyxy, cb6[400].xyxy, r27.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r28.xyxx, t6.xxxx, s3, r19.w + mad r13.w, r29.x, r15.w, r13.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r28.zwzz, t6.xxxx, s3, r19.w + mad r13.w, r29.y, r15.w, r13.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r30.zwzz, t6.xxxx, s3, r19.w + mad r13.w, r29.z, r15.w, r13.w + ige r15.w, r14.w, l(0) + or r20.xyw, r20.xyxw, r23.xyxz + or r16.w, r20.y, r20.x + or r16.w, r20.w, r16.w + and r17.w, r19.w, l(0x7fffffff) + ult r17.w, l(0x7f800000), r17.w + or r16.w, r16.w, r17.w + mad r23.xyzw, r24.xyxy, cb6[400].xyxy, r27.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r23.xyxx, t6.xxxx, s3, r19.w + mad r13.w, r29.w, r17.w, r13.w + mul r17.w, r25.y, r26.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r23.zwzz, t6.xxxx, s3, r19.w + mad r13.w, r17.w, r19.x, r13.w + add r13.w, r13.w, l(-1.000000) + mad r13.w, cb6[r14.w + 288].w, r13.w, l(1.000000) + movc r13.w, r16.w, l(1.000000), r13.w + movc r13.w, r15.w, r13.w, l(1.000000) + else + mov r13.w, l(1.000000) + endif + else + mov r13.w, l(1.000000) + endif + mul r10.w, r10.w, r13.w + mov r18.xyz, l(0,0,0,0) + endif + add r22.xyz, r18.xyzx, r22.xyzx + mov r12.w, r14.z + endloop + mov r6.w, r10.w + add r21.xyz, r21.xyzx, r22.xyzx + iadd r7.z, r7.z, l(1) +endloop +dp3 r0.x, r13.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xyz, -r0.xxxx, r13.xyzx +mad r0.xzw, cb0[184].wwww, r1.xxyz, r0.xxxx +mad r1.xyz, r21.xyzx, r6.wwww, r15.xyzx +mad r0.xzw, r0.xxzw, cb0[184].xxyz, r1.xxyz +mad r1.x, r0.y, cb0[156].w, cb0[157].w +mad r1.y, r2.x, cb0[154].w, -cb0[153].w +max r1.xy, r1.xyxx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.z, r1.x, l(-1.442695) +exp r1.z, r1.z +add r1.z, -r1.z, l(1.000000) +div r1.x, r1.z, r1.x +mad r1.z, r0.y, cb0[156].w, cb0[158].w +mul r1.z, r1.z, l(1.442695) +exp r1.z, r1.z +mul r1.x, r1.z, r1.x +mul r1.x, r1.x, -r1.y +mul r1.xyz, r1.xxxx, cb0[155].xyzx +mul r1.xyz, r1.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r1.xyz, r1.xyzx +dp3 r1.w, -r4.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r1.wwww, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r11.w, l(7), cb0[108].w + imad r5.xyz, r11.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.z, r5.y, r5.z, r5.x + imad r2.w, r5.z, r2.z, r5.y + imad r3.w, r2.z, r2.w, r5.z + imad r5.x, r2.w, r3.w, r2.z + dp3 r2.z, -r4.xyzx, -r3.xyzx + add r3.x, r0.y, -cb0[44].y + lt r3.y, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.y + mul r2.z, r2.z, cb0[163].w + div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x + mul r3.z, r2.z, r3.y + mad r4.x, r3.z, r3.x, cb0[44].y + mad r3.x, -r3.z, r3.x, r3.x + mul r3.z, r3.x, cb0[159].z + mul r3.x, r3.x, cb0[162].x + max r3.xz, r3.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + add r4.y, r4.x, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r3.z| + exp r4.w, -r3.z + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r4.z, r4.w, r3.z + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.z, l(5.960464478E-08), |r3.x| + exp r4.w, -r3.x + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.x + mad r3.x, -r3.x, l(0.240226507), l(0.693147182) + movc r3.x, r4.z, r4.w, r3.x + mul r3.x, r3.x, r4.x + mad r3.x, r4.y, r3.z, r3.x + mad r2.z, -r2.z, r3.y, l(1.000000) + mul r2.z, r2.x, r2.z + mul r2.z, r2.z, r3.x + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.xy, r2.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r2.z, r2.z, r3.x + add r2.z, r3.y, r2.z + min r2.z, r2.z, l(1.000000) + imad r5.y, r3.w, r5.x, r2.w + ushr r3.xy, r5.xyxx, l(16, 16, 0, 0) + utof r3.xy, r3.xyxx + mad r3.xy, r3.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb0[167].wwww, r14.xyxx + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r2.w, r11.z, cb0[164].x, cb0[164].y + log r2.w, r2.w + mul r2.w, r2.w, cb0[164].z + div r3.z, r2.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t17.xyzw, s0, l(0.000000) + add r2.w, r11.z, -cb0[166].z + mul_sat r2.w, r2.w, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r2.wwww, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r2.w, -r2.z, l(1.000000) + mul r4.xyz, r2.wwww, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.z, r2.z, r3.w +else + add r0.y, r0.y, -cb0[44].y + mul r2.w, r0.y, cb0[159].z + max r2.w, r2.w, l(-127.000000) + mul r0.y, r0.y, cb0[162].x + max r0.y, r0.y, l(-127.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r2.w| + exp r4.y, -r2.w + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r4.x, r4.y, r2.w + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r0.y| + exp r4.z, -r0.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.y, r4.z, r0.y + mul r0.y, r0.y, r4.x + mad r0.y, r3.w, r2.w, r0.y + mul r0.y, r2.x, r0.y + exp r0.y, -r0.y + min r0.y, r0.y, l(1.000000) + max r0.y, r0.y, cb0[161].w + mad_sat r2.xw, r2.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r0.y, r0.y, r2.x + add r0.y, r2.w, r0.y + min r2.z, r0.y, l(1.000000) + add r0.y, -r2.z, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r1.xyzx, r2.zzzz +mad r0.y, r1.w, r1.w, l(1.000000) +mul r0.y, r0.y, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.yyyy, cb0[158].xyzx +mad r0.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r1.w, r2.y, l(12.566371) +sqrt r2.x, r2.y +mul r1.w, r1.w, r2.x +max r1.w, r1.w, l(0.001000) +div r0.y, r0.y, r1.w +mad_sat r2.xyw, cb0[157].xyxz, r0.yyyy, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx +mad r8.xyz, r0.xzwx, r4.xyzx, r1.xyzx +mul r0.xy, r10.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r0.xy, |r0.xyxx| +sqrt r0.xy, r0.xyxx +mov r10.z, -r10.y +lt r0.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r10.xxxz +lt r1.xy, r10.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r0.zw, -r0.zzzw, r1.xxxy +itof r0.zw, r0.zzzw +mul r0.xy, r0.zwzz, r0.xyxx +mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +ishl r0.z, v7.x, l(4) +max r0.z, cb1[r0.z + 4].z, cb1[r0.z + 4].y +add r0.z, r0.z, l(-0.100000024) +lt r0.w, l(0.000000), r0.z +lt r0.z, r0.z, l(0.000000) +iadd r0.z, -r0.w, r0.z +itof r0.z, r0.z +mov_sat r0.z, r0.z +add r1.xy, -r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.zzzz, r1.xyxx, r0.xyxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r8.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r8.w, r0.x +max r0.x, r8.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +mov o0.xyzw, r8.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0xB8941FB1.cso b/src/games/endfield/glass/0xB8941FB1.cso new file mode 100644 index 0000000000000000000000000000000000000000..d6a46615aa30f787215cc4667f6304ece6a46270 GIT binary patch literal 55376 zcmcJYU5s7Vb>Gh%N|&P{DM}MZrYC89HA?fr1a&l2NQRa;ha+j^43N=pL)Rt2ku-i0H3d9d}D6@r7pf2Djsa&8af}{nJmlP>e z7DVB z;oE=t{Xe+UG|e0SbJHA9|GkU__@q9sedA+4_^s;K1Y6bT&-9@|4=wHJ!KS$lKxx1O zuK{qQ3_pChhqsBI@xda;a_RXTJ=)XXmgpHDm0;xGp5TlvXOiHI4VRi|*u{87gCkt1 z-JuUddAvji!pGCd()3z{Oj*{U-S9TzwtGXzWHCgsQ3&1`R{LjUP zG{zRgvEzqVdm8i^j((5P?J;_vkq^y#dYRC@x$Ccy`@|EvKGt6&J6|I|U&EWP(UY&y zm9OzJUz2C~n!L@|tk<~yuHK$QgKI6p1w1j!^mh)fiD$+WfqZ?puZ#cd<@&Epo7*nl z)yIn%z3r~%z?QB(zM96+5jSYAYfQ`-uWL-a7(+v>JSI+W(;PxWjNY!CV@!OA$vcz- z*QdRHkJ0@%l-l2=UTbxAtLgE(;-g*r*=h9W^}VH3x?1p)+j@N41=?R+buHhu#rnD; z*>_wQFZ#ZA^sd>tg7+GEg{~!k%`}FyHZHFfo9^uS$LKbo+gPL%Xtl~Kyq5bdLTX+Q zUMx24w$-+<@qXcUimxl3h}F(0Cd|Vr`C{Dh1)AA*PdmFJyI1!XaN?g$5z}0V@8%A4 zGsn^$@gO$4d(*(O@0`?9Ul$EJj~8B$z&8hQc!6VArbj;ZT9;yv2y|L^&n%Tood~ga`kjM~~?o6V@X1)JDr8UyWbW{FUp-!xG2P2M_ZD|H}(c<^^qivMczZrCBdy z>!mhhbDlH%16?zn+rQEQm|d})nD3G|*BcK zddJSO$^7e-KAEcmwdnnbP%7vRP+PO{QvRGUw&w1 zfHR-swyj)@+%O-#=5ivQIHzGR`pDUfWlZe^#@^tZJ*}J=;xCt4f_-XH^NGLsBgR7+ ziqo29OlG}oc+pq*La*qKFsH@VOXoy0w3irUKgDwx*&%0dzklot(6hJG%iq{DsL9pe zVux|m$nSVXUz49!tta>G12|yB2O4np8(fxA&l8ew+#eSEFWlbSGr6P3Nq)o;8+X@x zxsyWs^ueB1=fQebaBXuhwpC(BQ;cFB7?Vfj1AA-211z|vdA&;Q5T|;)x-NO-eJ^8P zQdgIp?=w?@}bAd*AO+7QtJj83L+qhv&hoe&#dcSNcar{PO%jHzKRX z&~xfMgjWR!XppRxeHGfT%XT1otA z@6?AiM!adqmG7QM&ad19RJ{dsQ|V1ONKL0^9!kFZ(MG zec{`FW_#_c_k9sRSwl4JVdUPiH;$fI(cs$?b@l_?AN=IYzNGuexE}#$Ur!`GtU;P_ z_-`AGvkhEBEt-0+Wv$TKu4&}Q6@1ZUv}@YSz#h~5T4rzaY@7L|{kT4|KkiGRMIP(T z_oe?+W9f_gVDN_jiN?%F(CVHB+!)<;!Kt5_PN1r9xA0o-p9-mbspr+U6Cj>{@eHj0 z5G(Y_?#R8cOL;)wcKYh+uJrvpf5AJK$Q!P8?uvVnkWu8eoe)h!9BVAwPFDjMabvA! zUe~PiBK}s*J@~sdX5EE8-M=_jI8)Q!q|fn!*VzkDz=*?6;cq*j^B6F8&R9>_p|wxL zHtQj8h`;qQX0D7k96oXlyk(EkQBScq(+O1dnb&g3{gX-;e8D>5{7bx~Y;YN~H?RdfFf{k;#@zo(CJF94AJm1m{u zj~a;_t^d3(!+zk3R~_rJ)(>J%>(|>K{ac-nm*AR*L{?*`xK?>R?;C>GbLH6fxaJ}1 z(q_?Rou>JLB)8DlXFm9Rzj%>Ltu}8@r{_imcR)DHqlfmD&20w^+tOLQ#_g%8uzjqx zmqzTk{zhVLe`QyV$1v8Wu`RvrfAl3{J&ud@9I?iakyuw=@bp@o|3{@#d`HIC}5FX6z%T zoXrFeehnLNrnf9|9a>}&WBLvC_;g}`L!N0Ax8Q@$Fl2uIbDuk#eZDSPFB8r4j;+pc z$nozK#U5;qXBV~u9^?`O>?tkwCZ0i9UfcDU&wuWC-B+@H<_UV{Hu~lIBZo3=FMB2p z{MiqbeX7xMRzWU)fFpLq1sHoLKC)+Xtrk8K*Zn?zPPMsjLm#0> zXY@DmG1Imk^6Ve|jeUfdGm3rW+CDN?Jz4M(SoV?Yt+HO3V{E2xJAJ(bJJ63@+kp(n z)i}qMYw2B)opDAY&TXf!K{Fm3+fHADW<2uRPG5uOICu?#maY}~8}%F;FFiHYcVEx- zET^u`-xJKZ7lNX%OTjbPJApk=)=OC*QO|+9o-v}+6*6~@{wNEGVp>aJoAG&+Kc|8ZGc*R;oC;7n{rS0@JsNHP`sGcbo z>iIoFIJd^?x$*SU7xmowqTibe)7MPNiFtxHue)dEm*v1iJ?DOKSv@a)hpg8 z5-a!63s>i&k5yCeGk#ZiY^Q#s_f~7Y<4?aKUTi;6=FK?ddERUvbcSKeSgn7#Xr3=? zn)`L`Q*T!5;mLlpe$=849@D_`+D;d0H>&l}Gw;za*B|+nY1>YWFQNXxORe|(bA7VZ zdd9>RoaW~a*LrF^xO%@dsQJWqzpu+{KJ@q+{Y`w$v~4HGm*6YB)O`EOwS8qw&CkBB z3x==Yvai4ukA=0(+_#;+UV=U7LT&S{A)*i+Yu9%RJHi+X-%1E17G@gIdY+sAaX1InWxa`(r;> zarTY<1$?d<%-;iP@A3Mhx1H2U=zw7-{9J23LMC*Ep>M3d!S{U02kKj#Oy8RCOGQv> z7jZIe+v!5>Mzzavjed!2=VhjCJ0#!w84g}*m*<1)lcjbsCO+W2rZ_K+ttsGYQKyOB zeqWc@F6f;L%i?HXGi}?6@g?{QFSX0Qa&2E3Q@gUS>w@7cxMj5q9JZ4SZKto7U=O;G zo9%I&UAs&}j=Oe2lkd}fFpE`#~73}V^KcfZ9N7krg8n_`X*M`KqHR){sY~+*FSjXRoXX< zOSF>F7bKh9iTJC>0O0(Ej*W% zBjDBIeH8}Sh#cQ5!Pn{o-_Q?%C3%3R+_39$LRw zqG83Ee@k1EWx|L3%mw^3=z!_n#(1uTJm~1Zt=OAk{=MK`!hg1Dey+W*nSJmRuV}Ik z=xz7pJ^egezU`*B{0uu&@?=bYrd#PGK+W=3O6)R?{Qx(d3&)W8zbJpB29)(aDK@-Y z@@0Mf4JPl=fBgJg&YpVNsqLTo$}jTUKs^IUm*;j{dsoDiwbI)=16K95oe+a&o_P#| zC*-jAdR|S({k3E9eHz|h;=uhjaQ$ZbpyTkJ1$U=#z|vmM^Ww-o<9xr)weMpXf4KN$ zI%N2rC(hsKBnHTb=7)-0=&X|-TJu>JJ^TmMt7gSJ71U(yV-sNfK4iJnYxF?3DS4TW zc#qMM1DS4hgidQI?uG6VPWM2em*3~BJk`0Ubd4Ox3|}@R8=ke&XB=||4jIroo{W`$ zkzb7Qop-^sKKJPr-Q2EZLtA*@<0CO~|8Z5iSl84vbi3E^(6hy!-POBhUlJf<^5IdP zYnAqJFK4&VQL`PBW5ox}Mfkw^$v(JtFt_#_I@Z;?zB!vZ&I|LawP-r#H`6W5Z=z#< zGu^`c7CNbmILcTI~}dJ7Q7v zabE!r9l(`OoX6w$E7O73Sf}FoJ+JBAKT>K2wAOdJ#1=V2J@=P*;B(vQYtSs$bogOd z+YN|y$v#8ekSDsB^D>SYd{6PoF#2Wwfb(2B2H6MMRPX(XF*w$BX@^*sz;s5hYp?AJ zHoE><3Gp#4=MH#S!{|Syx!Njn96R14frfV&=oRazE9z_gG=f?If z!@c~se&@7viSsUe)R>LZ4{^|tgV3nOUQBI*kDfTuZ?YdPui9AGoL3SUXct5AE^<3weyS@Fk1@9QHm-p{?wx-SD%tzdGu8h4P z%eTMSZkr6#`Dq{hmY$J1Uz{IpC*kvFb#c*l(Q%Hh_rKyjH01U9SbJPOD|6;Osda`u z34zZrWT-HM59In-t@XfABZ(XC7>GSV<#Ay4- z8OOlu-SsZxc!vw!#z}tEbf0aBH~i!hG{8l3gt*BE;uh;C*3?KIWqaUpPP#{ibi^J3 z-e=RVtEtwk$hHL>K6B30e6I}ojMLg*@wowc)a4z%)$oBByJw#3=vo_FhIj%l)~#sOd9 zEBOdI_8D^FR`(fbeShn-BKyo$$qro6n`zK_vh3~bCC(4c$^6~xkM{SP2ZYai&TyV= zJA2L;jy-2fb*$P`?#0_qg6A!2SKG}28U;+ewT`h@;?oW4SmaTT={Hiln7_@EhvYLc za9&cAjN8zJ@fUlhz7evSN?2zw~Vv_i|@-PZl46qBf4{ z<(+ogyY=Bc3j2mX)Z$+MYj*G_nnV6Q?nRY5Wc4QmPwD7aFhUj9*Z>A&4NGWH&**^8s}R0oM@<7reR#;l4#gl z)It~IF&g$d;>Q}WJ-G+R+!|(k=pA?CYzI9!VrHE6(|gS!gS7>Xa}1bsk1;XJcw~bo zufQ`88E^UM27hLN$6v)V-k}eBwZA~ucKTZQ{d%^o99?+lAkkgnnQs3vZ!<$c`Kaq_ z5Kg0=6RFz5nsX zoiTdlM#Piz7`Z__cYk$xJfRzl=j%u2N~EK6`{a{P@^3Ya;*^T#JU5<0_uDSY0W#=a&{eYRnJ^u&&~EKlW2tQ+Tx^u@ZF^Uk)N3)t^m@U!fQ zXUQLQwW3jMYMyZag{;Yk`W!x{F+L%S^=Q4+FY?LuYJaZ#qV~hEiM^U;nXcoaUD!vk z2^!=x4s{EJmLEJoP7X3Xpy-ykYyadnQaP3!xoz6quv8i zbBNt#{XRm>zEvO7IlnSYyhpYq2OigWF{YK zKy=v3UT*)|Za}0<;(-0oP0H^YZKsQQqXultx9|gfYT4%sZ#z(KeU3?fUGMTCXtO_# z8FbhSPO%L-Y$DF|FKS(aJE=KX7mQj#Zh-?vZWxA*z;+6ZoHg%Wf)QWV{`CT5k3dG- z>HPll|LyGj^Y*jW3lBM&^%|D-0we#>YaQX6bbxES{W=6bh%Mk>Jkr~8N%N0QYJo%V z1?3L1CaNLy+*>n;=)X|-h%0i`YWyARwgc?;+!c+uKU^jL=yJYHX49I-LmlWv7xt*# zvJUJ-hi&10&udOLgpWB+%n3Tk565P=to7Xw&3P~BjELOF(!cMrDP1&jh*^BF1OqIP8)lq;)OWtaS^&mXiWMc%(g zhXTcQ>3QaIc|M1|XkG;qG9_{tj^=kMdf=^^4v|gLiwU2IBbl8;X#8UN{ z*K!{dz2>LZ_O=uCppkdPM*c0tpZxOr$udmeb|Oe;8Lp7wb;&$s8AJKdpAijl&3VFn zc|O5oo1b;OR{oqT`wjfg1r4k16y__+e#8NhdX z_$u=Oy?lg||q>%J|XwZKFDcMpx|!!Gs&$1vNK;n}VX&vpUV-0rgr z8|1C#(9{yi7sRu(Ae{Q zrpT1sz)=T*MV^=5IQYQ1hc@fBp0*RBw*KsA-InisWzAZ?e=i%;Z9ezVn$PyQhsOB} z>p+A zwV3=Ve%$b01Nmb*xrc~#vP7riQ{}QA(3N%Ta-UrM!KeM04(M!Kv@72z?$pSA3Hp%FI;OvoY@zF!P<&B?GVd^6qObl~5BuRx@e!YR$KO7) zcM<2(7S8y@#?Lvy|4V(Oudd0-ho^v>-_Xa;FIE3y9+W$)&qywF;`QR+c7I(k;qTZg z{_oDFf;7#)(uel}XuqXT)-@)B{g7DjUcgmN6#o{i{d668`XBW7Tf@Ie%(AHk*lFF^ zF(!LY_Bz+rMZ@1avi}cdA5H7#Qi*|kKhtM@oDq&*EzZ@*(wQOV7$9-ttVv_6b_X_O z-XZ;+Nmkpz(w~XkqZ2*+#yyl}oMIDtptFtSjoNd4-*scP!L-Y85i8||QF&GL*(d0O+?u->lz-3jw^=A|*81G;!GVYBElZlheY-o;Yw5WL!nOr9Ivrw=(~ z89GN-_)wm5g}M^=FJi0rbjU#03FV9B*oNW{&p?;q;vEe3b#hmE5c)SY9?D?-TRw7G z|7(RW-+wCVwf1`5`xyn#0q&M;e7-1N)?I#v;rAO%C!M)&iMsb2dAI2!U3CuO33;V| zAmJR#5|7i5lru`mLy8*tW}7Z+AD~&LaQogdVc)hL@+W>TDgMMf+h^*P=`8O?cE42H z*c)tjj-O*u;vF>XSJ z>)JRC0|(5ukl#C+EBMGen)4fd;Am$Gjr)vq9=InD_e9S^wO_{Rx~^Bz)tp9drne2) zZduq&e%f{oYrPVG$VG;Eu@T+_f?2-%As83<*m@WOD(?4S@IUT-ee{9-LUkiIv)Ry^L)I7k`cDnCB{P08m2o!UJ49B6w zE@U4N-0{c860e0d1h0RurDqP9k4^bV+ZgoPQ!6gzSkPj_Rnf2O>hh$|59Z2sNU+Fz z;#}#uG4 zb3DLNuf}SFawPTza9%sD^r=0XKFrzC>yp8J$2Fb1@Tcwc)%;!M()`oIX8LJ%{>kUO z&0;_I6Ue$p@2-=VoW*Fxucc>0csLu5@!Tv1)=i$l@A%|AF$@~khGU0b;^P`mpK-b7 zLaTTk@g5<*$Z>ecTjaK#z6R?EI}%UC$2vv4fU_OUo9x)PS59X0J@9_v*X7Stw9XsO z9lSp-owxKprpTxn{>1s`fs#A6g}&|dHE7PU{d7O6t=FGxzDZ-p;dSZXIR3+e^S$oLzt_umZW1%vJL7wPPFgGb%Uo_>>zPYn zw%6}y>AL2F{emv%Q07~gxw1Xx7^!IhyRKXX08vuHy1&pf#nHFPR$?>JJ5uy*r>|(yNnZL{Twui9f>^g)|&UazM4?t-&y$AkMv$937?7CVOQ zqsS$`hOuW^2XQ^1@No_N!zK2dXAQF*cMFDZjsrA5RBQxidU~!MKg+ToT>m4z_J3V; zs>@B=Mg5|N)ekV)weTT-;cdI#2Jpm!XD5<(h&*Cn!A4}!LxVl=aZS$XH|nU_(5lW) zEQ2^<&$Rdy_#_j*{kt4EwL=$$zefYs3V7}5@wcOvNv%SraIq$NZ?En8-?{m%n-A^M zQ~T{O55BbBex7?S&3W(AK-uhe);*<|81?|82llM!LZ9wG=*i9Vf=xA^6nVg&F-*^Z;ZE~}M)BPY(jSzgFM-#HN>L-LL!c?&s8-jB(= zb2^W;?V?AXTGkhO<}&90{vNQ*%e6k78DkDI59h@D<*x0tkH?e$8`4jni!SmY#|(O& zLq0gbVJ|j7>-EdnHn<*YPN@&^H><9Bmhbv;Ks3}EY&48~KsPw_7|z+z{;(J4T4Q_Q zYntckzf%s~R+)RoI;YjS&$5NebAO1uzehl5;8V_A`jUFrA@d4!XtU5N_ha7R8`C3j z%yGyQE%Ko4ZSK#1#3AfVc-!zmnFsKO^}Nj)#cXXyyqq6$e%sDM$KQqaheE!)BQ`l7g?V_(U90!3XfwJmh4AW!eGJD$`H@^GlP@I>uF zuYI)5)=SRtj0S(O6F$j{c!!T^-n~A>8_z?iN%l?8ldDaRo$@F40BVuw!hU$#PG9r; zh?W)n%@XqxTx( ztmC}MHNk#cXXXV5pXZ4&K9|@;|N5d6T&8F4m}BUtsfXS;<|gNX=bv+i^{Bo?EWjb( zeYT5yfZlvlU7HUaeDv0*;iyb#PEY%LwtEX7`bylk9S7U#I7~&O9Eg1@$HDq+_ZW?3 z_x)^JcE|lX`rA%l3-=oR-)M#J#ZIpQ`;HH%WXqO(CO250%qh=4kVy{@c|qM9t`}@& zPMj;${Ix=NT5DsB2RuBvMjIxcxCahBqN7$=p5jq$5G>XjbjCX-)I#fB#EDqAy&@Oe zk#9a?XYrC*%2+MPiANa30 zj`3E1Ezhx34CC+DknKH)e3n097cjNDU&9Yf^=#oxhJMZwTFYT4G^QQe8FVE+na=d5 zw3ciSa*s)tV`G|SbBMfGml!aHpWM0WJisQ@_4?775p^eCz27orJj$`>ls6p$Nrq@L172B z*ZeGc?n``kPMd>UrYk+N;FHdH&oX2boc>npHhdwr_`N$@yk-p%AJ#B@rX$|OM>Re2 zX{xdFEb6=kVhTI+oUHKV!g0&%m(wS=Ev{LX`TLn*8D<_NNl_d0Sz%er+!Y~Y+ultr6#+UWAo!B z{?xT>6FKC$F^=A`)7;ek<5J0oOJ!c5)B23L&%DP!_LYWb;MOCbstjPz%HNnfVx)CZ z&mP9hukeX{#}BoryWZpIu~BVXbu#9Syf-~K{X6Psb(XENf${GaZ4B(gN5_ljt5eA# z_bkgk5=X<%3}o0xXzcfbkJJ8KgpI=2{a~Z`X_6-{Ddn zY5aRp(N%wE@ZL`^n}Y|LTGzEMn+N})TUN_8w~?FZ&G&Zr$-Gm~)a84u04#fUMs0EZ ze_FqXKP6^jqTi9~*!hc2^i0*`2R-LR_~B_geGM9Q0NfLzBW~p5*dB}jtg)Y!3(ts- zaog!jZME;BZ@d0N>pU8`eBL2`%C|V%I z2#ychb83A?4z&322KBZh@~+Tl8rD5Io%d37TLyJdYcI|a_&{E8cAMz_HvXRmiT34B>Y+^cb|xYaXT+X*me_Stmz3U653 zLA?0;lmK^ryu?d?k9Uc9Feh(bna_#-t|jIv!|=WG>D^vz<8Q->yX1_~AMx5Yo&R3u zW75@jV(i;Hevh2f^>}~lo^=hG-!6b;E~O)H zq5I3C+f`4D+fKl*-glOdE~66#>(lGwdWqR3nZrT2Oo`}DG z*NDF4ro_zYO5U`cpy4|`Epj1Z^qso8kzVYxUVK7V+u`$kUKpQL4pV#aV@*ABf$b$2 z{+f=thK|^q&M@MpcJR9J=({E#!OTi!Re?Pl)PG2KB@FD0FCwl)a5IST-#1s4ZI|5{1D}Fd8*zY+Z--ti4 zeNpp%O#SYM<~H*;LC`-o_&bMtpeua*em&7OXT}5Sh&OsO&$?jD)iu>2bS>k-e$!$j zJf2h8TK9c$_=qlSF>PKyvI zI~T{|b+Z^}n^+HHHszeSQ1;zj#ev+$-t)y?-lNL)G9Jr`UD4s+GJD~>l^7DAF?+}4 zk~g<1*ZDG>n`Lrul#e;S%<-7L_okdhH~F~I=}YZF;Vud`)tH*#UOa)LmO014VKY5^ z#-SG&^9$`t!TFw@wT3<&TkF3yG{5KV|E(devrNmP2j?7}YCJaQ&zE|cW4I~as29b) zTbXn85yOqbi*Lk>9JM@X@Ch1nH0vZL=p-Me>TgA-bs-mC>(sD5D>JO0xAE z?xU!0Qw1Jbzy|dEn}Bg|6ZE2qdFn){J=i>%X06Z|SM>V-yoz@`k!3jdBmPaA=c>AA zthSR^cMC?(?{R(>j1AZs{ouDZ?kmY{*FM|R>uc)&TYsbH>Fj6bC$_PF{aEz&899Z|H^p&gon> zc*m;9UbqLt&SZPoIE=sjq<^IB0oiVRAs*Z(W?9g$Yi>`9$FUsFIWa|+=hbqtnS03F z)svsZMzUgFbL?BexZk2D#@KKp`}qy3#))*D==t|}owu2vbx3W1-?GVzI|OrY z9bOZezr-i%K;}ok`H*u!*W`j}jB_vj^*PS*fseYb`HP*NBjlpT^tMHyc$Qjl!RvUG zdxIKdcrAk-8}|y#^4){m6pnbA&p7PIE@TK+b(+q$VgE(Zkq68@>yzApk7pXlMvr~8 zZ|<2x~suCS2IZ99srG*VvcnOdmMY^85afCi`#s_+lP(1 zYnfZEm9>h~83J3{PG9}s=D2@UwjVujUgZNZYCC6&$BNTSv=3? zeb}+*+4glqv^kDLUtxC~#%c$-PhErWqQ=f?-fwX{;LAAE@O)ft9={SJ$4@f%#V^0h z!yK$j0MB4v(3tp67UPWk+Lq4;f5SrS|CVLwi|h|yj;SZlhPv<*T(Fo)}pfhYb9rRzQ<+hH>AH|DsztS?z-SH>Qv$ zTI507>z(neq2f0Z-Zrp*+YiHv&G9}RIQ-4e=%GtK*7xb`8}yc?KJ3RnpWhfW574{k z95l3pd2{Y~PMtGiJ>;C(E&pz&j@%1*!#d=*p#{AqUz|7An{9T!U>|zHnV#RFb|euW zIO}`vytc#}XIaio&au1(9lNdaJ{{*p#UNq?PuuCMe>TY6@u|AS6Tc%sN8D~kFZ*Ne z!?$EBHn5%)ub6xLPS4yE$7#Vq2fcB+tnbqqN3SzjeW$48PyD-Kj*tDe&ddvrHSc+f z^)LTQY@+x3bl`^c+~YVN?oAI4dV0&}9u_*wCyt73{GOZTn~%QS_wJ)9zSjR&RJE_h zq3tBNK3`@n_V1~oY?rwR2!|p0|E(M{-C!QFjNt3wwgs1T-4ge@h)W_ERTS>%uPfRJC}Q-F)=A$By6E zhV|g|biQ6ZUpYsCvDbJGvP{zt*V4RJ&DWdxJ$LSr_v#V@uR;2I%Y20GB}e*rD*y$T z>1~VGBDhzk^TKy09&!);$m2en{P8}=xkmDv$;(rbTQWx%|AW+B)xPV8R9PgT>qYt{hmCvc&%8h z+$cU;H*t1~eXr!%G3nyndCt;Pee4soo3d>g?Y#q9_VQ)4IaaF0QTv$(t><`01ipxiLr9H?j5^{$L|BdBOS3{=NwnesxIfbS69YNsfmU;{)CPD}^CK4IORsxY-$iqd2o*A*kk5%Jf$-F89@nrrzJq9YdU zk7Ii*{v(%n(YA_?RxsY>;^WqKvBno*`Mg7Xm2dToi#}{EYq`IlEb`@7*aUs#uKF?C zPL=$GjyXY=<6wQfi-v#X9I~+4{n$KNH|x{7$LOp(=Q28d4Zmry4;*o{U8WtpgopkDS(AUzaR$-p_CSuGu-k>@PN&&iF3jIp@4w*SnI7 ztTFnXMDMeS>4mCx7-l^WCqC7?gD(_a!~p_jO~QG7R6(+s1Mh9oMMMs#G5^5Ql8tloi0L8+~35#vGU{K zb;;+x96Hm}s~x&pbW<0RO%Al3zG~}ZdP4fJE%-}J+O87S!2_bhFU~oRMcY+$9gw%s zO$E6oyYQ*)1YGhi8uApUu(6Co$BSj(6}svrp3tc;j6g{8&>AkPD33W*9O|H!XC`jp+;{ZfcRM z=;IxpAN}2Xs^QrUM3@bzLmuClyC<^vI${ftzYfeWAamT7_L| zQG2Eua4$gLcKRB5Ps}n*H<``XvUON5J#@vk&|w&T+v#gW$Fs6C=oBydv3Jq#72Njo zP8vEKlc~nc9lYe*b&ZL^Zh3cY_%0gskEM6fyeG1j;2XXV!v4d&40+ZCW8L3~M|rrg zZ^Prcm#uNX!+wnY_=qm9>7fu;q$qfwT8a@E*iMrhW=eNu7@&xUIynm$F8wCe||}h z!b^_AcPn#_4~kd#0x#FB-_yyb4Z+A!Vo8n;=Z*UW^5LcEv@Uq9Q^SbA>j!;_8UNOD z+yez}##%-ssK|{7cvH$ru9cbB`xVAmoze4ui>V*$GcO;kJ@vT$Cki#=>_}wE% za~bjG-2mw6@ek$5)BX4Ay5Q3SS9jC@|J(BE+fHBo*=xJ>ao@%I<9RvjkG}1AH|aaJ z`RFpn#6Zv6;yo2${Qh9tKYso#XHUKC)b>w($_=w zMIYhgd1S!L`fR(1QPeGLvRze9q0>y&{MP(OyjZu+C+3d0Y)UVA={ZGj9(#>xABo?F zq4gSaZG%TGp4)@BkBo^oJ++-YV%*CV-E69>rumFMenuR4(K26T8?*=2+opGFe4l;> zx+pBQj5-Zn+o>Qu`HK1xsA;>V`H??;*Mt5D1aCb1vu((by&;P^;u;$CLt`9$<}uBI zLIaL`$vn`I8^|<{KJze7j?2P4l{te}E#xpJp5(*EZ2td-e6Ow*-}qeynw3sp&FqA2 zrZ!ne+vAi!{WBhV(@AbT!?zFi7n$U$WtiS`@)_aLu~~c@(}CYK$q60Ev>bfmTKO0? zlsp9oY_0V2S65Agucj+9BDXWGd2DmWIp_YF>GTwFm8R1>az*EcU+fHB2|Gmoh zyzhV4!ftd&pXSH9hz~gY4Ihh7;H4|(FXLA_A*4%nXOej9TE_ka?`0>MUUSIoWkpWJ zZz1@C+&$Y;>Jo6ZSby+o-m1PLBWkVrnAh+{J-p1#P8n+s>)gQmC;#W~#Q#-r?Be}# zUQTo&V<=1FBJYv!xN81Fra%pIv957vCIL%aVT)6XY63PaHIV3$+Fqax$&wxb1Oa3*(JK zhfR&@3VN7haM(aY7S|bP7&f4XyfmM1RsM-2&pg(p^|Q1-eOfZNrp=+PBA+uX?Zuy& zM*k^&Un=W{v0Am;dTd+9*X2@?#OW3M5`uPSFe=SIniSRWat^)71t|AYEykBK?PU-BvR6#QoddySq^?yU6x zFW7bAq0^q)_j)J&Ze0(5*A`@9ugB(GV=n9Z^t3;#X1i88A-?^6uhn-v+Y4Pfd(pR@ zz9RI5pHKg{ZMKR0L)Pvhy&!IJzf@zPSk^TVdi%AtdQm>!CYCC1ZyEwVt#8&b_^?Yc zFrBaI$JQWm1*iF5Q5QMOfLxD0)nE2va$-+7{4tH^%=?=0p0kxs#M;;3Wld!H&X;FI z;XN_q%`0^L-i@u!E9?<}#7e`)`!4#Svu|VeWxREGe=N9=%h*0=9@~IU_J?)pB<8)W z*$L^6{ed_k7r(&+Kc^nJTHenCo@B(nYrc&+fADI)BOb`fGSNTWcZmmd)F0#zWr4E& z_KVmmZZ)>g=$bf~&a#H{H^lex`19?(j)7w<`y;mGiT94;SJ(?&EoujFucu*bcS<~j zuW^Bw*rJm$y3VO*JQmwT7cz#j6tg(z6sOl4A=-gWm{OfYXz8mizU6xPY z>oV3x!G}+W3k@*K;r%Y=lRoQ(7TdQzlX#7J+dv~ zgO{AMz1LJDX!uQ2yyA?_*s!+aYCh*&w4J^NFs;8MJ4KH6(Rg;xe4P=DXVuzg_rU~? z`w;bUo~9>{zw+fTe^D{0YqsQer2$uU6`iIbCdNs3#2&e-t#lC+;|)7G?cezTZv?V^1y1_IMv6zTm8rxNwcF7d3W` hqMsBTwT_SK%I(*uCBJlU1r4x0!N|2@LvvQc{|9SwmS6w? literal 0 HcmV?d00001 diff --git a/src/games/endfield/glass/0xB8941FB1.ps_5_0.asm b/src/games/endfield/glass/0xB8941FB1.ps_5_0.asm new file mode 100644 index 000000000..a642a82e4 --- /dev/null +++ b/src/games/endfield/glass/0xB8941FB1.ps_5_0.asm @@ -0,0 +1,1804 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Wed Feb 4 07:24:18 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4096], dynamicIndexed +dcl_constantbuffer CB2[24], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_constantbuffer CB13[15], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_comparison +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_sampler s6, mode_default +dcl_resource_structured t0, 4 +dcl_resource_texture2darray (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_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture3d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 40 +mul r0.xy, v0.xyxx, cb0[82].zwzz +mad r0.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r1.xyzw, -r0.wwww, cb0[25].xyzw +mad r1.xyzw, cb0[24].xyzw, r0.zzzz, r1.xyzw +mad r1.xyzw, cb0[26].xyzw, v0.zzzz, r1.xyzw +add r1.xyzw, r1.xyzw, cb0[27].xyzw +div r1.xyz, r1.xyzx, r1.wwww +lt r0.z, l(0.000000), v3.w +movc r0.z, r0.z, l(1.000000), l(-1.000000) +eq r0.w, l(0.000000), cb0[86].w +add r2.xyz, -r1.xyzx, cb0[44].xyzx +mov r3.x, cb0[0].z +mov r3.y, cb0[1].z +mov r3.z, cb0[2].z +movc r2.xyz, r0.wwww, r2.xyzx, r3.xyzx +dp3 r0.w, r2.xyzx, r2.xyzx +max r2.w, r0.w, l(9.999999939E-09) +rsq r2.w, r2.w +mul r4.xyz, r2.wwww, r2.xyzx +mul r0.w, r0.w, r2.w +add r5.xy, -v1.xyxx, v1.zwzz +mad r5.zw, cb2[2].wwww, r5.xxxy, v1.xxxy +mad r5.zw, r5.zzzw, cb2[11].xxxy, cb2[11].zzzw +sample_b_indexable(texture2d)(float,float,float,float) r6.xyzw, r5.zwzz, t2.xyzw, s4, cb0[108].x +mad r5.xy, cb2[3].xxxx, r5.xyxx, v1.xyxx +mad r5.xy, r5.xyxx, cb2[12].xyxx, cb2[12].zwzz +add r3.w, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, r5.xyxx, t3.xyzw, s5, r3.w +mad r5.xy, r5.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +lt r7.xy, |r5.xyxx|, l(0.012000, 0.012000, 0.000000, 0.000000) +movc r5.xy, r7.xyxx, l(0,0,0,0), r5.xyxx +mul r7.xy, r5.xyxx, cb2[0].xxxx +add r7.zw, -r6.wwww, r5.wwwz +mad r3.w, cb2[1].z, r7.z, r6.w +mul r3.w, r3.w, cb2[8].w +mad r4.w, r3.w, v4.x, -r3.w +mad r8.w, cb2[23].x, r4.w, r3.w +add r3.w, -cb2[0].z, cb2[0].w +mad r9.w, r5.z, r3.w, cb2[0].z +add_sat r3.w, l(-1.000000), cb2[3].w +add r4.w, -r6.w, cb2[4].y +mad r3.w, r3.w, r4.w, r6.w +mov_sat r4.w, cb2[21].y +add_sat r10.xy, l(-1.000000, -2.000000, 0.000000, 0.000000), cb2[21].yyyy +mad r5.z, r10.x, r7.w, r6.w +add r6.w, -r5.z, r5.w +mad r5.z, r10.y, r6.w, r5.z +add r5.z, r5.z, l(-1.000000) +mad r5.z, r4.w, r5.z, l(1.000000) +mad_sat r5.z, r5.z, l(1.11111116), l(-0.0555555597) +ishl r6.w, v7.x, l(4) +ge r7.z, r5.z, l(0.100000) +and r7.z, r7.z, l(0x3f800000) +mul r7.w, r7.z, cb1[r6.w + 15].w +mul r6.xyz, r6.xyzx, cb2[8].xyzx +mul_sat r6.xyz, r6.xyzx, cb2[4].zzzz +add r10.xyz, -r6.xyzx, cb2[8].xyzx +mad r6.xyz, cb2[4].xxxx, r10.xyzx, r6.xyzx +mad r7.z, -cb1[r6.w + 15].w, r7.z, l(1.000000) +mad r10.xyz, cb1[r6.w + 15].xyzx, r7.wwww, r7.zzzz +mul r11.xyz, r6.xyzx, r10.xyzx +mul r12.xyz, v2.zxyz, v3.yzxy +mad r12.xyz, v2.yzxy, v3.zxyz, -r12.xyzx +mul r12.xyz, r0.zzzz, r12.xyzx +mul r7.yzw, r7.yyyy, r12.xxyz +mad r7.xyz, v3.xyzx, r7.xxxx, r7.yzwy +dp2 r0.z, r5.xyxx, r5.xyxx +add r0.z, -r0.z, l(1.000000) +max r0.z, r0.z, l(0.000000) +sqrt r0.z, r0.z +lt r5.x, l(0.000000), cb2[1].w +movc r5.x, r5.x, l(-1.000000), l(1.000000) +movc r5.x, v8.x, l(1.000000), r5.x +mul r0.z, r0.z, r5.x +mad r7.xyz, v2.xyzx, r0.zzzz, r7.xyzx +dp3 r0.z, r7.xyzx, r7.xyzx +rsq r0.z, r0.z +mul r7.xyz, r0.zzzz, r7.xyzx +dp3 r0.z, -r4.xyzx, r7.xyzx +mul r5.x, cb2[22].x, cb2[22].x +mad r5.y, -r0.z, r0.z, l(1.000000) +mad r5.x, -r5.x, r5.y, l(1.000000) +sqrt r5.y, r5.x +mad r5.y, cb2[22].x, r0.z, r5.y +ge r5.x, r5.x, l(0.000000) +mul r12.xyz, r7.xyzx, r5.yyyy +mad r12.xyz, cb2[22].xxxx, -r4.xyzx, -r12.xyzx +and r12.xyz, r5.xxxx, r12.xyzx +mul r5.xy, r12.yyyy, cb0[1].xyxx +mad r5.xy, cb0[0].xyxx, r12.xxxx, r5.xyxx +mad r5.xy, cb0[2].xyxx, r12.zzzz, r5.xyxx +mul r5.xy, r5.xyxx, cb2[22].yyyy +mad r0.xy, r5.xyxx, r8.wwww, r0.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r12.xyz, r0.xyxx, t4.xyzw, s6, cb0[108].x +max r0.x, v5.z, l(9.999999939E-09) +div r0.xy, v5.xyxx, r0.xxxx +max r5.x, v6.z, l(9.999999939E-09) +div r5.xy, v6.xyxx, r5.xxxx +add r13.xy, r0.xyxx, -r5.xyxx +mul r0.x, l(0.080000), cb2[0].y +mul r14.xyz, r3.wwww, r11.xyzx +mad r14.xyz, r6.xyzx, r10.xyzx, -r14.xyzx +mad r0.x, -r0.x, r3.w, r0.x +mad r15.xyz, r11.xyzx, r3.wwww, r0.xxxx +dp3 r0.x, r7.xyzx, r4.xyzx +mad r16.xyzw, r9.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r0.y, r16.x, r16.x +max r0.x, r0.x, l(0.000000) +mul r3.w, r0.x, l(-9.280000) +exp r3.w, r3.w +min r0.y, r0.y, r3.w +mad r0.y, r0.y, r16.x, r16.y +mad r5.xy, r0.yyyy, l(-1.040000, 1.040000, 0.000000, 0.000000), r16.zwzz +eq r0.y, l(1.000000), cb0[113].y +mul r16.xyzw, r1.yyyy, cb0[241].xyzw +mad r16.xyzw, cb0[240].xyzw, r1.xxxx, r16.xyzw +mad r16.xyzw, cb0[242].xyzw, r1.zzzz, r16.xyzw +add r16.xyzw, r16.xyzw, cb0[243].xyzw +div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r16.w +mul r16.xyz, r16.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r16.xyz, r3.wwww, r16.xyzx +mad_sat r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +mul r16.xy, r16.xyxx, cb0[82].xyxx +ftou r17.xy, r16.xyxx +mad r3.w, cb0[84].z, r16.z, cb0[84].w +div r17.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w +ftou r16.xy, v0.xyxx +mul r3.w, r1.y, cb0[1].z +mad r3.w, cb0[0].z, r1.x, r3.w +mad r3.w, cb0[2].z, r1.z, r3.w +add r3.w, r3.w, cb0[3].z +mov r16.z, |r3.w| +movc r16.xyz, r0.yyyy, r17.xyzx, r16.xyzx +mad r17.xyz, r7.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r1.xyzx +mad r18.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r18.xyz, r17.xzyx, -r18.xyzx +max r0.y, |r18.y|, |r18.x| +add r0.y, r0.y, l(-464.000000) +mul_sat r0.y, r0.y, l(0.031250) +add r3.w, |r18.z|, l(-208.000000) +mul_sat r3.w, r3.w, l(0.031250) +max r0.y, r0.y, r3.w +ne r3.w, l(0.000000), cb0[210].w +lt r10.w, r0.y, l(1.000000) +and r3.w, r3.w, r10.w +if_nz r3.w + mad r18.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r18.xyz, r17.xzyx, -r18.xyzx + max r3.w, |r18.y|, |r18.x| + add r3.w, r3.w, l(-29.000000) + mul_sat r3.w, r3.w, l(0.500000) + add r10.w, |r18.z|, l(-13.000000) + mul_sat r10.w, r10.w, l(0.500000) + max r3.w, r3.w, r10.w + lt r10.w, r3.w, l(1.000000) + if_nz r10.w + mad r18.xyz, r17.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r18.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r18.xyzx, t11.yzwx, s1, l(0.000000) + add r10.w, -r3.w, l(1.000000) + mul r11.w, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r11.w, r11.w, r18.y + min r11.w, r12.w, r11.w + mul r18.w, r11.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t12.xyzw, s0, l(0.000000) + mad r11.w, r20.w, r10.w, r0.y + add r21.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t12.xyzw, s0, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.yyyy, r21.xyzx + mov r21.w, r19.y + mul r21.xyzw, r10.wwww, r21.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t12.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.xxxx, r18.xyzx + mov r18.w, r19.x + mul r18.xyzw, r10.wwww, r18.xyzw + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r20.xyzx + mul r19.xyzw, r10.wwww, r19.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r11.w, r0.y + endif + mad r20.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r20.xyz, r17.xzyx, -r20.xyzx + max r10.w, |r20.y|, |r20.x| + add r10.w, r10.w, l(-116.000000) + mul_sat r10.w, r10.w, l(0.125000) + add r12.w, |r20.z|, l(-52.000000) + mul_sat r12.w, r12.w, l(0.125000) + max r10.w, r10.w, r12.w + lt r12.w, r10.w, l(1.000000) + if_nz r12.w + mad r20.xyz, r17.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r22.xyz, r20.xyzx, cb0[211].xyzx + round_ni r22.xyz, r22.xyzx + mad r20.xyz, r20.xyzx, cb0[211].xyzx, -r22.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t13.yzwx, s1, l(0.000000) + add r12.w, -r10.w, l(1.000000) + mul r3.w, r3.w, r12.w + mul r12.w, l(0.500000), cb0[211].y + mad r13.w, -cb0[211].y, l(0.500000), l(1.000000) + max r12.w, r12.w, r20.y + min r12.w, r13.w, r12.w + mul r20.w, r12.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t14.xyzw, s0, l(0.000000) + mad r11.w, r23.w, r3.w, r11.w + add r24.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r24.xyz, r24.xyzx, t14.xyzw, s0, l(0.000000) + mad r24.xyz, r24.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r24.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r3.wwww, r21.xyzw + add r20.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t14.xyzw, s0, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r20.xyzx + mov r20.w, r22.x + mad r18.xyzw, r20.xyzw, r3.wwww, r18.xyzw + mad r20.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r20.xyzx + mad r19.xyzw, r22.xyzw, r3.wwww, r19.xyzw + endif + lt r3.w, l(0.000000), r10.w + if_nz r3.w + mad r17.xyz, r17.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r17.xyzx, cb0[211].xyzx + mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r20.xyzx + mad r20.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r17.xyz, r22.xyzx, r17.xyzx + min r17.xyz, r20.xyzx, r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r17.xyzx, t15.yzwx, s1, l(0.000000) + add r3.w, -r0.y, l(1.000000) + mul r3.w, r3.w, r10.w + max r10.w, r22.y, r17.y + min r10.w, r20.y, r10.w + mul r17.w, r10.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t16.xyzw, s0, l(0.000000) + add r22.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t16.xyzw, s0, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r23.yyyy, r22.xyzx + mov r22.w, r23.y + mad r21.xyzw, r22.xyzw, r3.wwww, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s0, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r23.xxxx, r17.xyzx + mov r17.w, r23.x + mad r18.xyzw, r17.xyzw, r3.wwww, r18.xyzw + mad r17.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r23.wwww, r17.xyzx + mad r19.xyzw, r23.xyzw, r3.wwww, r19.xyzw + mad r11.w, r20.w, r3.w, r11.w + endif + mad_sat r3.w, r11.w, l(2.000000), l(-1.000000) + add r17.x, -r0.y, r3.w + add r0.y, r0.y, r3.w + mul r17.y, r0.y, l(0.500000) +else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r17.xy, l(0,1.000000,0,0) +endif +mul r20.xyzw, r17.yyyx, cb0[213].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.zw, r17.yyyx, cb0[213].wwwy +mad r20.w, r17.w, l(0.375000), r17.z +add r19.xyzw, r19.xyzw, r20.xyzw +mul r20.xyzw, r17.yyyx, cb0[214].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.zw, r17.yyyx, cb0[214].wwwy +mad r20.w, r17.w, l(0.375000), r17.z +add r18.xyzw, r18.xyzw, r20.xyzw +mul r20.xyzw, r17.yyyx, cb0[215].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.xy, r17.yxyy, cb0[215].wyww +mad r20.w, r17.y, l(0.375000), r17.x +add r17.xyzw, r20.xyzw, r21.xyzw +dp3 r0.y, r19.xyzx, r7.xyzx +add r0.y, r19.w, r0.y +max r19.x, r0.y, l(0.000000) +dp3 r0.y, r18.xyzx, r7.xyzx +add r0.y, r18.w, r0.y +max r19.y, r0.y, l(0.000000) +dp3 r0.y, r17.xyzx, r7.xyzx +add r0.y, r17.w, r0.y +max r19.z, r0.y, l(0.000000) +add r0.y, r0.z, r0.z +mad r17.xyz, r7.xyzx, -r0.yyyy, -r4.xyzx +add r0.y, l(-1.000000), cb0[113].x +max r0.z, r9.w, l(0.001000) +log r0.z, r0.z +mad r0.z, -r0.z, l(1.200000), l(1.000000) +add r0.y, -r0.z, r0.y +utof r18.xy, r16.xyxx +mul r18.zw, r18.xxxy, cb3[0].wwww +round_ni r18.zw, r18.zzzw +add r0.z, r16.z, -cb3[2].y +round_ni r0.z, r0.z +add r3.w, l(-1.000000), cb3[1].x +max r10.w, r0.z, l(0.000000) +min r3.w, r3.w, r10.w +ge r0.z, r3.w, r0.z +mad r10.w, r18.w, cb3[0].x, r18.z +ftoi r10.w, r10.w +iadd r10.w, r10.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.w, r10.w, l(0), t0.xxxx +ftoi r3.w, r3.w +iadd r3.w, r3.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx +and r3.w, r3.w, r10.w +and r0.z, r0.z, r3.w +mul r20.xyz, r19.xyzx, cb0[111].xxxx +dp3 r3.w, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r1.w, l(1.000000) +mov r7.w, l(1.000000) +mov r20.xyz, l(0,0,0,0) +mov r10.w, l(1.000000) +mov r11.w, r0.z +mov r12.w, l(0) +loop + lt r13.w, l(0.010000), r10.w + ine r14.w, r11.w, l(0) + and r14.w, r13.w, r14.w + if_nz r14.w + firstbit_lo r14.w, r11.w + ishl r15.w, l(1), r14.w + xor r11.w, r11.w, r15.w + ishl r14.w, r14.w, l(3) + dp4 r21.x, cb3[r14.w + 6].xyzw, r1.xyzw + dp4 r21.y, cb3[r14.w + 7].xyzw, r1.xyzw + dp4 r21.z, cb3[r14.w + 8].xyzw, r1.xyzw + ge r22.xyz, cb3[r14.w + 5].xyzx, |r21.xyzx| + and r15.w, r22.y, r22.x + and r15.w, r22.z, r15.w + if_nz r15.w + mul r15.w, l(0.100000), cb3[r14.w + 5].x + mul r22.xyz, |r21.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.zw, r22.xxxy, r22.xxxy + add r22.xyw, -|r21.xyxz|, cb3[r14.w + 5].xyxz + mul r22.xyw, r22.xyxw, cb3[r14.w + 9].xyxz + eq r17.w, l(1.000000), cb3[r14.w + 10].x + if_nz r17.w + dp3 r23.x, cb3[r14.w + 6].xyzx, r17.xyzx + dp3 r23.y, cb3[r14.w + 7].xyzx, r17.xyzx + dp3 r23.z, cb3[r14.w + 8].xyzx, r17.xyzx + add r24.xyz, -r21.xyzx, cb3[r14.w + 5].xyzx + div r24.xyz, r24.xyzx, r23.xyzx + add r25.xyz, -r21.xyzx, -cb3[r14.w + 5].xyzx + div r25.xyz, r25.xyzx, r23.xyzx + lt r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + movc r24.xyz, r26.xyzx, r24.xyzx, r25.xyzx + min r17.w, r24.y, r24.x + min r17.w, r24.z, r17.w + mad r21.xyz, r23.xyzx, r17.wwww, r21.xyzx + else + mov r21.xyz, r17.xyzx + endif + dp3 r17.w, r21.xyzx, r21.xyzx + rsq r17.w, r17.w + mul r21.xyz, r17.wwww, r21.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + lt r24.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r23.xyz, -r23.xyzx, r24.xyzx + itof r23.xyz, r23.xyzx + dp3 r17.w, r21.xyzx, r23.xyzx + div r21.xyz, r21.xyzx, r17.wwww + lt r17.w, r21.z, l(0.000000) + add r21.zw, -|r21.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r21.zw, r21.zzzw, r23.xxxy + movc r21.xy, r17.wwww, r21.zwzz, r21.xyxx + dp4 r17.w, cb3[r14.w + 4].xyzw, r7.xyzw + max r17.w, r17.w, l(0.000000) + max r17.w, r17.w, l(0.000100) + min r19.w, r22.w, r22.y + min r19.w, r19.w, r22.x + add r18.z, r18.w, r18.z + mad r18.z, r22.z, r22.z, r18.z + mad r15.w, r15.w, r15.w, -r18.z + mul r15.w, r15.w, cb3[r14.w + 9].x + mul r15.w, r15.w, cb3[r14.w + 9].x + add r18.z, l(1.000000), -cb3[r14.w + 10].y + mul r15.w, r15.w, r18.z + mul r15.w, r15.w, l(100.000000) + mad_sat r15.w, r19.w, cb3[r14.w + 10].y, r15.w + mul r18.z, r15.w, cb3[r14.w + 10].w + mad r21.xy, r21.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r21.xy, r21.xyxx, cb3[1].wwww, cb3[2].wwww + mov r21.z, cb3[r14.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r21.xyz, r21.xyzx, t1.xyzw, s2, r0.y + mul r21.xyz, r21.xyzx, cb3[r14.w + 9].wwww + div r18.w, r3.w, r17.w + min r18.w, |r18.w|, l(1.000000) + mad r18.w, r18.w, l(2.000000), r3.w + add r17.w, r17.w, l(2.000000) + div r17.w, r18.w, r17.w + add r17.w, r17.w, l(-1.000000) + mad r17.w, r17.w, cb0[112].w, l(1.000000) + mul r21.xyz, r17.wwww, r21.xyzx + mul r21.xyz, r18.zzzz, r21.xyzx + mad r20.xyz, r21.xyzx, r10.wwww, r20.xyzx + mad r14.w, -r15.w, cb3[r14.w + 10].w, l(1.000000) + mul r10.w, r10.w, r14.w + endif + mov r12.w, l(-1) + continue + else + mov r12.w, r13.w + break + endif + mov r12.w, r13.w +endloop +if_nz r12.w + dp3 r0.z, r17.xyzx, r17.xyzx + rsq r0.z, r0.z + mul r21.xyz, r0.zzzz, r17.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + lt r23.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r22.xyz, -r22.xyzx, r23.xyzx + itof r22.xyz, r22.xyzx + dp3 r0.z, r21.xyzx, r22.xyzx + div r21.xyz, r21.xyzx, r0.zzzz + lt r0.z, r21.z, l(0.000000) + add r18.zw, -|r21.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r18.zw, r18.zzzw, r22.xxxy + movc r18.zw, r0.zzzz, r18.zzzw, r21.xxxy + mov r7.w, l(1.000000) + dp4 r0.z, cb3[3].xyzw, r7.xyzw + max r0.z, r0.z, l(0.000000) + max r0.z, r0.z, l(0.000100) + mad r18.zw, r18.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r21.xy, r18.zwzz, cb3[1].wwww, cb3[2].wwww + mov r21.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r21.xyz, r21.xyzx, t1.xyzw, s2, r0.y + div r0.y, r3.w, r0.z + min r0.y, |r0.y|, l(1.000000) + mad r0.y, r0.y, l(2.000000), r3.w + add r0.z, r0.z, l(2.000000) + div r0.y, r0.y, r0.z + add r0.y, r0.y, l(-1.000000) + mad r0.y, r0.y, cb0[112].w, l(1.000000) + mul r21.xyz, r0.yyyy, r21.xyzx + mad r20.xyz, r21.xyzx, r10.wwww, r20.xyzx +endif +mul r19.xyz, r14.xyzx, r19.xyzx +add r0.y, r5.w, l(-1.000000) +mad r0.y, cb2[1].x, r0.y, l(1.000000) +mul r19.xyz, r0.yyyy, r19.xyzx +mul r20.xyz, r20.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +lt r32.x, l(0.500000), cb13[14].x +if_nz r32.x + mul r20.xyz, r20.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) +endif +mul r20.xyz, r20.xyzx, cb0[111].yyyy +mul_sat r0.y, r15.y, l(50.000000) +mul r0.y, r5.y, r0.y +mad r5.xyw, r15.xyxz, r5.xxxx, r0.yyyy +mul r5.xyw, r5.xyxw, r20.xyxz +mad r5.xyw, r19.xyxz, cb0[111].xxxx, r5.xyxw +lt r0.y, cb6[35].w, l(0.990000) +if_nz r0.y + ftoi r0.y, cb6[35].x + ieq r0.z, r0.y, l(2) + movc r19.xyz, r0.zzzz, cb6[20].xyzx, cb0[44].xyzx + add r19.xyz, r1.xyzx, -r19.xyzx + dp3 r0.z, r19.xyzx, r19.xyzx + add r0.z, -r0.z, cb6[34].w + mul_sat r0.z, r0.z, cb6[34].z + lt r1.w, l(0.000000), r0.z + if_nz r1.w + ilt r0.y, l(0), r0.y + if_nz r0.y + add r19.xyz, r1.xyzx, -cb6[20].xyzx + add r20.xyz, r1.xyzx, -cb6[21].xyzx + add r21.xyz, r1.xyzx, -cb6[22].xyzx + add r22.xyz, r1.xyzx, -cb6[23].xyzx + dp3 r19.x, r19.xyzx, r19.xyzx + dp3 r19.y, r20.xyzx, r20.xyzx + dp3 r19.z, r21.xyzx, r21.xyzx + dp3 r19.w, r22.xyzx, r22.xyzx + lt r20.x, r19.x, cb6[20].w + lt r20.y, r19.y, cb6[21].w + lt r20.z, r19.z, cb6[22].w + lt r20.w, r19.w, cb6[23].w + and r21.xyzw, r20.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r20.xyz, r20.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r20.xyz, r20.xyzx, r21.yzwy + max r21.yzw, r20.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.y, r21.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.y, -r0.y, l(4.000000) + max r0.y, r0.y, l(0.000000) + min r0.y, r0.y, l(3.000000) + add r1.w, r0.y, l(1.000000) + min r1.w, r1.w, l(3.000000) + ftou r1.w, r1.w + dp3 r3.w, r19.yzwy, icb[r1.w + 0].yzwy + div r1.w, r3.w, cb6[r1.w + 20].w + ge r3.w, r1.w, l(0.000000) + ge r1.w, l(1.000000), r1.w + and r1.w, r1.w, r3.w + if_nz r1.w + ftou r1.w, r0.y + add r18.zw, r18.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r3.w, r18.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r3.w, r3.w + mul r3.w, r3.w, l(52.982918) + frc r3.w, r3.w + dp4 r7.w, r19.xyzw, icb[r1.w + 0].xyzw + div r1.w, r7.w, cb6[r1.w + 20].w + sqrt r1.w, r1.w + add r1.w, r1.w, l(-0.900000) + mul r1.w, r1.w, l(12.000000) + ge r1.w, r1.w, r3.w + and r1.w, r1.w, l(0x3f800000) + add r0.y, r0.y, r1.w + endif + dp3 r1.w, r7.xyzx, cb5[0].xyzx + max r1.w, r1.w, l(0.000000) + min r1.w, r1.w, l(0.900000) + add r1.w, -r1.w, l(1.000000) + ftou r3.w, r0.y + ishl r7.w, r3.w, l(2) + mul r18.zw, r1.wwww, cb6[r3.w + 24].xxxy + max r1.w, r18.z, l(0.000000) + mad r19.xyz, -cb5[0].xyzx, r1.wwww, r1.xyzx + mad r19.xyz, r7.xyzx, r18.wwww, r19.xyzx + mul r20.xyz, r19.yyyy, cb6[r7.w + 1].xyzx + mad r19.xyw, cb6[r7.w + 0].xyxz, r19.xxxx, r20.xyxz + mad r19.xyz, cb6[r7.w + 2].xyzx, r19.zzzz, r19.xywx + add r19.xyz, r19.xyzx, cb6[r7.w + 3].xyzx + ge r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ge r21.xyz, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r20.xyz, r20.xyzx, r21.xyzx + or r1.w, r20.y, r20.x + or r1.w, r20.z, r1.w + and r3.w, r19.z, l(0x7fffffff) + ult r3.w, l(0x7f800000), r3.w + or r20.z, r1.w, r3.w + ftoi r0.y, r0.y + mad r18.zw, r19.xxxy, cb6[r0.y + 28].zzzw, cb6[r0.y + 28].xxxy + mad r19.xy, r18.zwzz, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r19.xy, r19.xyxx + mad r18.zw, r18.zzzw, cb6[32].zzzw, -r19.xxxy + add r21.xyzw, r18.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r22.xw, r21.xxxz, r21.xxxz + min r21.xz, r18.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r23.xy, r18.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r23.zw, r22.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r18.zzzw + add r18.zw, -r18.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r18.zw, -r21.xxxz, r21.xxxz, r18.zzzw + mad r21.xy, -r23.xyxx, r23.xyxx, r21.ywyy + mov r24.x, r23.z + mov r24.y, r18.z + mov r24.z, r21.x + mov r24.w, r22.x + mul r24.xyzw, r24.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r22.x, r23.w + mov r22.y, r18.w + mov r22.z, r21.y + mul r21.xyzw, r22.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r22.xyzw, r24.ywyw, r24.xzxz + add r23.xyzw, r21.yyww, r21.xxzz + div r18.zw, r24.yyyw, r22.zzzw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r24.xy, r18.zwzz, cb6[32].xxxx + div r18.zw, r21.yyyw, r23.yyyw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r24.zw, r18.zzzw, cb6[32].yyyy + mul r21.xyzw, r22.xyzw, r23.xyzw + mad r22.xyzw, r19.xyxy, cb6[32].xyxy, r24.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.y, r22.xyxx, t5.xxxx, s3, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r22.zwzz, t5.xxxx, s3, r19.z + mul r1.w, r1.w, r21.y + mad r0.y, r21.x, r0.y, r1.w + mad r22.xyzw, r19.xyxy, cb6[32].xyxy, r24.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r22.xyxx, t5.xxxx, s3, r19.z + mad r0.y, r21.z, r1.w, r0.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r22.zwzz, t5.xxxx, s3, r19.z + mad r0.y, r21.w, r1.w, r0.y + movc r20.x, r20.z, l(1.000000), r0.y + else + mov r20.xz, l(1.000000,0,0,0) + endif + else + mov r20.xz, l(1.000000,0,0,0) + endif + lt r0.y, r0.z, l(1.000000) + if_nz r0.y + dp3 r0.y, r7.xyzx, cb5[0].xyzx + max r0.y, r0.y, l(0.000000) + min r0.y, r0.y, l(0.900000) + add r0.y, -r0.y, l(1.000000) + mul r18.zw, r0.yyyy, cb6[584].xxxy + mad r19.xyz, -cb5[0].xyzx, r18.zzzz, r1.xyzx + mad r19.xyz, r7.xyzx, r18.wwww, r19.xyzx + mul r18.zw, r19.yyyy, cb6[581].xxxy + mad r18.zw, cb6[580].xxxy, r19.xxxx, r18.zzzw + mad r18.zw, cb6[582].xxxy, r19.zzzz, r18.zzzw + add r18.zw, r18.zzzw, cb6[583].xxxy + lt r21.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r18.zwzz + and r0.y, r21.y, r21.x + lt r21.xy, r18.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r1.w, r21.y, r21.x + and r0.y, r0.y, r1.w + if_nz r0.y + mul r0.y, r18.w, cb6[585].z + round_ni r0.y, r0.y + add r0.y, r18.z, r0.y + mul r0.y, r0.y, cb6[585].y + ftou r0.y, r0.y + umin r0.y, r0.y, l(127) + and r1.w, l(0x0000ffff), cb6[r0.y + 587].x + f16tof32 r21.x, r1.w + ge r1.w, r21.x, l(0.000000) + if_nz r1.w + mov r22.x, cb6[576].x + mov r22.y, cb6[577].x + mov r22.z, cb6[578].x + mov r22.w, cb6[r0.y + 587].y + mov r19.w, l(1.000000) + dp4 r22.x, r22.xyzw, r19.xyzw + mov r23.x, cb6[576].y + mov r23.y, cb6[577].y + mov r23.z, cb6[578].y + mov r23.w, cb6[r0.y + 587].z + dp4 r22.y, r23.xyzw, r19.xyzw + mov r23.x, cb6[576].z + mov r23.y, cb6[577].z + mov r23.z, cb6[578].z + mov r23.w, cb6[r0.y + 587].w + dp4 r1.w, r23.xyzw, r19.xyzw + lt r18.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xxxy + lt r3.w, l(0.000000), r1.w + and r7.w, r18.w, r18.z + and r3.w, r3.w, r7.w + lt r18.zw, r22.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + lt r7.w, r1.w, l(1.000000) + and r10.w, r18.w, r18.z + and r7.w, r7.w, r10.w + and r3.w, r3.w, r7.w + if_nz r3.w + ushr r0.y, cb6[r0.y + 587].x, l(16) + f16tof32 r21.y, r0.y + mad r18.zw, r22.xxxy, cb6[584].zzzw, r21.xxxy + mad r19.xy, r18.zwzz, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r19.xy, r19.xyxx + mad r18.zw, r18.zzzw, cb6[586].zzzw, -r19.xxxy + add r21.xyzw, r18.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r22.xw, r21.xxxz, r21.xxxz + min r19.zw, r18.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + max r21.xz, r18.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r23.xy, r22.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r18.zwzz + add r18.zw, -r18.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r18.zw, -r19.zzzw, r19.zzzw, r18.zzzw + mad r19.zw, -r21.xxxz, r21.xxxz, r21.yyyw + mov r21.x, r23.x + mov r21.y, r18.z + mov r21.z, r19.z + mov r21.w, r22.x + mul r21.xyzw, r21.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r22.x, r23.y + mov r22.y, r18.w + mov r22.z, r19.w + mul r22.xyzw, r22.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r23.xyzw, r21.ywyw, r21.xzxz + add r24.xyzw, r22.yyww, r22.xxzz + div r18.zw, r21.yyyw, r23.zzzw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r21.xy, r18.zwzz, cb6[586].xxxx + div r18.zw, r22.yyyw, r24.yyyw + add r18.zw, r18.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r21.zw, r18.zzzw, cb6[586].yyyy + mad r22.xyzw, r19.xyxy, cb6[586].xyxy, r21.xzyz + mad r19.xyzw, r19.xyxy, cb6[586].xyxy, r21.xwyw + mul r21.xyzw, r23.xyzw, r24.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.y, r22.xyxx, t8.xxxx, s3, r1.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r22.zwzz, t8.xxxx, s3, r1.w + mul r3.w, r3.w, r21.y + mad r0.y, r21.x, r0.y, r3.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r19.xyxx, t8.xxxx, s3, r1.w + mad r0.y, r21.z, r3.w, r0.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t8.xxxx, s3, r1.w + mad r20.y, r21.w, r1.w, r0.y + else + mov r20.y, l(1.000000) + endif + else + mov r20.y, l(1.000000) + endif + else + mov r20.y, l(1.000000) + endif + movc r20.x, r20.z, r20.y, r20.x + else + mov r20.y, l(1.000000) + endif + add r0.y, -r20.y, r20.x + mad r0.y, r0.z, r0.y, r20.y + lt r0.z, l(0.001000), r0.y + if_nz r0.z + add r19.xyz, r1.xyzx, -cb0[173].xyzx + mad r18.zw, cb0[176].xxxz, r19.yyyy, r19.xxxz + mul r19.yw, r18.zzzw, cb0[174].zzzz + mul r20.xy, cb0[175].xyxx, cb0[183].wwww + mad r18.zw, r18.zzzw, cb0[174].zzzz, r20.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r18.zwzz, t7.yzxw, s1, l(0.000000) + mad r18.zw, r19.yyyw, cb0[175].wwww, r20.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r18.zwzz, t7.yzwx, s1, l(0.000000) + dp2 r3.w, r19.xzxx, r19.xzxx + sqrt r3.w, r3.w + add r7.w, -cb0[174].x, cb0[174].y + add r3.w, r3.w, -cb0[174].x + div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w + mul_sat r3.w, r3.w, r7.w + mad r7.w, r3.w, l(-2.000000), l(3.000000) + mul r3.w, r3.w, r3.w + mul r3.w, r3.w, r7.w + add r1.w, -r0.z, r1.w + mad r0.z, r3.w, r1.w, r0.z + add r0.z, r0.z, l(-1.000000) + mad r0.z, cb0[175].z, r0.z, l(1.000000) + mul r0.y, r0.z, r0.y + endif + add r0.z, -r0.y, cb6[35].z + mad r0.y, cb6[35].w, r0.z, r0.y +else + mov r0.y, cb6[35].z +endif +min r0.y, r0.y, l(1.000000) +add r0.y, r0.y, l(-1.000000) +mad r19.x, cb6[34].x, r0.y, l(1.000000) +lt r0.y, l(0.001000), r19.x +if_nz r0.y + dp3 r0.y, -cb5[0].xyzx, r17.xyzx + mad r20.xyz, cb5[0].xyzx, r0.yyyy, r17.xyzx + lt r0.y, r0.y, cb5[4].z + dp3 r0.z, r20.xyzx, r20.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r20.xyz, r0.zzzz, r20.xyzx + mul r20.xyz, r20.xyzx, cb5[4].yyyy + mad r20.xyz, -cb5[0].xyzx, cb5[4].zzzz, r20.xyzx + dp3 r0.z, r20.xyzx, r20.xyzx + rsq r0.z, r0.z + mul r20.xyz, r0.zzzz, r20.xyzx + movc r20.xyz, r0.yyyy, r20.xyzx, r17.xyzx + mad r21.xyz, r2.xyzx, r2.wwww, r20.xyzx + dp3 r0.y, r21.xyzx, r21.xyzx + max r0.y, r0.y, l(0.0000610351562) + rsq r0.y, r0.y + mul r21.xyz, r0.yyyy, r21.xyzx + dp3_sat r9.y, r20.xyzx, r7.xyzx + dp3_sat r0.y, r7.xyzx, r21.xyzx + min r9.z, r0.x, l(1.000000) + mul r0.z, r9.w, r9.w + mul r0.z, r0.z, r0.z + mad r1.w, r0.y, r0.z, -r0.y + mad r0.y, r1.w, r0.y, l(1.000000) + dp3_sat r1.w, r4.xyzx, r21.xyzx + add r1.w, -r1.w, l(1.000000) + mul r3.w, r1.w, r1.w + mul r3.w, r3.w, r3.w + mul r7.w, r1.w, r3.w + add r10.w, -r9.w, l(1.000000) + mad r11.w, -r10.w, l(0.383026), l(-0.0761947036) + mad r11.w, r10.w, r11.w, l(1.049970) + mad r10.w, r10.w, r11.w, l(0.409255) + min r10.w, r10.w, l(0.999000) + add r11.w, -r10.w, l(1.000000) + add r20.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r20.xyz, r20.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r15.xyzx + mad r1.w, -r3.w, r1.w, l(1.000000) + mad r21.xyz, r15.xyzx, r1.wwww, r7.wwww + mul r0.y, r0.y, r0.y + div r0.y, r0.z, r0.y + mad r18.zw, -r9.zzzy, r0.zzzz, r9.zzzy + mad r18.zw, r18.zzzw, r9.zzzy, r0.zzzz + sqrt r18.zw, r18.zzzw + mul r18.zw, r9.yyyz, r18.zzzw + add r0.z, r18.w, r18.z + add r0.z, r0.z, l(0.000100) + div r0.z, l(0.500000), r0.z + mul r0.y, r0.z, r0.y + mul r21.xyz, r0.yyyy, r21.xyzx + min r21.xyz, r21.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r22.xyzw, r9.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.y, r22.xyxx, t10.yxzw, s0, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r22.zwzz, t10.yzxw, s0, l(0.000000) + mul r0.y, r0.z, r0.y + mul r0.y, r10.w, r0.y + div r0.y, r0.y, r11.w + mul r22.xyz, r20.xyzx, r20.xyzx + mul r22.xyz, r0.yyyy, r22.xyzx + mad r20.xyz, -r20.xyzx, r11.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r20.xyz, r22.xyzx, r20.xyzx + add r20.xyz, r20.xyzx, r21.xyzx + mul r20.xyz, r20.xyzx, cb5[4].xxxx + // === Glass Fix: Reduce sun specular intensity === + lt r32.x, l(0.500000), cb13[14].x + if_nz r32.x + mul r20.xyz, r20.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + endif + max r20.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r20.xyz, r20.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r21.xyz, r9.yyyy, r14.xyzx + mad r20.xyz, r20.xyzx, r9.yyyy, r21.xyzx + mul r20.xyz, r20.xyzx, cb5[1].xyzx + mov r19.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r19.yzw, r19.xyxx, t9.wxyz, s0, cb0[108].x + add r0.y, -r19.x, l(1.000000) + mad r19.xyz, r20.xyzx, r19.yzwy, -r20.xyzx + mad r19.xyz, r0.yyyy, r19.xyzx, r20.xyzx +else + mov r19.xyz, l(0,0,0,0) +endif +mul r0.yz, r18.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r0.yz, r0.yyzy +mad r0.y, r0.z, cb4[1].y, r0.y +mul r0.y, r0.y, l(8.000000) +ftoi r0.y, r0.y +mad r0.z, -cb0[85].y, cb4[2].w, r16.z +round_ni r0.z, r0.z +add r1.w, l(-1.000000), cb4[1].w +max r3.w, r0.z, l(0.000000) +min r1.w, r1.w, r3.w +mul r3.w, r1.w, l(8.000000) +ftoi r3.w, r3.w +ge r0.z, r1.w, r0.z +iadd r1.w, r3.w, cb0[110].y +mul r3.w, r9.w, r9.w +min r9.x, r0.x, l(1.000000) +add r0.x, -r9.w, l(1.000000) +mad r7.w, -r0.x, l(0.383026), l(-0.0761947036) +mad r7.w, r0.x, r7.w, l(1.049970) +mad r0.x, r0.x, r7.w, l(0.409255) +min r0.x, r0.x, l(0.999000) +add r7.w, -r0.x, l(1.000000) +add r20.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r20.xyz, r20.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r15.xyzx +mad r9.yz, r9.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r9.y, r9.yzyy, t10.yxzw, s0, l(0.000000) +mad r21.xyz, -r20.xyzx, r7.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r20.xyz, r20.xyzx, r20.xyzx +mov r22.w, l(1.000000) +mov r23.y, l(1.000000) +mov r24.z, r9.w +mov r25.xyz, l(0,0,0,0) +mov r9.z, l(1.000000) +mov r10.w, l(0) +loop + ilt r11.w, l(7), r10.w + breakc_nz r11.w + iadd r11.w, r0.y, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx + iadd r12.w, r1.w, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx + and r11.w, r11.w, r12.w + and r11.w, r0.z, r11.w + ishl r12.w, r10.w, l(5) + mov r26.xyz, l(0,0,0,0) + mov r13.w, r9.z + mov r14.w, r11.w + loop + breakc_z r14.w + firstbit_lo r15.w, r14.w + ishl r17.w, l(1), r15.w + xor r17.w, r14.w, r17.w + iadd r15.w, r12.w, r15.w + bfi r27.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r15.wwww, l(1, 3, 5, 6) + bfi r18.z, l(29), l(3), r15.w, l(7) + ftou r18.w, cb5[r27.z + 6].w + ieq r18.w, r18.w, l(1) + if_nz r18.w + add r22.xyz, r1.xyzx, -cb5[r27.x + 6].xyzx + and r28.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r27.z + 6].xzyx + and r29.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r27.w + 6].yxzy + ushr r30.xyz, cb5[r27.z + 6].xzyx, l(16, 16, 16, 0) + ushr r31.xyz, cb5[r27.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r28.xyz, r28.xyzx + f16tof32 r29.xyz, r29.xyzx + f16tof32 r30.xyz, r30.xyzx + f16tof32 r31.xyw, r31.yxyz + mov r32.xz, r28.xxzx + mov r32.yw, r30.xxxz + dp4 r18.w, r22.xyzw, r32.xyzw + mov r30.x, r28.y + mov r30.z, r29.y + mov r30.w, r31.x + dp4 r19.w, r22.xyzw, r30.xyzw + mov r31.xz, r29.xxzx + dp4 r20.w, r22.xyzw, r31.xyzw + max r18.w, |r18.w|, |r19.w| + max r18.w, |r20.w|, r18.w + mad r19.w, cb5[r18.z + 6].x, l(0.500000), l(0.500000) + add r18.w, r18.w, -r19.w + mad r19.w, -cb5[r18.z + 6].x, l(0.500000), l(0.500000) + div_sat r18.w, r18.w, r19.w + add r18.w, -r18.w, l(1.000000) + mul r18.w, r18.w, r18.w + else + mov r18.w, l(1.000000) + endif + lt r19.w, l(0.500000), cb5[r27.y + 6].z + lt r20.w, r18.w, l(0.001000) + or r20.w, r19.w, r20.w + if_nz r20.w + mov r14.w, r17.w + continue + endif + ishl r20.w, r15.w, l(3) + bfi r15.w, l(29), l(3), r15.w, l(2) + lt r21.w, cb5[r20.w + 6].w, l(1.500000) + if_nz r21.w + mad r21.w, cb5[r15.w + 6].y, l(0.500000), l(0.500000) + add r22.x, r21.w, -|cb5[r15.w + 6].x| + add r22.y, -r22.x, cb5[r15.w + 6].y + add r21.w, -|r22.x|, l(1.000000) + add r21.w, -|r22.y|, r21.w + max r21.w, r21.w, l(0.000488281250) + ge r23.z, cb5[r15.w + 6].x, l(0.000000) + movc r22.z, r23.z, r21.w, -r21.w + dp3 r21.w, r22.xyzx, r22.xyzx + rsq r21.w, r21.w + mul r22.xyz, r21.wwww, r22.xyzx + add r28.xyz, -r1.xyzx, cb5[r27.x + 6].xyzx + dp3 r21.w, r28.xyzx, r28.xyzx + rsq r23.z, r21.w + mul r29.xyz, r23.zzzz, r28.xyzx + ftoi r23.w, cb5[r18.z + 6].w + mul r30.xyz, r22.xyzx, cb5[r15.w + 6].zzzz + mad r31.xyz, -r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r28.xyzx + mad r32.xyz, r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r28.xyzx + ftou r24.w, cb5[r20.w + 6].w + and r24.w, r24.w, l(1) + ieq r25.w, r24.w, l(0) + not r25.w, r25.w + lt r26.w, l(0.000000), cb5[r15.w + 6].z + and r25.w, r25.w, r26.w + dp3 r26.w, r31.xyzx, r31.xyzx + sqrt r26.w, r26.w + dp3 r27.z, r32.xyzx, r32.xyzx + sqrt r27.z, r27.z + dp3 r28.w, r7.xyzx, r31.xyzx + div r28.w, r28.w, r26.w + dp3 r29.w, r7.xyzx, r32.xyzx + div r29.w, r29.w, r27.z + add r28.w, r28.w, r29.w + mul_sat r33.x, r28.w, l(0.500000) + dp3 r28.w, r31.xyzx, r32.xyzx + mad r26.w, r26.w, r27.z, r28.w + mad r26.w, r26.w, l(0.500000), l(1.000000) + div r33.y, l(1.000000, 1.000000, 1.000000, 1.000000), r26.w + dp3_sat r23.x, r7.xyzx, r29.xyzx + movc r24.xy, r25.wwww, r33.xyxx, r23.xyxx + lt r23.x, cb5[r27.w + 6].w, l(0.000000) + if_nz r23.x + mul r23.x, cb5[r27.x + 6].w, cb5[r27.x + 6].w + mul r23.x, r21.w, r23.x + mad r23.x, -r23.x, r23.x, l(1.000000) + max r23.x, r23.x, l(0.000000) + add r21.w, r21.w, l(1.000000) + div r21.w, l(1.000000, 1.000000, 1.000000, 1.000000), r21.w + and r26.w, r25.w, l(0x3f800000) + add r27.z, -r21.w, r24.y + mad r21.w, r26.w, r27.z, r21.w + mul r23.x, r23.x, r23.x + mul r21.w, r21.w, r23.x + else + mul r32.xyz, r28.xyzx, cb5[r27.x + 6].wwww + dp3 r23.x, r32.xyzx, r32.xyzx + min r23.x, r23.x, l(1.000000) + add r23.x, -r23.x, l(1.000000) + log r23.x, r23.x + mul r23.x, r23.x, cb5[r27.w + 6].w + exp r23.x, r23.x + mul r21.w, r23.x, r24.y + endif + dp3 r22.x, r29.xyzx, -r22.xyzx + add r22.x, r22.x, -cb5[r15.w + 6].z + mul_sat r22.x, r22.x, cb5[r15.w + 6].w + mul r22.x, r22.x, r22.x + movc r22.x, r24.w, l(1.000000), r22.x + mul r21.w, r21.w, r22.x + not r22.x, r25.w + ige r22.y, r23.w, l(0) + and r22.x, r22.y, r22.x + if_nz r22.x + if_z r24.w + ishl r22.x, r23.w, l(2) + mul r32.xyz, r1.yyyy, cb7[r22.x + 33].xywx + mad r32.xyz, cb7[r22.x + 32].xywx, r1.xxxx, r32.xyzx + mad r32.xyz, cb7[r22.x + 34].xywx, r1.zzzz, r32.xyzx + add r22.xyz, r32.xyzx, cb7[r22.x + 35].xywx + div_sat r22.xy, r22.xyxx, r22.zzzz + mad r22.xy, r22.xyxx, cb7[r23.w + 0].zwzz, cb7[r23.w + 0].xyxx + else + ishl r22.z, r23.w, l(2) + dp3 r32.x, -r28.xyzx, cb7[r22.z + 32].xyzx + dp3 r32.y, -r28.xyzx, cb7[r22.z + 33].xyzx + dp3 r32.z, -r28.xyzx, cb7[r22.z + 34].xyzx + lt r22.z, |r32.x|, |r32.y| + and r22.z, r22.z, l(1) + dp2 r23.x, |r32.xyxx|, icb[r22.z + 0].xyxx + lt r23.x, r23.x, |r32.z| + movc r22.z, r23.x, l(2), r22.z + dp3 r23.x, r32.xyzx, icb[r22.z + 0].xyzx + lt r23.x, r23.x, l(0.000000) + bfi r22.z, l(31), l(1), r22.z, r23.x + ushr r23.x, r22.z, l(1) + dp3 r23.x, r32.xyzx, icb[r23.x + 0].xyzx + div r24.y, l(0.000244140625), cb7[r23.w + 0].w + add r24.y, -r24.y, l(0.500000) + utof r26.w, r22.z + ult r27.z, r22.z, l(2) + and r27.z, r27.z, l(2) + dp2 r27.z, r32.xzxx, icb[r27.z + 0].xzxx + mul r27.z, r27.z, icb[r22.z + 4].z + div r27.z, r27.z, |r23.x| + mad r26.w, r27.z, r24.y, r26.w + add r26.w, r26.w, l(0.500000) + mul_sat r28.x, r26.w, l(0.166666672) + iadd r26.w, l(-1), icb[r22.z + 4].y + dp2 r26.w, r32.yzyy, icb[r26.w + 0].xyxx + mul r22.z, r26.w, icb[r22.z + 4].w + div r22.z, r22.z, |r23.x| + mad_sat r28.y, -r22.z, r24.y, l(0.500000) + mad r22.xy, r28.xyxx, cb7[r23.w + 0].zwzz, cb7[r23.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r22.x, r22.xyxx, t18.xyzw, s0, l(0.000000) + mul r21.w, r21.w, r22.x + endif + lt r22.x, l(0.000000), r21.w + if_nz r22.x + if_z r24.w + ftoi r22.y, cb5[r27.y + 6].x + else + add r28.xyz, r1.xyzx, -cb5[r27.x + 6].xyzx + lt r32.xyz, |r28.yzzy|, |r28.xxyx| + and r22.z, r32.y, r32.x + lt r28.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r28.xyzx + ushr r23.x, cb5[r15.w + 6].w, l(24) + ubfe r24.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb5[r15.w + 6].wwww + movc r23.x, r28.x, r23.x, r24.y + and r23.w, l(255), cb5[r15.w + 6].w + movc r23.w, r28.y, r24.w, r23.w + ubfe r24.y, l(8), l(8), cb5[r27.y + 6].x + and r24.w, l(255), cb5[r27.y + 6].x + movc r24.y, r28.z, r24.y, r24.w + movc r23.w, r32.z, r23.w, r24.y + movc r22.z, r22.z, r23.x, r23.w + ilt r23.x, r22.z, l(80) + movc r22.y, r23.x, r22.z, l(-1) + endif + ishl r22.z, r22.y, l(2) + mad r28.xyz, r29.xyzx, cb6[r22.y + 288].xxxx, r1.xyzx + mul r23.x, l(5.000000), cb6[r22.y + 288].y + mad r28.xyz, r7.xyzx, r23.xxxx, r28.xyzx + mul r32.xyzw, r28.yyyy, cb6[r22.z + 65].xyzw + mad r32.xyzw, cb6[r22.z + 64].xyzw, r28.xxxx, r32.xyzw + mad r28.xyzw, cb6[r22.z + 66].xyzw, r28.zzzz, r32.xyzw + add r28.xyzw, r28.xyzw, cb6[r22.z + 67].xyzw + div r28.xyz, r28.xyzx, r28.wwww + ge r32.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r28.xyzx + ge r33.xyz, r28.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r23.xw, -cb6[r22.y + 344].xxxy, cb6[r22.y + 344].zzzw + mad r23.xw, r28.xxxy, r23.xxxw, cb6[r22.y + 344].xxxy + mad r24.yw, r23.xxxw, cb6[400].zzzw, l(0.000000, 0.500000, 0.000000, 0.500000) + round_ni r24.yw, r24.yyyw + mad r23.xw, r23.xxxw, cb6[400].zzzw, -r24.yyyw + add r34.xyzw, r23.xxww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r35.xyzw, r34.xxzz, r34.xxzz + add r28.xy, -r23.xwxx, l(1.000000, 1.000000, 0.000000, 0.000000) + min r34.xz, r23.xxwx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r36.xy, r23.xwxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r37.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r36.xy, -r36.xyxx, r36.xyxx, r34.ywyy + add r36.xy, r36.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r36.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r35.xz, r35.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r23.xw, r35.yyyw, l(0.500000, 0.000000, 0.000000, 0.500000), -r23.xxxw + mul r38.xy, r23.xwxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r23.xw, -r34.xxxz, r34.xxxz, r28.xxxy + add r23.xw, r23.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + mul r39.xy, r23.xwxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r23.xw, r34.yyyw, l(0.160000, 0.000000, 0.000000, 0.160000) + mov r38.z, r39.x + mov r38.w, r23.x + mov r37.z, r36.x + mov r37.w, r35.x + add r34.xyzw, r37.zwxz, r38.zwxz + mov r39.z, r38.y + mov r39.w, r23.w + mov r36.z, r37.y + mov r36.w, r35.z + add r28.xyw, r36.zyzw, r39.zyzw + div r35.xyz, r37.xzwx, r34.zwyz + add r35.xyz, r35.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r35.xyz, r35.xyzx, cb6[400].xxxx + div r36.xyz, r36.zywz, r28.xywx + add r36.xyz, r36.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r36.xyw, r36.xyxz, cb6[400].yyyy + mul r37.xyzw, r28.xxxy, r34.zwyz + mov r35.w, r36.x + mad r38.xyzw, r24.ywyw, cb6[400].xyxy, r35.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r38.xyxx, t6.xxxx, s3, r28.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r38.zwzz, t6.xxxx, s3, r28.z + mul r23.x, r23.x, r37.y + mad r22.z, r37.x, r22.z, r23.x + mad r23.xw, r24.yyyw, cb6[400].xxxy, r35.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r23.xwxx, t6.xxxx, s3, r28.z + mad r22.z, r37.z, r23.x, r22.z + mov r36.z, r35.x + mad r38.xyzw, r24.ywyw, cb6[400].xyxy, r36.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r38.xyxx, t6.xxxx, s3, r28.z + mad r22.z, r37.w, r23.x, r22.z + mul r37.xyzw, r28.yyww, r34.xyzw + mov r36.xz, r35.yyzy + mad r35.xyzw, r24.ywyw, cb6[400].xyxy, r36.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r35.xyxx, t6.xxxx, s3, r28.z + mad r22.z, r37.x, r23.x, r22.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r35.zwzz, t6.xxxx, s3, r28.z + mad r22.z, r37.y, r23.x, r22.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r38.zwzz, t6.xxxx, s3, r28.z + mad r22.z, r37.z, r23.x, r22.z + ige r23.x, r22.y, l(0) + or r32.xyz, r32.xyzx, r33.xyzx + or r23.w, r32.y, r32.x + or r23.w, r32.z, r23.w + and r26.w, r28.z, l(0x7fffffff) + ult r26.w, l(0x7f800000), r26.w + or r23.w, r23.w, r26.w + mad r32.xyzw, r24.ywyw, cb6[400].xyxy, r36.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r32.xyxx, t6.xxxx, s3, r28.z + mad r22.z, r37.w, r24.y, r22.z + mul r24.y, r28.w, r34.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.w, r32.zwzz, t6.xxxx, s3, r28.z + mad r22.z, r24.y, r24.w, r22.z + add r22.z, r22.z, l(-1.000000) + mad r22.y, cb6[r22.y + 288].w, r22.z, l(1.000000) + movc r22.y, r23.w, l(1.000000), r22.y + movc r22.y, r23.x, r22.y, l(1.000000) + else + mov r22.y, l(1.000000) + endif + if_nz r25.w + dp3 r22.z, r17.xyzx, r30.xyzx + mul_sat r23.x, r23.z, cb5[r15.w + 6].z + mad r23.x, r23.x, l(0.500000), r3.w + min r23.x, r23.x, l(1.000000) + div r23.x, r3.w, r23.x + mad r28.xyz, r17.xyzx, r22.zzzz, -r30.xyzx + dp3 r23.w, r31.xyzx, r28.xyzx + mul r22.z, r22.z, r22.z + mad r22.z, cb5[r15.w + 6].z, cb5[r15.w + 6].z, -r22.z + div_sat r22.z, r23.w, r22.z + mad r28.xyz, r30.xyzx, r22.zzzz, r31.xyzx + dp3 r22.z, r28.xyzx, r28.xyzx + rsq r22.z, r22.z + mul r29.xyz, r22.zzzz, r28.xyzx + else + mov r23.x, l(1.000000) + endif + if_nz r22.x + mul_sat r22.x, r23.z, cb5[r18.z + 6].y + mad r28.xyz, r2.xyzx, r2.wwww, r29.xyzx + dp3 r22.z, r28.xyzx, r28.xyzx + max r22.z, r22.z, l(0.0000610351562) + rsq r22.z, r22.z + mul r28.xyz, r22.zzzz, r28.xyzx + dp3_sat r22.z, r7.xyzx, r28.xyzx + dp3_sat r23.z, r4.xyzx, r28.xyzx + lt r23.w, l(0.000000), r22.x + mul r22.x, r22.x, r22.x + mad r24.y, r23.z, l(3.600000), l(0.400000) + div r22.x, r22.x, r24.y + mad r22.x, r9.w, r9.w, r22.x + min r22.x, r22.x, l(1.000000) + movc r22.x, r23.w, r22.x, r3.w + mul r22.x, r22.x, r22.x + mad r23.w, r22.z, r22.x, -r22.z + mad r22.z, r23.w, r22.z, l(1.000000) + add r23.z, -r23.z, l(1.000000) + mul r23.w, r23.z, r23.z + mul r23.w, r23.w, r23.w + mul r24.y, r23.z, r23.w + mad r23.z, -r23.w, r23.z, l(1.000000) + mad r28.xyz, r15.xyzx, r23.zzzz, r24.yyyy + mul r22.z, r22.z, r22.z + div r22.z, r22.x, r22.z + mul r22.z, r23.x, r22.z + mad r23.x, -r9.x, r22.x, r9.x + mad r23.x, r23.x, r9.x, r22.x + sqrt r23.x, r23.x + mad r23.z, -r24.x, r22.x, r24.x + mad r22.x, r23.z, r24.x, r22.x + sqrt r22.x, r22.x + mul r22.x, r9.x, r22.x + mad r22.x, r24.x, r23.x, r22.x + add r22.x, r22.x, l(0.000100) + div r22.x, l(0.500000), r22.x + mul r22.x, r22.x, r22.z + mul r23.xzw, r22.xxxx, r28.xxyz + min r23.xzw, r23.xxzw, l(2048.000000, 0.000000, 2048.000000, 2048.000000) + mad r22.xz, r24.xxzx, l(0.968750, 0.000000, 0.968750, 0.000000), l(0.015625, 0.000000, 0.015625, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r22.x, r22.xzxx, t10.xyzw, s0, l(0.000000) + mul r22.x, r9.y, r22.x + mul r22.x, r0.x, r22.x + div r22.x, r22.x, r7.w + mul r28.xyz, r20.xyzx, r22.xxxx + div r28.xyz, r28.xyzx, r21.xyzx + add r23.xzw, r23.xxzw, r28.xxyz + mul r23.xzw, r23.xxzw, cb5[r18.z + 6].zzzz + max r23.xzw, r23.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r23.xzw, r23.xxzw, l(1000.000000, 0.000000, 1000.000000, 1000.000000) + mul r28.xyz, r14.xyzx, r24.xxxx + mad r23.xzw, r23.xxzw, r24.xxxx, r28.xxyz + mul r24.xyw, r21.wwww, cb5[r20.w + 6].xyxz + mul r22.xyz, r22.yyyy, r24.xywx + mul r22.xyz, r18.wwww, r22.xyzx + mul r22.xyz, r22.xyzx, r23.xzwx + else + mov r22.xyz, l(0,0,0,0) + endif + else + if_z r19.w + mad r18.w, cb5[r15.w + 6].y, l(0.500000), l(0.500000) + add r28.x, r18.w, -|cb5[r15.w + 6].x| + add r28.y, -r28.x, cb5[r15.w + 6].y + add r18.w, -|r28.x|, l(1.000000) + add r18.w, -|r28.y|, r18.w + max r18.w, r18.w, l(0.000488281250) + ge r19.w, cb5[r15.w + 6].x, l(0.000000) + movc r28.z, r19.w, r18.w, -r18.w + dp3 r18.w, r28.xyzx, r28.xyzx + rsq r18.w, r18.w + mul r23.xzw, r18.wwww, r28.xxyz + add r24.xyw, -r1.xyxz, cb5[r27.x + 6].xyxz + dp3 r18.w, r24.xywx, r24.xywx + rsq r19.w, r18.w + mul r28.xyz, r19.wwww, r24.xywx + ftoi r18.z, cb5[r18.z + 6].w + mul r29.xyz, r23.xzwx, cb5[r15.w + 6].zzzz + mad r30.xyz, -r29.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xywx + mad r29.xyz, r29.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xywx + ftou r19.w, cb5[r20.w + 6].w + and r19.w, r19.w, l(1) + ieq r20.w, r19.w, l(0) + not r20.w, r20.w + lt r21.w, l(0.000000), cb5[r15.w + 6].z + and r20.w, r20.w, r21.w + dp3 r21.w, r30.xyzx, r30.xyzx + sqrt r21.w, r21.w + dp3 r25.w, r29.xyzx, r29.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r30.xyzx, r29.xyzx + mad r21.w, r21.w, r25.w, r26.w + mad r21.w, r21.w, l(0.500000), l(1.000000) + div r21.w, l(1.000000, 1.000000, 1.000000, 1.000000), r21.w + movc r21.w, r20.w, r21.w, l(1.000000) + lt r25.w, cb5[r27.w + 6].w, l(0.000000) + if_nz r25.w + mul r25.w, cb5[r27.x + 6].w, cb5[r27.x + 6].w + mul r25.w, r18.w, r25.w + mad r25.w, -r25.w, r25.w, l(1.000000) + max r25.w, r25.w, l(0.000000) + add r18.w, r18.w, l(1.000000) + div r18.w, l(1.000000, 1.000000, 1.000000, 1.000000), r18.w + and r26.w, r20.w, l(0x3f800000) + add r27.z, -r18.w, r21.w + mad r18.w, r26.w, r27.z, r18.w + mul r25.w, r25.w, r25.w + mul r18.w, r18.w, r25.w + else + mul r29.xyz, r24.xywx, cb5[r27.x + 6].wwww + dp3 r25.w, r29.xyzx, r29.xyzx + min r25.w, r25.w, l(1.000000) + add r25.w, -r25.w, l(1.000000) + log r25.w, r25.w + mul r25.w, r25.w, cb5[r27.w + 6].w + exp r25.w, r25.w + mul r18.w, r21.w, r25.w + endif + dp3 r21.w, r28.xyzx, -r23.xzwx + add r21.w, r21.w, -cb5[r15.w + 6].z + mul_sat r21.w, r21.w, cb5[r15.w + 6].w + mul r21.w, r21.w, r21.w + movc r21.w, r19.w, l(1.000000), r21.w + mul r18.w, r18.w, r21.w + not r20.w, r20.w + ige r21.w, r18.z, l(0) + and r20.w, r20.w, r21.w + if_nz r20.w + if_z r19.w + ishl r20.w, r18.z, l(2) + mul r23.xzw, r1.yyyy, cb7[r20.w + 33].xxyw + mad r23.xzw, cb7[r20.w + 32].xxyw, r1.xxxx, r23.xxzw + mad r23.xzw, cb7[r20.w + 34].xxyw, r1.zzzz, r23.xxzw + add r23.xzw, r23.xxzw, cb7[r20.w + 35].xxyw + div_sat r23.xz, r23.xxzx, r23.wwww + mad r23.xz, r23.xxzx, cb7[r18.z + 0].zzwz, cb7[r18.z + 0].xxyx + else + ishl r20.w, r18.z, l(2) + dp3 r29.x, -r24.xywx, cb7[r20.w + 32].xyzx + dp3 r29.y, -r24.xywx, cb7[r20.w + 33].xyzx + dp3 r29.z, -r24.xywx, cb7[r20.w + 34].xyzx + lt r20.w, |r29.x|, |r29.y| + and r20.w, r20.w, l(1) + dp2 r21.w, |r29.xyxx|, icb[r20.w + 0].xyxx + lt r21.w, r21.w, |r29.z| + movc r20.w, r21.w, l(2), r20.w + dp3 r21.w, r29.xyzx, icb[r20.w + 0].xyzx + lt r21.w, r21.w, l(0.000000) + bfi r20.w, l(31), l(1), r20.w, r21.w + ushr r21.w, r20.w, l(1) + dp3 r21.w, r29.xyzx, icb[r21.w + 0].xyzx + div r23.w, l(0.000244140625), cb7[r18.z + 0].w + add r23.w, -r23.w, l(0.500000) + utof r24.x, r20.w + ult r24.y, r20.w, l(2) + and r24.y, r24.y, l(2) + dp2 r24.y, r29.xzxx, icb[r24.y + 0].xzxx + mul r24.y, r24.y, icb[r20.w + 4].z + div r24.y, r24.y, |r21.w| + mad r24.x, r24.y, r23.w, r24.x + add r24.x, r24.x, l(0.500000) + mul_sat r24.x, r24.x, l(0.166666672) + iadd r24.w, l(-1), icb[r20.w + 4].y + dp2 r24.w, r29.yzyy, icb[r24.w + 0].xyxx + mul r20.w, r24.w, icb[r20.w + 4].w + div r20.w, r20.w, |r21.w| + mad_sat r24.y, -r20.w, r23.w, l(0.500000) + mad r23.xz, r24.xxyx, cb7[r18.z + 0].zzwz, cb7[r18.z + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.z, r23.xzxx, t18.yzxw, s0, l(0.000000) + mul r18.w, r18.z, r18.w + endif + lt r18.z, l(0.000000), r18.w + if_nz r18.z + if_z r19.w + ftoi r18.z, cb5[r27.y + 6].x + else + add r23.xzw, r1.xxyz, -cb5[r27.x + 6].xxyz + lt r24.xyw, |r23.zwzw|, |r23.xxxz| + and r18.w, r24.y, r24.x + lt r23.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xxzw + ushr r19.w, cb5[r15.w + 6].w, l(24) + ubfe r24.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r15.w + 6].wwww + movc r19.w, r23.x, r19.w, r24.x + and r15.w, l(255), cb5[r15.w + 6].w + movc r15.w, r23.z, r24.y, r15.w + ubfe r20.w, l(8), l(8), cb5[r27.y + 6].x + and r21.w, l(255), cb5[r27.y + 6].x + movc r20.w, r23.w, r20.w, r21.w + movc r15.w, r24.w, r15.w, r20.w + movc r15.w, r18.w, r19.w, r15.w + ilt r18.w, r15.w, l(80) + movc r18.z, r18.w, r15.w, l(-1) + endif + ishl r15.w, r18.z, l(2) + mad r23.xzw, r28.xxyz, cb6[r18.z + 288].xxxx, r1.xxyz + mul r18.w, l(5.000000), cb6[r18.z + 288].y + mad r23.xzw, r7.xxyz, r18.wwww, r23.xxzw + mul r27.xyzw, r23.zzzz, cb6[r15.w + 65].xyzw + mad r27.xyzw, cb6[r15.w + 64].xyzw, r23.xxxx, r27.xyzw + mad r27.xyzw, cb6[r15.w + 66].xyzw, r23.wwww, r27.xyzw + add r27.xyzw, r27.xyzw, cb6[r15.w + 67].xyzw + div r23.xzw, r27.xxyz, r27.wwww + ge r24.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xzxw + ge r27.xyz, r23.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r28.xy, -cb6[r18.z + 344].xyxx, cb6[r18.z + 344].zwzz + mad r23.xz, r23.xxzx, r28.xxyx, cb6[r18.z + 344].xxyx + mad r28.xy, r23.xzxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r28.xy, r28.xyxx + mad r23.xz, r23.xxzx, cb6[400].zzwz, -r28.xxyx + add r29.xyzw, r23.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r30.xyzw, r29.xxzz, r29.xxzz + add r28.zw, -r23.xxxz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r29.xz, r23.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r31.xy, r23.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r32.xy, r28.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r31.xy, -r31.xyxx, r31.xyxx, r29.ywyy + add r31.xy, r31.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r31.xy, r31.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r30.xz, r30.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r23.xz, r30.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r23.xxzx + mul r33.xy, r23.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r23.xz, -r29.xxzx, r29.xxzx, r28.zzwz + add r23.xz, r23.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r34.xy, r23.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r23.xz, r29.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r33.z, r34.x + mov r33.w, r23.x + mov r32.z, r31.x + mov r32.w, r30.x + add r29.xyzw, r32.zwxz, r33.zwxz + mov r34.z, r33.y + mov r34.w, r23.z + mov r31.z, r32.y + mov r31.w, r30.z + add r30.xyz, r31.zywz, r34.zywz + div r32.xyz, r32.xzwx, r29.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.xyzx, cb6[400].xxxx + div r31.xyz, r31.zywz, r30.xyzx + add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r31.xyw, r31.xyxz, cb6[400].yyyy + mul r33.xyzw, r29.zwyz, r30.xxxy + mov r32.w, r31.x + mad r34.xyzw, r28.xyxy, cb6[400].xyxy, r32.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r34.xyxx, t6.xxxx, s3, r23.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r34.zwzz, t6.xxxx, s3, r23.w + mul r18.w, r18.w, r33.y + mad r15.w, r33.x, r15.w, r18.w + mad r23.xz, r28.xxyx, cb6[400].xxyx, r32.zzwz + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r23.xzxx, t6.xxxx, s3, r23.w + mad r15.w, r33.z, r18.w, r15.w + mov r31.z, r32.x + mad r34.xyzw, r28.xyxy, cb6[400].xyxy, r31.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r34.xyxx, t6.xxxx, s3, r23.w + mad r15.w, r33.w, r18.w, r15.w + mul r33.xyzw, r29.xyzw, r30.yyzz + mov r31.xz, r32.yyzy + mad r32.xyzw, r28.xyxy, cb6[400].xyxy, r31.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r32.xyxx, t6.xxxx, s3, r23.w + mad r15.w, r33.x, r18.w, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r32.zwzz, t6.xxxx, s3, r23.w + mad r15.w, r33.y, r18.w, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r34.zwzz, t6.xxxx, s3, r23.w + mad r15.w, r33.z, r18.w, r15.w + ige r18.w, r18.z, l(0) + or r24.xyw, r24.xyxw, r27.xyxz + or r19.w, r24.y, r24.x + or r19.w, r24.w, r19.w + and r20.w, r23.w, l(0x7fffffff) + ult r20.w, l(0x7f800000), r20.w + or r19.w, r19.w, r20.w + mad r27.xyzw, r28.xyxy, cb6[400].xyxy, r31.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r27.xyxx, t6.xxxx, s3, r23.w + mad r15.w, r33.w, r20.w, r15.w + mul r20.w, r29.y, r30.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r27.zwzz, t6.xxxx, s3, r23.w + mad r15.w, r20.w, r21.w, r15.w + add r15.w, r15.w, l(-1.000000) + mad r15.w, cb6[r18.z + 288].w, r15.w, l(1.000000) + movc r15.w, r19.w, l(1.000000), r15.w + movc r15.w, r18.w, r15.w, l(1.000000) + else + mov r15.w, l(1.000000) + endif + else + mov r15.w, l(1.000000) + endif + mul r13.w, r13.w, r15.w + mov r22.xyz, l(0,0,0,0) + endif + add r26.xyz, r22.xyzx, r26.xyzx + mov r14.w, r17.w + endloop + mov r9.z, r13.w + add r25.xyz, r25.xyzx, r26.xyzx + iadd r10.w, r10.w, l(1) +endloop +// === Glass Fix: Reduce clustered lights and overall brightness === +lt r32.x, l(0.500000), cb13[14].x +if_nz r32.x + mul r25.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r5.xyw, r5.xyxw, l(0.650000, 0.650000, 0.000000, 0.650000) +endif +dp3 r0.x, r5.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xzw, -r0.xxxx, r5.xxyw +mad r0.xyz, cb0[184].wwww, r1.xzwx, r0.xxxx +add r1.xzw, -cb2[20].xxyz, cb1[r6.w + 13].xxyz +mad r1.xzw, cb1[r6.w + 13].wwww, r1.xxzw, cb2[20].xxyz +mul r1.xzw, r5.zzzz, r1.xxzw +mul r1.xzw, r1.xxzw, cb2[21].xxxx +mul r1.xzw, r1.xxzw, r4.wwww +mad r2.xyz, -r6.xyzx, r10.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r2.xyz, cb2[19].yyyy, r2.xyzx, r11.xyzx +mul r1.xzw, r1.xxzw, r2.xxyz +add r2.x, l(1.000000), -cb1[r6.w + 11].x +mul r1.xzw, r1.xxzw, r2.xxxx +add r2.x, l(1.000000), -cb2[19].x +mad r2.x, cb0[109].x, cb2[19].x, r2.x +div r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x +mul r1.xzw, r1.xxzw, r2.xxxx +mad r0.xyz, r0.xyzx, cb0[184].xyzx, r1.xzwx +mad r1.xzw, r25.xxyz, r9.zzzz, r19.xxyz +add r0.xyz, r0.xyzx, r1.xzwx +mad r1.x, r1.y, cb0[156].w, cb0[157].w +mad r1.z, r0.w, cb0[154].w, -cb0[153].w +max r1.xz, r1.xxzx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.w, r1.x, l(-1.442695) +exp r1.w, r1.w +add r1.w, -r1.w, l(1.000000) +div r1.x, r1.w, r1.x +mad r1.w, r1.y, cb0[156].w, cb0[158].w +mul r1.w, r1.w, l(1.442695) +exp r1.w, r1.w +mul r1.x, r1.w, r1.x +mul r1.x, r1.x, -r1.z +mul r1.xzw, r1.xxxx, cb0[155].xxyz +mul r1.xzw, r1.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r1.xzw, r1.xxzw +dp3 r2.x, -r4.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r2.xxxx, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r16.w, l(7), cb0[108].w + imad r5.xyz, r16.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.z, r5.y, r5.z, r5.x + imad r2.w, r5.z, r2.z, r5.y + imad r3.w, r2.z, r2.w, r5.z + imad r5.x, r2.w, r3.w, r2.z + dp3 r2.z, -r4.xyzx, -r3.xyzx + add r3.x, r1.y, -cb0[44].y + lt r3.y, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.y + mul r2.z, r2.z, cb0[163].w + div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r3.z, r2.z, r3.y + mad r4.x, r3.z, r3.x, cb0[44].y + mad r3.x, -r3.z, r3.x, r3.x + mul r3.z, r3.x, cb0[159].z + mul r3.x, r3.x, cb0[162].x + max r3.xz, r3.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + add r4.y, r4.x, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r3.z| + exp r4.w, -r3.z + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r4.z, r4.w, r3.z + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.z, l(5.960464478E-08), |r3.x| + exp r4.w, -r3.x + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.x + mad r3.x, -r3.x, l(0.240226507), l(0.693147182) + movc r3.x, r4.z, r4.w, r3.x + mul r3.x, r3.x, r4.x + mad r3.x, r4.y, r3.z, r3.x + mad r2.z, -r2.z, r3.y, l(1.000000) + mul r2.z, r0.w, r2.z + mul r2.z, r2.z, r3.x + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r2.z, r2.z, r3.x + add r2.z, r3.y, r2.z + min r2.z, r2.z, l(1.000000) + imad r5.y, r3.w, r5.x, r2.w + ushr r3.xy, r5.xyxx, l(16, 16, 0, 0) + utof r3.xy, r3.xyxx + mad r3.xy, r3.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb0[167].wwww, r18.xyxx + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r2.w, r16.z, cb0[164].x, cb0[164].y + log r2.w, r2.w + mul r2.w, r2.w, cb0[164].z + div r3.z, r2.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t17.xyzw, s0, l(0.000000) + add r2.w, r16.z, -cb0[166].z + mul_sat r2.w, r2.w, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r2.wwww, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r2.w, -r2.z, l(1.000000) + mul r4.xyz, r2.wwww, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.z, r2.z, r3.w +else + add r1.y, r1.y, -cb0[44].y + mul r2.w, r1.y, cb0[159].z + max r2.w, r2.w, l(-127.000000) + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r2.w| + exp r4.y, -r2.w + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r4.x, r4.y, r2.w + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r2.w, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r2.z, r0.w, l(1.000000) + add r0.w, -r2.z, l(1.000000) + mul r3.xyz, r0.wwww, cb0[161].xyzx +endif +mul r4.xyz, r1.xzwx, r2.zzzz +mad r0.w, r2.x, r2.x, l(1.000000) +mul r0.w, r0.w, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.wwww, cb0[158].xyzx +mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r1.y, r2.y, l(12.566371) +sqrt r2.x, r2.y +mul r1.y, r1.y, r2.x +max r1.y, r1.y, l(0.001000) +div r0.w, r0.w, r1.y +mad_sat r2.xyw, cb0[157].xyxz, r0.wwww, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx +// === Glass Transparency Fix === +lt r30.x, l(0.500000), cb13[14].x +if_nz r30.x + // Boost transmittance: lerp(r4, 1, 0.5) + add r30.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r30.xyz, r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r4.xyzx + // Reduce inscatter intensity + mul r31.xyz, r1.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + // Modified fog blend + mad r0.xyz, r0.xyzx, r30.xyzx, r31.xyzx +else + // Original fog blend + mad r0.xyz, r0.xyzx, r4.xyzx, r1.xyzx +endif +add r0.xyz, -r12.xyzx, r0.xyzx +mad r8.xyz, r8.wwww, r0.xyzx, r12.xyzx +mul r0.xy, r13.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r0.xy, |r0.xyxx| +sqrt r0.xy, r0.xyxx +mov r13.z, -r13.y +lt r0.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xxxz +lt r1.xy, r13.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r0.zw, -r0.zzzw, r1.xxxy +itof r0.zw, r0.zzzw +mul r0.xy, r0.zwzz, r0.xyxx +mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +max r0.z, cb1[r6.w + 4].z, cb1[r6.w + 4].y +add r0.z, r0.z, l(-0.100000024) +lt r0.w, l(0.000000), r0.z +lt r0.z, r0.z, l(0.000000) +iadd r0.z, -r0.w, r0.z +itof r0.z, r0.z +mov_sat r0.z, r0.z +add r1.xy, -r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.zzzz, r1.xyxx, r0.xyxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r8.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r8.w, r0.x +max r0.x, r8.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +// === Glass Highlight Compression === +lt r30.x, l(0.500000), cb13[14].x +if_nz r30.x + // Compute luminance + dp3 r30.y, r8.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) + // Soft compress if luminance > 0.5 + lt r30.z, l(0.500000), r30.y + if_nz r30.z + // compression = 0.5 + 1.5 * (1 - exp(-(luma - 0.5) / 1.5)) + add r30.w, r30.y, l(-0.500000) + mul r30.w, r30.w, l(-0.666667) + exp r30.w, r30.w + add r30.w, -r30.w, l(1.000000) + mad r30.w, r30.w, l(1.500000), l(0.500000) + // scale = compression / luma + max r31.x, r30.y, l(0.001000) + div r31.x, r30.w, r31.x + mul r8.xyz, r8.xyzx, r31.xxxx + endif +endif +mov o0.xyzw, r8.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used From a6d9441a7d4d6e88891e1f79b4595a742a24c24c Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Fri, 13 Feb 2026 01:10:19 +0000 Subject: [PATCH 15/19] feat(endfield) Added Improved GTAO with Vis Bitmask, AO modulation to direct lighting, Ultrawide support for UID, latency bar hiding, Tech Test alt grading --- src/games/endfield/addon.cpp | 286 ++- .../{ => ao}/ao-blur_0x80CD64F6.cs_5_0.hlsl | 7 +- .../ao/gtao-main_0xE1A460D9.cs_5_0.hlsl | 420 ++++ .../gtao-spatial-avg_0xB6A67E5A.cs_5_0.hlsl | 40 + .../ao/gtao-temporal_0x3F036C0E.cs_5_0.hlsl | 119 + .../gtao-vertical-blur_0x88B36DD5.cs_5_0.hlsl | 62 + ...loom-downsample-lut_0xC58C5FBA.cs_5_0.hlsl | 328 +++ .../bloom-downsample_0x2CF2F67B.cs_5_0.hlsl | 224 ++ .../bloom-downsample_0x948BF835.cs_5_0.hlsl | 204 ++ .../0x05D849CE.ps_5_0_original_backup.asm | 1844 -------------- .../endfield/deferred-lighting/0x0E84DFD1.cso | Bin 60152 -> 60272 bytes .../deferred-lighting/0x0E84DFD1.ps_5_0.asm | 13 +- .../0x0E84DFD1.ps_5_0_original_backup.asm | 1942 --------------- .../endfield/deferred-lighting/0x1E8A471E.cso | Bin 47180 -> 47540 bytes .../deferred-lighting/0x1E8A471E.ps_5_0.asm | 46 +- .../0x1E8A471E.ps_5_0_original_backup.asm | 1516 ------------ .../endfield/deferred-lighting/0x37837806.cso | Bin 26916 -> 27044 bytes .../deferred-lighting/0x37837806.ps_5_0.asm | 38 +- .../0x37837806.ps_5_0_original_backup.asm | 884 ------- .../endfield/deferred-lighting/0x518D3855.cso | Bin 51720 -> 51840 bytes .../deferred-lighting/0x518D3855.ps_5_0.asm | 5 +- .../0x518D3855.ps_5_0_original_backup.asm | 1678 ------------- .../0x5468822B.ps_5_0_original_backup.asm | 1840 -------------- .../endfield/deferred-lighting/0x620A40FD.cso | Bin 27940 -> 28060 bytes .../deferred-lighting/0x620A40FD.ps_5_0.asm | 5 +- .../0x620A40FD.ps_5_0_original_backup.asm | 901 ------- .../endfield/deferred-lighting/0x7010AF4B.cso | Bin 27300 -> 27420 bytes .../deferred-lighting/0x7010AF4B.ps_5_0.asm | 13 +- .../0x7010AF4B.ps_5_0_original_backup.asm | 869 ------- .../endfield/deferred-lighting/0x8BA3C806.cso | Bin 48188 -> 48308 bytes .../deferred-lighting/0x8BA3C806.ps_5_0.asm | 13 +- .../0x8BA3C806.ps_5_0_original_backup.asm | 1532 ------------ .../0x8D6CC6FA.ps_5_0_original_backup.asm | 2190 ----------------- .../0x9630ACD4.ps_5_0_original_backup.asm | 1576 ------------ .../endfield/deferred-lighting/0x99725481.cso | Bin 60672 -> 60792 bytes .../deferred-lighting/0x99725481.ps_5_0.asm | 13 +- .../0x99725481.ps_5_0_original_backup.asm | 1959 --------------- .../endfield/deferred-lighting/0xA4113DE8.cso | Bin 39252 -> 39372 bytes .../deferred-lighting/0xA4113DE8.ps_5_0.asm | 13 +- .../0xA4113DE8.ps_5_0_original_backup.asm | 1279 ---------- .../endfield/deferred-lighting/0xB094C87E.cso | Bin 51188 -> 51308 bytes .../deferred-lighting/0xB094C87E.ps_5_0.asm | 5 +- .../0xB094C87E.ps_5_0_original_backup.asm | 1661 ------------- .../endfield/deferred-lighting/0xBD99F0C4.cso | Bin 30100 -> 30220 bytes .../deferred-lighting/0xBD99F0C4.ps_5_0.asm | 5 +- .../0xBD99F0C4.ps_5_0_original_backup.asm | 990 -------- .../0xC34914B1.ps_5_0_original_backup.asm | 1911 -------------- .../endfield/deferred-lighting/0xD3FA93FC.cso | Bin 48536 -> 48664 bytes .../deferred-lighting/0xD3FA93FC.ps_5_0.asm | 38 +- .../0xD3FA93FC.ps_5_0_original_backup.asm | 1573 ------------ .../endfield/deferred-lighting/0xD5B102A4.cso | Bin 38580 -> 38860 bytes .../deferred-lighting/0xD5B102A4.ps_5_0.asm | 13 +- .../0xD5B102A4.ps_5_0_original_backup.asm | 1263 ---------- .../endfield/deferred-lighting/0xD88CD7C9.cso | Bin 26292 -> 26420 bytes .../deferred-lighting/0xD88CD7C9.ps_5_0.asm | 46 +- .../0xD88CD7C9.ps_5_0_original_backup.asm | 853 ------- .../endfield/deferred-lighting/0xE322C21D.cso | Bin 49564 -> 49684 bytes .../deferred-lighting/0xE322C21D.ps_5_0.asm | 5 +- .../0xE322C21D.ps_5_0_original_backup.asm | 1590 ------------ .../0xEC0BE43D.ps_5_0_original_backup.asm | 1847 -------------- .../endfield/deferred-lighting/0xF901F0EC.cso | Bin 29572 -> 29692 bytes .../deferred-lighting/0xF901F0EC.ps_5_0.asm | 5 +- .../0xF901F0EC.ps_5_0_original_backup.asm | 973 -------- .../deferred-lighting/Notes for future.txt | 14 + .../deferred-lighting/fog_blend_test.asm | 50 - .../deferred-lighting/fog_blend_test.cso | Bin 1052 -> 0 bytes src/games/endfield/glass/0x183ADBF7.cso | Bin 0 -> 56220 bytes ...ginal_backup.asm => 0x183ADBF7.ps_5_0.asm} | 1890 +++++++------- src/games/endfield/glass/0x41AF9F2B.cso | Bin 0 -> 55588 bytes .../endfield/glass/0x41AF9F2B.ps_5_0.asm | 1805 ++++++++++++++ src/games/endfield/glass/0x424F9536.cso | Bin 0 -> 56364 bytes .../endfield/glass/0x424F9536.ps_5_0.asm | 1833 ++++++++++++++ src/games/endfield/glass/0x69B6459F.cso | Bin 0 -> 55740 bytes .../endfield/glass/0x69B6459F.ps_5_0.asm | 1812 ++++++++++++++ src/games/endfield/glass/0x843686F6.cso | Bin 0 -> 57100 bytes .../endfield/glass/0x843686F6.ps_5_0.asm | 1860 ++++++++++++++ src/games/endfield/glass/0x859412D4.cso | Bin 0 -> 56676 bytes .../endfield/glass/0x859412D4.ps_5_0.asm | 1840 ++++++++++++++ .../0xB317E9E1.ps_5_0_original_backup.asm | 1707 ------------- .../0xB8941FB1.ps_5_0_original_backup.asm | 1754 ------------- src/games/endfield/glass/0xD2EC68A2.cso | Bin 0 -> 55952 bytes .../endfield/glass/0xD2EC68A2.ps_5_0.asm | 1817 ++++++++++++++ src/games/endfield/glass/0xF831814B.cso | Bin 0 -> 53924 bytes .../endfield/glass/0xF831814B.ps_5_0.asm | 1758 +++++++++++++ .../others/blit_0x7CF14F74.ps_5_0.hlsl | 42 + .../others/skybox2_0xEC809E79.ps_5_0.hlsl | 9 + .../others/skybox_0x9E0DE464.ps_5_0.hlsl | 8 + .../sun-lens-dirt_0xC3217979.ps_5_0.hlsl | 2 +- .../cloud-shadows_0x61FA72DD.ps_5_0.hlsl | 2 +- .../grass-shadowing_0x0C02AB31.cs_5_0.hlsl | 8 +- src/games/endfield/shared.h | 39 +- .../ssr/ssr-denoiser_0xF99BCA96.cs_5_0.hlsl | 203 ++ .../ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl | 348 +++ ...sl => ssr-temporal_0xE92EE541.cs_5_0.hlsl} | 27 +- .../ssr/ssr-upsample_0xE714AB7B.cs_5_0.hlsl | 76 + .../ui/latencybar_0x9BDC181F.vs_5_0.hlsl | 48 +- .../endfield/ui/ui14_0xB084133A.ps_5_0.hlsl | 95 + .../endfield/ui/ui15_0x25054A9A.ps_5_0.hlsl | 97 + src/games/endfield/waterfalls/0xF5AB0A61.cso | Bin 0 -> 59728 bytes .../endfield/waterfalls/0xF5AB0A61.ps_5_0.asm | 1934 +++++++++++++++ 100 files changed, 18436 insertions(+), 37279 deletions(-) rename src/games/endfield/{ => ao}/ao-blur_0x80CD64F6.cs_5_0.hlsl (89%) create mode 100644 src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl create mode 100644 src/games/endfield/ao/gtao-spatial-avg_0xB6A67E5A.cs_5_0.hlsl create mode 100644 src/games/endfield/ao/gtao-temporal_0x3F036C0E.cs_5_0.hlsl create mode 100644 src/games/endfield/ao/gtao-vertical-blur_0x88B36DD5.cs_5_0.hlsl create mode 100644 src/games/endfield/bloom/bloom-downsample-lut_0xC58C5FBA.cs_5_0.hlsl create mode 100644 src/games/endfield/bloom/bloom-downsample_0x2CF2F67B.cs_5_0.hlsl create mode 100644 src/games/endfield/bloom/bloom-downsample_0x948BF835.cs_5_0.hlsl delete mode 100644 src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x37837806.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x518D3855.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x5468822B.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x8D6CC6FA.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x9630ACD4.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0x99725481.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xEC0BE43D.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/deferred-lighting/Notes for future.txt delete mode 100644 src/games/endfield/deferred-lighting/fog_blend_test.asm delete mode 100644 src/games/endfield/deferred-lighting/fog_blend_test.cso create mode 100644 src/games/endfield/glass/0x183ADBF7.cso rename src/games/endfield/glass/{0x754218B1.ps_5_0_original_backup.asm => 0x183ADBF7.ps_5_0.asm} (53%) create mode 100644 src/games/endfield/glass/0x41AF9F2B.cso create mode 100644 src/games/endfield/glass/0x41AF9F2B.ps_5_0.asm create mode 100644 src/games/endfield/glass/0x424F9536.cso create mode 100644 src/games/endfield/glass/0x424F9536.ps_5_0.asm create mode 100644 src/games/endfield/glass/0x69B6459F.cso create mode 100644 src/games/endfield/glass/0x69B6459F.ps_5_0.asm create mode 100644 src/games/endfield/glass/0x843686F6.cso create mode 100644 src/games/endfield/glass/0x843686F6.ps_5_0.asm create mode 100644 src/games/endfield/glass/0x859412D4.cso create mode 100644 src/games/endfield/glass/0x859412D4.ps_5_0.asm delete mode 100644 src/games/endfield/glass/0xB317E9E1.ps_5_0_original_backup.asm delete mode 100644 src/games/endfield/glass/0xB8941FB1.ps_5_0_original_backup.asm create mode 100644 src/games/endfield/glass/0xD2EC68A2.cso create mode 100644 src/games/endfield/glass/0xD2EC68A2.ps_5_0.asm create mode 100644 src/games/endfield/glass/0xF831814B.cso create mode 100644 src/games/endfield/glass/0xF831814B.ps_5_0.asm create mode 100644 src/games/endfield/ssr/ssr-denoiser_0xF99BCA96.cs_5_0.hlsl create mode 100644 src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl rename src/games/endfield/ssr/{0xE92EE541.cs_5_0.hlsl => ssr-temporal_0xE92EE541.cs_5_0.hlsl} (95%) create mode 100644 src/games/endfield/ssr/ssr-upsample_0xE714AB7B.cs_5_0.hlsl create mode 100644 src/games/endfield/ui/ui14_0xB084133A.ps_5_0.hlsl create mode 100644 src/games/endfield/ui/ui15_0x25054A9A.ps_5_0.hlsl create mode 100644 src/games/endfield/waterfalls/0xF5AB0A61.cso create mode 100644 src/games/endfield/waterfalls/0xF5AB0A61.ps_5_0.asm diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index e98c0a6d7..c3e94edf8 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -5,7 +5,7 @@ #define ImTextureID ImU64 -#define DEBUG_LEVEL_0 +// #define DEBUG_LEVEL_0 #include #include @@ -100,6 +100,10 @@ static uint32_t last_rtv_height = 0; // This prevents ReShade from rendering during normal present while allowing our bypass to work static bool bypass_render_active = false; +// Deferred Tech Test preset application (avoids crash from UpdateSetting inside on_change_value) +static int pending_tech_test_preset = -1; // -1 = none, 0 = restore defaults, 1 = apply tech test +static float prev_tech_test_look = -1.f; // impossible initial value forces first-frame detection + // Callback to disable effects during normal present when bypass is enabled // This prevents double-rendering (once via bypass, once via normal present) void OnReshadeBeginEffects(reshade::api::effect_runtime* runtime, @@ -150,6 +154,7 @@ bool ExecuteReshadeEffects(reshade::api::command_list* cmd_list) { const std::shared_lock lock(data->mutex); for (auto* runtime : data->effect_runtimes) { if (rtv_width != last_rtv_width || rtv_height != last_rtv_height) { +#ifdef DEBUG_LEVEL_0 uint32_t swapchain_width = 0, swapchain_height = 0; runtime->get_screenshot_width_and_height(&swapchain_width, &swapchain_height); @@ -157,6 +162,7 @@ bool ExecuteReshadeEffects(reshade::api::command_list* cmd_list) { ss << "[Endfield] ExecuteReshadeEffects: Rendering at RTV=" << rtv_width << "x" << rtv_height << " (Swapchain=" << swapchain_width << "x" << swapchain_height << ")"; reshade::log::message(reshade::log::level::info, ss.str().c_str()); +#endif last_rtv_width = rtv_width; last_rtv_height = rtv_height; @@ -768,6 +774,195 @@ renodx::utils::settings::Settings settings = { .tooltip = "Disables the game's built-in GTAO (Ground Truth Ambient Occlusion).\nUseful when using ReShade-based AO instead.", .labels = {"Off", "On"}, }, + new renodx::utils::settings::Setting{ + .key = "AORadius", + .binding = &shader_injection.ao_radius, + .default_value = 4.f, + .label = "AO Radius", + .section = "Ambient Occlusion", + .tooltip = "World-space sampling radius. Larger values detect occlusion from more distant geometry.", + .max = 16.f, + .format = "%.1f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AORadiusScale", + .binding = &shader_injection.ao_radius_scale, + .default_value = 1.f, + .label = "AO Radius Scale", + .section = "Ambient Occlusion", + .tooltip = "Multiplier on the effective radius. Fine-tune the reach of the AO sampling.", + .max = 5.f, + .format = "%.2f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AOFalloffRange", + .binding = &shader_injection.ao_falloff_range, + .default_value = 1.f, + .label = "AO Falloff Range", + .section = "Ambient Occlusion", + .tooltip = "Fraction of radius used for distance falloff (0-1). Lower = sharper falloff.", + .max = 1.f, + .format = "%.2f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AODistributionPower", + .binding = &shader_injection.ao_distribution_power, + .default_value = 2.f, + .label = "AO Distribution Power", + .section = "Ambient Occlusion", + .tooltip = "Controls how sample distances are distributed. Higher = samples pushed further out.", + .max = 5.f, + .format = "%.2f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AOThinOccluder", + .binding = &shader_injection.ao_thin_occluder, + .default_value = 2.f, + .label = "AO Thin Occluder", + .section = "Ambient Occlusion", + .tooltip = "Thin occluder compensation factor. Higher = more AO contribution from thin objects.", + .max = 8.f, + .format = "%.1f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AOGamma", + .binding = &shader_injection.ao_gamma, + .default_value = 2.2f, + .label = "AO Intensity (Gamma)", + .section = "Ambient Occlusion", + .tooltip = "Power curve applied to the final AO. Higher = darker/stronger occlusion.", + .max = 5.f, + .format = "%.2f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AOTemporalFrame", + .binding = &shader_injection.ao_temporal_frame, + .default_value = 64.f, + .label = "AO Temporal Frame", + .section = "Ambient Occlusion", + .tooltip = "Temporal frame count for jitter rotation cycling. Higher = more noise variation frames.", + .max = 128.f, + .format = "%.0f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AOMipBias", + .binding = &shader_injection.ao_mip_bias, + .default_value = 4.f, + .label = "AO Mip Bias", + .section = "Ambient Occlusion", + .tooltip = "Mip level bias for depth sampling. Higher = coarser/smoother depth reads.", + .max = 8.f, + .format = "%.1f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AODirectionCount", + .binding = &shader_injection.ao_direction_count, + .default_value = 6.f, + .label = "AO Direction Count", + .section = "Ambient Occlusion", + .tooltip = "Number of directional slices for horizon search. More = higher quality, higher cost.", + .min = 1.f, + .max = 12.f, + .format = "%.0f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AOStepCount", + .binding = &shader_injection.ao_step_count, + .default_value = 6.f, + .label = "AO Step Count", + .section = "Ambient Occlusion", + .tooltip = "Number of sample steps per direction. More = better horizon accuracy, higher cost.", + .min = 1.f, + .max = 12.f, + .format = "%.0f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AONormalAttenuation", + .binding = &shader_injection.ao_normal_attenuation, + .default_value = 0.05f, + .label = "AO Normal Attenuation", + .section = "Ambient Occlusion", + .tooltip = "Blends between surface normal and view direction for the visibility integral.", + .max = 1.f, + .format = "%.3f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AOThickness", + .binding = &shader_injection.ao_thickness, + .default_value = 0.5f, + .label = "AO Thickness", + .section = "Ambient Occlusion", + .tooltip = "Assumed thickness of occluders. Controls min-sample distance and bitmask backface offset.", + .max = 5.f, + .format = "%.2f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AODenoiserBlurBeta", + .binding = &shader_injection.ao_denoiser_blur_beta, + .default_value = 0.f, + .label = "AO Denoiser Blur", + .section = "Ambient Occlusion", + .tooltip = "Bilateral blur edge sensitivity. Higher = more blur, less edge preservation.", + .max = 3.f, + .format = "%.2f", + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AODebugView", + .binding = &shader_injection.ao_debug_view, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 0.f, + .label = "AO Debug View", + .section = "Ambient Occlusion", + .tooltip = "Switches between normal scene rendering and AO-only debug visualization.", + .labels = {"Off", "AO Only"}, + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .key = "AOBitmask", + .binding = &shader_injection.ao_bitmask, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 1.f, + .label = "AO Visibility Bitmask", + .section = "Ambient Occlusion", + .tooltip = "Enables XeGTAO visibility bitmask method. Replaces the default horizon-based integration with a bitmask-based approach for improved multi-layer occlusion.", + .labels = {"Off", "On"}, + .is_visible = []() { return false; }, + }, + new renodx::utils::settings::Setting{ + .value_type = renodx::utils::settings::SettingValueType::BUTTON, + .label = "Reset AO Settings to Defaults", + .section = "Ambient Occlusion", + .on_change = []() { + renodx::utils::settings::UpdateSetting("AORadius", 4.f); + renodx::utils::settings::UpdateSetting("AORadiusScale", 1.f); + renodx::utils::settings::UpdateSetting("AOFalloffRange", 1.f); + renodx::utils::settings::UpdateSetting("AODistributionPower", 2.f); + renodx::utils::settings::UpdateSetting("AOThinOccluder", 2.f); + renodx::utils::settings::UpdateSetting("AOGamma", 2.2f); + renodx::utils::settings::UpdateSetting("AOTemporalFrame", 64.f); + renodx::utils::settings::UpdateSetting("AOMipBias", 4.f); + renodx::utils::settings::UpdateSetting("AODirectionCount", 6.f); + renodx::utils::settings::UpdateSetting("AOStepCount", 6.f); + renodx::utils::settings::UpdateSetting("AONormalAttenuation", 0.05f); + renodx::utils::settings::UpdateSetting("AOThickness", 0.5f); + renodx::utils::settings::UpdateSetting("AODenoiserBlurBeta", 0.f); + renodx::utils::settings::UpdateSetting("AODebugView", 0.f); + renodx::utils::settings::UpdateSetting("AOBitmask", 1.f); + }, + }, new renodx::utils::settings::Setting{ .key = "HDRSun", .binding = &shader_injection.sun_intensity, @@ -803,7 +998,7 @@ renodx::utils::settings::Settings settings = { .key = "FogModification", .binding = &shader_injection.fog_modification, .value_type = renodx::utils::settings::SettingValueType::INTEGER, - .default_value = 1.f, + .default_value = 0.f, .label = "Hue-Preserving Fog", .section = "Rendering Improvements", .tooltip = "Toggles alternative hue-preserving fog", @@ -840,6 +1035,30 @@ renodx::utils::settings::Settings settings = { .tooltip = "Improves glass rendering to look more transparent and less cloudy/glowing", .labels = {"Vanilla", "Improved"}, }, + new renodx::utils::settings::Setting{ + .key = "ImprovedSSR", + .binding = &shader_injection.improved_ssr, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 1.f, + .label = "SSR Quality", + .section = "Rendering Improvements", + .tooltip = "Controls the game's SSR denoiser behavior.\n" + "Vanilla: Original denoiser.\n" + "Improved: Sharper reflections on smooth surfaces (metals, glass)\n" + " while retaining proper diffusion on rough surfaces (wood, stone).\n" + " Temporal smoothing is preserved to minimize firefly artifacts.", + .labels = {"Vanilla", "Improved"}, + }, + new renodx::utils::settings::Setting{ + .key = "ImprovedGTAO", + .binding = &shader_injection.improved_gtao, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 1.f, + .label = "GTAO + Visibility Bitmask + Deferred AO Modulation", + .section = "Rendering Improvements", + .tooltip = "Improves vanilla GTAO with visibility bitmask and AO modulation on direct lights (spotlights, point lights).", + .labels = {"Original", "Improved"}, + }, new renodx::utils::settings::Setting{ .key = "SwapChainCustomColorSpace", .binding = &shader_injection.swap_chain_custom_color_space, @@ -917,6 +1136,19 @@ renodx::utils::settings::Settings settings = { .parse = [](float value) { return value - 1.f; }, .is_visible = []() { return false; }, }, + new renodx::utils::settings::Setting{ + .key = "TechTestLook", + .binding = &shader_injection.tech_test_look, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 0.f, + .label = "Tech Test Look", + .section = "Alternative Grading", + .tooltip = "Activates visual adjustments to match the 2024 tech test aesthetic", + .labels = {"Off", "On"}, + .on_change_value = [](float previous, float current) { + if (current >= 1.f) pending_tech_test_preset = 1; + }, + }, new renodx::utils::settings::Setting{ .value_type = renodx::utils::settings::SettingValueType::BUTTON, .label = "Discord", @@ -965,11 +1197,22 @@ renodx::utils::settings::Settings settings = { }; void OnPresetOff() { - // renodx::utils::settings::UpdateSetting("toneMapType", 0.f); - // renodx::utils::settings::UpdateSetting("toneMapPeakNits", 203.f); - // renodx::utils::settings::UpdateSetting("toneMapGameNits", 203.f); - // renodx::utils::settings::UpdateSetting("toneMapUINits", 203.f); - // renodx::utils::settings::UpdateSetting("toneMapGammaCorrection", 0); + renodx::utils::settings::UpdateSetting("ToneMapType", 0.f); + renodx::utils::settings::UpdateSetting("ToneMapPeakNits", 203.f); + renodx::utils::settings::UpdateSetting("ToneMapGameNits", 203.f); + renodx::utils::settings::UpdateSetting("ToneMapUINits", 203.f); + renodx::utils::settings::UpdateSetting("ToneMapGammaCorrection", 1.f); + renodx::utils::settings::UpdateSetting("GammaCorrection", 1.f); + renodx::utils::settings::UpdateSetting("SwapChainGammaCorrection", 1.f); + renodx::utils::settings::UpdateSetting("HDRSun", 0.f); + renodx::utils::settings::UpdateSetting("Godrays", 1.f); + renodx::utils::settings::UpdateSetting("SHADOW_HARDENING", 0.f); + renodx::utils::settings::UpdateSetting("FogModification", 0.f); + renodx::utils::settings::UpdateSetting("CubemapAmbientLink", 0.f); + renodx::utils::settings::UpdateSetting("GlassTransparency", 0.f); + renodx::utils::settings::UpdateSetting("ImprovedSSR", 0.f); + renodx::utils::settings::UpdateSetting("ImprovedGTAO", 0.f); + renodx::utils::settings::UpdateSetting("TechTestLook", 0.f); // renodx::utils::settings::UpdateSetting("colorGradeExposure", 1.f); // renodx::utils::settings::UpdateSetting("colorGradeHighlights", 50.f); // renodx::utils::settings::UpdateSetting("colorGradeShadows", 50.f); @@ -1039,12 +1282,40 @@ void OnPresent(reshade::api::command_queue* queue, shader_injection.custom_flip_uv_y = 1.f; } + // Compute UI aspect ratio from swapchain for dynamic latency bar detection + auto bb = device->get_resource_desc(swapchain->get_current_back_buffer()); + if (bb.type != reshade::api::resource_type::unknown) { + shader_injection.ui_aspect_ratio = static_cast(bb.texture.height) / static_cast(bb.texture.width); + } + // Reset heuristic tracking flags for ping/UID detection is_ping_input_candidate = false; is_uid_input_candidate = false; is_ping_drawn = false; draw_call_vertex_count = 0; + // Detect Tech Test state changes from preset loads, game startup, or manual toggle + float current_tech_test = shader_injection.tech_test_look; + if (current_tech_test != prev_tech_test_look) { + if (current_tech_test >= 1.f) pending_tech_test_preset = 1; + prev_tech_test_look = current_tech_test; + } + + // Apply deferred Tech Test preset (safe context, outside settings callback) + if (pending_tech_test_preset == 1) { + renodx::utils::settings::UpdateSetting("GammaCorrection", 2.f); + renodx::utils::settings::UpdateSetting("SwapChainGammaCorrection", 2.f); + renodx::utils::settings::UpdateSetting("ToneMapPerChannelBlowout", 75.f); + renodx::utils::settings::UpdateSetting("ColorGradeExposure", 0.65f); + renodx::utils::settings::UpdateSetting("ColorGradeHighlights", 51.f); + renodx::utils::settings::UpdateSetting("ColorGradeShadows", 80.f); + renodx::utils::settings::UpdateSetting("ColorGradeContrast", 55.f); + renodx::utils::settings::UpdateSetting("ColorGradeSaturation", 35.f); + renodx::utils::settings::UpdateSetting("ColorGradeHighlightSaturation", 100.f); + renodx::utils::settings::UpdateSetting("ColorGradeBlowout", 30.f); + pending_tech_test_preset = -1; + } + // Check UI visibility hotkey (skip if user is currently setting a new hotkey) if (ui_toggle_hotkey != 0 && !hotkey_input_active) { bool key_down = (GetAsyncKeyState(ui_toggle_hotkey) & 0x8000) != 0; @@ -1257,6 +1528,7 @@ BOOL APIENTRY DllMain(HMODULE h_module, DWORD fdw_reason, LPVOID lpv_reserved) { 0x0E84DFD1u, 0x99725481u, 0xA4113DE8u, + 0xD5B102A4u, }; */ diff --git a/src/games/endfield/ao-blur_0x80CD64F6.cs_5_0.hlsl b/src/games/endfield/ao/ao-blur_0x80CD64F6.cs_5_0.hlsl similarity index 89% rename from src/games/endfield/ao-blur_0x80CD64F6.cs_5_0.hlsl rename to src/games/endfield/ao/ao-blur_0x80CD64F6.cs_5_0.hlsl index 9f1054fe8..05f057651 100644 --- a/src/games/endfield/ao-blur_0x80CD64F6.cs_5_0.hlsl +++ b/src/games/endfield/ao/ao-blur_0x80CD64F6.cs_5_0.hlsl @@ -1,8 +1,4 @@ -// AO Blur Shader with toggle - Replacement for 0x80CD64F6 -// When disable_game_ao is enabled, outputs 1.0 (no occlusion) -// Otherwise runs normal blur - -#include "./shared.h" +#include "../shared.h" Texture2D t2 : register(t2); Texture2D t1 : register(t1); @@ -31,6 +27,7 @@ void main(uint3 vThreadID : SV_DispatchThreadID) { float r1x = t1.SampleLevel(s0_s, r0zw, 0).z; r1x = 1.0 - r1x; r1x = saturate(r1x + r1x); + r1x *= AO_DENOISER_BLUR_BETA; float r1y = t0.SampleLevel(s0_s, r0zw, 0).x; float r1z = cb0[3].z; diff --git a/src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl b/src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl new file mode 100644 index 000000000..66ceba190 --- /dev/null +++ b/src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl @@ -0,0 +1,420 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 10 15:11:49 2026 +Texture2D t1 : register(t1); + +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb1 : register(b1) +{ + float4 cb1[4]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[16]; +} + + +#include "../shared.h" + +#define cmp - + +// --- Visibility Bitmask helpers (XeGTAO) --- +static const float BM_HALF_PI = 1.5707963267948966; +static const float BM_PI = 3.1415926535897932; +static const float BM_NUM_BITS = 32.0; + +float BM_FastSqrt(float x) { + return asfloat(0x1fbd1df5 + (asint(x) >> 1)); +} + +float BM_FastACos(float inX) { + float x = abs(inX); + float res = -0.156583 * x + BM_HALF_PI; + res *= BM_FastSqrt(1.0 - x); + return (inX >= 0) ? res : BM_PI - res; +} + +uint BM_UpdateSectors(float minHorizon, float maxHorizon, uint bm) { + int startBit = (int)(minHorizon * BM_NUM_BITS); + int numBits = max((int)(round((maxHorizon - minHorizon) * BM_NUM_BITS)), 0); + startBit = clamp(startBit, 0, 31); + numBits = clamp(numBits, 0, 32 - startBit); + if (numBits > 0) { + uint mask = ((1u << (uint)numBits) - 1u) << (uint)startBit; + bm |= mask; + } + return bm; +} + +void BM_ProcessSample(float3 deltaPos, float3 viewVec, float samplingDir, float n, float thickness, inout uint bm) { + float3 deltaPosBack = deltaPos - viewVec * thickness; + float2 frontBackH = float2( + BM_FastACos(dot(normalize(deltaPos), viewVec)), + BM_FastACos(dot(normalize(deltaPosBack), viewVec)) + ); + float2 N = float2(n, n); + frontBackH = saturate((samplingDir * -frontBackH - N + BM_HALF_PI) / BM_PI); + frontBackH = (samplingDir >= 0.0) ? frontBackH.yx : frontBackH.xy; + frontBackH = smoothstep(0.0, 1.0, frontBackH); + bm = BM_UpdateSectors(frontBackH.x, frontBackH.y, bm); +} +// --- End Visibility Bitmask helpers --- + +RWTexture2D u0 : register(u0); + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) +{ + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16; + + // Select between vanilla cbuffer values and improved custom values + bool use_improved = (IMPROVED_GTAO >= 0.5); + float _ao_radius = use_improved ? AO_RADIUS : cb1[0].x; + float _ao_radius_scale = use_improved ? AO_RADIUS_SCALE : cb1[0].y; + float _ao_falloff_range = use_improved ? AO_FALLOFF_RANGE : cb1[0].z; + float _ao_distribution_power= use_improved ? AO_DISTRIBUTION_POWER: cb1[0].w; + float _ao_thin_occluder = use_improved ? AO_THIN_OCCLUDER : cb1[1].x; + float _ao_gamma = use_improved ? AO_GAMMA : cb1[1].y; + float _ao_mip_bias = use_improved ? AO_MIP_BIAS : cb1[1].w; + float _ao_thickness = use_improved ? AO_THICKNESS : 1.3; + float _ao_direction_count = use_improved ? AO_DIRECTION_COUNT : 3.0; + float _ao_normal_attenuation= use_improved ? AO_NORMAL_ATTENUATION: 0.05; + bool _ao_bitmask = use_improved && (AO_BITMASK >= 0.5); + + r0.xy = vThreadID.yx; + r0.zw = float2(32, 0); + while (true) { + r1.x = cmp(0 >= (uint)r0.z); + if (r1.x != 0) break; + r1.xy = (int2)r0.zz & (int2)r0.yx; + r1.xy = min(uint2(1,1), (uint2)r1.xy); + r1.z = (int)r0.z * (int)r0.z; + r1.w = (int)r1.x * 3; + r1.w = (int)r1.y ^ (int)r1.w; + r0.w = mad((int)r1.z, (int)r1.w, (int)r0.w); + r1.x = cmp((int)r1.x == 1); + r1.zw = (int2)-r0.yx + int2(63,63); + r1.xz = r1.xx ? r1.zw : r0.yx; + r0.xy = r1.yy ? r0.xy : r1.xz; + r0.z = (uint)r0.z >> 1; + } + r0.x = (uint)cb1[1].z; + r0.x = (int)r0.x & 63; + r0.x = mad(288, (int)r0.x, (int)r0.w); + r0.x = (uint)r0.x; + r0.xy = r0.xx * float2(0.754877687,0.569840312) + float2(0.5,0.5); + r0.xy = frac(r0.xy); + r0.zw = (uint2)vThreadID.xy; + r1.xyzw = float4(0.5,0.5,0.5,0.5) + r0.zwzw; + r2.xy = cb1[3].zw * r1.zw; + r2.zw = t0.SampleLevel(s0_s, r2.xy, 0).xy; + r2.zw = r2.zw * float2(2,2) + float2(-1,-1); + r3.x = dot(float2(1,1), abs(r2.zw)); + r3.y = 1 + -r3.x; + r3.w = cmp(r3.y < 0); + r4.xy = cmp(r2.zw >= float2(0,0)); + r4.zw = float2(1,1) + -abs(r2.wz); + r4.xy = r4.xy ? float2(1,1) : float2(-1,-1); + r4.xy = r4.zw * r4.xy; + r3.xz = r3.ww ? r4.xy : r2.zw; + r2.z = dot(r3.xyz, r3.xyz); + r2.z = rsqrt(r2.z); + r3.xyz = r3.xyz * r2.zzz; + r4.xyz = cb0[1].xyz * r3.yyy; + r3.xyw = cb0[0].xyz * r3.xxx + r4.xyz; + r3.xyz = cb0[2].xyz * r3.zzz + r3.xyw; + r0.zw = cb1[3].zw * r0.zw; + r0.z = t1.Gather(s0_s, r0.zw).y; + r4.z = 0.999989986 * r0.z; + r0.zw = r2.xy * float2(2,2) + float2(-1,-1); + r2.xy = cb0[13].xy * r0.ww; + r0.zw = cb0[12].xy * r0.zz + r2.xy; + r0.zw = cb0[14].xy + r0.zw; + r0.zw = cb0[15].xy + r0.zw; + r4.xy = r0.zw * r4.zz; + r4.w = -r4.y; + r0.z = dot(-r4.xzw, -r4.xzw); + r0.z = rsqrt(r0.z); + r2.xyz = -r4.xwz * r0.zzz; + r0.z = _ao_radius * _ao_radius_scale; + r0.w = _ao_falloff_range * r0.z; + r2.w = -1 / r0.w; + r4.y = -_ao_falloff_range + 1; + r4.y = r4.y * r0.z; + r0.w = r4.y / r0.w; + r0.w = 1 + r0.w; + r5.xy = r1.zw * cb1[3].zw + cb1[3].zw; + r5.xy = r5.xy * float2(2,2) + float2(-1,-1); + r4.y = cb0[13].x * r5.y; + r4.y = cb0[12].x * r5.x + r4.y; + r4.y = cb0[14].x + r4.y; + r4.y = cb0[15].x + r4.y; + r4.y = r4.y * r4.z + -r4.x; + r0.z = r0.z / r4.y; + r4.y = _ao_thickness / r0.z; + r5.x = 10 + -r0.z; + r5.x = saturate(0.00999999978 * r5.x); + r5.x = 0.5 * r5.x; + r5.y = _ao_thin_occluder + 1; + r6.z = 0; + r3.w = -r3.z; + r7.x = r5.x; + r7.y = 0; + while (true) { + r3.z = cmp(r7.y >= _ao_direction_count); + if (r3.z != 0) break; + r3.z = r7.y + r0.x; + r3.z = (3.14159265 / _ao_direction_count) * r3.z; + sincos(r3.z, r8.x, r6.x); + r6.y = r8.x; + r8.xyzw = r6.xyxy * r0.zzzz; + r3.z = dot(r6.xy, r2.xy); + r6.xyw = -r2.xyz * r3.zzz + r6.xyz; + r9.xyz = r6.wxy * r2.yzx; + r9.xyz = r6.ywx * r2.zxy + -r9.xyz; + r3.z = dot(r9.xyz, r9.xyz); + r3.z = rsqrt(r3.z); + r9.xyz = r9.xyz * r3.zzz; + r3.z = dot(r3.xyw, r9.xyz); + r9.xyz = -r9.xyz * r3.zzz + r3.xyw; + r3.z = dot(r9.xyz, r9.xyz); + r3.z = sqrt(r3.z); + r5.z = dot(r9.xyz, r2.xyz); + r5.z = saturate(r5.z / r3.z); + r5.w = dot(r6.xyw, r9.xyz); + r6.x = cmp(0 < r5.w); + r5.w = cmp(r5.w < 0); + r5.w = (int)-r6.x + (int)r5.w; + r5.w = (int)r5.w; + r6.x = r5.z * -0.156582996 + 1.57079601; + r6.y = 1 + -r5.z; + r6.y = asfloat(asuint(r6.y) >> 1); + r6.y = asfloat(asint(r6.y) + 0x1fbd1df5); + r6.x = r6.x * r6.y; + r6.x = max(0, r6.x); + r6.x = min(3.14159298, r6.x); + r6.y = r6.x * r5.w; + r9.xy = r5.ww * r6.xx + float2(1.57079637,-1.57079637); + r9.xy = cos(r9.xy); + uint bitmask = 0u; + r6.w = r7.y * 0.618034005 + r0.y; + r6.w = frac(r6.w); + r6.w = 0.333333343 * r6.w; + r6.w = log2(r6.w); + r6.w = _ao_distribution_power * r6.w; + r6.w = exp2(r6.w); + r6.w = r6.w + r4.y; + r9.zw = r8.zw * r6.ww; + r6.w = dot(r9.zw, r9.zw); + r6.w = sqrt(r6.w); + r6.w = log2(r6.w); + r6.w = -_ao_mip_bias + r6.w; + r6.w = max(0, r6.w); + r6.w = min(4, r6.w); + r9.zw = round(r9.zw); + r9.zw = cb1[3].zw * r9.zw; + r10.xy = r1.zw * cb1[3].zw + r9.zw; + r11.w = t1.SampleLevel(s0_s, r10.xy, r6.w).x; + r10.xy = r10.xy * float2(2,2) + float2(-1,-1); + r10.yz = cb0[13].xy * r10.yy; + r10.xy = cb0[12].xy * r10.xx + r10.yz; + r10.xy = cb0[14].xy + r10.xy; + r10.xy = cb0[15].xy + r10.xy; + r11.xy = r10.xy * r11.ww; + r9.zw = r1.zw * cb1[3].zw + -r9.zw; + r10.w = t1.SampleLevel(s0_s, r9.zw, r6.w).x; + r9.zw = r9.zw * float2(2,2) + float2(-1,-1); + r12.xy = cb0[13].xy * r9.ww; + r9.zw = cb0[12].xy * r9.zz + r12.xy; + r9.zw = cb0[14].xy + r9.zw; + r9.zw = cb0[15].xy + r9.zw; + r10.xy = r9.zw * r10.ww; + r11.z = -r11.y; + r11.xyz = r11.xzw + -r4.xwz; + r10.z = -r10.y; + r10.xyz = r10.xzw + -r4.xwz; + // Bitmask: process step 0 samples + if (_ao_bitmask) { + BM_ProcessSample(r11.xyz, r2.xyz, -1.0, r6.y, _ao_thickness, bitmask); + BM_ProcessSample(r10.xyz, r2.xyz, 1.0, r6.y, _ao_thickness, bitmask); + } + r6.w = dot(r11.xyz, r11.xyz); + r6.w = sqrt(r6.w); + r12.xyz = r11.xyz / r6.www; + r6.w = dot(r12.xyz, r2.xyz); + r11.w = r11.z * r5.y; + r9.z = dot(r11.xyw, r11.xyw); + r9.z = sqrt(r9.z); + r9.z = saturate(r9.z * r2.w + r0.w); + r6.w = r6.w + -r9.x; + r6.w = r9.z * r6.w + r9.x; + r6.w = max(r9.x, r6.w); + r9.z = dot(r10.xyz, r10.xyz); + r9.z = sqrt(r9.z); + r11.xyz = r10.xyz / r9.zzz; + r9.z = dot(r11.xyz, r2.xyz); + r10.w = r10.z * r5.y; + r9.w = dot(r10.xyw, r10.xyw); + r9.w = sqrt(r9.w); + r9.w = saturate(r9.w * r2.w + r0.w); + r9.z = r9.z + -r9.y; + r9.z = r9.w * r9.z + r9.y; + r9.z = max(r9.y, r9.z); + r7.yzw = float3(1,3,6) + r7.yyy; + r10.xyzw = r7.zzww * float4(0.618034005,0.618034005,0.618034005,0.618034005) + r0.yyyy; + r10.xyzw = frac(r10.xyzw); + r10.xyzw = float4(1,1,2,2) + r10.xyzw; + r10.xyzw = float4(0.333333343,0.333333343,0.333333343,0.333333343) * r10.xyzw; + r10.xyzw = log2(r10.xyzw); + r10.xyzw = _ao_distribution_power * r10.xyzw; + r10.xyzw = exp2(r10.xyzw); + r10.xyzw = r10.xyzw + r4.yyyy; + r8.xyzw = r10.xyzw * r8.xyzw; + r7.z = dot(r8.xy, r8.xy); + r7.z = sqrt(r7.z); + r7.z = log2(r7.z); + r7.z = -_ao_mip_bias + r7.z; + r7.z = max(0, r7.z); + r7.z = min(4, r7.z); + r10.xyzw = round(r8.xyzw); + r10.xyzw = cb1[3].zwzw * r10.xyzw; + r11.xyzw = r1.zwzw * cb1[3].zwzw + r10.xyzw; + r12.w = t1.SampleLevel(s0_s, r11.xy, r7.z).x; + r13.xyzw = r11.xyzw * float4(2,2,2,2) + float4(-1,-1,-1,-1); + r14.xyzw = cb0[13].xyxy * r13.yyww; + r13.xyzw = cb0[12].xyxy * r13.xxzz + r14.xyzw; + r13.xyzw = cb0[14].xyxy + r13.xyzw; + r13.xyzw = cb0[15].xyxy + r13.xyzw; + r12.xy = r13.xy * r12.ww; + r10.xyzw = r1.xyzw * cb1[3].zwzw + -r10.xyzw; + r14.w = t1.SampleLevel(s0_s, r10.xy, r7.z).x; + r15.xyzw = r10.xyzw * float4(2,2,2,2) + float4(-1,-1,-1,-1); + r16.xyzw = cb0[13].xyxy * r15.yyww; + r15.xyzw = cb0[12].xyxy * r15.xxzz + r16.xyzw; + r15.xyzw = cb0[14].xyxy + r15.xyzw; + r15.xyzw = cb0[15].xyxy + r15.xyzw; + r14.xy = r15.xy * r14.ww; + r12.z = -r12.y; + r12.xyz = r12.xzw + -r4.xwz; + r14.z = -r14.y; + r14.xyz = r14.xzw + -r4.xwz; + // Bitmask: process step 1 samples + if (_ao_bitmask) { + BM_ProcessSample(r12.xyz, r2.xyz, -1.0, r6.y, _ao_thickness, bitmask); + BM_ProcessSample(r14.xyz, r2.xyz, 1.0, r6.y, _ao_thickness, bitmask); + } + r7.z = dot(r12.xyz, r12.xyz); + r7.z = sqrt(r7.z); + r16.xyz = r12.xyz / r7.zzz; + r7.z = dot(r16.xyz, r2.xyz); + r12.w = r12.z * r5.y; + r7.w = dot(r12.xyw, r12.xyw); + r7.w = sqrt(r7.w); + r7.w = saturate(r7.w * r2.w + r0.w); + r7.z = r7.z + -r9.x; + r7.z = r7.w * r7.z + r9.x; + r6.w = max(r7.z, r6.w); + r7.z = dot(r14.xyz, r14.xyz); + r7.z = sqrt(r7.z); + r12.xyz = r14.xyz / r7.zzz; + r7.z = dot(r12.xyz, r2.xyz); + r14.w = r14.z * r5.y; + r7.w = dot(r14.xyw, r14.xyw); + r7.w = sqrt(r7.w); + r7.w = saturate(r7.w * r2.w + r0.w); + r7.z = r7.z + -r9.y; + r7.z = r7.w * r7.z + r9.y; + r7.z = max(r9.z, r7.z); + r7.w = dot(r8.zw, r8.zw); + r7.w = sqrt(r7.w); + r7.w = log2(r7.w); + r7.w = -_ao_mip_bias + r7.w; + r7.w = max(0, r7.w); + r7.w = min(4, r7.w); + r8.w = t1.SampleLevel(s0_s, r11.zw, r7.w).x; + r8.xy = r13.zw * r8.ww; + r10.w = t1.SampleLevel(s0_s, r10.zw, r7.w).x; + r10.xy = r15.zw * r10.ww; + r8.z = -r8.y; + r8.xyz = r8.xzw + -r4.xwz; + r10.z = -r10.y; + r10.xyz = r10.xzw + -r4.xwz; + // Bitmask: process step 2 samples + if (_ao_bitmask) { + BM_ProcessSample(r8.xyz, r2.xyz, -1.0, r6.y, _ao_thickness, bitmask); + BM_ProcessSample(r10.xyz, r2.xyz, 1.0, r6.y, _ao_thickness, bitmask); + } + r7.w = dot(r8.xyz, r8.xyz); + r7.w = sqrt(r7.w); + r11.xyz = r8.xyz / r7.www; + r7.w = dot(r11.xyz, r2.xyz); + r8.w = r8.z * r5.y; + r8.x = dot(r8.xyw, r8.xyw); + r8.x = sqrt(r8.x); + r8.x = saturate(r8.x * r2.w + r0.w); + r7.w = r7.w + -r9.x; + r7.w = r8.x * r7.w + r9.x; + r6.w = max(r7.w, r6.w); + r7.w = dot(r10.xyz, r10.xyz); + r7.w = sqrt(r7.w); + r8.xyz = r10.xyz / r7.www; + r7.w = dot(r8.xyz, r2.xyz); + r10.w = r10.z * r5.y; + r8.x = dot(r10.xyw, r10.xyw); + r8.x = sqrt(r8.x); + r8.x = saturate(r8.x * r2.w + r0.w); + r7.w = r7.w + -r9.y; + r7.w = r8.x * r7.w + r9.y; + r7.z = max(r7.z, r7.w); + // Visibility accumulation: bitmask vs arc integration + if (_ao_bitmask) { + r7.x += (1.0 - (float)countbits(bitmask) / 32.0); + } else { + r7.w = abs(r7.z) * -0.156582996 + 1.57079601; + r8.x = 1 + -abs(r7.z); + r8.x = asfloat(asuint(r8.x) >> 1); + r8.x = asfloat(asint(r8.x) + 0x1fbd1df5); + r8.y = r8.x * r7.w; + r8.z = abs(r6.w) * -0.156582996 + 1.57079601; + r8.w = 1 + -abs(r6.w); + r8.w = asfloat(asuint(r8.w) >> 1); + r8.w = asfloat(asint(r8.w) + 0x1fbd1df5); + r9.x = r8.z * r8.w; + r7.z = cmp(r7.z >= 0); + r7.w = -r7.w * r8.x + 3.14159298; + r7.z = r7.z ? r8.y : r7.w; + r7.z = max(0, r7.z); + r7.z = min(3.14159298, r7.z); + r7.w = -2 * r7.z; + r8.x = sin(r6.y); + r6.w = cmp(r6.w >= 0); + r8.y = -r8.z * r8.w + 3.14159298; + r6.w = r6.w ? r9.x : r8.y; + r6.w = max(0, r6.w); + r6.w = min(3.14159298, r6.w); + r6.w = r6.w + r6.w; + r8.y = 1 + -r3.z; + r3.z = r8.y * _ao_normal_attenuation + r3.z; + r7.w = r7.w * r8.x + r5.z; + r6.y = r7.z * -2 + -r6.y; + r6.y = cos(r6.y); + r6.y = r7.w + -r6.y; + r5.z = r6.w * r8.x + r5.z; + r5.w = -r5.w * r6.x + r6.w; + r5.w = cos(r5.w); + r5.z = r5.z + -r5.w; + r5.z = r6.y + r5.z; + r3.z = r5.z * r3.z; + r7.x = r3.z * 0.25 + r7.x; + } + } + r0.x = (1.0 / _ao_direction_count) * r7.x; + r0.x = log2(abs(r0.x)); + r0.x = _ao_gamma * r0.x; + r0.x = exp2(r0.x); + r0.x = max(0.0299999993, r0.x); + u0[vThreadID.xy] = r0.xxxx; + return; +} \ No newline at end of file diff --git a/src/games/endfield/ao/gtao-spatial-avg_0xB6A67E5A.cs_5_0.hlsl b/src/games/endfield/ao/gtao-spatial-avg_0xB6A67E5A.cs_5_0.hlsl new file mode 100644 index 000000000..8fb26766e --- /dev/null +++ b/src/games/endfield/ao/gtao-spatial-avg_0xB6A67E5A.cs_5_0.hlsl @@ -0,0 +1,40 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 10 15:11:49 2026 +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb0 : register(b0) +{ + float4 cb0[83]; +} + + +#include "../shared.h" + +#define cmp - + +RWTexture2D u0 : register(u0); + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) +{ + float4 r0,r1; + r0.xy = (uint2)vThreadID.xy; + r0.xy = float2(0.5,0.5) + r0.xy; + r0.zw = r0.xy * cb0[82].zw + -cb0[82].zw; + r0.z = t0.SampleLevel(s0_s, r0.zw, 0).x; + r1.xy = cb0[82].zw * r0.xy; + r0.xy = r0.xy * cb0[82].zw + cb0[82].zw; + r0.x = t0.SampleLevel(s0_s, r0.xy, 0).x; + r0.y = t0.SampleLevel(s0_s, r1.xy, 0).x; + r1.xyzw = cb0[82].zwzw * float4(1,-1,-1,1) + r1.xyxy; + r0.y = r0.y + r0.z; + r0.z = t0.SampleLevel(s0_s, r1.xy, 0).x; + r0.w = t0.SampleLevel(s0_s, r1.zw, 0).x; + r0.y = r0.y + r0.z; + r0.y = r0.y + r0.w; + r0.x = r0.y + r0.x; + r0.x = 0.200000003 * r0.x; + u0[vThreadID.xy] = r0.xxxx; + return; +} \ No newline at end of file diff --git a/src/games/endfield/ao/gtao-temporal_0x3F036C0E.cs_5_0.hlsl b/src/games/endfield/ao/gtao-temporal_0x3F036C0E.cs_5_0.hlsl new file mode 100644 index 000000000..2fac2b025 --- /dev/null +++ b/src/games/endfield/ao/gtao-temporal_0x3F036C0E.cs_5_0.hlsl @@ -0,0 +1,119 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 10 15:11:49 2026 +Texture2D t3 : register(t3); + +Texture2D t2 : register(t2); + +Texture2D t1 : register(t1); + +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb0 : register(b0) +{ + float4 cb0[4]; +} + + +#include "../shared.h" + +#define cmp - + +RWTexture2D u0 : register(u0); + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) +{ + float4 r0,r1,r2,r3,r4; + r0.xy = (uint2)vThreadID.xy; + r0.xy = float2(0.5,0.5) + r0.xy; + r0.zw = cb0[3].zw * r0.xy; + r1.xy = t2.SampleLevel(s0_s, r0.zw, 0).xy; + r1.zw = abs(r1.xy) * float2(2,2) + float2(-1,-1); + r1.zw = r1.zw * r1.zw; + r1.zw = r1.zw * r1.zw; + r1.xy = float2(-0.5,-0.5) + r1.xy; + r2.xy = cmp(float2(0,0) < r1.xy); + r1.xy = cmp(r1.xy < float2(0,0)); + r1.xy = (int2)-r2.xy + (int2)r1.xy; + r1.xy = (int2)r1.xy; + r1.xy = r1.zw * r1.xy; + r1.zw = r0.xy * cb0[3].zw + -r1.xy; + if (IMPROVED_GTAO >= 0.5) { + // Manual bilinear interpolation for previous AO (reduces wobble/ghosting) + // Only interpolate AO (.x), keep depth (.y) point-sampled + float2 texelPos = r1.zw * cb0[3].xy - 0.5; + float2 f = frac(texelPos); + float2 base = (floor(texelPos) + 0.5) * cb0[3].zw; + float ao00 = t3.SampleLevel(s0_s, base, 0).x; + float ao10 = t3.SampleLevel(s0_s, base + float2(cb0[3].z, 0), 0).x; + float ao01 = t3.SampleLevel(s0_s, base + float2(0, cb0[3].w), 0).x; + float ao11 = t3.SampleLevel(s0_s, base + cb0[3].zw, 0).x; + r2.x = lerp(lerp(ao00, ao10, f.x), lerp(ao01, ao11, f.x), f.y); + r2.y = t3.SampleLevel(s0_s, r1.zw, 0).y; // depth: point-sampled + } else { + r2.xy = t3.SampleLevel(s0_s, r1.zw, 0).xy; + } + r2.z = t0.SampleLevel(s0_s, r0.zw, 0).x; + r2.z = 0.00999999978 * r2.z; + r3.y = min(1, r2.z); + r3.x = t1.SampleLevel(s0_s, r0.zw, 0).x; + r2.zw = cmp(r1.zw < float2(0,0)); + r2.z = (int)r2.w | (int)r2.z; + r1.zw = cmp(float2(1,1) < r1.zw); + r1.z = (int)r1.w | (int)r1.z; + r1.z = (int)r1.z | (int)r2.z; + if (r1.z != 0) { + r3.z = 0; + } else { + r1.xy = cb0[3].xy * r1.xy; + r1.x = dot(r1.xy, r1.xy); + r1.x = sqrt(r1.x); + r1.x = cb0[2].z * -r1.x; + r1.x = 1.44269502 * r1.x; + r1.x = exp2(r1.x); + r1.x = 0.970000029 * r1.x; + r1.y = r3.y + -r2.y; + r1.y = -1442.69507 * abs(r1.y); + r1.y = exp2(r1.y); + r3.z = r1.x * r1.y; + } + r1.x = cmp(0.000000 == cb0[2].y); + if (r1.x == 0) { + r1.xy = r0.xy * cb0[3].zw + -cb0[3].zw; + r1.x = t1.SampleLevel(s0_s, r1.xy, 0).x; + r4.xyzw = cb0[3].zwzw * float4(0,-1,1,-1) + r0.zwzw; + r1.y = t1.SampleLevel(s0_s, r4.xy, 0).x; + r1.z = t1.SampleLevel(s0_s, r4.zw, 0).x; + r4.xyzw = cb0[3].zwzw * float4(-1,0,1,0) + r0.zwzw; + r1.w = t1.SampleLevel(s0_s, r4.xy, 0).x; + r2.y = t1.SampleLevel(s0_s, r4.zw, 0).x; + r4.xyzw = cb0[3].zwzw * float4(-1,1,0,1) + r0.zwzw; + r0.z = t1.SampleLevel(s0_s, r4.xy, 0).x; + r0.w = t1.SampleLevel(s0_s, r4.zw, 0).x; + r0.xy = r0.xy * cb0[3].zw + cb0[3].zw; + r0.x = t1.SampleLevel(s0_s, r0.xy, 0).x; + r0.y = min(r1.w, r3.x); + r2.z = min(r2.y, r0.w); + r0.y = min(r2.z, r0.y); + r0.y = min(r1.y, r0.y); + r2.z = min(r1.x, r1.z); + r2.w = min(r0.z, r0.x); + r2.z = min(r2.z, r2.w); + r0.y = min(r2.z, r0.y); + r1.w = max(r1.w, r3.x); + r0.w = max(r2.y, r0.w); + r0.w = max(r1.w, r0.w); + r1.x = max(r1.x, r1.z); + r0.x = max(r0.z, r0.x); + r0.xw = max(r1.xy, r0.xw); + r0.x = max(r0.w, r0.x); + r0.y = max(r2.x, r0.y); + r0.x = min(r0.y, r0.x); + r0.x = r0.x + -r3.x; + r3.x = r3.z * r0.x + r3.x; + } + r3.w = 0; + u0[vThreadID.xy] = r3.xyzw; + return; +} \ No newline at end of file diff --git a/src/games/endfield/ao/gtao-vertical-blur_0x88B36DD5.cs_5_0.hlsl b/src/games/endfield/ao/gtao-vertical-blur_0x88B36DD5.cs_5_0.hlsl new file mode 100644 index 000000000..cb9dac591 --- /dev/null +++ b/src/games/endfield/ao/gtao-vertical-blur_0x88B36DD5.cs_5_0.hlsl @@ -0,0 +1,62 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 10 15:11:49 2026 +Texture2D t2 : register(t2); + +Texture2D t1 : register(t1); + +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb0 : register(b0) +{ + float4 cb0[4]; +} + + +#include "../shared.h" + +#define cmp - + +RWTexture2D u0 : register(u0); + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) +{ + float4 r0,r1,r2,r3,r4; + r0.xy = (uint2)vThreadID.xy; + r0.xy = float2(0.5,0.5) + r0.xy; + r0.zw = cb0[3].zw * r0.xy; + r1.x = t1.SampleLevel(s0_s, r0.zw, 0).z; + r1.x = 1 + -r1.x; + r1.x = saturate(r1.x + r1.x); + r1.x *= AO_DENOISER_BLUR_BETA; + r1.w = t0.SampleLevel(s0_s, r0.zw, 0).x; + r2.x = cb0[3].z; + r2.y = 1; + r1.y = cb0[3].w; + r1.z = 0; + r3.xyz = float3(0,0,-3); + while (true) { + r2.z = cmp(3 < r3.z); + if (r2.z != 0) break; + r2.zw = r3.zz * r2.xy; + r2.zw = r2.zw * r1.xy; + r2.zw = r2.zw * r1.zx; + r4.xy = r2.zw * cb0[3].zw + r0.zw; + r3.w = t0.SampleLevel(s0_s, r4.xy, 0).x; + r3.w = r3.w + -r1.w; + r3.w = min(1, abs(r3.w)); + r3.w = 1 + -r3.w; + r4.x = r3.x + r3.w; + r2.zw = r0.xy * cb0[3].zw + r2.zw; + r2.z = t2.SampleLevel(s0_s, r2.zw, 0).x; + r4.y = r2.z * r3.w + r3.y; + r4.z = 1 + r3.z; + r3.xyz = r4.xyz; + continue; + } + r0.x = max(9.99999975e-05, r3.x); + r0.x = r3.y / r0.x; + u0[vThreadID.xy] = r0.xxxx; + return; +} \ No newline at end of file diff --git a/src/games/endfield/bloom/bloom-downsample-lut_0xC58C5FBA.cs_5_0.hlsl b/src/games/endfield/bloom/bloom-downsample-lut_0xC58C5FBA.cs_5_0.hlsl new file mode 100644 index 000000000..f40089550 --- /dev/null +++ b/src/games/endfield/bloom/bloom-downsample-lut_0xC58C5FBA.cs_5_0.hlsl @@ -0,0 +1,328 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 10 11:18:06 2026 +groupshared struct { float val[1]; } g2[128]; +groupshared struct { float val[1]; } g1[128]; +groupshared struct { float val[1]; } g0[128]; +Texture2D t1 : register(t1); + +Texture2D t0 : register(t0); + +SamplerState s1_s : register(s1); + +SamplerState s0_s : register(s0); + +cbuffer cb1 : register(b1) +{ + float4 cb1[3]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[110]; +} + +RWTexture2D u0 : register(u0); + +// 3Dmigoto declarations +#define cmp - + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID, uint3 vThreadGroupID : SV_GroupID, uint3 vThreadIDInGroup : SV_GroupThreadID) +{ + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10; + uint4 bitmask, uiDest; + float4 fDest; + r0.xyzw = (uint4)vThreadGroupID.xyxy << int4(3,3,3,3); + r1.xyzw = (uint4)vThreadIDInGroup.xyxy << int4(1,1,1,1); + r0.xyzw = (int4)r0.xyzw + (int4)r1.xyzw; + r1.x = mad((int)vThreadIDInGroup.y, 16, (int)r1.z); + r0.xyzw = (int4)r0.xyzw + int4(-4,-4,-4,-4); + r0.xyzw = (int4)r0.xyzw; + r2.xyzw = float4(0.5,0.5,1.5,0.5) + r0.zwzw; + r0.xyzw = float4(0.5,1.5,1.5,1.5) + r0.xyzw; + r0.xyzw = cb1[0].zwzw * r0.xyzw; + r2.xyzw = cb1[0].zwzw * r2.xyzw; + r1.yzw = t0.SampleLevel(s0_s, r2.xy, 0).xyz; + r2.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; + r2.xyz = cb0[109].xxx * r2.zxy; + r2.xyz = cb1[2].www * r2.xyz; + r2.xyz = r2.xyz * float3(5.55555582,5.55555582,5.55555582) + float3(0.0479959995,0.0479959995,0.0479959995); + r2.xyz = max(float3(0,0,0), r2.xyz); + r2.xyz = log2(r2.xyz); + r2.xyz = saturate(r2.xyz * float3(0.0734997839,0.0734997839,0.0734997839) + float3(0.386036009,0.386036009,0.386036009)); + r1.yzw = cb0[109].xxx * r1.wyz; + r1.yzw = cb1[2].www * r1.yzw; + r1.yzw = r1.yzw * float3(5.55555582,5.55555582,5.55555582) + float3(0.0479959995,0.0479959995,0.0479959995); + r1.yzw = max(float3(0,0,0), r1.yzw); + r1.yzw = log2(r1.yzw); + r1.yzw = saturate(r1.yzw * float3(0.0734997839,0.0734997839,0.0734997839) + float3(0.386036009,0.386036009,0.386036009)); + r3.xyz = cb1[2].zzz * r1.yzw; + r1.z = floor(r3.x); + r1.y = r1.y * cb1[2].z + -r1.z; + r3.xw = cb1[2].xy * float2(0.5,0.5); + r4.yz = r3.yz * cb1[2].xy + r3.xw; + r4.x = r1.z * cb1[2].y + r4.y; + r5.xyz = t1.SampleLevel(s1_s, r4.xz, 0).xyz; + r6.x = cb1[2].y; + r6.y = 0; + r1.zw = r6.xy + r4.xz; + r4.xyz = t1.SampleLevel(s1_s, r1.zw, 0).xyz; + r4.xyz = r4.xyz + -r5.xyz; + r1.yzw = r1.yyy * r4.xyz + r5.xyz; + r4.xyz = log2(abs(r1.yzw)); + r4.xyz = float3(0.416666657,0.416666657,0.416666657) * r4.xyz; + r4.xyz = exp2(r4.xyz); + r4.xyz = r4.xyz * float3(1.05499995,1.05499995,1.05499995) + float3(-0.0549999997,-0.0549999997,-0.0549999997); + r5.xyz = float3(12.9200001,12.9200001,12.9200001) * r1.yzw; + r1.yzw = cmp(float3(0.00313080009,0.00313080009,0.00313080009) >= r1.yzw); + r1.yzw = r1.yzw ? r5.xyz : r4.xyz; + r2.w = max(r1.y, r1.z); + r2.w = max(r2.w, r1.w); + r2.w = max(cb1[1].x, r2.w); + r2.w = r2.w / cb1[1].x; + r1.yzw = r1.yzw / r2.www; + r1.yzw = f32tof16(r1.yzw); + r2.yzw = cb1[2].zzz * r2.xyz; + r2.y = floor(r2.y); + r4.yz = r2.zw * cb1[2].xy + r3.xw; + r2.x = r2.x * cb1[2].z + -r2.y; + r4.x = r2.y * cb1[2].y + r4.y; + r2.yzw = t1.SampleLevel(s1_s, r4.xz, 0).xyz; + r3.yz = r4.xz + r6.xy; + r4.xyz = t1.SampleLevel(s1_s, r3.yz, 0).xyz; + r4.xyz = r4.xyz + -r2.yzw; + r2.xyz = r2.xxx * r4.xyz + r2.yzw; + r4.xyz = log2(abs(r2.xyz)); + r4.xyz = float3(0.416666657,0.416666657,0.416666657) * r4.xyz; + r4.xyz = exp2(r4.xyz); + r4.xyz = r4.xyz * float3(1.05499995,1.05499995,1.05499995) + float3(-0.0549999997,-0.0549999997,-0.0549999997); + r5.xyz = float3(12.9200001,12.9200001,12.9200001) * r2.xyz; + r2.xyz = cmp(float3(0.00313080009,0.00313080009,0.00313080009) >= r2.xyz); + r2.xyz = r2.xyz ? r5.xyz : r4.xyz; + r2.w = max(r2.x, r2.y); + r2.w = max(r2.w, r2.z); + r2.w = max(cb1[1].x, r2.w); + r2.w = r2.w / cb1[1].x; + r2.xyz = r2.xyz / r2.www; + r2.xyz = f32tof16(r2.xyz); + r1.yzw = mad((int3)r2.xyz, int3(0x10000,0x10000,0x10000), (int3)r1.yzw); + r2.xy = mad((int2)vThreadIDInGroup.yy, int2(16,8), (int2)vThreadIDInGroup.xx); + g0[r2.x].val[0/4] = r1.y; + g1[r2.x].val[0/4] = r1.z; + g2[r2.x].val[0/4] = r1.w; + r1.yzw = t0.SampleLevel(s0_s, r0.xy, 0).xyz; + r0.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; + r0.xyz = cb0[109].xxx * r0.zxy; + r0.xyz = cb1[2].www * r0.xyz; + r0.xyz = r0.xyz * float3(5.55555582,5.55555582,5.55555582) + float3(0.0479959995,0.0479959995,0.0479959995); + r0.xyz = max(float3(0,0,0), r0.xyz); + r0.xyz = log2(r0.xyz); + r0.xyz = saturate(r0.xyz * float3(0.0734997839,0.0734997839,0.0734997839) + float3(0.386036009,0.386036009,0.386036009)); + r1.yzw = cb0[109].xxx * r1.wyz; + r1.yzw = cb1[2].www * r1.yzw; + r1.yzw = r1.yzw * float3(5.55555582,5.55555582,5.55555582) + float3(0.0479959995,0.0479959995,0.0479959995); + r1.yzw = max(float3(0,0,0), r1.yzw); + r1.yzw = log2(r1.yzw); + r1.yzw = saturate(r1.yzw * float3(0.0734997839,0.0734997839,0.0734997839) + float3(0.386036009,0.386036009,0.386036009)); + r4.xyz = cb1[2].zzz * r1.yzw; + r5.yz = r4.yz * cb1[2].xy + r3.xw; + r0.w = floor(r4.x); + r5.x = r0.w * cb1[2].y + r5.y; + r0.w = r1.y * cb1[2].z + -r0.w; + r1.yz = r5.xz + r6.xy; + r4.xyz = t1.SampleLevel(s1_s, r5.xz, 0).xyz; + r1.yzw = t1.SampleLevel(s1_s, r1.yz, 0).xyz; + r1.yzw = r1.yzw + -r4.xyz; + r1.yzw = r0.www * r1.yzw + r4.xyz; + r4.xyz = log2(abs(r1.yzw)); + r4.xyz = float3(0.416666657,0.416666657,0.416666657) * r4.xyz; + r4.xyz = exp2(r4.xyz); + r4.xyz = r4.xyz * float3(1.05499995,1.05499995,1.05499995) + float3(-0.0549999997,-0.0549999997,-0.0549999997); + r5.xyz = float3(12.9200001,12.9200001,12.9200001) * r1.yzw; + r1.yzw = cmp(float3(0.00313080009,0.00313080009,0.00313080009) >= r1.yzw); + r1.yzw = r1.yzw ? r5.xyz : r4.xyz; + r0.w = max(r1.y, r1.z); + r0.w = max(r0.w, r1.w); + r0.w = max(cb1[1].x, r0.w); + r0.w = r0.w / cb1[1].x; + r1.yzw = r1.yzw / r0.www; + r1.yzw = f32tof16(r1.yzw); + r0.yzw = cb1[2].zzz * r0.xyz; + r3.yz = r0.zw * cb1[2].xy + r3.xw; + r0.y = floor(r0.y); + r3.x = r0.y * cb1[2].y + r3.y; + r0.x = r0.x * cb1[2].z + -r0.y; + r0.yz = r3.xz + r6.xy; + r3.xyz = t1.SampleLevel(s1_s, r3.xz, 0).xyz; + r0.yzw = t1.SampleLevel(s1_s, r0.yz, 0).xyz; + r0.yzw = r0.yzw + -r3.xyz; + r0.xyz = r0.xxx * r0.yzw + r3.xyz; + r3.xyz = float3(12.9200001,12.9200001,12.9200001) * r0.xyz; + r4.xyz = cmp(float3(0.00313080009,0.00313080009,0.00313080009) >= r0.xyz); + r0.xyz = log2(abs(r0.xyz)); + r0.xyz = float3(0.416666657,0.416666657,0.416666657) * r0.xyz; + r0.xyz = exp2(r0.xyz); + r0.xyz = r0.xyz * float3(1.05499995,1.05499995,1.05499995) + float3(-0.0549999997,-0.0549999997,-0.0549999997); + r0.xyz = r4.xyz ? r3.xyz : r0.xyz; + r0.w = max(r0.x, r0.y); + r0.w = max(r0.w, r0.z); + r0.w = max(cb1[1].x, r0.w); + r0.w = r0.w / cb1[1].x; + r0.xyz = r0.xyz / r0.www; + r0.xyz = f32tof16(r0.xyz); + r0.xyz = mad((int3)r0.xyz, int3(0x10000,0x10000,0x10000), (int3)r1.yzw); + r0.w = (int)r2.x + 8; + g0[r0.w].val[0/4] = r0.x; + g1[r0.w].val[0/4] = r0.y; + g2[r0.w].val[0/4] = r0.z; + GroupMemoryBarrierWithGroupSync(); + r0.x = (int)vThreadIDInGroup.x & 4; + r0.x = (int)r0.x + (int)r2.x; + r0.y = g0[r0.x].val[0/4]; + r0.z = g1[r0.x].val[0/4]; + r0.w = g2[r0.x].val[0/4]; + r3.xyzw = (int4)r0.xxxx + int4(1,2,3,4); + r0.x = g0[r3.x].val[0/4]; + r1.y = g1[r3.x].val[0/4]; + r1.z = g2[r3.x].val[0/4]; + r1.w = g0[r3.y].val[0/4]; + r2.x = g1[r3.y].val[0/4]; + r2.z = g2[r3.y].val[0/4]; + r2.w = g0[r3.z].val[0/4]; + r3.x = g0[r3.w].val[0/4]; + r3.y = g1[r3.z].val[0/4]; + r4.x = g1[r3.w].val[0/4]; + r3.z = g2[r3.z].val[0/4]; + r3.w = g2[r3.w].val[0/4]; + r4.y = (int)r1.w & 0x0000ffff; + r1.w = (uint)r1.w >> 16; + r5.x = f16tof32((uint)(uint)r1.w); + r6.x = f16tof32((uint)(uint)r4.y); + r1.w = (int)r2.x & 0x0000ffff; + r2.x = (uint)r2.x >> 16; + r5.y = f16tof32((uint)(uint)r2.x); + r6.y = f16tof32((uint)(uint)r1.w); + r1.w = (int)r2.z & 0x0000ffff; + r2.x = (uint)r2.z >> 16; + r5.z = f16tof32((uint)(uint)r2.x); + r6.z = f16tof32((uint)(uint)r1.w); + r1.w = (uint)r0.x >> 16; + r0.x = (int)r0.x & 0x0000ffff; + r7.x = f16tof32((uint)(uint)r0.x); + r8.x = f16tof32((uint)(uint)r1.w); + r0.x = (uint)r1.y >> 16; + r1.y = (int)r1.y & 0x0000ffff; + r7.y = f16tof32((uint)(uint)r1.y); + r8.y = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r1.z >> 16; + r1.y = (int)r1.z & 0x0000ffff; + r7.z = f16tof32((uint)(uint)r1.y); + r8.z = f16tof32((uint)(uint)r0.x); + r1.yzw = r8.xyz + r5.xyz; + r1.yzw = float3(0.21875,0.21875,0.21875) * r1.yzw; + r1.yzw = r6.xyz * float3(0.2734375,0.2734375,0.2734375) + r1.yzw; + r0.x = (int)r2.w & 0x0000ffff; + r2.x = (uint)r2.w >> 16; + r9.x = f16tof32((uint)(uint)r2.x); + r10.x = f16tof32((uint)(uint)r0.x); + r0.x = (int)r3.y & 0x0000ffff; + r2.x = (uint)r3.y >> 16; + r9.y = f16tof32((uint)(uint)r2.x); + r10.y = f16tof32((uint)(uint)r0.x); + r0.x = (int)r3.z & 0x0000ffff; + r2.x = (uint)r3.z >> 16; + r9.z = f16tof32((uint)(uint)r2.x); + r10.z = f16tof32((uint)(uint)r0.x); + r2.xzw = r10.xyz + r7.xyz; + r4.yzw = r10.xyz + r6.xyz; + r4.yzw = float3(0.21875,0.21875,0.21875) * r4.yzw; + r4.yzw = r5.xyz * float3(0.2734375,0.2734375,0.2734375) + r4.yzw; + r1.yzw = r2.xzw * float3(0.109375,0.109375,0.109375) + r1.yzw; + r0.x = (uint)r0.y >> 16; + r0.y = (int)r0.y & 0x0000ffff; + r5.x = f16tof32((uint)(uint)r0.y); + r6.x = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r0.z >> 16; + r0.y = (int)r0.z & 0x0000ffff; + r5.y = f16tof32((uint)(uint)r0.y); + r6.y = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r0.w >> 16; + r0.y = (int)r0.w & 0x0000ffff; + r5.z = f16tof32((uint)(uint)r0.y); + r6.z = f16tof32((uint)(uint)r0.x); + r0.xyz = r6.xyz + r9.xyz; + r2.xzw = r9.xyz + r8.xyz; + r2.xzw = r2.xzw * float3(0.109375,0.109375,0.109375) + r4.yzw; + r0.xyz = r0.xyz * float3(0.03125,0.03125,0.03125) + r1.yzw; + r0.w = (int)r3.x & 0x0000ffff; + r1.y = (uint)r3.x >> 16; + r3.x = f16tof32((uint)(uint)r1.y); + r8.x = f16tof32((uint)(uint)r0.w); + r0.w = (int)r4.x & 0x0000ffff; + r1.y = (uint)r4.x >> 16; + r3.y = f16tof32((uint)(uint)r1.y); + r8.y = f16tof32((uint)(uint)r0.w); + r0.w = (int)r3.w & 0x0000ffff; + r1.y = (uint)r3.w >> 16; + r3.z = f16tof32((uint)(uint)r1.y); + r1.yzw = r6.xyz + r3.xyz; + r8.z = f16tof32((uint)(uint)r0.w); + r3.xyz = r8.xyz + r5.xyz; + r4.xyz = r8.xyz + r7.xyz; + r2.xzw = r4.xyz * float3(0.03125,0.03125,0.03125) + r2.xzw; + r1.yzw = r1.yzw * float3(0.00390625,0.00390625,0.00390625) + r2.xzw; + r0.xyz = r3.xyz * float3(0.00390625,0.00390625,0.00390625) + r0.xyz; + g0[r1.x].val[0/4] = r0.x; + g1[r1.x].val[0/4] = r0.y; + g2[r1.x].val[0/4] = r0.z; + r0.x = (int)r1.x + 1; + g0[r0.x].val[0/4] = r1.y; + g1[r0.x].val[0/4] = r1.z; + g2[r0.x].val[0/4] = r1.w; + GroupMemoryBarrierWithGroupSync(); + r0.xyzw = (int4)r2.yyyy + int4(8,16,24,32); + r1.x = g0[r0.w].val[0/4]; + r1.y = g1[r0.w].val[0/4]; + r1.z = g2[r0.w].val[0/4]; + r2.xzw = (int3)r2.yyy + int3(40,48,56); + r3.x = g0[r2.x].val[0/4]; + r3.y = g1[r2.x].val[0/4]; + r3.z = g2[r2.x].val[0/4]; + r4.x = g0[r0.z].val[0/4]; + r4.y = g1[r0.z].val[0/4]; + r4.z = g2[r0.z].val[0/4]; + r3.xyzw = r4.xyzx + r3.xyzx; + r3.xyzw = float4(0.21875,0.21875,0.21875,0.21875) * r3.xyzw; + r1.xyzw = r1.xyzx * float4(0.2734375,0.2734375,0.2734375,0.2734375) + r3.xyzw; + r3.x = g0[r0.y].val[0/4]; + r3.y = g1[r0.y].val[0/4]; + r3.z = g2[r0.y].val[0/4]; + r4.x = g0[r2.z].val[0/4]; + r4.y = g1[r2.z].val[0/4]; + r4.z = g2[r2.z].val[0/4]; + r3.xyzw = r4.xyzx + r3.xyzx; + r1.xyzw = r3.xyzw * float4(0.109375,0.109375,0.109375,0.109375) + r1.xyzw; + r3.x = g0[r0.x].val[0/4]; + r3.y = g1[r0.x].val[0/4]; + r3.z = g2[r0.x].val[0/4]; + r0.x = g0[r2.w].val[0/4]; + r0.y = g1[r2.w].val[0/4]; + r0.z = g2[r2.w].val[0/4]; + r0.xyzw = r3.xyzx + r0.xyzx; + r0.xyzw = r0.xyzw * float4(0.03125,0.03125,0.03125,0.03125) + r1.xyzw; + r1.x = g0[r2.y].val[0/4]; + r1.y = g1[r2.y].val[0/4]; + r1.z = g2[r2.y].val[0/4]; + r1.w = (int)r2.y + 64; + r2.x = g0[r1.w].val[0/4]; + r2.y = g1[r1.w].val[0/4]; + r2.z = g2[r1.w].val[0/4]; + r1.xyzw = r2.xyzx + r1.xyzx; + r0.xyzw = r1.xyzw * float4(0.00390625,0.00390625,0.00390625,0.00390625) + r0.xyzw; + r1.xy = (uint2)cb1[0].xy; + r1.xy = cmp((uint2)vThreadID.xy < (uint2)r1.xy); + r1.x = r1.y ? r1.x : 0; + r1.x = r1.x ? 1.000000 : 0; + r0.xyzw = r1.xxxx * r0.xyzw; + u0[vThreadID.xy] = r0; + return; +} \ No newline at end of file diff --git a/src/games/endfield/bloom/bloom-downsample_0x2CF2F67B.cs_5_0.hlsl b/src/games/endfield/bloom/bloom-downsample_0x2CF2F67B.cs_5_0.hlsl new file mode 100644 index 000000000..183787911 --- /dev/null +++ b/src/games/endfield/bloom/bloom-downsample_0x2CF2F67B.cs_5_0.hlsl @@ -0,0 +1,224 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 10 11:18:06 2026 +groupshared struct { float val[1]; } g2[128]; +groupshared struct { float val[1]; } g1[128]; +groupshared struct { float val[1]; } g0[128]; +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb0 : register(b0) +{ + float4 cb0[2]; +} + +RWTexture2D u0 : register(u0); + +// 3Dmigoto declarations +#define cmp - + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID, uint3 vThreadGroupID : SV_GroupID, uint3 vThreadIDInGroup : SV_GroupThreadID) +{ + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10; + uint4 bitmask, uiDest; + float4 fDest; + r0.xyzw = (uint4)vThreadGroupID.xyxy << int4(3,3,3,3); + r1.xyzw = (uint4)vThreadIDInGroup.xyxy << int4(1,1,1,1); + r0.xyzw = (int4)r0.xyzw + (int4)r1.xyzw; + r1.x = mad((int)vThreadIDInGroup.y, 16, (int)r1.z); + r0.xyzw = (int4)r0.xyzw + int4(-4,-4,-4,-4); + r0.xyzw = (int4)r0.xyzw; + r2.xyzw = float4(0.5,0.5,1.5,0.5) + r0.zwzw; + r0.xyzw = float4(0.5,1.5,1.5,1.5) + r0.xyzw; + r0.xyzw = cb0[0].zwzw * r0.xyzw; + r2.xyzw = cb0[0].zwzw * r2.xyzw; + r1.yzw = t0.SampleLevel(s0_s, r2.xy, 0).xyz; + r2.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; + r2.w = max(r1.y, r1.z); + r2.w = max(r2.w, r1.w); + r2.w = max(cb0[1].x, r2.w); + r2.w = r2.w / cb0[1].x; + r1.yzw = r1.yzw / r2.www; + r1.yzw = f32tof16(r1.yzw); + r2.w = max(r2.x, r2.y); + r2.w = max(r2.w, r2.z); + r2.w = max(cb0[1].x, r2.w); + r2.w = r2.w / cb0[1].x; + r2.xyz = r2.xyz / r2.www; + r2.xyz = f32tof16(r2.xyz); + r1.yzw = mad((int3)r2.xyz, int3(0x10000,0x10000,0x10000), (int3)r1.yzw); + r2.xy = mad((int2)vThreadIDInGroup.yy, int2(16,8), (int2)vThreadIDInGroup.xx); + g0[r2.x].val[0/4] = r1.y; + g1[r2.x].val[0/4] = r1.z; + g2[r2.x].val[0/4] = r1.w; + r1.yzw = t0.SampleLevel(s0_s, r0.xy, 0).xyz; + r0.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; + r0.w = max(r1.y, r1.z); + r0.w = max(r0.w, r1.w); + r0.w = max(cb0[1].x, r0.w); + r0.w = r0.w / cb0[1].x; + r1.yzw = r1.yzw / r0.www; + r1.yzw = f32tof16(r1.yzw); + r0.w = max(r0.x, r0.y); + r0.w = max(r0.w, r0.z); + r0.w = max(cb0[1].x, r0.w); + r0.w = r0.w / cb0[1].x; + r0.xyz = r0.xyz / r0.www; + r0.xyz = f32tof16(r0.xyz); + r0.xyz = mad((int3)r0.xyz, int3(0x10000,0x10000,0x10000), (int3)r1.yzw); + r0.w = (int)r2.x + 8; + g0[r0.w].val[0/4] = r0.x; + g1[r0.w].val[0/4] = r0.y; + g2[r0.w].val[0/4] = r0.z; + GroupMemoryBarrierWithGroupSync(); + r0.x = (int)vThreadIDInGroup.x & 4; + r0.x = (int)r0.x + (int)r2.x; + r0.y = g0[r0.x].val[0/4]; + r0.z = g1[r0.x].val[0/4]; + r0.w = g2[r0.x].val[0/4]; + r3.xyzw = (int4)r0.xxxx + int4(1,2,3,4); + r0.x = g0[r3.x].val[0/4]; + r1.y = g1[r3.x].val[0/4]; + r1.z = g2[r3.x].val[0/4]; + r1.w = g0[r3.y].val[0/4]; + r2.x = g1[r3.y].val[0/4]; + r2.z = g2[r3.y].val[0/4]; + r2.w = g0[r3.z].val[0/4]; + r3.x = g0[r3.w].val[0/4]; + r3.y = g1[r3.z].val[0/4]; + r4.x = g1[r3.w].val[0/4]; + r3.z = g2[r3.z].val[0/4]; + r3.w = g2[r3.w].val[0/4]; + r4.y = (int)r1.w & 0x0000ffff; + r1.w = (uint)r1.w >> 16; + r5.x = f16tof32((uint)(uint)r1.w); + r6.x = f16tof32((uint)(uint)r4.y); + r1.w = (int)r2.x & 0x0000ffff; + r2.x = (uint)r2.x >> 16; + r5.y = f16tof32((uint)(uint)r2.x); + r6.y = f16tof32((uint)(uint)r1.w); + r1.w = (int)r2.z & 0x0000ffff; + r2.x = (uint)r2.z >> 16; + r5.z = f16tof32((uint)(uint)r2.x); + r6.z = f16tof32((uint)(uint)r1.w); + r1.w = (uint)r0.x >> 16; + r0.x = (int)r0.x & 0x0000ffff; + r7.x = f16tof32((uint)(uint)r0.x); + r8.x = f16tof32((uint)(uint)r1.w); + r0.x = (uint)r1.y >> 16; + r1.y = (int)r1.y & 0x0000ffff; + r7.y = f16tof32((uint)(uint)r1.y); + r8.y = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r1.z >> 16; + r1.y = (int)r1.z & 0x0000ffff; + r7.z = f16tof32((uint)(uint)r1.y); + r8.z = f16tof32((uint)(uint)r0.x); + r1.yzw = r8.xyz + r5.xyz; + r1.yzw = float3(0.21875,0.21875,0.21875) * r1.yzw; + r1.yzw = r6.xyz * float3(0.2734375,0.2734375,0.2734375) + r1.yzw; + r0.x = (int)r2.w & 0x0000ffff; + r2.x = (uint)r2.w >> 16; + r9.x = f16tof32((uint)(uint)r2.x); + r10.x = f16tof32((uint)(uint)r0.x); + r0.x = (int)r3.y & 0x0000ffff; + r2.x = (uint)r3.y >> 16; + r9.y = f16tof32((uint)(uint)r2.x); + r10.y = f16tof32((uint)(uint)r0.x); + r0.x = (int)r3.z & 0x0000ffff; + r2.x = (uint)r3.z >> 16; + r9.z = f16tof32((uint)(uint)r2.x); + r10.z = f16tof32((uint)(uint)r0.x); + r2.xzw = r10.xyz + r7.xyz; + r4.yzw = r10.xyz + r6.xyz; + r4.yzw = float3(0.21875,0.21875,0.21875) * r4.yzw; + r4.yzw = r5.xyz * float3(0.2734375,0.2734375,0.2734375) + r4.yzw; + r1.yzw = r2.xzw * float3(0.109375,0.109375,0.109375) + r1.yzw; + r0.x = (uint)r0.y >> 16; + r0.y = (int)r0.y & 0x0000ffff; + r5.x = f16tof32((uint)(uint)r0.y); + r6.x = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r0.z >> 16; + r0.y = (int)r0.z & 0x0000ffff; + r5.y = f16tof32((uint)(uint)r0.y); + r6.y = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r0.w >> 16; + r0.y = (int)r0.w & 0x0000ffff; + r5.z = f16tof32((uint)(uint)r0.y); + r6.z = f16tof32((uint)(uint)r0.x); + r0.xyz = r6.xyz + r9.xyz; + r2.xzw = r9.xyz + r8.xyz; + r2.xzw = r2.xzw * float3(0.109375,0.109375,0.109375) + r4.yzw; + r0.xyz = r0.xyz * float3(0.03125,0.03125,0.03125) + r1.yzw; + r0.w = (int)r3.x & 0x0000ffff; + r1.y = (uint)r3.x >> 16; + r3.x = f16tof32((uint)(uint)r1.y); + r8.x = f16tof32((uint)(uint)r0.w); + r0.w = (int)r4.x & 0x0000ffff; + r1.y = (uint)r4.x >> 16; + r3.y = f16tof32((uint)(uint)r1.y); + r8.y = f16tof32((uint)(uint)r0.w); + r0.w = (int)r3.w & 0x0000ffff; + r1.y = (uint)r3.w >> 16; + r3.z = f16tof32((uint)(uint)r1.y); + r1.yzw = r6.xyz + r3.xyz; + r8.z = f16tof32((uint)(uint)r0.w); + r3.xyz = r8.xyz + r5.xyz; + r4.xyz = r8.xyz + r7.xyz; + r2.xzw = r4.xyz * float3(0.03125,0.03125,0.03125) + r2.xzw; + r1.yzw = r1.yzw * float3(0.00390625,0.00390625,0.00390625) + r2.xzw; + r0.xyz = r3.xyz * float3(0.00390625,0.00390625,0.00390625) + r0.xyz; + g0[r1.x].val[0/4] = r0.x; + g1[r1.x].val[0/4] = r0.y; + g2[r1.x].val[0/4] = r0.z; + r0.x = (int)r1.x + 1; + g0[r0.x].val[0/4] = r1.y; + g1[r0.x].val[0/4] = r1.z; + g2[r0.x].val[0/4] = r1.w; + GroupMemoryBarrierWithGroupSync(); + r0.xyzw = (int4)r2.yyyy + int4(8,16,24,32); + r1.x = g0[r0.w].val[0/4]; + r1.y = g1[r0.w].val[0/4]; + r1.z = g2[r0.w].val[0/4]; + r2.xzw = (int3)r2.yyy + int3(40,48,56); + r3.x = g0[r2.x].val[0/4]; + r3.y = g1[r2.x].val[0/4]; + r3.z = g2[r2.x].val[0/4]; + r4.x = g0[r0.z].val[0/4]; + r4.y = g1[r0.z].val[0/4]; + r4.z = g2[r0.z].val[0/4]; + r3.xyzw = r4.xyzx + r3.xyzx; + r3.xyzw = float4(0.21875,0.21875,0.21875,0.21875) * r3.xyzw; + r1.xyzw = r1.xyzx * float4(0.2734375,0.2734375,0.2734375,0.2734375) + r3.xyzw; + r3.x = g0[r0.y].val[0/4]; + r3.y = g1[r0.y].val[0/4]; + r3.z = g2[r0.y].val[0/4]; + r4.x = g0[r2.z].val[0/4]; + r4.y = g1[r2.z].val[0/4]; + r4.z = g2[r2.z].val[0/4]; + r3.xyzw = r4.xyzx + r3.xyzx; + r1.xyzw = r3.xyzw * float4(0.109375,0.109375,0.109375,0.109375) + r1.xyzw; + r3.x = g0[r0.x].val[0/4]; + r3.y = g1[r0.x].val[0/4]; + r3.z = g2[r0.x].val[0/4]; + r0.x = g0[r2.w].val[0/4]; + r0.y = g1[r2.w].val[0/4]; + r0.z = g2[r2.w].val[0/4]; + r0.xyzw = r3.xyzx + r0.xyzx; + r0.xyzw = r0.xyzw * float4(0.03125,0.03125,0.03125,0.03125) + r1.xyzw; + r1.x = g0[r2.y].val[0/4]; + r1.y = g1[r2.y].val[0/4]; + r1.z = g2[r2.y].val[0/4]; + r1.w = (int)r2.y + 64; + r2.x = g0[r1.w].val[0/4]; + r2.y = g1[r1.w].val[0/4]; + r2.z = g2[r1.w].val[0/4]; + r1.xyzw = r2.xyzx + r1.xyzx; + r0.xyzw = r1.xyzw * float4(0.00390625,0.00390625,0.00390625,0.00390625) + r0.xyzw; + r1.xy = (uint2)cb0[0].xy; + r1.xy = cmp((uint2)vThreadID.xy < (uint2)r1.xy); + r1.x = r1.y ? r1.x : 0; + r1.x = r1.x ? 1.000000 : 0; + r0.xyzw = r1.xxxx * r0.xyzw; + u0[vThreadID.xy] = r0; + return; +} \ No newline at end of file diff --git a/src/games/endfield/bloom/bloom-downsample_0x948BF835.cs_5_0.hlsl b/src/games/endfield/bloom/bloom-downsample_0x948BF835.cs_5_0.hlsl new file mode 100644 index 000000000..062795149 --- /dev/null +++ b/src/games/endfield/bloom/bloom-downsample_0x948BF835.cs_5_0.hlsl @@ -0,0 +1,204 @@ +// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 10 11:18:06 2026 +groupshared struct { float val[1]; } g2[128]; +groupshared struct { float val[1]; } g1[128]; +groupshared struct { float val[1]; } g0[128]; +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb0 : register(b0) +{ + float4 cb0[1]; +} + +RWTexture2D u0 : register(u0); + +// 3Dmigoto declarations +#define cmp - + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID, uint3 vThreadGroupID : SV_GroupID, uint3 vThreadIDInGroup : SV_GroupThreadID) +{ + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10; + uint4 bitmask, uiDest; + float4 fDest; + r0.xyzw = (uint4)vThreadGroupID.xyxy << int4(3,3,3,3); + r1.xyzw = (uint4)vThreadIDInGroup.xyxy << int4(1,1,1,1); + r0.xyzw = (int4)r0.xyzw + (int4)r1.xyzw; + r1.x = mad((int)vThreadIDInGroup.y, 16, (int)r1.z); + r0.xyzw = (int4)r0.xyzw + int4(-4,-4,-4,-4); + r0.xyzw = (int4)r0.xyzw; + r2.xyzw = float4(0.5,0.5,1.5,0.5) + r0.zwzw; + r0.xyzw = float4(0.5,1.5,1.5,1.5) + r0.xyzw; + r0.xyzw = cb0[0].zwzw * r0.xyzw; + r2.xyzw = cb0[0].zwzw * r2.xyzw; + r1.yzw = t0.SampleLevel(s0_s, r2.xy, 0).xyz; + r2.xyz = t0.SampleLevel(s0_s, r2.zw, 0).xyz; + r2.xyz = f32tof16(r2.xyz); + r1.yzw = f32tof16(r1.yzw); + r1.yzw = mad((int3)r2.xyz, int3(0x10000,0x10000,0x10000), (int3)r1.yzw); + r2.xy = mad((int2)vThreadIDInGroup.yy, int2(16,8), (int2)vThreadIDInGroup.xx); + g0[r2.x].val[0/4] = r1.y; + g1[r2.x].val[0/4] = r1.z; + g2[r2.x].val[0/4] = r1.w; + r1.yzw = t0.SampleLevel(s0_s, r0.xy, 0).xyz; + r0.xyz = t0.SampleLevel(s0_s, r0.zw, 0).xyz; + r0.xyz = f32tof16(r0.xyz); + r1.yzw = f32tof16(r1.yzw); + r0.xyz = mad((int3)r0.xyz, int3(0x10000,0x10000,0x10000), (int3)r1.yzw); + r0.w = (int)r2.x + 8; + g0[r0.w].val[0/4] = r0.x; + g1[r0.w].val[0/4] = r0.y; + g2[r0.w].val[0/4] = r0.z; + GroupMemoryBarrierWithGroupSync(); + r0.x = (int)vThreadIDInGroup.x & 4; + r0.x = (int)r0.x + (int)r2.x; + r0.y = g0[r0.x].val[0/4]; + r0.z = g1[r0.x].val[0/4]; + r0.w = g2[r0.x].val[0/4]; + r3.xyzw = (int4)r0.xxxx + int4(1,2,3,4); + r0.x = g0[r3.x].val[0/4]; + r1.y = g1[r3.x].val[0/4]; + r1.z = g2[r3.x].val[0/4]; + r1.w = g0[r3.y].val[0/4]; + r2.x = g1[r3.y].val[0/4]; + r2.z = g2[r3.y].val[0/4]; + r2.w = g0[r3.z].val[0/4]; + r3.x = g0[r3.w].val[0/4]; + r3.y = g1[r3.z].val[0/4]; + r4.x = g1[r3.w].val[0/4]; + r3.z = g2[r3.z].val[0/4]; + r3.w = g2[r3.w].val[0/4]; + r4.y = (int)r1.w & 0x0000ffff; + r1.w = (uint)r1.w >> 16; + r5.x = f16tof32((uint)(uint)r1.w); + r6.x = f16tof32((uint)(uint)r4.y); + r1.w = (int)r2.x & 0x0000ffff; + r2.x = (uint)r2.x >> 16; + r5.y = f16tof32((uint)(uint)r2.x); + r6.y = f16tof32((uint)(uint)r1.w); + r1.w = (int)r2.z & 0x0000ffff; + r2.x = (uint)r2.z >> 16; + r5.z = f16tof32((uint)(uint)r2.x); + r6.z = f16tof32((uint)(uint)r1.w); + r1.w = (uint)r0.x >> 16; + r0.x = (int)r0.x & 0x0000ffff; + r7.x = f16tof32((uint)(uint)r0.x); + r8.x = f16tof32((uint)(uint)r1.w); + r0.x = (uint)r1.y >> 16; + r1.y = (int)r1.y & 0x0000ffff; + r7.y = f16tof32((uint)(uint)r1.y); + r8.y = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r1.z >> 16; + r1.y = (int)r1.z & 0x0000ffff; + r7.z = f16tof32((uint)(uint)r1.y); + r8.z = f16tof32((uint)(uint)r0.x); + r1.yzw = r8.xyz + r5.xyz; + r1.yzw = float3(0.21875,0.21875,0.21875) * r1.yzw; + r1.yzw = r6.xyz * float3(0.2734375,0.2734375,0.2734375) + r1.yzw; + r0.x = (int)r2.w & 0x0000ffff; + r2.x = (uint)r2.w >> 16; + r9.x = f16tof32((uint)(uint)r2.x); + r10.x = f16tof32((uint)(uint)r0.x); + r0.x = (int)r3.y & 0x0000ffff; + r2.x = (uint)r3.y >> 16; + r9.y = f16tof32((uint)(uint)r2.x); + r10.y = f16tof32((uint)(uint)r0.x); + r0.x = (int)r3.z & 0x0000ffff; + r2.x = (uint)r3.z >> 16; + r9.z = f16tof32((uint)(uint)r2.x); + r10.z = f16tof32((uint)(uint)r0.x); + r2.xzw = r10.xyz + r7.xyz; + r4.yzw = r10.xyz + r6.xyz; + r4.yzw = float3(0.21875,0.21875,0.21875) * r4.yzw; + r4.yzw = r5.xyz * float3(0.2734375,0.2734375,0.2734375) + r4.yzw; + r1.yzw = r2.xzw * float3(0.109375,0.109375,0.109375) + r1.yzw; + r0.x = (uint)r0.y >> 16; + r0.y = (int)r0.y & 0x0000ffff; + r5.x = f16tof32((uint)(uint)r0.y); + r6.x = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r0.z >> 16; + r0.y = (int)r0.z & 0x0000ffff; + r5.y = f16tof32((uint)(uint)r0.y); + r6.y = f16tof32((uint)(uint)r0.x); + r0.x = (uint)r0.w >> 16; + r0.y = (int)r0.w & 0x0000ffff; + r5.z = f16tof32((uint)(uint)r0.y); + r6.z = f16tof32((uint)(uint)r0.x); + r0.xyz = r6.xyz + r9.xyz; + r2.xzw = r9.xyz + r8.xyz; + r2.xzw = r2.xzw * float3(0.109375,0.109375,0.109375) + r4.yzw; + r0.xyz = r0.xyz * float3(0.03125,0.03125,0.03125) + r1.yzw; + r0.w = (int)r3.x & 0x0000ffff; + r1.y = (uint)r3.x >> 16; + r3.x = f16tof32((uint)(uint)r1.y); + r8.x = f16tof32((uint)(uint)r0.w); + r0.w = (int)r4.x & 0x0000ffff; + r1.y = (uint)r4.x >> 16; + r3.y = f16tof32((uint)(uint)r1.y); + r8.y = f16tof32((uint)(uint)r0.w); + r0.w = (int)r3.w & 0x0000ffff; + r1.y = (uint)r3.w >> 16; + r3.z = f16tof32((uint)(uint)r1.y); + r1.yzw = r6.xyz + r3.xyz; + r8.z = f16tof32((uint)(uint)r0.w); + r3.xyz = r8.xyz + r5.xyz; + r4.xyz = r8.xyz + r7.xyz; + r2.xzw = r4.xyz * float3(0.03125,0.03125,0.03125) + r2.xzw; + r1.yzw = r1.yzw * float3(0.00390625,0.00390625,0.00390625) + r2.xzw; + r0.xyz = r3.xyz * float3(0.00390625,0.00390625,0.00390625) + r0.xyz; + g0[r1.x].val[0/4] = r0.x; + g1[r1.x].val[0/4] = r0.y; + g2[r1.x].val[0/4] = r0.z; + r0.x = (int)r1.x + 1; + g0[r0.x].val[0/4] = r1.y; + g1[r0.x].val[0/4] = r1.z; + g2[r0.x].val[0/4] = r1.w; + GroupMemoryBarrierWithGroupSync(); + r0.xyzw = (int4)r2.yyyy + int4(8,16,24,32); + r1.x = g0[r0.w].val[0/4]; + r1.y = g1[r0.w].val[0/4]; + r1.z = g2[r0.w].val[0/4]; + r2.xzw = (int3)r2.yyy + int3(40,48,56); + r3.x = g0[r2.x].val[0/4]; + r3.y = g1[r2.x].val[0/4]; + r3.z = g2[r2.x].val[0/4]; + r4.x = g0[r0.z].val[0/4]; + r4.y = g1[r0.z].val[0/4]; + r4.z = g2[r0.z].val[0/4]; + r3.xyzw = r4.xyzx + r3.xyzx; + r3.xyzw = float4(0.21875,0.21875,0.21875,0.21875) * r3.xyzw; + r1.xyzw = r1.xyzx * float4(0.2734375,0.2734375,0.2734375,0.2734375) + r3.xyzw; + r3.x = g0[r0.y].val[0/4]; + r3.y = g1[r0.y].val[0/4]; + r3.z = g2[r0.y].val[0/4]; + r4.x = g0[r2.z].val[0/4]; + r4.y = g1[r2.z].val[0/4]; + r4.z = g2[r2.z].val[0/4]; + r3.xyzw = r4.xyzx + r3.xyzx; + r1.xyzw = r3.xyzw * float4(0.109375,0.109375,0.109375,0.109375) + r1.xyzw; + r3.x = g0[r0.x].val[0/4]; + r3.y = g1[r0.x].val[0/4]; + r3.z = g2[r0.x].val[0/4]; + r0.x = g0[r2.w].val[0/4]; + r0.y = g1[r2.w].val[0/4]; + r0.z = g2[r2.w].val[0/4]; + r0.xyzw = r3.xyzx + r0.xyzx; + r0.xyzw = r0.xyzw * float4(0.03125,0.03125,0.03125,0.03125) + r1.xyzw; + r1.x = g0[r2.y].val[0/4]; + r1.y = g1[r2.y].val[0/4]; + r1.z = g2[r2.y].val[0/4]; + r1.w = (int)r2.y + 64; + r2.x = g0[r1.w].val[0/4]; + r2.y = g1[r1.w].val[0/4]; + r2.z = g2[r1.w].val[0/4]; + r1.xyzw = r2.xyzx + r1.xyzx; + r0.xyzw = r1.xyzw * float4(0.00390625,0.00390625,0.00390625,0.00390625) + r0.xyzw; + r1.xy = (uint2)cb0[0].xy; + r1.xy = cmp((uint2)vThreadID.xy < (uint2)r1.xy); + r1.x = r1.y ? r1.x : 0; + r1.x = r1.x ? 1.000000 : 0; + r0.xyzw = r1.xxxx * r0.xyzw; + u0[vThreadID.xy] = r0; + return; +} \ No newline at end of file diff --git a/src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0_original_backup.asm deleted file mode 100644 index d0dbb8b69..000000000 --- a/src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0_original_backup.asm +++ /dev/null @@ -1,1844 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Sat Jan 31 22:24:07 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy w -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// TEXCOORD 2 xyz 3 NONE float xyz -// TEXCOORD 3 xyzw 4 NONE float xyzw -// TEXCOORD 4 xyz 5 NONE float xyz -// TEXCOORD 5 xyz 6 NONE float xyz -// TEXCOORD 6 xyz 7 NONE float xyz -// TEXCOORD 7 xyz 8 NONE float xyz -// TEXCOORD 8 x 9 NONE uint x -// SV_IsFrontFace 0 x 10 FFACE uint x -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// SV_Target 1 xyzw 1 TARGET float xyzw -// -ps_5_0 -dcl_globalFlags refactoringAllowed -dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, - { 0, 1.000000, 0, 0}, - { 0, 0, 1.000000, 0}, - { 0, 0, 0, 1.000000}, - { 2, 1, -1.000000, 1.000000}, - { 2, 1, 1.000000, 1.000000}, - { 0, 2, 1.000000, -1.000000}, - { 0, 2, 1.000000, 1.000000}, - { 0, 1, 1.000000, 1.000000}, - { 0, 1, -1.000000, 1.000000} } -dcl_constantbuffer CB0[216], immediateIndexed -dcl_constantbuffer CB1[4093], dynamicIndexed -dcl_constantbuffer CB2[3], immediateIndexed -dcl_constantbuffer CB3[2054], dynamicIndexed -dcl_constantbuffer CB4[401], dynamicIndexed -dcl_constantbuffer CB5[9], immediateIndexed -dcl_constantbuffer CB6[160], dynamicIndexed -dcl_sampler s0, mode_default -dcl_sampler s1, mode_default -dcl_sampler s2, mode_comparison -dcl_sampler s3, mode_default -dcl_sampler s4, mode_default -dcl_sampler s5, mode_default -dcl_resource_structured t0, 4 -dcl_resource_structured t1, 16 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_resource_texture3d (float,float,float,float) t4 -dcl_resource_texture3d (float,float,float,float) t5 -dcl_resource_texture3d (float,float,float,float) t6 -dcl_resource_texture3d (float,float,float,float) t7 -dcl_resource_texture3d (float,float,float,float) t8 -dcl_resource_texture3d (float,float,float,float) t9 -dcl_resource_texture2d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture2d (float,float,float,float) t12 -dcl_resource_texture2d (float,float,float,float) t13 -dcl_resource_texture2d (float,float,float,float) t14 -dcl_resource_texture2d (float,float,float,float) t15 -dcl_resource_texturecube (float,float,float,float) t16 -dcl_resource_texture2d (float,float,float,float) t17 -dcl_resource_texture3d (float,float,float,float) t18 -dcl_input_ps_siv linear noperspective v0.xyw, position -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_input_ps linear v3.xyz -dcl_input_ps linear v4.xyzw -dcl_input_ps linear v5.xyz -dcl_input_ps linear v6.xyz -dcl_input_ps linear v7.xyz -dcl_input_ps linear v8.xyz -dcl_input_ps constant v9.x -dcl_input_ps_sgv constant v10.x, is_front_face -dcl_output o0.xyzw -dcl_output o1.xyzw -dcl_temps 32 -add r0.xyz, -v2.xyzx, cb0[44].xyzx -mov r1.x, cb0[0].z -mov r1.y, cb0[1].z -mov r1.z, cb0[2].z -add r2.xyz, -r0.xyzx, r1.xyzx -mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx -dp3 r0.w, r0.xyzx, r0.xyzx -max r1.w, r0.w, l(9.999999939E-09) -rsq r1.w, r1.w -mul r2.xyz, r0.xyzx, r1.wwww -ishl r2.w, v9.x, l(4) -and r3.x, l(16), cb1[r2.w + 4].w -if_nz r3.x - iadd r3.x, l(2), cb1[r2.w + 5].x - ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx - ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx -else - mov r3.xy, cb1[r2.w + 3].zxzz -endif -sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t13.xyzw, s3, cb0[108].x -sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t14.xyzw, s4, cb0[108].x -add r3.z, -r5.w, l(1.000000) -mul r4.xyzw, r4.xyzw, cb5[5].xyzw -mul r6.xyz, r4.xyzx, cb5[4].zzzz -dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww -mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww -sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t15.xywz, s5, cb0[108].x -mul r7.x, r7.x, r7.z -mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r3.w, r7.xyxx, r7.xyxx -min r3.w, r3.w, l(1.000000) -add r3.w, -r3.w, l(1.000000) -sqrt r3.w, r3.w -max r3.w, r3.w, l(1.000000017E-16) -mul r7.xy, r7.xyxx, cb5[0].wwww -add r8.xz, -r3.yyxy, v2.xxzx -mov r8.y, l(0.0000610351562) -dp3 r3.x, r8.xyzx, r8.xyzx -rsq r3.x, r3.x -mul r8.xyz, r3.xxxx, r8.xyzx -mul r9.xyz, v3.zxyz, v4.yzxy -mad r9.xyz, v3.yzxy, v4.zxyz, -r9.xyzx -mul r9.xyz, r9.xyzx, v4.wwww -mul r7.yzw, r7.yyyy, r9.xxyz -mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy -mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz -mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) -movc r6.w, v10.x, l(1.000000), r6.w -dp3 r7.x, r3.xywx, r3.xywx -max r7.x, r7.x, l(1.175494351E-38) -rsq r7.x, r7.x -mul r3.xyw, r3.xyxw, r7.xxxx -mul r7.xyz, r6.wwww, r3.xywx -dp3 r8.w, v3.xyzx, v3.xyzx -rsq r8.w, r8.w -mul r9.xyz, r8.wwww, v3.xyzx -mul r9.xyz, r6.wwww, r9.xyzx -ftou r10.xy, v0.xyxx -add r8.w, l(1.000000), -cb0[111].x -mad r8.w, cb0[198].w, r8.w, cb0[111].x -mul r8.w, r8.w, cb0[109].x -lt r9.w, cb0[187].y, l(0.500000) -if_nz r9.w - mad r11.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx - add r11.xyz, -r11.xyzx, v2.xzyx - max r9.w, |r11.y|, |r11.x| - add r9.w, r9.w, l(-464.000000) - mul_sat r9.w, r9.w, l(0.031250) - add r11.x, |r11.z|, l(-208.000000) - mul_sat r11.x, r11.x, l(0.031250) - max r9.w, r9.w, r11.x - ne r11.x, l(0.000000), cb0[210].w - lt r11.y, r9.w, l(1.000000) - and r11.x, r11.y, r11.x - if_nz r11.x - mad r11.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r11.xyz, -r11.xyzx, v2.xzyx - max r11.x, |r11.y|, |r11.x| - add r11.x, r11.x, l(-29.000000) - add r11.y, |r11.z|, l(-13.000000) - mul_sat r11.xy, r11.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) - max r11.x, r11.y, r11.x - lt r11.y, r11.x, l(1.000000) - if_nz r11.y - mad r11.yzw, v2.xxyz, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, 0.500000, 0.500000, 0.500000) - mul r12.xyz, r11.yzwy, cb0[211].xyzx - round_ni r12.xyz, r12.xyzx - mad r12.xyz, r11.yzwy, cb0[211].xyzx, -r12.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r13.xyw, r12.xyzx, t4.yzwx, s1, l(0.000000) - add r11.y, -r11.x, l(1.000000) - mul r11.z, l(0.500000), cb0[211].y - mad r11.w, -cb0[211].y, l(0.500000), l(1.000000) - max r11.z, r11.z, r12.y - min r11.z, r11.w, r11.z - mul r12.w, r11.z, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r12.xwzx, t5.xyzw, s0, l(0.000000) - mad r11.z, r14.w, r11.y, r9.w - add r15.xyz, r12.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s0, l(0.000000) - mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r15.xyz, r13.yyyy, r15.xyzx - mov r15.w, r13.y - mul r15.xyzw, r11.yyyy, r15.xyzw - add r12.xyz, r12.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t5.xyzw, s0, l(0.000000) - mad r12.xyz, r12.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r12.xyz, r13.xxxx, r12.xyzx - mov r12.w, r13.x - mul r12.xyzw, r11.yyyy, r12.xyzw - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r13.xyz, r13.wwww, r14.xyzx - mul r13.xyzw, r11.yyyy, r13.xyzw - else - mov r15.xyzw, l(0,0,0,0) - mov r12.xyzw, l(0,0,0,0) - mov r13.xyzw, l(0,0,0,0) - mov r11.z, r9.w - endif - mad r14.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx - add r14.xyz, -r14.xyzx, v2.xzyx - max r11.y, |r14.y|, |r14.x| - add r11.y, r11.y, l(-116.000000) - add r11.w, |r14.z|, l(-52.000000) - mul_sat r11.yw, r11.yyyw, l(0.000000, 0.125000, 0.000000, 0.125000) - max r11.y, r11.w, r11.y - lt r11.w, r11.y, l(1.000000) - if_nz r11.w - mad r14.xyz, v2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r16.xyz, r14.xyzx, cb0[211].xyzx - round_ni r16.xyz, r16.xyzx - mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r16.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r16.xyw, r14.xyzx, t6.yzwx, s1, l(0.000000) - add r11.w, -r11.y, l(1.000000) - mul r11.x, r11.w, r11.x - mul r11.w, l(0.500000), cb0[211].y - mad r17.x, -cb0[211].y, l(0.500000), l(1.000000) - max r11.w, r11.w, r14.y - min r11.w, r17.x, r11.w - mul r14.w, r11.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t7.xyzw, s0, l(0.000000) - mad r11.z, r17.w, r11.x, r11.z - add r18.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t7.xyzw, s0, l(0.000000) - mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r16.yyyy, r18.xyzx - mov r18.w, r16.y - mad r15.xyzw, r18.xyzw, r11.xxxx, r15.xyzw - add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t7.xyzw, s0, l(0.000000) - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r14.xyz, r16.xxxx, r14.xyzx - mov r14.w, r16.x - mad r12.xyzw, r14.xyzw, r11.xxxx, r12.xyzw - mad r14.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r16.wwww, r14.xyzx - mad r13.xyzw, r16.xyzw, r11.xxxx, r13.xyzw - endif - lt r11.x, l(0.000000), r11.y - if_nz r11.x - mad r14.xyz, v2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r16.xyz, r14.xyzx, cb0[211].xyzx - mul r17.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r16.xyz, r16.xyzx - mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r16.xyzx - mad r16.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r14.xyz, r17.xyzx, r14.xyzx - min r14.xyz, r16.xyzx, r14.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r14.xyzx, t8.yzwx, s1, l(0.000000) - add r11.x, -r9.w, l(1.000000) - mul r11.x, r11.x, r11.y - max r11.y, r17.y, r14.y - min r11.y, r16.y, r11.y - mul r14.w, r11.y, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t9.xyzw, s0, l(0.000000) - add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t9.xyzw, s0, l(0.000000) - mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r17.xyz, r18.yyyy, r17.xyzx - mov r17.w, r18.y - mad r15.xyzw, r17.xyzw, r11.xxxx, r15.xyzw - add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t9.xyzw, s0, l(0.000000) - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r14.xyz, r18.xxxx, r14.xyzx - mov r14.w, r18.x - mad r12.xyzw, r14.xyzw, r11.xxxx, r12.xyzw - mad r14.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r18.wwww, r14.xyzx - mad r13.xyzw, r18.xyzw, r11.xxxx, r13.xyzw - mad r11.z, r16.w, r11.x, r11.z - endif - mad_sat r11.x, r11.z, l(2.000000), l(-1.000000) - add r14.x, -r9.w, r11.x - add r9.w, r9.w, r11.x - mul r14.y, r9.w, l(0.500000) - else - mov r15.xyzw, l(0,0,0,0) - mov r12.xyzw, l(0,0,0,0) - mov r13.xyzw, l(0,0,0,0) - mov r14.xy, l(0,1.000000,0,0) - endif - mul r11.xyzw, r14.yyyx, cb0[213].xyzw - mad r11.y, r11.w, l(0.500000), r11.y - mul r14.zw, r14.yyyx, cb0[213].wwwy - mad r11.w, r14.w, l(0.375000), r14.z - add r11.xyzw, r11.xyzw, r13.xyzw - mul r13.xyzw, r14.yyyx, cb0[214].xyzw - mad r13.y, r13.w, l(0.500000), r13.y - mul r14.zw, r14.yyyx, cb0[214].wwwy - mad r13.w, r14.w, l(0.375000), r14.z - add r12.xyzw, r12.xyzw, r13.xyzw - mul r13.xyzw, r14.yyyx, cb0[215].xyzw - mad r13.y, r13.w, l(0.500000), r13.y - mul r14.xy, r14.yxyy, cb0[215].wyww - mad r13.w, r14.y, l(0.375000), r14.x - add r13.xyzw, r13.xyzw, r15.xyzw - mov r7.w, l(1.000000) - dp4 r14.x, r11.xyzw, r7.xyzw - dp4 r14.y, r12.xyzw, r7.xyzw - dp4 r14.z, r13.xyzw, r7.xyzw - max r14.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r15.xyz, r8.wwww, r14.xyzx - mul r16.xyz, r12.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) - mad r16.xyz, r11.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r16.xyzx - mad r16.xyz, r13.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r16.xyzx - dp3 r7.w, r16.xyzx, r16.xyzx - max r7.w, r7.w, l(1.175494351E-38) - rsq r7.w, r7.w - mul r16.xyz, r7.wwww, r16.xyzx - mov r16.y, |r16.y| - mov r16.w, l(1.000000) - dp4 r11.x, r11.xyzw, r16.xyzw - dp4 r11.y, r12.xyzw, r16.xyzw - dp4 r11.z, r13.xyzw, r16.xyzw - max r11.xyz, r11.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - ge r7.w, r15.y, r15.z - and r7.w, r7.w, l(0x3f800000) - mov r12.xy, r15.zyzz - mov r12.zw, l(0,0,-1.000000,0.666666687) - mad r13.xy, r14.yzyy, r8.wwww, -r12.xyxx - mov r13.zw, l(0,0,1.000000,-1.000000) - mad r12.xyzw, r7.wwww, r13.xyzw, r12.xyzw - ge r7.w, r15.x, r12.x - and r7.w, r7.w, l(0x3f800000) - mov r13.xyz, r12.xywx - mov r13.w, r15.x - mov r12.xyw, r13.wywx - add r12.xyzw, -r13.xyzw, r12.xyzw - mad r12.xyzw, r7.wwww, r12.xyzw, r13.xyzw - min r7.w, r12.y, r12.w - add r7.w, -r7.w, r12.x - add r9.w, -r12.y, r12.w - mad r11.w, r7.w, l(6.000000), l(0.000100) - div r9.w, r9.w, r11.w - add r9.w, r9.w, r12.z - frc r9.w, |r9.w| - add r11.w, r12.x, l(0.000100) - div r7.w, r7.w, r11.w - add r13.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) - add r9.w, |r13.x|, l(-0.450000) - mul_sat r9.w, r9.w, l(-10.000001) - mad r11.w, r9.w, l(-2.000000), l(3.000000) - mul r9.w, r9.w, r9.w - mul r9.w, r9.w, r11.w - mad r9.w, r9.w, l(-0.350000), l(0.700000) - mov_sat r12.x, r12.x - mul r9.w, r9.w, r12.x - min r7.w, r7.w, r9.w - add r9.w, -r7.w, l(2.000000) - div r9.w, l(2.000000), r9.w - frc r12.xyz, r13.yzwy - mad r12.xyz, r12.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) - add_sat r12.xyz, |r12.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) - add r12.xyz, r12.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) - mad r12.xyz, r7.wwww, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - mul r12.xyz, r9.wwww, r12.xyzx - max r7.w, r11.y, r11.x - max r7.w, r11.z, r7.w - mul r8.w, r8.w, r7.w - mov r7.w, l(1.000000) -else - mov r16.xyz, l(0,0,0,0) - mov r15.xyz, l(1.000000,1.000000,1.000000,0) - mov r12.xyz, cb0[188].xyzx - mov r7.w, l(0) -endif -add r9.w, -v2.y, cb1[r2.w + 12].z -add r9.w, r9.w, l(0.200000) -mul_sat r9.w, r9.w, l(2.85714269) -mad r11.x, r9.w, l(-2.000000), l(3.000000) -mul r9.w, r9.w, r9.w -mul r9.w, r9.w, r11.x -mul r9.w, r9.w, cb1[r2.w + 12].y -max r9.w, r9.w, cb1[r2.w + 12].w -add r11.x, r9.w, cb1[r2.w + 12].x -lt r11.x, l(0.010000), r11.x -if_nz r11.x - add r11.x, -r5.x, l(1.000000) - mul r11.yzw, r4.xxyz, r11.xxxx - dp3 r11.y, r11.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r11.y, r11.y, l(-0.350000) - mul_sat r11.y, r11.y, l(-4.000000) - mad r11.z, r11.y, l(-2.000000), l(3.000000) - mul r11.y, r11.y, r11.y - mul r11.w, r11.y, r11.z - mul r13.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) - movc r13.xyzw, cb1[r2.w + 4].wwww, r13.xyzw, v8.xzxy - mul r14.xyzw, r13.xyzw, cb0[196].zzzz - movc r17.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy - mov r17.x, v7.x - add r18.xyz, |r17.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) - mul r19.xyz, r18.xyzx, r18.xyzx - mul r18.xyz, r18.xyzx, r19.xyzx - max r18.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - dp3 r12.w, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - div r18.xyz, r18.xyzx, r12.wwww - sample_b_indexable(texture2d)(float,float,float,float) r20.xyzw, r14.zyzz, t11.xyzw, s3, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r14.zwzz, t11.xyzw, s3, cb0[108].x - mul r21.xyzw, r18.zzzz, r21.xyzw - mad r20.xyzw, r20.xyzw, r18.yyyy, r21.xyzw - sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r14.ywyy, t11.xyzw, s3, cb0[108].x - mad r18.xyzw, r21.xyzw, r18.xxxx, r20.xyzw - add r17.yw, -r18.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) - mul r20.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) - mad_sat r12.w, cb1[r2.w + 12].x, r11.x, r20.x - add r12.w, -r17.y, r12.w - mul_sat r12.w, r12.w, l(3.33333325) - mad r13.x, r12.w, l(-2.000000), l(3.000000) - mul r12.w, r12.w, r12.w - mul r12.w, r12.w, r13.x - mul_sat r11.x, r9.w, r11.x - add r11.x, -r17.w, r11.x - mul_sat r11.x, r11.x, l(1.53846145) - mad r13.x, r11.x, l(-2.000000), l(3.000000) - mul r11.x, r11.x, r11.x - mul r11.x, r11.x, r13.x - max r11.x, r11.x, r12.w - add r12.w, r5.x, l(-0.500000) - mul_sat r12.w, r12.w, l(4.000000) - mad r13.x, r12.w, l(-2.000000), l(3.000000) - mul r12.w, r12.w, r12.w - mul r12.w, r12.w, r13.x - add r5.w, -r5.w, l(0.199999988) - mul_sat r5.w, r5.w, l(-5.00000048) - mad r13.x, r5.w, l(-2.000000), l(3.000000) - mul r5.w, r5.w, r5.w - mul r5.w, r5.w, r13.x - mad r13.x, r5.w, r11.w, r12.w - min r13.x, r13.x, l(1.000000) - max r9.w, r9.w, cb1[r2.w + 12].x - mad r17.yw, r18.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mul r18.xyw, r14.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) - mul r21.xyz, r14.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) - mul r22.xyz, r19.xyzx, r19.xyzx - mul r22.xyz, r22.xyzx, r22.xyzx - mul r19.xyz, r19.xyzx, r22.xyzx - dp3 r15.w, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - div r19.xyz, r19.xyzx, r15.wwww - round_ni r22.xyzw, r18.yxyw - mul r23.xyzw, r22.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r23.xyzw, r23.xyzw - add r24.xyzw, r23.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r15.w, r23.xyxx, r24.xyxx - add r20.xw, r15.wwww, r23.xxxy - mul r15.w, r20.w, r20.x - add r16.w, r20.w, r20.x - frc r15.w, r15.w - frc r25.w, r16.w - add r26.xyzw, r22.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) - mul r26.xyzw, r26.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r26.xyzw, r26.xyzw - add r27.xyzw, r26.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r16.w, r26.xyxx, r27.xyxx - add r20.xw, r16.wwww, r26.xxxy - mul r16.w, r20.w, r20.x - add r18.y, r20.w, r20.x - frc r23.x, r16.w - frc r23.y, r18.y - mad r16.w, r15.w, l(0.399999976), l(0.600000) - mul r18.y, r16.w, l(0.250000) - mad r22.xyzw, r14.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r22.xyzw - mad r20.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r20.xw, r20.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r22.xxxy - add r20.xw, r20.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) - mul r22.x, r20.x, l(1.250000) - lt r19.w, r20.w, l(0.000000) - movc r19.w, r19.w, l(1.250000), l(0.750000) - mul r22.y, r19.w, r20.w - mad r15.w, cb0[102].x, l(3.000000), r15.w - frc r15.w, r15.w - add r20.xw, r15.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) - mul_sat r20.xw, r20.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) - mad r24.xy, r20.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) - mul r20.xw, r20.xxxw, r20.xxxw - mul r20.xw, r20.xxxw, r24.xxxy - mul r15.w, r20.w, r20.x - dp2 r19.w, r22.xyxx, r22.xyxx - sqrt r19.w, r19.w - mad r16.w, -r16.w, l(0.250000), r19.w - div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.y - mul_sat r16.w, r16.w, r19.w - mad r19.w, r16.w, l(-2.000000), l(3.000000) - mul r16.w, r16.w, r16.w - mul r16.w, r16.w, r19.w - ge r16.w, r16.w, l(0.001000) - and r16.w, r16.w, l(0x3f800000) - mul r25.z, r15.w, r16.w - div r20.xw, r22.xxxy, r18.yyyy - max r20.xw, r20.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) - min r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) - ge r15.w, r25.z, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r20.xw, r15.wwww, r20.xxxw - mad r15.w, r23.x, l(0.250000), l(0.250000) - mul r25.xy, r15.wwww, r20.xwxx - dp2 r15.w, r23.zwzz, r24.zwzz - add r20.xw, r15.wwww, r23.zzzw - mul r15.w, r20.w, r20.x - add r16.w, r20.w, r20.x - frc r15.w, r15.w - frc r23.w, r16.w - dp2 r16.w, r26.zwzz, r27.zwzz - add r20.xw, r16.wwww, r26.zzzw - mul r16.w, r20.w, r20.x - add r18.y, r20.w, r20.x - frc r22.x, r16.w - frc r22.y, r18.y - mad r16.w, r15.w, l(0.399999976), l(0.600000) - mul r18.y, r16.w, l(0.250000) - mad r20.xw, r22.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r20.xw, r20.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r22.zzzw - add r20.xw, r20.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) - mul r24.x, r20.x, l(1.250000) - lt r19.w, r20.w, l(0.000000) - movc r19.w, r19.w, l(1.250000), l(0.750000) - mul r24.y, r19.w, r20.w - mad r15.w, cb0[102].x, l(3.000000), r15.w - frc r15.w, r15.w - add r20.xw, r15.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) - mul_sat r20.xw, r20.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) - mad r22.yz, r20.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) - mul r20.xw, r20.xxxw, r20.xxxw - mul r20.xw, r20.xxxw, r22.yyyz - mul r15.w, r20.w, r20.x - dp2 r19.w, r24.xyxx, r24.xyxx - sqrt r19.w, r19.w - mad r16.w, -r16.w, l(0.250000), r19.w - div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.y - mul_sat r16.w, r16.w, r19.w - mad r19.w, r16.w, l(-2.000000), l(3.000000) - mul r16.w, r16.w, r16.w - mul r16.w, r16.w, r19.w - ge r16.w, r16.w, l(0.001000) - and r16.w, r16.w, l(0x3f800000) - mul r23.z, r15.w, r16.w - div r20.xw, r24.xxxy, r18.yyyy - max r20.xw, r20.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) - min r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) - ge r15.w, r23.z, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r20.xw, r15.wwww, r20.xxxw - mad r15.w, r22.x, l(0.250000), l(0.250000) - mul r23.xy, r15.wwww, r20.xwxx - round_ni r18.xy, r18.xwxx - mul r20.xw, r18.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r20.xw, r20.xxxw - add r22.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r15.w, r20.xwxx, r22.xyxx - add r20.xw, r15.wwww, r20.xxxw - mul r15.w, r20.w, r20.x - add r16.w, r20.w, r20.x - frc r15.w, r15.w - frc r22.w, r16.w - add r20.xw, r18.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) - mul r20.xw, r20.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r20.xw, r20.xxxw - add r24.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r16.w, r20.xwxx, r24.xyxx - add r20.xw, r16.wwww, r20.xxxw - mul r16.w, r20.w, r20.x - add r18.w, r20.w, r20.x - frc r24.x, r16.w - frc r24.y, r18.w - mad r16.w, r15.w, l(0.399999976), l(0.600000) - mul r18.w, r16.w, l(0.250000) - mad r18.xy, r14.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r18.xyxx - mad r20.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r18.xy, r20.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r18.xyxx - add r18.xy, r18.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) - mul r26.x, r18.x, l(1.250000) - lt r18.x, r18.y, l(0.000000) - movc r18.x, r18.x, l(1.250000), l(0.750000) - mul r26.y, r18.x, r18.y - mad r15.w, cb0[102].x, l(3.000000), r15.w - frc r15.w, r15.w - add r18.xy, r15.wwww, l(-0.200000, -0.850000, 0.000000, 0.000000) - mul_sat r18.xy, r18.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) - mad r20.xw, r18.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r18.xy, r18.xyxx, r18.xyxx - mul r18.xy, r18.xyxx, r20.xwxx - mul r15.w, r18.y, r18.x - dp2 r18.x, r26.xyxx, r26.xyxx - sqrt r18.x, r18.x - mad r16.w, -r16.w, l(0.250000), r18.x - div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w - mul_sat r16.w, r16.w, r18.x - mad r18.x, r16.w, l(-2.000000), l(3.000000) - mul r16.w, r16.w, r16.w - mul r16.w, r16.w, r18.x - ge r16.w, r16.w, l(0.001000) - and r16.w, r16.w, l(0x3f800000) - mul r22.z, r15.w, r16.w - div r18.xy, r26.xyxx, r18.wwww - max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r15.w, r22.z, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r18.xy, r15.wwww, r18.xyxx - mad r15.w, r24.x, l(0.250000), l(0.250000) - mul r22.xy, r15.wwww, r18.xyxx - mul r23.xyzw, r19.zzzz, r23.xyzw - mad r23.xyzw, r25.xyzw, r19.yyyy, r23.xyzw - mad r22.xyzw, r22.xyzw, r19.xxxx, r23.xyzw - round_ni r23.xyzw, r21.yxyz - mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r24.xyzw, r24.xyzw - add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r15.w, r24.xyxx, r25.xyxx - add r18.xy, r15.wwww, r24.xyxx - mul r15.w, r18.y, r18.x - add r16.w, r18.y, r18.x - frc r15.w, r15.w - frc r26.w, r16.w - add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) - mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r27.xyzw, r27.xyzw - add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r16.w, r27.xyxx, r28.xyxx - add r18.xy, r16.wwww, r27.xyxx - mul r16.w, r18.y, r18.x - add r18.x, r18.y, r18.x - frc r24.x, r16.w - frc r24.y, r18.x - mad r16.w, r15.w, l(0.399999976), l(0.600000) - mul r18.x, r16.w, l(0.250000) - mad r23.xyzw, r14.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r23.xyzw - mad r18.yw, r24.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r18.yw, r18.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r23.xxxy - add r18.yw, r18.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) - mul r23.x, r18.y, l(1.250000) - lt r14.x, r18.w, l(0.000000) - movc r14.x, r14.x, l(1.250000), l(0.750000) - mul r23.y, r14.x, r18.w - mad r14.x, cb0[102].x, l(4.345600), r15.w - frc r14.x, r14.x - add r18.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) - mul_sat r18.yw, r18.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) - mad r20.xw, r18.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r18.yw, r18.yyyw, r18.yyyw - mul r18.yw, r18.yyyw, r20.xxxw - mul r14.x, r18.w, r18.y - dp2 r15.w, r23.xyxx, r23.xyxx - sqrt r15.w, r15.w - mad r15.w, -r16.w, l(0.250000), r15.w - div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.x - mul_sat r15.w, r15.w, r16.w - mad r16.w, r15.w, l(-2.000000), l(3.000000) - mul r15.w, r15.w, r15.w - mul r15.w, r15.w, r16.w - ge r15.w, r15.w, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r26.z, r14.x, r15.w - div r18.xy, r23.xyxx, r18.xxxx - max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r14.x, r26.z, l(0.001000) - and r14.x, r14.x, l(0x3f800000) - mul r18.xy, r14.xxxx, r18.xyxx - mad r14.x, r24.x, l(0.250000), l(0.250000) - mul r26.xy, r14.xxxx, r18.xyxx - dp2 r14.x, r24.zwzz, r25.zwzz - add r18.xy, r14.xxxx, r24.zwzz - mul r14.x, r18.y, r18.x - add r15.w, r18.y, r18.x - frc r14.x, r14.x - frc r24.w, r15.w - dp2 r15.w, r27.zwzz, r28.zwzz - add r18.xy, r15.wwww, r27.zwzz - mul r15.w, r18.y, r18.x - add r16.w, r18.y, r18.x - frc r18.x, r15.w - frc r18.y, r16.w - mad r15.w, r14.x, l(0.399999976), l(0.600000) - mul r16.w, r15.w, l(0.250000) - mad r18.yw, r18.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r18.yw, r18.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r23.zzzw - add r18.yw, r18.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) - mul r23.x, r18.y, l(1.250000) - lt r18.y, r18.w, l(0.000000) - movc r18.y, r18.y, l(1.250000), l(0.750000) - mul r23.y, r18.y, r18.w - mad r14.x, cb0[102].x, l(4.345600), r14.x - frc r14.x, r14.x - add r18.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) - mul_sat r18.yw, r18.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) - mad r20.xw, r18.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r18.yw, r18.yyyw, r18.yyyw - mul r18.yw, r18.yyyw, r20.xxxw - mul r14.x, r18.w, r18.y - dp2 r18.y, r23.xyxx, r23.xyxx - sqrt r18.y, r18.y - mad r15.w, -r15.w, l(0.250000), r18.y - div r18.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w - mul_sat r15.w, r15.w, r18.y - mad r18.y, r15.w, l(-2.000000), l(3.000000) - mul r15.w, r15.w, r15.w - mul r15.w, r15.w, r18.y - ge r15.w, r15.w, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r24.z, r14.x, r15.w - div r18.yw, r23.xxxy, r16.wwww - max r18.yw, r18.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) - min r18.yw, r18.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) - ge r14.x, r24.z, l(0.001000) - and r14.x, r14.x, l(0x3f800000) - mul r18.yw, r14.xxxx, r18.yyyw - mad r14.x, r18.x, l(0.250000), l(0.250000) - mul r24.xy, r14.xxxx, r18.ywyy - round_ni r18.xy, r21.xzxx - mul r20.xw, r18.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r20.xw, r20.xxxw - add r21.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r14.x, r20.xwxx, r21.xyxx - add r20.xw, r14.xxxx, r20.xxxw - mul r14.x, r20.w, r20.x - add r15.w, r20.w, r20.x - frc r14.x, r14.x - frc r21.w, r15.w - add r20.xw, r18.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) - mul r20.xw, r20.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r20.xw, r20.xxxw - add r23.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r15.w, r20.xwxx, r23.xyxx - add r20.xw, r15.wwww, r20.xxxw - mul r15.w, r20.w, r20.x - add r16.w, r20.w, r20.x - frc r23.x, r15.w - frc r23.y, r16.w - mad r15.w, r14.x, l(0.399999976), l(0.600000) - mul r16.w, r15.w, l(0.250000) - mad r18.xy, r14.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r18.xyxx - mad r20.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r18.xy, r20.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r18.xyxx - add r18.xy, r18.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) - mul r25.x, r18.x, l(1.250000) - lt r18.x, r18.y, l(0.000000) - movc r18.x, r18.x, l(1.250000), l(0.750000) - mul r25.y, r18.x, r18.y - mad r14.x, cb0[102].x, l(4.345600), r14.x - frc r14.x, r14.x - add r18.xy, r14.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) - mul_sat r18.xy, r18.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) - mad r20.xw, r18.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r18.xy, r18.xyxx, r18.xyxx - mul r18.xy, r18.xyxx, r20.xwxx - mul r14.x, r18.y, r18.x - dp2 r18.x, r25.xyxx, r25.xyxx - sqrt r18.x, r18.x - mad r15.w, -r15.w, l(0.250000), r18.x - div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w - mul_sat r15.w, r15.w, r18.x - mad r18.x, r15.w, l(-2.000000), l(3.000000) - mul r15.w, r15.w, r15.w - mul r15.w, r15.w, r18.x - ge r15.w, r15.w, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r21.z, r14.x, r15.w - div r18.xy, r25.xyxx, r16.wwww - max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r14.x, r21.z, l(0.001000) - and r14.x, r14.x, l(0x3f800000) - mul r18.xy, r14.xxxx, r18.xyxx - mad r14.x, r23.x, l(0.250000), l(0.250000) - mul r21.xy, r14.xxxx, r18.xyxx - mul r23.xyzw, r19.zzzz, r24.xyzw - mad r23.xyzw, r26.xyzw, r19.yyyy, r23.xyzw - mad r19.xyzw, r21.xyzw, r19.xxxx, r23.xyzw - max r18.xy, r19.zwzz, r22.zwzz - mad r19.zw, -r13.xxxx, r9.wwww, l(0.000000, 0.000000, 1.000000, 1.010000) - add r14.x, r18.y, l(-0.100000) - ge r14.x, r14.x, r19.z - and r14.x, r14.x, l(0x3f800000) - mul r14.x, r14.x, r18.x - ge r2.w, cb1[r2.w + 12].x, l(0.010000) - and r2.w, r2.w, l(0x3f800000) - mul r2.w, r2.w, r14.x - lt r14.x, l(0.001000), r2.w - add r18.xy, r19.xyxx, r22.xyxx - mul r15.w, cb0[102].x, cb0[196].z - mul r19.y, r15.w, l(0.750000) - dp2 r15.w, r17.xzxx, r17.xzxx - max r15.w, r15.w, l(1.175494351E-38) - rsq r15.w, r15.w - mul r17.xz, r15.wwww, r17.xxzx - add r17.xz, |r17.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) - mul r20.xw, r17.xxxz, r17.xxxz - mul r17.xz, r17.xxzx, r20.xxwx - max r17.xz, r17.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) - dp2 r15.w, r17.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) - div r17.xz, r17.xxzx, r15.wwww - sample_b_indexable(texture2d)(float,float,float,float) r21.xyz, r14.zwzz, t12.xyzw, s3, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r14.yzw, r14.ywyy, t12.wxyz, s3, cb0[108].x - mul r14.yzw, r17.xxxx, r14.yyzw - mad r14.yzw, r21.xxyz, r17.zzzz, r14.yyzw - movc r17.yw, r14.xxxx, r18.xxxy, r17.yyyw - mad r14.xy, r14.yzyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) - mov r19.x, l(0) - mad r21.xyzw, r13.zwyw, cb0[196].zzzz, r19.xyxy - sample_b_indexable(texture2d)(float,float,float,float) r13.y, r21.xyxx, t12.xwyz, s3, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r13.z, r21.zwzz, t12.xywz, s3, cb0[108].x - mul r13.z, r17.x, r13.z - mad r13.y, r13.y, r17.z, r13.z - mad r13.yz, r14.xxyx, r13.yyyy, r17.yywy - ge r13.w, r18.z, r19.w - and r13.w, r13.w, l(0x3f800000) - max r2.w, r2.w, r13.w - add r13.w, -r14.w, l(1.000000) - mad r9.w, r13.x, r9.w, -r13.w - mul_sat r9.w, r9.w, l(9.999998) - mad r13.x, r9.w, l(-2.000000), l(3.000000) - mul r9.w, r9.w, r9.w - mul r9.w, r9.w, r13.x - max r2.w, r2.w, r9.w - mad r13.xw, -r7.zzzy, l(1.000000, 0.000000, 0.000000, 0.000000), r20.yyyz - dp2 r9.w, r13.xwxx, r13.xwxx - lt r14.x, l(0.0000610351562), r9.w - rsq r9.w, r9.w - mul r13.xw, r9.wwww, r13.xxxw - mov r13.xw, -r13.xxxw - movc r17.z, r14.x, r13.x, l(-1.000000) - and r17.y, r13.w, r14.x - min r9.w, r3.z, l(0.050000) - add r13.x, -r3.z, r9.w - mad r13.x, r2.w, r13.x, r3.z - mad r11.y, -r11.z, r11.y, l(1.000000) - mul r11.y, r11.y, r11.x - mad r5.w, -r5.w, r11.w, l(1.000000) - mul r5.w, r5.w, r11.y - mad r5.w, r5.w, l(-0.500000), l(1.000000) - mov r17.x, l(0) - mad r3.xyw, -r3.xyxw, r6.wwww, r17.zxzy - mad r3.xyw, r13.yyyy, r3.xyxw, r7.xyxz - mul r14.xyz, r7.zxyz, r17.xyzx - mad r14.xyz, r7.yzxy, r17.yzxy, -r14.xyzx - add r14.xyz, -r3.xywx, r14.xyzx - mad r3.xyw, r13.zzzz, r14.xyxz, r3.xyxw - dp3 r6.w, r3.xywx, r3.xywx - rsq r6.w, r6.w - mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz - mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz - dp3 r6.w, r3.xywx, r3.xywx - rsq r6.w, r6.w - mul r3.xyw, r3.xyxw, r6.wwww - mul r6.w, r11.w, r11.x - mad r6.w, -r6.w, l(0.200000), r13.x - min r11.x, r13.x, l(0.200000) - max r3.z, r6.w, r11.x - mul r6.xyz, r5.wwww, r6.xyzx - dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r6.w, r6.w, l(-0.700000) - mul_sat r6.w, r6.w, l(-2.50000024) - mad r11.x, r6.w, l(-2.000000), l(3.000000) - mul r6.w, r6.w, r6.w - mul r6.w, r6.w, r11.x - mad r6.w, r6.w, l(0.500000), l(1.000000) - mul r11.x, r12.w, r2.w - mad r11.yzw, r4.xxyz, r6.wwww, -r4.xxyz - mad r11.xyz, r11.xxxx, r11.yzwy, r4.xyzx - mul r4.xyz, r5.wwww, r11.xyzx -else - mov r3.xyw, r7.xyxz - mov r9.w, l(0.010000) - mov r2.w, l(0) -endif -mul r5.w, r5.y, l(0.040000) -mad r6.w, -r5.x, l(0.960000), l(0.960000) -mul r11.xyz, r4.xyzx, r6.wwww -mad r13.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx -mad r13.xyz, r5.xxxx, r13.xyzx, r5.wwww -mul r6.xyz, r6.wwww, r6.xyzx -mul r5.y, r3.z, r3.z -max r5.y, r5.y, l(0.00781250000) -max r5.w, v5.z, l(9.999999939E-09) -div r14.xy, v5.xyxx, r5.wwww -max r5.w, v6.z, l(9.999999939E-09) -div r14.zw, v6.xxxy, r5.wwww -add r14.xy, -r14.zwzz, r14.xyxx -mul r17.xy, r14.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) -sqrt r17.xy, |r17.xyxx| -sqrt r17.xy, r17.xyxx -mov r14.z, -r14.y -lt r14.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xxxz -lt r14.xz, r14.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) -iadd r14.xy, -r14.ywyy, r14.xzxx -itof r14.xy, r14.xyxx -mul r14.xy, r14.xyxx, r17.xyxx -mad o1.xy, r14.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) -lt r5.w, l(0.500000), r2.w -movc o1.w, r5.w, l(0.700000), l(0.400000) -add r14.xyz, cb0[197].xyzx, cb3[0].xyzx -mad r14.xyz, cb0[187].wwww, r14.xyzx, -cb3[0].xyzx -mov r14.w, l(0.0000610351562) -dp3 r5.w, r14.xzwx, r14.xzwx -rsq r5.w, r5.w -mul r17.xyz, r5.wwww, r14.xwzx -add r18.xyz, cb0[191].xyzx, -cb3[3].xyzx -mad r18.xyz, cb0[198].yyyy, r18.xyzx, cb3[3].xyzx -add r5.w, l(1.000000), -cb3[3].w -mad r5.w, cb0[198].w, r5.w, cb3[3].w -mul r19.xyz, r5.wwww, r18.xyzx -mov r10.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r20.xy, r10.xyzz, t3.xyzw -add r10.z, r20.x, l(-1.000000) -mad r10.z, cb4[34].x, r10.z, l(1.000000) -add r11.w, -r10.z, l(1.000000) -mad r10.z, cb0[187].z, r11.w, r10.z -dp3 r11.w, r7.xyzx, r14.xyzx -mul r20.xzw, r6.xxyz, cb0[186].zzzz -mul r21.xyz, r20.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) -dp3 r12.w, r11.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -dp2 r13.w, cb0[6].xzxx, cb0[6].xzxx -rsq r13.w, r13.w -mul r22.xy, r13.wwww, cb0[6].xzxx -dp2 r13.w, r17.xzxx, r22.xyxx -mov_sat r13.w, -r13.w -add r22.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx -mad r14.w, r11.w, l(0.500000), l(-1.000000) -mad r14.w, -r11.w, r14.w, -r11.w -add r15.w, l(0.750000), -|cb0[6].y| -add_sat r15.w, r15.w, r15.w -mad r16.w, r15.w, l(-2.000000), l(3.000000) -mul r15.w, r15.w, r15.w -mul r15.w, r15.w, r16.w -mul r15.w, r13.w, r15.w -mul r15.w, r22.x, r15.w -add r14.w, r14.w, l(0.500000) -mad r11.w, r15.w, r14.w, r11.w -mad r11.w, cb0[197].w, cb0[198].x, r11.w -max r11.w, r11.w, l(-1.000000) -min r11.w, r11.w, l(1.000000) -mad r23.x, r11.w, l(0.500000), l(0.500000) -mov r23.yw, l(0,0.500000,0,0.500000) -sample_l_indexable(texture2d)(float,float,float,float) r24.xyzw, r23.xyxx, t10.xyzw, s0, l(0.000000) -max r11.w, r24.y, r24.x -max r11.w, r24.z, r11.w -min r14.w, r24.y, r24.x -min r14.w, r24.z, r14.w -add r11.w, r11.w, -r14.w -dp3 r14.w, r7.xyzx, cb0[6].xyzx -mad r23.z, r14.w, l(0.500000), l(0.500000) -sample_l_indexable(texture2d)(float,float,float,float) r14.w, r23.zwzz, t10.xyzw, s0, l(0.000000) -mul r15.w, r5.z, r20.y -min r16.w, r5.z, r20.y -min r17.w, r24.w, r16.w -mul r18.w, r14.w, r15.w -dp3 r19.w, r7.xyzx, cb0[192].xyzx -add_sat r19.w, r19.w, cb0[193].x -mad r19.w, r19.w, cb0[193].y, cb0[193].z -mul r21.w, r17.w, cb0[187].y -add r23.xyz, -r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r23.xyz, r21.wwww, r23.xyzx, r12.xyzx -mul r23.xyz, r19.wwww, r23.xyzx -mad r19.w, r8.w, l(0.350000024), l(0.650000) -min r19.w, r19.w, l(1.500000) -max r25.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) -min r25.xyz, r25.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) -add r8.w, -r19.w, r25.x -mad r8.w, cb0[187].x, r8.w, r19.w -mul r26.xyz, r8.wwww, r23.xyzx -mul r26.xyz, r26.xyzx, cb0[186].wwww -dp3 r8.w, r19.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r19.xyz, r18.xyzx, r5.wwww, -r8.wwww -mad r19.xyz, r17.wwww, r19.xyzx, r8.wwww -mul r23.xyz, r23.xyzx, r25.yyyy -mad r22.yzw, r18.xxyz, cb0[198].yyyy, r22.yyyy -mad r19.xyz, r23.xyzx, r22.yzwy, r19.xyzx -mad r19.xyz, r19.xyzx, cb0[186].yyyy, -r26.xyzx -mad r19.xyz, r10.zzzz, r19.xyzx, r26.xyzx -dp3 r8.w, r21.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r21.xyz, r20.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww -mad r21.xyz, r21.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww -mad_sat r8.w, r14.w, r15.w, r24.w -mad r22.yzw, r6.xxyz, cb0[186].zzzz, -r21.xxyz -mad r21.xyz, r8.wwww, r22.yzwy, r21.xyzx -mad r22.yzw, r4.xxyz, r6.wwww, -r21.xxyz -mad r21.xyz, r17.wwww, r22.yzwy, r21.xyzx -add r8.w, -r11.w, l(1.000000) -mad r22.yzw, r24.xxyz, r11.wwww, r8.wwww -mul r22.yzw, r21.xxyz, r22.yyzw -mad r23.xyz, r4.xyzx, r6.wwww, -r12.wwww -mad r23.xyz, r23.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r12.wwww -mad r23.xyz, -r6.xyzx, cb0[186].zzzz, r23.xyzx -mad r20.xzw, r18.wwww, r23.xxyz, r20.xxzw -dp3 r8.w, r21.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -dp3 r11.w, r22.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) -max r11.w, r11.w, l(0.001000) -div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w -mul r8.w, r8.w, r11.w -max r8.w, r8.w, l(0.000000) -min r8.w, r8.w, l(1.500000) -mad r21.xyz, r22.yzwy, r8.wwww, -r20.xzwx -mad r20.xzw, r10.zzzz, r21.xxyz, r20.xxzw -mad r8.w, -r14.w, r15.w, r17.w -mad r8.w, r10.z, r8.w, r18.w -add r11.w, l(1.000000), -cb0[186].z -mad r11.w, r8.w, r11.w, cb0[186].z -add r14.w, r14.y, l(-0.500000) -mad r21.y, r10.z, r14.w, l(0.500000) -dp3_sat r23.x, r3.xywx, r2.xyzx -mov r21.xz, cb0[6].xxzx -dp3 r14.w, r21.xyzx, r21.xyzx -max r14.w, r14.w, l(1.175494351E-38) -rsq r14.w, r14.w -mul r21.xyz, r14.wwww, r21.xyzx -add r21.xyz, r21.xyzx, r21.xyzx -mad r14.xyz, r14.xyzx, r10.zzzz, r21.xyzx -add r14.w, r10.z, l(2.000000) -mad r14.xyz, r2.xyzx, r14.wwww, r14.xyzx -dp3 r14.w, r14.xyzx, r14.xyzx -rsq r14.w, r14.w -mul r14.xyz, r14.wwww, r14.xyzx -dp3 r14.x, r3.xywx, r14.xyzx -mul r14.y, r5.y, r5.y -mad r14.z, r14.x, r14.y, -r14.x -mad r14.x, r14.z, r14.x, l(1.000000) -mul r14.x, r14.x, r14.x -add r14.z, l(1.000000), -cb5[1].z -mad r14.z, r4.w, cb5[1].z, r14.z -mul r21.xyz, r19.xyzx, r20.xzwx -ne r14.w, r14.x, r14.y -div r14.x, r14.y, r14.x -movc r14.x, r14.w, r14.x, l(1.000000) -mad r14.y, r23.x, l(2.000000), r5.y -add r14.y, r14.y, l(0.000100) -div r14.y, l(0.500000), r14.y -mad r14.x, r14.x, r14.y, l(-0.0000610351562) -max r14.x, r14.x, l(0.000000) -min r14.x, r14.x, l(20.000000) -mul r14.xyw, r13.xyxz, r14.xxxx -mad r8.w, r8.w, l(0.500000), l(0.500000) -mul r8.w, r11.w, r8.w -mul r19.xyz, r8.wwww, r19.xyzx -mul r14.xyw, r14.xyxw, r19.xyxz -mul r14.xyw, r14.xyxw, cb0[199].wwww -mad r14.xyw, r21.xyxz, r14.zzzz, r14.xyxw -dp3 r8.w, r14.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -add r15.w, r8.w, l(-0.500000) -max r15.w, r15.w, l(0.000000) -min r15.w, r15.w, l(0.500000) -mov r19.y, l(0) -mov r19.xz, cb0[195].yyxy -mul r21.xyz, r19.xyzx, cb0[6].zxyz -mad r19.xyz, cb0[6].yzxy, r19.yzxy, -r21.xyzx -dp3 r17.w, r19.xyzx, r19.xyzx -rsq r17.w, r17.w -mul r19.xyz, r17.wwww, r19.xyzx -dp3 r17.w, r2.xyzx, r7.xyzx -add r21.xy, -|r17.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) -dp3 r17.x, r17.xyzx, r7.xyzx -add r17.y, -r10.z, l(1.000000) -add r9.w, -r3.z, r9.w -mad r2.w, r2.w, r9.w, r3.z -mul r24.y, r2.w, r2.w -mul r26.x, r23.x, r23.x -mul r26.z, r23.x, r26.x -mul r9.w, r24.y, r24.y -mul r24.z, r24.y, r9.w -mov r23.yzw, l(0,0.0365463011,9.063200,0.990440) -dp2 r25.x, l(3.327070, 1.000000, 0.000000, 0.000000), r23.xyxx -dp2 r25.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r23.xzxx -mov r24.x, l(1.000000) -dp2 r9.w, r25.xyxx, r24.xyxx -mov r26.yw, l(0,9.044010,0,1.000000) -dp3 r27.x, l(3.596850, -1.367720, 1.000000, 0.000000), r26.xzwx -dp3 r27.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r26.xyzx -mov r28.x, l(5.565890) -mov r28.yz, r26.xxzx -dp3 r27.z, l(1.000000, 19.788601, -20.212299, 0.000000), r28.xyzx -dp3 r17.z, r27.xyzx, r24.xyzx -div r9.w, r9.w, r17.z -dp2 r25.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r23.xwxx -mov r26.x, l(1.296780) -mov r26.y, r23.x -dp2 r25.y, l(1.000000, -0.755907, 0.000000, 0.000000), r26.xyxx -dp2 r17.z, r25.xyxx, r24.xyxx -dp3 r27.x, l(2.923380, 59.418800, 1.000000, 0.000000), r26.yzwy -mov r26.xw, l(20.322500,0,0,121.563004) -dp3 r27.y, l(1.000000, -27.030199, 222.591995, 0.000000), r26.xyzx -dp3 r27.z, l(626.130005, 316.627014, 1.000000, 0.000000), r26.yzwy -dp3 r18.w, r27.xyzx, r24.xyzx -div r17.z, r17.z, r18.w -mad r22.yzw, r13.xxyz, r9.wwww, r17.zzzz -add r9.w, r9.w, r17.z -mad r15.w, r15.w, r15.w, l(1.000000) -add r14.xyw, -r8.wwww, r14.xyxw -mad r14.xyw, r15.wwww, r14.xyxw, r8.wwww -mad r21.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) -add r8.w, -r21.z, r21.w -add r15.w, -r21.z, r21.x -div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w -mul_sat r8.w, r8.w, r15.w -mad r15.w, r8.w, l(-2.000000), l(3.000000) -mul r8.w, r8.w, r8.w -mul r8.w, r8.w, r15.w -mul r23.yzw, r8.wwww, cb0[194].xxyz -mul r23.yzw, r23.yyzw, cb0[194].wwww -dp3 r8.w, r8.xyzx, r19.xyzx -add_sat r8.w, r8.w, l(1.000000) -min r5.z, r5.z, r8.w -min r5.z, r20.y, r5.z -mul r23.yzw, r5.zzzz, r23.yyzw -mad r24.xyz, r4.xyzx, r6.wwww, l(-0.250000, -0.250000, -0.250000, 0.000000) -mad r24.xyz, cb0[195].zzzz, r24.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000) -dp3_sat r5.z, r19.xyzx, r7.xyzx -mul r19.xyz, r5.zzzz, r24.xyzx -max r5.z, r15.y, r15.x -max r5.z, r15.z, r5.z -mul r5.z, r5.z, l(0.500000) -max r5.z, r5.z, l(1.000000) -div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z -mul r15.xyz, r5.zzzz, r15.xyzx -mad r18.xyz, r18.xyzx, r5.wwww, -r15.xyzx -mad r15.xyz, r10.zzzz, r18.xyzx, r15.xyzx -dp3 r5.z, r16.xyzx, r7.xyzx -mul r5.w, r7.w, r5.z -mad r8.w, r17.x, l(0.500000), l(-1.000000) -mad r8.w, -r17.x, r8.w, l(0.500000) -mad r5.z, -r5.z, r7.w, r8.w -mad_sat r5.z, r10.z, r5.z, r5.w -mul r15.xyz, r5.zzzz, r15.xyzx -mad r5.z, r13.w, r10.z, r17.y -mul r5.z, r22.x, r5.z -mul r15.xyz, r5.zzzz, r15.xyzx -mul_sat r5.z, r21.y, l(5.00000048) -mad r5.w, r5.z, l(-2.000000), l(3.000000) -mul r5.z, r5.z, r5.z -mul r5.z, r5.z, r5.w -mul r15.xyz, r5.zzzz, r15.xyzx -mul r15.xyz, r16.wwww, r15.xyzx -add r5.z, r12.w, l(-0.100000) -mul_sat r5.z, r5.z, l(-16.666666) -mad r5.w, r5.z, l(-2.000000), l(3.000000) -mul r5.z, r5.z, r5.z -mul r5.z, r5.z, r5.w -mad r5.z, r5.z, r10.z, r17.y -mul r15.xyz, r5.zzzz, r15.xyzx -max r16.xyz, r11.xyzx, l(0.150000, 0.150000, 0.150000, 0.000000) -mul r15.xyz, r15.xyzx, r16.xyzx -mad r15.xyz, r23.yzwy, r19.xyzx, r15.xyzx -add r14.xyw, r14.xyxw, r15.xyxz -utof r5.zw, r10.xxxy -mul r15.xy, r5.zwzz, l(0.031250, 0.031250, 0.000000, 0.000000) -round_ni r15.xy, r15.xyxx -mad r7.w, r15.y, cb2[1].y, r15.x -mul r7.w, r7.w, l(8.000000) -ftoi r7.w, r7.w -mad r8.w, -cb0[85].y, cb2[2].w, v0.w -round_ni r8.w, r8.w -add r10.z, l(-1.000000), cb2[1].w -max r12.w, r8.w, l(0.000000) -min r10.z, r10.z, r12.w -mul r12.w, r10.z, l(8.000000) -ftoi r12.w, r12.w -dp3 r13.w, -r2.xyzx, r3.xywx -add r13.w, r13.w, r13.w -mad r15.xyz, r3.xywx, -r13.wwww, -r2.xyzx -max r2.w, r2.w, l(0.001000) -log r2.w, r2.w -mad r2.w, r2.w, l(1.200000), l(5.000000) -sample_l_indexable(texturecube)(float,float,float,float) r15.xyz, r15.xyzx, t16.xyzw, s0, r2.w -add r2.w, -r9.w, l(1.000000) -div r2.w, r2.w, r9.w -mul r16.xyz, r2.wwww, r13.xyzx -mad r16.xyz, r16.xyzx, r22.yzwy, r22.yzwy -mul r15.xyz, r15.xyzx, r16.xyzx -mul r2.w, r25.z, cb0[186].w -mul r2.w, r11.w, r2.w -mul r15.xyz, r2.wwww, r15.xyzx -mad r12.xyz, r15.xyzx, r12.xyzx, r14.xywx -ge r2.w, r10.z, r8.w -iadd r8.w, r12.w, cb0[110].y -mad r9.w, r17.y, l(-0.250000), l(0.750000) -mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) -add r6.w, -r5.y, l(0.010000) -ge r5.x, r5.x, l(0.500000) -and r5.x, r5.x, l(0x3f800000) -mov r15.w, l(1.000000) -mov r14.xyw, r12.xyxz -mov r10.z, l(0) -loop - ilt r11.w, l(7), r10.z - breakc_nz r11.w - iadd r11.w, r7.w, r10.z - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx - iadd r12.w, r8.w, r10.z - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx - and r11.w, r11.w, r12.w - and r11.w, r2.w, r11.w - ishl r12.w, r10.z, l(5) - mov r16.xyz, r14.xywx - mov r13.w, r11.w - loop - breakc_z r13.w - firstbit_lo r16.w, r13.w - ishl r17.x, l(1), r16.w - xor r17.x, r13.w, r17.x - iadd r16.w, r12.w, r16.w - bfi r18.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) - ftou r17.y, cb3[r18.y + 6].w - ieq r17.y, r17.y, l(1) - if_nz r17.y - add r15.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx - and r19.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r18.y + 6].xzyx - and r21.yzw, l(0, 0x0000ffff, 0x0000ffff, 0x0000ffff), cb3[r18.z + 6].yyxz - ushr r22.xyz, cb3[r18.y + 6].xzyx, l(16, 16, 16, 0) - ushr r23.yzw, cb3[r18.z + 6].yyxz, l(0, 16, 16, 16) - f16tof32 r19.xyz, r19.xyzx - f16tof32 r21.yzw, r21.yyzw - f16tof32 r22.xyz, r22.xyzx - f16tof32 r24.xyw, r23.zyzw - mov r25.xz, r19.xxzx - mov r25.yw, r22.xxxz - dp4 r17.y, r15.xyzw, r25.xyzw - mov r22.x, r19.y - mov r22.z, r21.z - mov r22.w, r24.x - dp4 r17.z, r15.xyzw, r22.xyzw - mov r24.xz, r21.yywy - dp4 r15.x, r15.xyzw, r24.xyzw - max r15.y, |r17.z|, |r17.y| - max r15.x, |r15.x|, r15.y - mad r15.y, cb3[r18.w + 6].x, l(0.500000), l(0.500000) - add r15.x, -r15.y, r15.x - mad r15.y, -cb3[r18.w + 6].x, l(0.500000), l(0.500000) - div_sat r15.x, r15.x, r15.y - add r15.x, -r15.x, l(1.000000) - mul r15.x, r15.x, r15.x - else - mov r15.x, l(1.000000) - endif - lt r15.y, r15.x, l(0.001000) - if_nz r15.y - mov r13.w, r17.x - continue - endif - ishl r15.y, r16.w, l(3) - lt r15.z, cb3[r15.y + 6].w, l(1.500000) - if_nz r15.z - bfi r15.z, l(29), l(3), r16.w, l(3) - ieq r17.y, l(16), cb3[r15.z + 6].w - add r17.z, cb0[198].z, cb3[r15.z + 6].z - lt r17.z, r17.z, l(0.500000) - or r17.y, r17.z, r17.y - if_z r17.y - bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) - ftou r16.w, cb3[r15.y + 6].w - and r16.w, r16.w, l(1) - ieq r18.y, r16.w, l(0) - not r18.y, r18.y - lt r19.x, l(0.000000), cb3[r17.y + 6].z - and r18.y, r18.y, r19.x - ieq r19.x, l(4), cb3[r15.z + 6].w - movc r19.y, r16.w, l(0), l(1.000000) - mad r19.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) - add r22.z, r19.z, -|cb3[r17.y + 6].x| - add r22.x, -r22.z, cb3[r17.y + 6].y - add r19.z, -|r22.z|, l(1.000000) - add r19.z, -|r22.x|, r19.z - max r19.z, r19.z, l(0.000488281250) - ge r19.w, cb3[r17.y + 6].x, l(0.000000) - movc r22.y, r19.w, r19.z, -r19.z - dp3 r19.z, r22.xyzx, r22.xyzx - rsq r19.z, r19.z - mul r21.yzw, r19.zzzz, r22.xxyz - add r19.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y - max r19.z, r19.z, l(0.100000) - and r19.w, r19.x, l(0x3f800000) - add r19.z, r19.z, -cb3[r18.z + 6].w - mad r18.z, r19.w, r19.z, cb3[r18.z + 6].w - add r22.xyz, -v2.xyzx, cb3[r18.x + 6].xyzx - dp3 r19.z, r22.yzxy, -r21.yzwy - lt r19.w, l(0.500000), cb3[r17.z + 6].z - and r19.w, r19.w, r19.x - and r19.w, r19.w, l(0x3f800000) - mul r19.w, r19.y, r19.w - mad r23.yzw, -r21.wwyz, r19.zzzz, -r22.xxyz - mad r22.xyz, r19.wwww, r23.yzwy, r22.xyzx - dp3 r19.z, r22.xyzx, r22.xyzx - rsq r19.w, r19.z - mul r23.yzw, r19.wwww, r22.xxyz - if_nz r18.y - mul r24.xyz, r21.wyzw, cb3[r17.y + 6].zzzz - mad r25.xyz, -r24.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx - mad r24.xyz, r24.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx - dp3 r19.w, r25.xyzx, r25.xyzx - sqrt r19.w, r19.w - dp3 r20.y, r24.xyzx, r24.xyzx - sqrt r20.y, r20.y - mul r26.xyz, r21.yzwy, r23.yzwy - mad r26.xyz, r21.wyzw, r23.zwyz, -r26.xyzx - mul r27.xyz, r21.yzwy, r26.xyzx - mad r26.xyz, r26.zxyz, r21.zwyz, -r27.xyzx - dp3 r22.w, r26.xyzx, r26.xyzx - rsq r22.w, r22.w - mul r23.yzw, r22.wwww, r26.xxyz - dp3 r22.w, r25.xyzx, r24.xyzx - mad r22.w, r19.w, r20.y, r22.w - mad r22.w, r22.w, l(0.500000), l(1.000000) - div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w - dp3 r24.w, r23.yzwy, r25.xyzx - div r19.w, r24.w, r19.w - dp3 r24.x, r23.yzwy, r24.xyzx - div r20.y, r24.x, r20.y - add r19.w, r19.w, r20.y - mul_sat r19.w, r19.w, l(0.500000) - mul r19.w, r19.w, r22.w - else - mov r19.w, l(1.000000) - endif - lt r20.y, r18.z, l(0.000000) - if_nz r20.y - mul r20.y, cb3[r18.x + 6].w, cb3[r18.x + 6].w - mul r20.y, r19.z, r20.y - mad r20.y, -r20.y, r20.y, l(1.000000) - max r20.y, r20.y, l(0.000000) - add r19.z, r19.z, l(1.000000) - div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z - and r22.w, r18.y, l(0x3f800000) - add r24.x, -r19.z, r19.w - mad r19.z, r22.w, r24.x, r19.z - mul r20.y, r20.y, r20.y - mul r19.z, r19.z, r20.y - else - mul r24.xyz, r22.xyzx, cb3[r18.x + 6].wwww - dp3 r20.y, r24.xyzx, r24.xyzx - min r20.y, r20.y, l(1.000000) - add r20.y, -r20.y, l(1.000000) - log r20.y, r20.y - mul r18.z, r18.z, r20.y - exp r18.z, r18.z - mul r19.z, r18.z, r19.w - endif - dp3 r18.z, r23.zwyz, -r21.yzwy - add r18.z, r18.z, -cb3[r17.y + 6].z - mul_sat r18.z, r18.z, cb3[r17.y + 6].w - mad r18.z, r18.z, r18.z, l(-1.000000) - mad r18.z, r19.y, r18.z, l(1.000000) - mul r18.z, r18.z, r19.z - ftoi r19.y, cb3[r18.w + 6].w - not r18.y, r18.y - ige r19.z, r19.y, l(0) - and r18.y, r18.y, r19.z - if_nz r18.y - if_z r16.w - ishl r18.y, r19.y, l(2) - mul r21.yzw, v2.yyyy, cb6[r18.y + 33].xxyw - mad r21.yzw, cb6[r18.y + 32].xxyw, v2.xxxx, r21.yyzw - mad r21.yzw, cb6[r18.y + 34].xxyw, v2.zzzz, r21.yyzw - add r21.yzw, r21.yyzw, cb6[r18.y + 35].xxyw - div_sat r19.zw, r21.yyyz, r21.wwww - mad r19.zw, r19.zzzw, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy - else - ishl r18.y, r19.y, l(2) - dp3 r24.x, -r22.xyzx, cb6[r18.y + 32].xyzx - dp3 r24.y, -r22.xyzx, cb6[r18.y + 33].xyzx - dp3 r24.z, -r22.xyzx, cb6[r18.y + 34].xyzx - lt r18.y, |r24.x|, |r24.y| - and r18.y, r18.y, l(1) - dp2 r20.y, |r24.xyxx|, icb[r18.y + 0].xyxx - lt r20.y, r20.y, |r24.z| - movc r18.y, r20.y, l(2), r18.y - dp3 r20.y, r24.xyzx, icb[r18.y + 0].xyzx - lt r20.y, r20.y, l(0.000000) - bfi r18.y, l(31), l(1), r18.y, r20.y - ushr r20.y, r18.y, l(1) - dp3 r20.y, r24.xyzx, icb[r20.y + 0].xyzx - div r21.y, l(0.000244140625), cb6[r19.y + 0].w - add r21.y, -r21.y, l(0.500000) - utof r21.z, r18.y - ult r21.w, r18.y, l(2) - and r21.w, r21.w, l(2) - dp2 r21.w, r24.xzxx, icb[r21.w + 0].xzxx - mul r21.w, r21.w, icb[r18.y + 4].z - div r21.w, r21.w, |r20.y| - mad r21.z, r21.w, r21.y, r21.z - add r21.z, r21.z, l(0.500000) - mul_sat r22.x, r21.z, l(0.166666672) - iadd r21.z, l(-1), icb[r18.y + 4].y - dp2 r21.z, r24.yzyy, icb[r21.z + 0].xyxx - mul r18.y, r21.z, icb[r18.y + 4].w - div r18.y, r18.y, |r20.y| - mad_sat r22.y, -r18.y, r21.y, l(0.500000) - mad r19.zw, r22.xxxy, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy - endif - sample_l_indexable(texture2d)(float,float,float,float) r18.y, r19.zwzz, t17.yxzw, s0, l(0.000000) - mul r18.z, r18.y, r18.z - endif - mul r15.x, r15.x, r18.z - lt r18.y, l(0.000100), r15.x - if_nz r18.y - if_nz r19.x - add r18.y, l(1.000000), -cb3[r17.z + 6].w - dp3 r18.z, r9.xyzx, r23.yzwy - add_sat r18.z, r18.z, l(0.500000) - mad r19.y, r18.z, l(-2.000000), l(3.000000) - mul r18.z, r18.z, r18.z - mul r18.z, r18.z, r19.y - mad r18.y, r18.z, cb3[r17.z + 6].w, r18.y - mul r18.y, r18.y, cb3[r17.z + 6].x - mul r18.y, r15.x, r18.y - add r19.yzw, -r16.xxyz, cb3[r15.y + 6].xxyz - mad r19.yzw, r18.yyyy, r19.yyzw, r16.xxyz - endif - if_z r19.x - dp3 r18.y, r7.xyzx, r23.yzwy - mov_sat r18.z, r18.y - if_nz cb3[r15.z + 6].w - if_z r16.w - ftoi r16.w, cb3[r15.z + 6].x - else - add r21.yzw, v2.xxyz, -cb3[r18.x + 6].xxyz - lt r22.xyz, |r21.zwwz|, |r21.yyzy| - and r20.y, r22.y, r22.x - lt r21.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r21.yyzw - ushr r22.x, cb3[r17.y + 6].w, l(24) - ubfe r22.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb3[r17.y + 6].wwww - movc r21.y, r21.y, r22.x, r22.y - and r17.y, l(255), cb3[r17.y + 6].w - movc r17.y, r21.z, r22.w, r17.y - ubfe r21.z, l(8), l(8), cb3[r15.z + 6].x - and r22.x, l(255), cb3[r15.z + 6].x - movc r21.z, r21.w, r21.z, r22.x - movc r17.y, r22.z, r17.y, r21.z - movc r17.y, r20.y, r21.y, r17.y - ilt r20.y, r17.y, l(80) - movc r16.w, r20.y, r17.y, l(-1) - endif - ige r17.y, r16.w, l(0) - if_nz r17.y - add r21.yzw, v2.xxyz, -cb3[r18.x + 6].xxyz - ishl r17.y, r16.w, l(2) - dp3 r18.x, r21.yzwy, r21.yzwy - max r18.x, r18.x, l(1.175494351E-38) - rsq r18.x, r18.x - mul r21.yzw, r18.xxxx, r21.yyzw - mad r21.yzw, -r21.yyzw, cb4[r16.w + 288].xxxx, v2.xxyz - mul r18.x, l(5.000000), cb4[r16.w + 288].y - mad r21.yzw, r9.xxyz, r18.xxxx, r21.yyzw - mul r22.xyzw, r21.zzzz, cb4[r17.y + 65].xyzw - mad r22.xyzw, cb4[r17.y + 64].xyzw, r21.yyyy, r22.xyzw - mad r22.xyzw, cb4[r17.y + 66].xyzw, r21.wwww, r22.xyzw - add r22.xyzw, r22.xyzw, cb4[r17.y + 67].xyzw - div r21.yzw, r22.xxyz, r22.wwww - ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.yzwy - ge r24.xyz, r21.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) - add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz - mad r21.yz, r21.yyzy, r25.xxyx, cb4[r16.w + 344].xxyx - mad r25.xy, r21.yzyy, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) - round_ni r25.xy, r25.xyxx - mad r21.yz, r21.yyzy, cb4[400].zzwz, -r25.xxyx - add r26.xyzw, r21.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r27.xyzw, r26.xxzz, r26.xxzz - add r25.zw, -r21.yyyz, l(0.000000, 0.000000, 1.000000, 1.000000) - min r26.xz, r21.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) - max r28.xy, r21.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy - add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r21.yz, r27.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r21.yyzy - mul r30.xy, r21.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r21.yz, -r26.xxzx, r26.xxzx, r25.zzwz - add r21.yz, r21.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) - mul r31.xy, r21.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r21.yz, r26.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) - mov r30.z, r31.x - mov r30.w, r21.y - mov r29.z, r28.x - mov r29.w, r27.x - add r26.xyzw, r29.zwxz, r30.zwxz - mov r31.z, r30.y - mov r31.w, r21.z - mov r28.z, r29.y - mov r28.w, r27.z - add r27.xyz, r28.zywz, r31.zywz - div r29.xyz, r29.xzwx, r26.zwyz - add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r29.xyz, r29.yxzy, cb4[400].xxxx - div r28.xyz, r28.zywz, r27.xyzx - add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r28.xyz, r28.xyzx, cb4[400].yyyy - mov r29.w, r28.x - mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw - mad r21.yz, r25.xxyx, cb4[400].xxyx, r29.zzwz - mov r28.w, r29.y - mov r29.yw, r28.yyyz - mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy - mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz - mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw - mul r29.xyzw, r26.zwyz, r27.xxxy - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r30.xyxx, t2.xxxx, s2, r21.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.zwzz, t2.xxxx, s2, r21.w - mul r18.x, r18.x, r29.y - mad r17.y, r29.x, r17.y, r18.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r21.yzyy, t2.xxxx, s2, r21.w - mad r17.y, r29.z, r18.x, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.xyxx, t2.xxxx, s2, r21.w - mad r17.y, r29.w, r18.x, r17.y - mul r29.xyzw, r26.xyzw, r27.yyzz - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.xyxx, t2.xxxx, s2, r21.w - mad r17.y, r29.x, r18.x, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.zwzz, t2.xxxx, s2, r21.w - mad r17.y, r29.y, r18.x, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.zwzz, t2.xxxx, s2, r21.w - mad r17.y, r29.z, r18.x, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r25.xyxx, t2.xxxx, s2, r21.w - mad r17.y, r29.w, r18.x, r17.y - or r22.xyz, r22.xyzx, r24.xyzx - or r18.x, r22.y, r22.x - or r18.x, r22.z, r18.x - and r20.y, r21.w, l(0x7fffffff) - ult r20.y, l(0x7f800000), r20.y - or r18.x, r18.x, r20.y - mul r20.y, r26.y, r27.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.y, r25.zwzz, t2.xxxx, s2, r21.w - mad r17.y, r20.y, r21.y, r17.y - add r17.y, r17.y, l(-1.000000) - mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) - movc r16.w, r18.x, l(1.000000), r16.w - else - dp3 r17.y, r8.xyzx, r23.yzwy - add_sat r16.w, r17.y, l(1.000000) - endif - else - mov r16.w, l(1.000000) - endif - if_z cb3[r15.z + 6].w - mul r21.yzw, r15.xxxx, cb3[r15.y + 6].xxyz - add r17.y, l(1.000000), -cb3[r17.z + 6].y - max r18.x, r21.z, r21.y - max r18.x, r21.w, r18.x - mul r18.x, r9.w, r18.x - max r18.x, r18.x, l(1.000000) - div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x - mad r17.y, r18.x, cb3[r17.z + 6].y, r17.y - mul r21.yzw, r17.yyyy, cb3[r15.y + 6].xxyz - mul r17.y, l(0.250000), cb3[r17.z + 6].x - add_sat r18.x, r18.y, l(0.500000) - mad r20.y, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) - mad r17.y, r18.x, r20.y, r17.y - mul r21.yzw, r17.yyyy, r21.yyzw - mov r22.xyz, r20.xzwx - mov r24.xyz, r20.xzwx - mov r17.y, l(1.000000) - mov r18.x, l(0) - else - ieq r20.y, l(3), cb3[r15.z + 6].w - if_nz r20.y - mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) - add r20.y, -r25.x, r25.y - add r22.w, r21.x, -r25.x - div r20.y, l(1.000000, 1.000000, 1.000000, 1.000000), r20.y - mul_sat r20.y, r20.y, r22.w - mad r22.w, r20.y, l(-2.000000), l(3.000000) - mul r20.y, r20.y, r20.y - mul r20.y, r20.y, r22.w - mul r20.y, r16.w, r20.y - mul r15.x, r15.x, r20.y - mul r25.xyz, r23.wyzw, cb0[6].xyzx - mad r25.xyz, cb0[6].zxyz, r23.yzwy, -r25.xyzx - mul r26.xyz, r25.xyzx, cb0[6].zxyz - mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx - dp3 r20.y, r25.xyzx, r25.xyzx - rsq r20.y, r20.y - mul r25.xyz, r20.yyyy, r25.xyzx - dp3_sat r18.z, r7.xyzx, -r25.xyzx - mad r22.xyz, cb3[r17.z + 6].yyyy, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) - mov r24.xyz, l(0,0,0,0) - mov r17.y, l(1.000000) - mov r18.x, l(0) - else - ieq r20.y, l(1), cb3[r15.z + 6].w - if_nz r20.y - add r18.y, r18.y, cb3[r17.z + 6].x - max_sat r18.y, r18.y, l(-1.000000) - mul r18.z, r16.w, r18.y - mul r24.xyz, r6.xyzx, cb3[r17.z + 6].yyyy - mov r17.y, l(1.000000) - mov r18.x, l(0) - else - ieq r16.w, l(2), cb3[r15.z + 6].w - if_nz r16.w - add r18.y, l(0.050000), cb3[r17.z + 6].x - add r18.y, r3.z, -r18.y - mul_sat r18.y, r18.y, l(-10.000000) - mad r22.w, r18.y, l(-2.000000), l(3.000000) - mul r18.y, r18.y, r18.y - mul r18.y, r18.y, r22.w - add r22.w, l(1.000000), -cb3[r17.z + 6].z - mad r22.w, r5.x, cb3[r17.z + 6].z, r22.w - mul r17.y, r18.y, r22.w - else - mov r17.y, l(1.000000) - endif - and r18.x, r16.w, cb3[r17.z + 6].y - mov r24.xyz, l(0,0,0,0) - endif - and r22.xyz, r11.xyzx, r20.yyyy - endif - mov r21.yzw, cb3[r15.y + 6].xxyz - endif - ine r15.y, l(3), cb3[r15.z + 6].w - if_nz r15.y - mad r15.y, r18.x, r6.w, r5.y - mad r23.yzw, r0.xxyz, r1.wwww, r23.yyzw - dp3 r15.z, r23.yzwy, r23.yzwy - rsq r15.z, r15.z - mul r23.yzw, r15.zzzz, r23.yyzw - dp3 r15.z, r3.xywx, r23.yzwy - mul r16.w, r15.y, r15.y - mad r17.z, r15.z, r16.w, -r15.z - mad r15.z, r17.z, r15.z, l(1.000000) - mul r15.z, r15.z, r15.z - ne r17.z, r15.z, r16.w - div r15.z, r16.w, r15.z - movc r15.z, r17.z, r15.z, l(1.000000) - mad r15.y, r23.x, l(2.000000), r15.y - add r15.y, r15.y, l(0.000100) - div r15.y, l(0.500000), r15.y - mad r15.y, r15.z, r15.y, l(-0.0000610351562) - max r15.y, r15.y, l(0.000000) - min r15.y, r15.y, l(20.000000) - mul r23.yzw, r13.xxyz, r15.yyyy - mul r23.yzw, r17.yyyy, r23.yyzw - mul r18.xyw, r23.yzyw, cb3[r18.w + 6].zzzz - else - mov r18.xyw, l(0,0,0,0) - endif - mul r15.xyz, r15.xxxx, r21.yzwy - add r21.yzw, r22.xxyz, -r24.xxyz - mad r21.yzw, r18.zzzz, r21.yyzw, r24.xxyz - mul r21.yzw, r15.xxyz, r21.yyzw - mul r15.xyz, r18.xywx, r15.xyzx - mul r15.xyz, r18.zzzz, r15.xyzx - mad r15.xyz, r21.yzwy, r14.zzzz, r15.xyzx - add r16.xyz, r15.xyzx, r16.xyzx - endif - else - mov r19.x, l(0) - endif - movc r16.xyz, r19.xxxx, r19.yzwy, r16.xyzx - endif - endif - mov r13.w, r17.x - endloop - mov r14.xyw, r16.xyxz - iadd r10.z, r10.z, l(1) -endloop -lt r0.x, l(0.500000), cb5[3].x -if_nz r0.x - dp3 r0.x, r14.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r3.xyz, -r0.xxxx, r14.xywx - mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx - add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) - mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) - mul r3.xyz, r0.xyzx, cb5[3].yyyy - mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx - mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx - add r2.w, l(1.000000), -cb5[4].x - mov_sat r17.w, r17.w - add r3.x, -r17.w, l(1.000000) - add r3.y, -r2.w, l(1.000000) - add r2.w, -r2.w, r3.x - div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y - mul_sat r2.w, r2.w, r3.x - mad r3.x, r2.w, l(-2.000000), l(3.000000) - mul r2.w, r2.w, r2.w - mul r2.w, r2.w, r3.x - mul r3.xyz, r2.wwww, cb5[8].xyzx - mad r14.xyw, r3.xyxz, cb5[4].yyyy, r0.xyxz -endif -div r0.xyz, r14.xywx, cb0[109].xxxx -eq r2.w, l(1.000000), cb5[2].x -movc o0.w, r2.w, r4.w, l(1.000000) -lt r2.w, cb0[198].w, l(0.500000) -if_nz r2.w - mul r0.w, r0.w, r1.w - mad r1.w, v2.y, cb0[156].w, cb0[157].w - max r1.w, r1.w, l(0.010000) - mad r2.w, r0.w, cb0[154].w, -cb0[153].w - max r2.w, r2.w, l(0.000000) - mul r3.x, r1.w, l(-1.442695) - exp r3.x, r3.x - add r3.x, -r3.x, l(1.000000) - div r1.w, r3.x, r1.w - mad r3.x, v2.y, cb0[156].w, cb0[158].w - mul r3.x, r3.x, l(1.442695) - exp r3.x, r3.x - mul r1.w, r1.w, r3.x - mul r1.w, r1.w, -r2.w - mul r3.xyz, r1.wwww, cb0[155].xyzx - mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) - exp r3.xyz, r3.xyzx - dp3 r1.w, -r2.xyzx, cb0[154].xyzx - mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) - dp2 r3.w, r1.wwww, cb0[155].wwww - add r2.w, r2.w, -r3.w - lt r3.w, l(0.000000), cb0[163].z - if_nz r3.w - and r10.w, l(7), cb0[108].w - imad r4.xyz, r10.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) - imad r3.w, r4.y, r4.z, r4.x - imad r4.x, r4.z, r3.w, r4.y - imad r4.y, r3.w, r4.x, r4.z - imad r5.x, r4.x, r4.y, r3.w - dp3 r1.x, -r2.xyzx, -r1.xyzx - add r1.y, v2.y, -cb0[44].y - lt r1.z, l(5.960464478E-08), r1.x - div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x - and r1.x, r1.x, r1.z - mul r1.x, r1.x, cb0[163].w - div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w - mul r2.x, r1.z, r1.x - mad r2.y, r2.x, r1.y, cb0[44].y - mad r1.y, -r2.x, r1.y, r1.y - mul r2.x, r1.y, cb0[159].z - mul r1.y, r1.y, cb0[162].x - max r1.y, r1.y, l(-127.000000) - add r2.z, r2.y, -cb0[159].x - mul r2.z, r2.z, cb0[159].z - max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) - exp r2.z, -r2.z - mul r2.z, r2.z, cb0[159].y - lt r3.w, l(5.960464478E-08), |r2.x| - exp r4.z, -r2.x - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r2.x - mad r2.x, -r2.x, l(0.240226507), l(0.693147182) - movc r2.x, r3.w, r4.z, r2.x - add r2.y, r2.y, -cb0[162].z - mul r2.y, r2.y, cb0[162].x - max r2.y, r2.y, l(-127.000000) - exp r2.y, -r2.y - mul r2.y, r2.y, cb0[162].y - lt r3.w, l(5.960464478E-08), |r1.y| - exp r4.z, -r1.y - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r1.y - mad r1.y, -r1.y, l(0.240226507), l(0.693147182) - movc r1.y, r3.w, r4.z, r1.y - mul r1.y, r1.y, r2.y - mad r1.y, r2.z, r2.x, r1.y - mad r1.x, -r1.x, r1.z, l(1.000000) - mul r1.x, r0.w, r1.x - mul r1.x, r1.x, r1.y - exp r1.x, -r1.x - min r1.x, r1.x, l(1.000000) - max r1.x, r1.x, cb0[161].w - mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx - add r1.x, r1.y, r1.x - add r1.x, r1.z, r1.x - min r1.x, r1.x, l(1.000000) - imad r5.y, r4.y, r5.x, r4.x - ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) - utof r1.yz, r1.yyzy - mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) - mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz - mul r2.xy, r1.yzyy, cb0[165].xyxx - mad r1.y, v0.w, cb0[164].x, cb0[164].y - log r1.y, r1.y - mul r1.y, r1.y, cb0[164].z - div r2.z, r1.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t18.xyzw, s0, l(0.000000) - add r1.y, v0.w, -cb0[166].z - mul_sat r1.y, r1.y, l(1000000.000000) - add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r1.y, -r1.x, l(1.000000) - mul r2.xyz, r1.yyyy, cb0[161].xyzx - mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx - mul r1.x, r1.x, r4.w - else - add r1.y, v2.y, -cb0[44].y - mul r1.z, r1.y, cb0[159].z - mul r1.y, r1.y, cb0[162].x - max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) - add r3.w, cb0[44].y, -cb0[159].x - mul r3.w, r3.w, cb0[159].z - max r3.w, r3.w, l(-127.000000) - exp r3.w, -r3.w - mul r3.w, r3.w, cb0[159].y - lt r4.x, l(5.960464478E-08), |r1.z| - exp r4.y, -r1.z - add r4.y, -r4.y, l(1.000000) - div r4.y, r4.y, r1.z - mad r1.z, -r1.z, l(0.240226507), l(0.693147182) - movc r1.z, r4.x, r4.y, r1.z - add r4.x, cb0[44].y, -cb0[162].z - mul r4.x, r4.x, cb0[162].x - max r4.x, r4.x, l(-127.000000) - exp r4.x, -r4.x - mul r4.x, r4.x, cb0[162].y - lt r4.y, l(5.960464478E-08), |r1.y| - exp r4.z, -r1.y - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r1.y - mad r1.y, -r1.y, l(0.240226507), l(0.693147182) - movc r1.y, r4.y, r4.z, r1.y - mul r1.y, r1.y, r4.x - mad r1.y, r3.w, r1.z, r1.y - mul r1.y, r0.w, r1.y - exp r1.y, -r1.y - min r1.y, r1.y, l(1.000000) - max r1.y, r1.y, cb0[161].w - mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx - add r0.w, r1.y, r4.x - add r0.w, r4.y, r0.w - min r1.x, r0.w, l(1.000000) - add r0.w, -r1.x, l(1.000000) - mul r2.xyz, r0.wwww, cb0[161].xyzx - endif - mul r4.xyz, r1.xxxx, r3.xyzx - mad r0.w, r1.w, r1.w, l(1.000000) - mul r0.w, r0.w, l(0.0596831031) - mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz - mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) - mul r3.w, r2.w, l(12.566371) - sqrt r2.w, r2.w - mul r2.w, r2.w, r3.w - max r2.w, r2.w, l(0.001000) - div r0.w, r0.w, r2.w - mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw - mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) - add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - mul r1.yzw, r1.yyzw, r3.xxyz - mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx - mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx -else - mov o0.xyz, r0.xyzx -endif -mov o1.z, l(1.000000) -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x0E84DFD1.cso b/src/games/endfield/deferred-lighting/0x0E84DFD1.cso index 61de4fdc049ac6fb66d233de0dfb189326b57f48..4d6c85b7da649f468a0ebe56ea77f0c83b102d99 100644 GIT binary patch delta 193 zcmexymHERpW+|5lC+D2M$Nf6q3A0QHuZobH*}jjFfq|jm^+c&foEu&-Fa!X3Yc?LW zW@HrJ%*fO}SJ#|@flG-&fPon(Vb!3(zzd{>fSA#Nf#E+8NI~V~8CaO5CKp~&-@Il1 z114FZHr^tj6gN=mw|;~+HzuIis_Uv0=c{AWH!N008*vks6{2IO+fZPyhe` qjX(1qHbYNik4+L5uxy>tct~1F3mGTw= zxm-Z$Z~X|RZcIS2$rnY%Wh@vN*g-1TfGR+uFdC#|b3^_FLv98J2YZmw3=9pMr5D~6 zm6c~;VUa?z*NcIn?+{SdIaHKEX!6k1u-#;Y*7aPBpp1zV$sL0|SH4j)_u>xO%oTFa!X3k99X5 z(_&=g+x(Gnch=@BIaioA|Hz+U$USRjq&=ep1H-JDlA9+lyerCT$H2fSy7}dHZ$=gn F69Ai}Br5;_ diff --git a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm index 75cf7f48c..3b7f7ab2f 100644 --- a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm @@ -37,7 +37,7 @@ dcl_constantbuffer CB3[2054], dynamicIndexed dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[160], dynamicIndexed dcl_constantbuffer CB6[4], immediateIndexed -dcl_constantbuffer CB13[14], immediateIndexed +dcl_constantbuffer CB13[19], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -910,6 +910,7 @@ loop endloop mad r6.xyz, r20.xyzx, r8.wwww, r13.xzwx ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +movc r4.z, cb13[18].w, l(0xFFFFFFFF), r4.z if_nz r4.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x min r0.z, r1.y, r0.z @@ -935,6 +936,8 @@ else mov r10.xyz, r1.yyyy mov r13.xyz, r1.yyyy endif +movc r10.xyz, cb13[18].wwww, r10.xyzx, l(1.0, 1.0, 1.0, 0) +mul r6.xyz, r6.xyzx, r10.xyzx mad r15.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx round_z r0.z, cb0[212].x mad r1.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r2.xyxx @@ -1345,10 +1348,10 @@ mul r3.xyz, r15.xyzx, cb0[112].zzzz mul r3.xyz, r3.xyzx, cb0[111].yyyy // Cubemap ambient link modulation (cb13[13].w) if_nz cb13[13].w - max r35.w, r35.w, l(0.000000) // saturate step 1 - min r35.w, r35.w, l(1.000000) // saturate step 2 - mad r35.w, r35.w, l(0.850000), l(0.150000) // lerp(0.15, 1.0, ambient) = 0.15 + 0.85*ambient - mul r3.xyz, r3.xyzx, r35.wwww // cubemap *= lerp(0.15, 1.0, saturate(ambient_luminance)) + max r35.w, r35.w, l(0.000000) + min r35.w, r35.w, l(1.000000) + mad r35.w, r35.w, l(0.750000), l(0.250000) + mul r3.xyz, r3.xyzx, r35.wwww endif if_nz r4.w sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x @@ -1521,32 +1524,21 @@ mul r0.yzw, r0.yyzw, r3.xxyz mad r0.xyz, r0.yzwy, r0.xxxx, r4.xyzx // Check fog modification toggle (cb13[12].y) -// If 0 (Original), skip fog modification and output original if_z cb13[12].y mad o0.xyz, r1.xyzx, r2.xywx, r0.xyzx dp3 o0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) ret +else + // === Fog Modification (Anti-Banding) === + mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) + mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) + add r7.xyz, -r2.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r7.xyz, r7.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r2.xywx + mul r6.xyz, r6.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx + mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) + dp3 o0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + ret endif - -// === Simplified Fog Modification (Anti-Banding) === -// r1.xyz = scene color (0-255), r2.xyw = transmittance, r0.xyz = fog inscatter (0-255) - -// Normalize colors to 0-1 range -mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 -mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 - -// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density -add r7.xyz, -r2.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r7.xyz, r7.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r2.xywx - -// Reduce fog inscatter intensity -mul r6.xyz, r6.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) - -// Standard fog blend with reduced intensity -mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx - -// Output: scale back to 0-255 range -mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) -dp3 o0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) ret // Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0_original_backup.asm deleted file mode 100644 index ae0da1802..000000000 --- a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0_original_backup.asm +++ /dev/null @@ -1,1516 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Thu Jan 29 18:08:15 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -ps_5_0 -dcl_globalFlags refactoringAllowed -dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, - { 0, 1.000000, 0, 0}, - { 0, 0, 1.000000, 0}, - { 0, 0, 0, 1.000000}, - { 2, 1, -1.000000, 1.000000}, - { 2, 1, 1.000000, 1.000000}, - { 0, 2, 1.000000, -1.000000}, - { 0, 2, 1.000000, 1.000000}, - { 0, 1, 1.000000, 1.000000}, - { 0, 1, -1.000000, 1.000000} } -dcl_constantbuffer CB0[235], immediateIndexed -dcl_constantbuffer CB1[259], dynamicIndexed -dcl_constantbuffer CB2[3], immediateIndexed -dcl_constantbuffer CB3[2054], dynamicIndexed -dcl_constantbuffer CB4[401], dynamicIndexed -dcl_constantbuffer CB5[160], dynamicIndexed -dcl_constantbuffer CB6[4], 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_comparison -dcl_resource_structured t0, 4 -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_texture2darray (float,float,float,float) t5 -dcl_resource_texture2d (float,float,float,float) t6 -dcl_resource_texture2d (float,float,float,float) t7 -dcl_resource_texture2d (float,float,float,float) t8 -dcl_resource_texture2d (float,float,float,float) t9 -dcl_resource_texture2d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture3d (float,float,float,float) t12 -dcl_resource_texture2d (float,float,float,float) t13 -dcl_resource_texture2d (float,float,float,float) t14 -dcl_resource_texture3d (float,float,float,float) t15 -dcl_resource_texture3d (float,float,float,float) t16 -dcl_resource_texture3d (float,float,float,float) t17 -dcl_resource_texture3d (float,float,float,float) t18 -dcl_resource_texture3d (float,float,float,float) t19 -dcl_resource_texture3d (float,float,float,float) t20 -dcl_resource_texture2d (float,float,float,float) t21 -dcl_resource_texture2d (float,float,float,float) t22 -dcl_resource_texture2d (float,float,float,float) t23 -dcl_resource_texture2d (float,float,float,float) t24 -dcl_input_ps_siv linear noperspective v0.xy, position -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 36 -ftou r0.xy, v0.xyxx -mov r0.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t22.xyzw -ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t23.xyzw -mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| -add r3.y, -r1.w, l(1.000000) -lt r1.w, r3.y, l(0.000000) -ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) -add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) -movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) -mul r4.xy, r4.xyxx, r4.zwzz -movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx -dp3 r1.w, r3.xyzx, r3.xyzx -rsq r1.w, r1.w -mul r3.xyz, r1.wwww, r3.xyzx -utof r2.xy, r0.xyxx -mul r4.xy, v0.xyxx, cb0[82].zwzz -mad r4.zw, r4.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) -add r5.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) -mul r5.xy, r5.xyxx, cb0[82].zwzz -sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xyxx, t1.yzwx, s0, l(0.000000) -mul r5.xyzw, -r4.wwww, cb0[25].xyzw -mad r5.xyzw, cb0[24].xyzw, r4.zzzz, r5.xyzw -mad r5.xyzw, cb0[26].xyzw, r1.wwww, r5.xyzw -add r5.xyzw, r5.xyzw, cb0[27].xyzw -div r5.xyz, r5.xyzx, r5.wwww -mul r1.w, r5.y, cb0[1].z -mad r1.w, cb0[0].z, r5.x, r1.w -mad r1.w, cb0[2].z, r5.z, r1.w -add r1.w, r1.w, cb0[3].z -eq r2.w, l(0.000000), cb0[86].w -add r6.xyz, -r5.xyzx, cb0[44].xyzx -mov r7.x, cb0[0].z -mov r7.y, cb0[1].z -mov r7.z, cb0[2].z -movc r6.xyz, r2.wwww, r6.xyzx, r7.xyzx -dp3 r2.w, r6.xyzx, r6.xyzx -max r4.z, r2.w, l(9.999999939E-09) -rsq r4.z, r4.z -mul r8.xyz, r4.zzzz, r6.xyzx -mul r2.w, r2.w, r4.z -lt r4.w, l(0.000488281250), cb0[234].x -if_nz r4.w - sample_b_indexable(texture2d)(float,float,float,float) r9.xy, v1.xyxx, t21.xyzw, s1, cb0[108].x -else - mov r9.xy, l(1.000000,1.000000,0,0) -endif -min r6.w, r9.y, r9.x -add r1.z, r1.z, l(-0.050000) -mul_sat r1.z, r1.z, l(1.052600) -add r7.w, r9.y, l(-1.000000) -mad r10.x, r1.z, r7.w, l(1.000000) -add r10.y, -r1.z, l(1.000000) -movc r9.yz, r4.wwww, r10.xxyx, l(0,1.000000,1.000000,0) -min r1.z, r2.z, r9.y -add r4.w, -r1.z, r2.z -mad r1.z, r6.w, r4.w, r1.z -add r2.z, -r1.z, r2.z -mad r10.w, r9.x, r2.z, r1.z -ld_indexable(texture2d)(float,float,float,float) r11.xyz, r0.xyzz, t24.xyzw -add r1.z, -r9.z, l(1.000000) -mad r1.z, r6.w, r1.z, r9.z -add r2.z, -r1.z, l(1.000000) -mad r1.z, r9.x, r2.z, r1.z -mul r9.xyz, r1.zzzz, r11.xyzx -mul r12.xyz, r1.xxxx, r9.xyzx -mad r11.xyz, r11.xyzx, r1.zzzz, -r12.xyzx -mad r1.z, -r1.x, l(0.040000), l(0.040000) -mad r9.xyz, r9.xyzx, r1.xxxx, r1.zzzz -dp3 r1.x, r3.xyzx, r8.xyzx -max r12.x, r1.x, l(0.000000) -mul r13.y, r10.w, r10.w -mul r14.x, r12.x, r12.x -mul r14.z, r12.x, r14.x -mul r1.x, r13.y, r13.y -mul r13.z, r13.y, r1.x -mov r12.yzw, l(0,0.0365463011,9.063200,0.990440) -dp2 r15.x, l(3.327070, 1.000000, 0.000000, 0.000000), r12.xyxx -dp2 r15.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r12.xzxx -mov r13.x, l(1.000000) -dp2 r1.z, r15.xyxx, r13.xyxx -mov r14.yw, l(0,9.044010,0,1.000000) -dp3 r15.x, l(3.596850, -1.367720, 1.000000, 0.000000), r14.xzwx -dp3 r15.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r14.xyzx -mov r16.x, l(5.565890) -mov r16.yz, r14.xxzx -dp3 r15.z, l(1.000000, 19.788601, -20.212299, 0.000000), r16.xyzx -dp3 r2.z, r15.xyzx, r13.xyzx -div r1.z, r1.z, r2.z -dp2 r15.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r12.xwxx -mov r14.x, l(1.296780) -mov r14.y, r12.x -dp2 r15.y, l(1.000000, -0.755907, 0.000000, 0.000000), r14.xyxx -dp2 r2.z, r15.xyxx, r13.xyxx -dp3 r15.x, l(2.923380, 59.418800, 1.000000, 0.000000), r14.yzwy -mov r14.xw, l(20.322500,0,0,121.563004) -dp3 r15.y, l(1.000000, -27.030199, 222.591995, 0.000000), r14.xyzx -dp3 r15.z, l(626.130005, 316.627014, 1.000000, 0.000000), r14.yzwy -dp3 r4.w, r15.xyzx, r13.xyzx -div r2.z, r2.z, r4.w -mad r12.yzw, r9.xxyz, r1.zzzz, r2.zzzz -add r1.z, r1.z, r2.z -ld_indexable(texture2d)(float,float,float,float) r13.x, r0.xyzz, t7.xzyw -lt r0.z, l(0.001000), r13.x -if_nz r0.z - dp3 r0.z, -r8.xyzx, r3.xyzx - add r0.z, r0.z, r0.z - mad r14.xyz, r3.xyzx, -r0.zzzz, -r8.xyzx - dp3 r0.z, -cb3[0].xyzx, r14.xyzx - mad r15.xyz, cb3[0].xyzx, r0.zzzz, r14.xyzx - lt r0.z, r0.z, cb3[4].z - dp3 r2.z, r15.xyzx, r15.xyzx - max r2.z, r2.z, l(0.0000610351562) - rsq r2.z, r2.z - mul r15.xyz, r2.zzzz, r15.xyzx - mul r15.xyz, r15.xyzx, cb3[4].yyyy - mad r15.xyz, -cb3[0].xyzx, cb3[4].zzzz, r15.xyzx - dp3 r2.z, r15.xyzx, r15.xyzx - rsq r2.z, r2.z - mul r15.xyz, r2.zzzz, r15.xyzx - movc r14.xyz, r0.zzzz, r15.xyzx, r14.xyzx - mad r15.xyz, r6.xyzx, r4.zzzz, r14.xyzx - dp3 r0.z, r15.xyzx, r15.xyzx - max r0.z, r0.z, l(0.0000610351562) - rsq r0.z, r0.z - mul r15.xyz, r0.zzzz, r15.xyzx - dp3_sat r10.y, r14.xyzx, r3.xyzx - dp3_sat r0.z, r3.xyzx, r15.xyzx - min r10.z, r12.x, l(1.000000) - mad r2.z, r0.z, r1.x, -r0.z - mad r0.z, r2.z, r0.z, l(1.000000) - dp3_sat r2.z, r8.xyzx, r15.xyzx - add r2.z, -r2.z, l(1.000000) - mul r4.w, r2.z, r2.z - mul r4.w, r4.w, r4.w - mul r6.w, r2.z, r4.w - add r7.w, -r10.w, l(1.000000) - mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) - mad r8.w, r7.w, r8.w, l(1.049970) - mad r7.w, r7.w, r8.w, l(0.409255) - min r7.w, r7.w, l(0.999000) - add r8.w, -r7.w, l(1.000000) - add r14.xyz, -r9.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - mad r14.xyz, r14.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r9.xyzx - mad r2.z, -r4.w, r2.z, l(1.000000) - mad r15.xyz, r9.xyzx, r2.zzzz, r6.wwww - mul r0.z, r0.z, r0.z - div r0.z, r1.x, r0.z - mad r16.xy, -r10.zyzz, r1.xxxx, r10.zyzz - mad r16.xy, r16.xyxx, r10.zyzz, r1.xxxx - sqrt r16.xy, r16.xyxx - mul r16.xy, r10.yzyy, r16.xyxx - add r1.x, r16.y, r16.x - add r1.x, r1.x, l(0.000100) - div r1.x, l(0.500000), r1.x - mul r0.z, r0.z, r1.x - mul r15.xyz, r0.zzzz, r15.xyzx - min r15.xyz, r15.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) - mad r16.xyzw, r10.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) - sample_l_indexable(texture2d)(float,float,float,float) r0.z, r16.xyxx, t9.yzxw, s1, l(0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r1.x, r16.zwzz, t9.xyzw, s1, l(0.000000) - mul r0.z, r0.z, r1.x - mul r0.z, r7.w, r0.z - div r0.z, r0.z, r8.w - mul r16.xyz, r14.xyzx, r14.xyzx - mul r16.xyz, r0.zzzz, r16.xyzx - mad r14.xyz, -r14.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) - div r14.xyz, r16.xyzx, r14.xyzx - add r14.xyz, r14.xyzx, r15.xyzx - mul r14.xyz, r14.xyzx, cb3[4].xxxx - max r14.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - min r14.xyz, r14.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) - mul r15.xyz, r10.yyyy, r11.xyzx - mad r14.xyz, r14.xyzx, r10.yyyy, r15.xyzx - mul r14.xyz, r14.xyzx, cb3[1].xyzx - mov r13.z, l(0.500000) - sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, r13.xzxx, t8.xyzw, s1, cb0[108].x - add r0.z, -r13.x, l(1.000000) - mad r13.xzw, r14.xxyz, r15.xxyz, -r14.xxyz - mad r13.xzw, r0.zzzz, r13.xxzw, r14.xxyz - sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t10.yzxw, s1, l(0.000000) - min r0.z, r0.z, l(1.000000) - mul r13.xzw, r0.zzzz, r13.xxzw -else - mov r13.xzw, l(0,0,0,0) -endif -mul r10.yz, r2.xxyx, l(0.000000, 0.031250, 0.031250, 0.000000) -round_ni r10.yz, r10.yyzy -mad r0.z, r10.z, cb2[1].y, r10.y -mul r0.z, r0.z, l(8.000000) -ftoi r0.z, r0.z -mad r1.x, -cb0[85].y, cb2[2].w, |r1.w| -round_ni r1.x, r1.x -add r2.z, l(-1.000000), cb2[1].w -max r4.w, r1.x, l(0.000000) -min r2.z, r2.z, r4.w -mul r4.w, r2.z, l(8.000000) -ftoi r4.w, r4.w -ge r1.x, r2.z, r1.x -iadd r2.z, r4.w, cb0[110].y -dp3 r4.w, -r8.xyzx, r3.xyzx -add r4.w, r4.w, r4.w -mad r14.xyz, r3.xyzx, -r4.wwww, -r8.xyzx -min r10.x, r12.x, l(1.000000) -add r4.w, -r10.w, l(1.000000) -mad r6.w, -r4.w, l(0.383026), l(-0.0761947036) -mad r6.w, r4.w, r6.w, l(1.049970) -mad r4.w, r4.w, r6.w, l(0.409255) -min r4.w, r4.w, l(0.999000) -add r6.w, -r4.w, l(1.000000) -add r15.xyz, -r9.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r9.xyzx -mad r10.yz, r10.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) -sample_l_indexable(texture2d)(float,float,float,float) r7.w, r10.yzyy, t9.yzwx, s1, l(0.000000) -mad r16.xyz, -r15.xyzx, r6.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) -mul r15.xyz, r15.xyzx, r15.xyzx -mov r17.w, l(1.000000) -mov r18.y, l(1.000000) -mov r19.z, r10.w -mov r20.xyz, l(0,0,0,0) -mov r8.w, l(1.000000) -mov r9.w, l(0) -loop - ilt r10.y, l(7), r9.w - breakc_nz r10.y - iadd r10.y, r0.z, r9.w - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.y, r10.y, l(0), t0.xxxx - iadd r10.z, r2.z, r9.w - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.z, r10.z, l(0), t0.xxxx - and r10.y, r10.z, r10.y - and r10.y, r1.x, r10.y - ishl r10.z, r9.w, l(5) - mov r21.xyz, l(0,0,0,0) - mov r11.w, r8.w - mov r14.w, r10.y - loop - breakc_z r14.w - firstbit_lo r15.w, r14.w - ishl r16.w, l(1), r15.w - xor r16.w, r14.w, r16.w - iadd r15.w, r10.z, r15.w - bfi r22.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r15.wwww, l(1, 3, 5, 6) - bfi r18.z, l(29), l(3), r15.w, l(7) - ftou r18.w, cb3[r22.z + 6].w - ieq r18.w, r18.w, l(1) - if_nz r18.w - add r17.xyz, r5.xyzx, -cb3[r22.x + 6].xyzx - and r23.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r22.z + 6].xzyx - and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r22.w + 6].yxzy - ushr r25.xyz, cb3[r22.z + 6].xzyx, l(16, 16, 16, 0) - ushr r26.xyz, cb3[r22.w + 6].yxzy, l(16, 16, 16, 0) - f16tof32 r23.xyz, r23.xyzx - f16tof32 r24.xyz, r24.xyzx - f16tof32 r25.xyz, r25.xyzx - f16tof32 r26.xyw, r26.yxyz - mov r27.xz, r23.xxzx - mov r27.yw, r25.xxxz - dp4 r18.w, r17.xyzw, r27.xyzw - mov r25.x, r23.y - mov r25.z, r24.y - mov r25.w, r26.x - dp4 r19.w, r17.xyzw, r25.xyzw - mov r26.xz, r24.xxzx - dp4 r17.x, r17.xyzw, r26.xyzw - max r17.y, |r18.w|, |r19.w| - max r17.x, |r17.x|, r17.y - mad r17.y, cb3[r18.z + 6].x, l(0.500000), l(0.500000) - add r17.x, -r17.y, r17.x - mad r17.y, -cb3[r18.z + 6].x, l(0.500000), l(0.500000) - div_sat r17.x, r17.x, r17.y - add r17.x, -r17.x, l(1.000000) - mul r17.x, r17.x, r17.x - else - mov r17.x, l(1.000000) - endif - lt r17.y, l(0.500000), cb3[r22.y + 6].z - lt r17.z, r17.x, l(0.001000) - or r17.z, r17.y, r17.z - if_nz r17.z - mov r14.w, r16.w - continue - endif - ishl r17.z, r15.w, l(3) - bfi r15.w, l(29), l(3), r15.w, l(2) - lt r18.w, cb3[r17.z + 6].w, l(1.500000) - if_nz r18.w - mad r18.w, cb3[r15.w + 6].y, l(0.500000), l(0.500000) - add r23.x, r18.w, -|cb3[r15.w + 6].x| - add r23.y, -r23.x, cb3[r15.w + 6].y - add r18.w, -|r23.x|, l(1.000000) - add r18.w, -|r23.y|, r18.w - max r18.w, r18.w, l(0.000488281250) - ge r19.w, cb3[r15.w + 6].x, l(0.000000) - movc r23.z, r19.w, r18.w, -r18.w - dp3 r18.w, r23.xyzx, r23.xyzx - rsq r18.w, r18.w - mul r23.xyz, r18.wwww, r23.xyzx - add r24.xyz, -r5.xyzx, cb3[r22.x + 6].xyzx - dp3 r18.w, r24.xyzx, r24.xyzx - rsq r19.w, r18.w - mul r25.xyz, r19.wwww, r24.xyzx - ftoi r20.w, cb3[r18.z + 6].w - mul r26.xyz, r23.xyzx, cb3[r15.w + 6].zzzz - mad r27.xyz, -r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx - mad r28.xyz, r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx - ftou r21.w, cb3[r17.z + 6].w - and r21.w, r21.w, l(1) - ieq r22.z, r21.w, l(0) - not r22.z, r22.z - lt r23.w, l(0.000000), cb3[r15.w + 6].z - and r22.z, r22.z, r23.w - dp3 r23.w, r27.xyzx, r27.xyzx - sqrt r23.w, r23.w - dp3 r24.w, r28.xyzx, r28.xyzx - sqrt r24.w, r24.w - dp3 r25.w, r3.xyzx, r27.xyzx - div r25.w, r25.w, r23.w - dp3 r26.w, r3.xyzx, r28.xyzx - div r26.w, r26.w, r24.w - add r25.w, r25.w, r26.w - mul_sat r29.x, r25.w, l(0.500000) - dp3 r25.w, r27.xyzx, r28.xyzx - mad r23.w, r23.w, r24.w, r25.w - mad r23.w, r23.w, l(0.500000), l(1.000000) - div r29.y, l(1.000000, 1.000000, 1.000000, 1.000000), r23.w - dp3_sat r18.x, r3.xyzx, r25.xyzx - movc r19.xy, r22.zzzz, r29.xyxx, r18.xyxx - lt r18.x, cb3[r22.w + 6].w, l(0.000000) - if_nz r18.x - mul r18.x, cb3[r22.x + 6].w, cb3[r22.x + 6].w - mul r18.x, r18.x, r18.w - mad r18.x, -r18.x, r18.x, l(1.000000) - max r18.x, r18.x, l(0.000000) - add r18.w, r18.w, l(1.000000) - div r18.w, l(1.000000, 1.000000, 1.000000, 1.000000), r18.w - and r23.w, r22.z, l(0x3f800000) - add r24.w, -r18.w, r19.y - mad r18.w, r23.w, r24.w, r18.w - mul r18.x, r18.x, r18.x - mul r18.x, r18.x, r18.w - else - mul r28.xyz, r24.xyzx, cb3[r22.x + 6].wwww - dp3 r18.w, r28.xyzx, r28.xyzx - min r18.w, r18.w, l(1.000000) - add r18.w, -r18.w, l(1.000000) - log r18.w, r18.w - mul r18.w, r18.w, cb3[r22.w + 6].w - exp r18.w, r18.w - mul r18.x, r18.w, r19.y - endif - dp3 r18.w, r25.xyzx, -r23.xyzx - add r18.w, r18.w, -cb3[r15.w + 6].z - mul_sat r18.w, r18.w, cb3[r15.w + 6].w - mul r18.w, r18.w, r18.w - movc r18.w, r21.w, l(1.000000), r18.w - mul r18.x, r18.w, r18.x - not r18.w, r22.z - ige r19.y, r20.w, l(0) - and r18.w, r18.w, r19.y - if_nz r18.w - if_z r21.w - ishl r18.w, r20.w, l(2) - mul r23.xyz, r5.yyyy, cb5[r18.w + 33].xywx - mad r23.xyz, cb5[r18.w + 32].xywx, r5.xxxx, r23.xyzx - mad r23.xyz, cb5[r18.w + 34].xywx, r5.zzzz, r23.xyzx - add r23.xyz, r23.xyzx, cb5[r18.w + 35].xywx - div_sat r23.xy, r23.xyxx, r23.zzzz - mad r23.xy, r23.xyxx, cb5[r20.w + 0].zwzz, cb5[r20.w + 0].xyxx - else - ishl r18.w, r20.w, l(2) - dp3 r28.x, -r24.xyzx, cb5[r18.w + 32].xyzx - dp3 r28.y, -r24.xyzx, cb5[r18.w + 33].xyzx - dp3 r28.z, -r24.xyzx, cb5[r18.w + 34].xyzx - lt r18.w, |r28.x|, |r28.y| - and r18.w, r18.w, l(1) - dp2 r19.y, |r28.xyxx|, icb[r18.w + 0].xyxx - lt r19.y, r19.y, |r28.z| - movc r18.w, r19.y, l(2), r18.w - dp3 r19.y, r28.xyzx, icb[r18.w + 0].xyzx - lt r19.y, r19.y, l(0.000000) - bfi r18.w, l(31), l(1), r18.w, r19.y - ushr r19.y, r18.w, l(1) - dp3 r19.y, r28.xyzx, icb[r19.y + 0].xyzx - div r23.z, l(0.000244140625), cb5[r20.w + 0].w - add r23.z, -r23.z, l(0.500000) - utof r23.w, r18.w - ult r24.x, r18.w, l(2) - and r24.x, r24.x, l(2) - dp2 r24.x, r28.xzxx, icb[r24.x + 0].xzxx - mul r24.x, r24.x, icb[r18.w + 4].z - div r24.x, r24.x, |r19.y| - mad r23.w, r24.x, r23.z, r23.w - add r23.w, r23.w, l(0.500000) - mul_sat r24.x, r23.w, l(0.166666672) - iadd r23.w, l(-1), icb[r18.w + 4].y - dp2 r23.w, r28.yzyy, icb[r23.w + 0].xyxx - mul r18.w, r23.w, icb[r18.w + 4].w - div r18.w, r18.w, |r19.y| - mad_sat r24.y, -r18.w, r23.z, l(0.500000) - mad r23.xy, r24.xyxx, cb5[r20.w + 0].zwzz, cb5[r20.w + 0].xyxx - endif - sample_l_indexable(texture2d)(float,float,float,float) r18.w, r23.xyxx, t11.yzwx, s1, l(0.000000) - mul r18.x, r18.w, r18.x - endif - lt r18.w, l(0.000000), r18.x - if_nz r18.w - if_z r21.w - ftoi r19.y, cb3[r22.y + 6].x - else - add r23.xyz, r5.xyzx, -cb3[r22.x + 6].xyzx - lt r24.xyz, |r23.yzzy|, |r23.xxyx| - and r20.w, r24.y, r24.x - lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx - ushr r21.w, cb3[r15.w + 6].w, l(24) - ubfe r24.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r15.w + 6].wwww - movc r21.w, r23.x, r21.w, r24.x - and r23.x, l(255), cb3[r15.w + 6].w - movc r23.x, r23.y, r24.y, r23.x - ubfe r23.y, l(8), l(8), cb3[r22.y + 6].x - and r23.w, l(255), cb3[r22.y + 6].x - movc r23.y, r23.z, r23.y, r23.w - movc r23.x, r24.z, r23.x, r23.y - movc r20.w, r20.w, r21.w, r23.x - ilt r21.w, r20.w, l(80) - movc r19.y, r21.w, r20.w, l(-1) - endif - ishl r20.w, r19.y, l(2) - mad r23.xyz, r25.xyzx, cb4[r19.y + 288].xxxx, r5.xyzx - mul r21.w, l(5.000000), cb4[r19.y + 288].y - mad r23.xyz, r3.xyzx, r21.wwww, r23.xyzx - mul r24.xyzw, r23.yyyy, cb4[r20.w + 65].xyzw - mad r24.xyzw, cb4[r20.w + 64].xyzw, r23.xxxx, r24.xyzw - mad r23.xyzw, cb4[r20.w + 66].xyzw, r23.zzzz, r24.xyzw - add r23.xyzw, r23.xyzw, cb4[r20.w + 67].xyzw - div r23.xyz, r23.xyzx, r23.wwww - ge r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx - ge r28.xyz, r23.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - add r29.xy, -cb4[r19.y + 344].xyxx, cb4[r19.y + 344].zwzz - mad r23.xy, r23.xyxx, r29.xyxx, cb4[r19.y + 344].xyxx - mad r29.xy, r23.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) - round_ni r29.xy, r29.xyxx - mad r23.xy, r23.xyxx, cb4[400].zwzz, -r29.xyxx - add r30.xyzw, r23.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r31.xyzw, r30.xxzz, r30.xxzz - add r29.zw, -r23.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) - min r30.xz, r23.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) - max r32.xy, r23.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r33.xy, r29.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r32.xy, -r32.xyxx, r32.xyxx, r30.ywyy - add r32.xy, r32.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r32.xy, r32.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r31.xz, r31.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r23.xy, r31.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r23.xyxx - mul r34.xy, r23.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r23.xy, -r30.xzxx, r30.xzxx, r29.zwzz - add r23.xy, r23.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r35.xy, r23.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r23.xy, r30.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mov r34.z, r35.x - mov r34.w, r23.x - mov r33.z, r32.x - mov r33.w, r31.x - add r30.xyzw, r33.zwxz, r34.zwxz - mov r35.z, r34.y - mov r35.w, r23.y - mov r32.z, r33.y - mov r32.w, r31.z - add r23.xyw, r32.zyzw, r35.zyzw - div r31.xyz, r33.xzwx, r30.zwyz - add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r31.xyz, r31.yxzy, cb4[400].xxxx - div r32.xyz, r32.zywz, r23.xywx - add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r32.xyz, r32.xyzx, cb4[400].yyyy - mov r31.w, r32.x - mad r33.xyzw, r29.xyxy, cb4[400].xyxy, r31.ywxw - mad r29.zw, r29.xxxy, cb4[400].xxxy, r31.zzzw - mov r32.w, r31.y - mov r31.yw, r32.yyyz - mad r34.xyzw, r29.xyxy, cb4[400].xyxy, r31.xyzy - mad r32.xyzw, r29.xyxy, cb4[400].xyxy, r32.wywz - mad r31.xyzw, r29.xyxy, cb4[400].xyxy, r31.xwzw - mul r35.xyzw, r23.xxxy, r30.zwyz - sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r33.xyxx, t6.xxxx, s4, r23.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r33.zwzz, t6.xxxx, s4, r23.z - mul r21.w, r21.w, r35.y - mad r20.w, r35.x, r20.w, r21.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r29.zwzz, t6.xxxx, s4, r23.z - mad r20.w, r35.z, r21.w, r20.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r32.xyxx, t6.xxxx, s4, r23.z - mad r20.w, r35.w, r21.w, r20.w - mul r29.xyzw, r23.yyww, r30.xyzw - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r34.xyxx, t6.xxxx, s4, r23.z - mad r20.w, r29.x, r21.w, r20.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r34.zwzz, t6.xxxx, s4, r23.z - mad r20.w, r29.y, r21.w, r20.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r32.zwzz, t6.xxxx, s4, r23.z - mad r20.w, r29.z, r21.w, r20.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r31.xyxx, t6.xxxx, s4, r23.z - mad r20.w, r29.w, r21.w, r20.w - ige r21.w, r19.y, l(0) - or r24.xyz, r24.xyzx, r28.xyzx - or r23.x, r24.y, r24.x - or r23.x, r24.z, r23.x - and r23.y, r23.z, l(0x7fffffff) - ult r23.y, l(0x7f800000), r23.y - or r23.x, r23.y, r23.x - mul r23.y, r23.w, r30.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r23.z, r31.zwzz, t6.xxxx, s4, r23.z - mad r20.w, r23.y, r23.z, r20.w - add r20.w, r20.w, l(-1.000000) - mad r19.y, cb4[r19.y + 288].w, r20.w, l(1.000000) - movc r19.y, r23.x, l(1.000000), r19.y - movc r19.y, r21.w, r19.y, l(1.000000) - else - mov r19.y, l(1.000000) - endif - if_nz r22.z - dp3 r20.w, r14.xyzx, r26.xyzx - mul_sat r21.w, r19.w, cb3[r15.w + 6].z - mad r21.w, r21.w, l(0.500000), r13.y - min r21.w, r21.w, l(1.000000) - div r21.w, r13.y, r21.w - mad r23.xyz, r14.xyzx, r20.wwww, -r26.xyzx - dp3 r22.z, r27.xyzx, r23.xyzx - mul r20.w, r20.w, r20.w - mad r20.w, cb3[r15.w + 6].z, cb3[r15.w + 6].z, -r20.w - div_sat r20.w, r22.z, r20.w - mad r23.xyz, r26.xyzx, r20.wwww, r27.xyzx - dp3 r20.w, r23.xyzx, r23.xyzx - rsq r20.w, r20.w - mul r25.xyz, r20.wwww, r23.xyzx - else - mov r21.w, l(1.000000) - endif - if_nz r18.w - mul_sat r18.w, r19.w, cb3[r18.z + 6].y - mad r23.xyz, r6.xyzx, r4.zzzz, r25.xyzx - dp3 r19.w, r23.xyzx, r23.xyzx - max r19.w, r19.w, l(0.0000610351562) - rsq r19.w, r19.w - mul r23.xyz, r19.wwww, r23.xyzx - dp3_sat r19.w, r3.xyzx, r23.xyzx - dp3_sat r20.w, r8.xyzx, r23.xyzx - lt r22.z, l(0.000000), r18.w - mul r18.w, r18.w, r18.w - mad r23.x, r20.w, l(3.600000), l(0.400000) - div r18.w, r18.w, r23.x - mad r18.w, r10.w, r10.w, r18.w - min r18.w, r18.w, l(1.000000) - movc r18.w, r22.z, r18.w, r13.y - mul r18.w, r18.w, r18.w - mad r22.z, r19.w, r18.w, -r19.w - mad r19.w, r22.z, r19.w, l(1.000000) - add r20.w, -r20.w, l(1.000000) - mul r22.z, r20.w, r20.w - mul r22.z, r22.z, r22.z - mul r23.x, r20.w, r22.z - mad r20.w, -r22.z, r20.w, l(1.000000) - mad r23.xyz, r9.xyzx, r20.wwww, r23.xxxx - mul r19.w, r19.w, r19.w - div r19.w, r18.w, r19.w - mul r19.w, r21.w, r19.w - mad r20.w, -r10.x, r18.w, r10.x - mad r20.w, r20.w, r10.x, r18.w - sqrt r20.w, r20.w - mad r21.w, -r19.x, r18.w, r19.x - mad r18.w, r21.w, r19.x, r18.w - sqrt r18.w, r18.w - mul r18.w, r10.x, r18.w - mad r18.w, r19.x, r20.w, r18.w - add r18.w, r18.w, l(0.000100) - div r18.w, l(0.500000), r18.w - mul r18.w, r18.w, r19.w - mul r23.xyz, r18.wwww, r23.xyzx - min r23.xyz, r23.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) - mad r24.xy, r19.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r18.w, r24.xyxx, t9.yzwx, s1, l(0.000000) - mul r18.w, r7.w, r18.w - mul r18.w, r4.w, r18.w - div r18.w, r18.w, r6.w - mul r24.xyz, r15.xyzx, r18.wwww - div r24.xyz, r24.xyzx, r16.xyzx - add r23.xyz, r23.xyzx, r24.xyzx - mul r23.xyz, r23.xyzx, cb3[r18.z + 6].zzzz - max r23.xyz, r23.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - min r23.xyz, r23.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) - mul r24.xyz, r11.xyzx, r19.xxxx - mad r23.xyz, r23.xyzx, r19.xxxx, r24.xyzx - mul r24.xyz, r18.xxxx, cb3[r17.z + 6].xyzx - mul r19.xyw, r19.yyyy, r24.xyxz - mul r19.xyw, r17.xxxx, r19.xyxw - mul r19.xyw, r19.xyxw, r23.xyxz - else - mov r19.xyw, l(0,0,0,0) - endif - else - if_z r17.y - mad r17.x, cb3[r15.w + 6].y, l(0.500000), l(0.500000) - add r23.x, r17.x, -|cb3[r15.w + 6].x| - add r23.y, -r23.x, cb3[r15.w + 6].y - add r17.x, -|r23.x|, l(1.000000) - add r17.x, -|r23.y|, r17.x - max r17.x, r17.x, l(0.000488281250) - ge r17.y, cb3[r15.w + 6].x, l(0.000000) - movc r23.z, r17.y, r17.x, -r17.x - dp3 r17.x, r23.xyzx, r23.xyzx - rsq r17.x, r17.x - mul r23.xyz, r17.xxxx, r23.xyzx - add r24.xyz, -r5.xyzx, cb3[r22.x + 6].xyzx - dp3 r17.x, r24.xyzx, r24.xyzx - rsq r17.y, r17.x - mul r25.xyz, r17.yyyy, r24.xyzx - ftoi r17.y, cb3[r18.z + 6].w - mul r18.xzw, r23.xxyz, cb3[r15.w + 6].zzzz - mad r26.xyz, -r18.xzwx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx - mad r18.xzw, r18.xxzw, l(0.500000, 0.000000, 0.500000, 0.500000), r24.xxyz - ftou r17.z, cb3[r17.z + 6].w - and r17.z, r17.z, l(1) - ieq r20.w, r17.z, l(0) - not r20.w, r20.w - lt r21.w, l(0.000000), cb3[r15.w + 6].z - and r20.w, r20.w, r21.w - dp3 r21.w, r26.xyzx, r26.xyzx - sqrt r21.w, r21.w - dp3 r22.z, r18.xzwx, r18.xzwx - sqrt r22.z, r22.z - dp3 r18.x, r26.xyzx, r18.xzwx - mad r18.x, r21.w, r22.z, r18.x - mad r18.x, r18.x, l(0.500000), l(1.000000) - div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x - movc r18.x, r20.w, r18.x, l(1.000000) - lt r18.z, cb3[r22.w + 6].w, l(0.000000) - if_nz r18.z - mul r18.z, cb3[r22.x + 6].w, cb3[r22.x + 6].w - mul r18.z, r17.x, r18.z - mad r18.z, -r18.z, r18.z, l(1.000000) - max r18.z, r18.z, l(0.000000) - add r17.x, r17.x, l(1.000000) - div r17.x, l(1.000000, 1.000000, 1.000000, 1.000000), r17.x - and r18.w, r20.w, l(0x3f800000) - add r21.w, -r17.x, r18.x - mad r17.x, r18.w, r21.w, r17.x - mul r18.z, r18.z, r18.z - mul r17.x, r17.x, r18.z - else - mul r26.xyz, r24.xyzx, cb3[r22.x + 6].wwww - dp3 r18.z, r26.xyzx, r26.xyzx - min r18.z, r18.z, l(1.000000) - add r18.z, -r18.z, l(1.000000) - log r18.z, r18.z - mul r18.z, r18.z, cb3[r22.w + 6].w - exp r18.z, r18.z - mul r17.x, r18.z, r18.x - endif - dp3 r18.x, r25.xyzx, -r23.xyzx - add r18.x, r18.x, -cb3[r15.w + 6].z - mul_sat r18.x, r18.x, cb3[r15.w + 6].w - mul r18.x, r18.x, r18.x - movc r18.x, r17.z, l(1.000000), r18.x - mul r17.x, r17.x, r18.x - not r18.x, r20.w - ige r18.z, r17.y, l(0) - and r18.x, r18.z, r18.x - if_nz r18.x - if_z r17.z - ishl r18.x, r17.y, l(2) - mul r23.xyz, r5.yyyy, cb5[r18.x + 33].xywx - mad r23.xyz, cb5[r18.x + 32].xywx, r5.xxxx, r23.xyzx - mad r23.xyz, cb5[r18.x + 34].xywx, r5.zzzz, r23.xyzx - add r18.xzw, r23.xxyz, cb5[r18.x + 35].xxyw - div_sat r18.xz, r18.xxzx, r18.wwww - mad r18.xz, r18.xxzx, cb5[r17.y + 0].zzwz, cb5[r17.y + 0].xxyx - else - ishl r18.w, r17.y, l(2) - dp3 r23.x, -r24.xyzx, cb5[r18.w + 32].xyzx - dp3 r23.y, -r24.xyzx, cb5[r18.w + 33].xyzx - dp3 r23.z, -r24.xyzx, cb5[r18.w + 34].xyzx - lt r18.w, |r23.x|, |r23.y| - and r18.w, r18.w, l(1) - dp2 r20.w, |r23.xyxx|, icb[r18.w + 0].xyxx - lt r20.w, r20.w, |r23.z| - movc r18.w, r20.w, l(2), r18.w - dp3 r20.w, r23.xyzx, icb[r18.w + 0].xyzx - lt r20.w, r20.w, l(0.000000) - bfi r18.w, l(31), l(1), r18.w, r20.w - ushr r20.w, r18.w, l(1) - dp3 r20.w, r23.xyzx, icb[r20.w + 0].xyzx - div r21.w, l(0.000244140625), cb5[r17.y + 0].w - add r21.w, -r21.w, l(0.500000) - utof r22.z, r18.w - ult r22.w, r18.w, l(2) - and r22.w, r22.w, l(2) - dp2 r22.w, r23.xzxx, icb[r22.w + 0].xzxx - mul r22.w, r22.w, icb[r18.w + 4].z - div r22.w, r22.w, |r20.w| - mad r22.z, r22.w, r21.w, r22.z - add r22.z, r22.z, l(0.500000) - mul_sat r24.x, r22.z, l(0.166666672) - iadd r22.z, l(-1), icb[r18.w + 4].y - dp2 r22.z, r23.yzyy, icb[r22.z + 0].xyxx - mul r18.w, r22.z, icb[r18.w + 4].w - div r18.w, r18.w, |r20.w| - mad_sat r24.y, -r18.w, r21.w, l(0.500000) - mad r18.xz, r24.xxyx, cb5[r17.y + 0].zzwz, cb5[r17.y + 0].xxyx - endif - sample_l_indexable(texture2d)(float,float,float,float) r17.y, r18.xzxx, t11.yxzw, s1, l(0.000000) - mul r17.x, r17.y, r17.x - endif - lt r17.x, l(0.000000), r17.x - if_nz r17.x - if_z r17.z - ftoi r17.x, cb3[r22.y + 6].x - else - add r18.xzw, r5.xxyz, -cb3[r22.x + 6].xxyz - lt r22.xzw, |r18.zzww|, |r18.xxxz| - and r17.y, r22.z, r22.x - lt r18.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xxzw - ushr r17.z, cb3[r15.w + 6].w, l(24) - ubfe r22.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r15.w + 6].wwww - movc r17.z, r18.x, r17.z, r22.x - and r15.w, l(255), cb3[r15.w + 6].w - movc r15.w, r18.z, r22.z, r15.w - ubfe r18.x, l(8), l(8), cb3[r22.y + 6].x - and r18.z, l(255), cb3[r22.y + 6].x - movc r18.x, r18.w, r18.x, r18.z - movc r15.w, r22.w, r15.w, r18.x - movc r15.w, r17.y, r17.z, r15.w - ilt r17.y, r15.w, l(80) - movc r17.x, r17.y, r15.w, l(-1) - endif - ishl r15.w, r17.x, l(2) - mad r18.xzw, r25.xxyz, cb4[r17.x + 288].xxxx, r5.xxyz - mul r17.y, l(5.000000), cb4[r17.x + 288].y - mad r18.xzw, r3.xxyz, r17.yyyy, r18.xxzw - mul r22.xyzw, r18.zzzz, cb4[r15.w + 65].xyzw - mad r22.xyzw, cb4[r15.w + 64].xyzw, r18.xxxx, r22.xyzw - mad r22.xyzw, cb4[r15.w + 66].xyzw, r18.wwww, r22.xyzw - add r22.xyzw, r22.xyzw, cb4[r15.w + 67].xyzw - div r18.xzw, r22.xxyz, r22.wwww - ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xzwx - ge r23.xyz, r18.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) - add r17.yz, -cb4[r17.x + 344].xxyx, cb4[r17.x + 344].zzwz - mad r17.yz, r18.xxzx, r17.yyzy, cb4[r17.x + 344].xxyx - mad r18.xz, r17.yyzy, cb4[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) - round_ni r18.xz, r18.xxzx - mad r17.yz, r17.yyzy, cb4[400].zzwz, -r18.xxzx - add r24.xyzw, r17.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r25.xyzw, r24.xxzz, r24.xxzz - add r24.xz, -r17.yyzy, l(1.000000, 0.000000, 1.000000, 0.000000) - min r26.xy, r17.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) - max r26.zw, r17.yyyz, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r27.xy, r24.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r26.zw, -r26.zzzw, r26.zzzw, r24.yyyw - add r26.zw, r26.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r28.xy, r26.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r25.xz, r25.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r17.yz, r25.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r17.yyzy - mul r29.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r17.yz, -r26.xxyx, r26.xxyx, r24.xxzx - add r17.yz, r17.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) - mul r26.xy, r17.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r17.yz, r24.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) - mov r29.z, r26.x - mov r29.w, r17.y - mov r27.z, r28.x - mov r27.w, r25.x - add r24.xyzw, r27.zwxz, r29.zwxz - mov r26.z, r29.y - mov r26.w, r17.z - mov r28.z, r27.y - mov r28.w, r25.z - add r25.xyz, r26.zywz, r28.zywz - div r26.xyz, r27.xzwx, r24.zwyz - add r26.xyz, r26.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r26.xyz, r26.yxzy, cb4[400].xxxx - div r27.xyz, r28.zywz, r25.xyzx - add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r27.xyz, r27.xyzx, cb4[400].yyyy - mov r26.w, r27.x - mad r28.xyzw, r18.xzxz, cb4[400].xyxy, r26.ywxw - mad r17.yz, r18.xxzx, cb4[400].xxyx, r26.zzwz - mov r27.w, r26.y - mov r26.yw, r27.yyyz - mad r29.xyzw, r18.xzxz, cb4[400].xyxy, r26.xyzy - mad r27.xyzw, r18.xzxz, cb4[400].xyxy, r27.wywz - mad r26.xyzw, r18.xzxz, cb4[400].xyxy, r26.xwzw - mul r30.xyzw, r24.zwyz, r25.xxxy - sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r28.xyxx, t6.xxxx, s4, r18.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.zwzz, t6.xxxx, s4, r18.w - mul r18.x, r18.x, r30.y - mad r15.w, r30.x, r15.w, r18.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r17.yzyy, t6.xxxx, s4, r18.w - mad r15.w, r30.z, r17.y, r15.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r27.xyxx, t6.xxxx, s4, r18.w - mad r15.w, r30.w, r17.y, r15.w - mul r28.xyzw, r24.xyzw, r25.yyzz - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r29.xyxx, t6.xxxx, s4, r18.w - mad r15.w, r28.x, r17.y, r15.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r29.zwzz, t6.xxxx, s4, r18.w - mad r15.w, r28.y, r17.y, r15.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r27.zwzz, t6.xxxx, s4, r18.w - mad r15.w, r28.z, r17.y, r15.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r26.xyxx, t6.xxxx, s4, r18.w - mad r15.w, r28.w, r17.y, r15.w - ige r17.y, r17.x, l(0) - or r22.xyz, r22.xyzx, r23.xyzx - or r17.z, r22.y, r22.x - or r17.z, r22.z, r17.z - and r18.x, r18.w, l(0x7fffffff) - ult r18.x, l(0x7f800000), r18.x - or r17.z, r17.z, r18.x - mul r18.x, r24.y, r25.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r26.zwzz, t6.xxxx, s4, r18.w - mad r15.w, r18.x, r18.z, r15.w - add r15.w, r15.w, l(-1.000000) - mad r15.w, cb4[r17.x + 288].w, r15.w, l(1.000000) - movc r15.w, r17.z, l(1.000000), r15.w - movc r15.w, r17.y, r15.w, l(1.000000) - else - mov r15.w, l(1.000000) - endif - else - mov r15.w, l(1.000000) - endif - mul r11.w, r11.w, r15.w - mov r19.xyw, l(0,0,0,0) - endif - add r21.xyz, r19.xywx, r21.xyzx - mov r14.w, r16.w - endloop - mov r8.w, r11.w - add r20.xyz, r20.xyzx, r21.xyzx - iadd r9.w, r9.w, l(1) -endloop -mad r6.xyz, r20.xyzx, r8.wwww, r13.xzwx -ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy -if_nz r4.z - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x - min r0.z, r1.y, r0.z - add r1.x, r0.z, r12.x - mad r2.z, r10.w, l(-16.000000), l(-1.000000) - exp r2.z, r2.z - log r1.x, |r1.x| - mul r1.x, r1.x, r2.z - exp r1.x, r1.x - add r1.x, r0.z, r1.x - add r1.x, r1.x, l(-1.000000) - mov_sat r10.xyz, r1.xxxx - mad r13.xyz, r11.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) - mul r13.xyz, r0.zzzz, r13.xyzx - mad r13.xyz, r11.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r13.xyzx - add r13.xyz, r13.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) - mul r13.xyz, r0.zzzz, r13.xyzx - mad r13.xyz, r11.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r13.xyzx - add r13.xyz, r13.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) - mul r13.xyz, r0.zzzz, r13.xyzx - max r13.xyz, r0.zzzz, r13.xyzx -else - mov r10.xyz, r1.yyyy - mov r13.xyz, r1.yyyy -endif -mad r15.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx -round_z r0.z, cb0[212].x -mad r1.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r2.xyxx -dp2 r0.z, r1.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) -frc r0.z, r0.z -mul r0.z, r0.z, l(52.982918) -frc r0.z, r0.z -mad r0.z, r0.z, l(2.000000), l(-1.000000) -mad r15.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r15.xyzx -mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx -add r16.xyz, r15.xzyx, -r16.xyzx -max r0.z, |r16.y|, |r16.x| -add r0.z, r0.z, l(-464.000000) -mul_sat r0.z, r0.z, l(0.031250) -add r1.x, |r16.z|, l(-208.000000) -mul_sat r1.x, r1.x, l(0.031250) -max r0.z, r0.z, r1.x -ne r1.x, l(0.000000), cb0[210].w -lt r1.y, r0.z, l(1.000000) -and r1.x, r1.y, r1.x -if_nz r1.x - mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r16.xyz, r15.xzyx, -r16.xyzx - max r1.x, |r16.y|, |r16.x| - add r1.x, r1.x, l(-29.000000) - add r1.y, |r16.z|, l(-13.000000) - mul_sat r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) - max r1.x, r1.y, r1.x - lt r1.y, r1.x, l(1.000000) - if_nz r1.y - mad r16.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r17.xyz, r16.xyzx, cb0[211].xyzx - round_ni r17.xyz, r17.xyzx - mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t15.yzwx, s2, l(0.000000) - add r1.y, -r1.x, l(1.000000) - mul r2.z, l(0.500000), cb0[211].y - mad r4.z, -cb0[211].y, l(0.500000), l(1.000000) - max r2.z, r2.z, r16.y - min r2.z, r4.z, r2.z - mul r16.w, r2.z, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t16.xyzw, s1, l(0.000000) - mad r2.z, r18.w, r1.y, r0.z - add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t16.xyzw, s1, l(0.000000) - mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r19.xyz, r17.yyyy, r19.xyzx - mov r19.w, r17.y - mul r19.xyzw, r1.yyyy, r19.xyzw - add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t16.xyzw, s1, l(0.000000) - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r17.xxxx, r16.xyzx - mov r16.w, r17.x - mul r16.xyzw, r1.yyyy, r16.xyzw - mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r17.xyz, r17.wwww, r18.xyzx - mul r17.xyzw, r1.yyyy, r17.xyzw - else - mov r19.xyzw, l(0,0,0,0) - mov r16.xyzw, l(0,0,0,0) - mov r17.xyzw, l(0,0,0,0) - mov r2.z, r0.z - endif - mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx - add r18.xyz, r15.xzyx, -r18.xyzx - max r1.y, |r18.y|, |r18.x| - add r1.y, r1.y, l(-116.000000) - mul_sat r1.y, r1.y, l(0.125000) - add r4.z, |r18.z|, l(-52.000000) - mul_sat r4.z, r4.z, l(0.125000) - max r1.y, r1.y, r4.z - lt r4.z, r1.y, l(1.000000) - if_nz r4.z - mad r18.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r20.xyz, r18.xyzx, cb0[211].xyzx - round_ni r20.xyz, r20.xyzx - mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t17.yzwx, s2, l(0.000000) - add r4.z, -r1.y, l(1.000000) - mul r1.x, r1.x, r4.z - mul r4.z, l(0.500000), cb0[211].y - mad r6.w, -cb0[211].y, l(0.500000), l(1.000000) - max r4.z, r4.z, r18.y - min r4.z, r6.w, r4.z - mul r18.w, r4.z, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t18.xyzw, s1, l(0.000000) - mad r2.z, r21.w, r1.x, r2.z - add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t18.xyzw, s1, l(0.000000) - mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r22.xyz, r20.yyyy, r22.xyzx - mov r22.w, r20.y - mad r19.xyzw, r22.xyzw, r1.xxxx, r19.xyzw - add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) - mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r20.xxxx, r18.xyzx - mov r18.w, r20.x - mad r16.xyzw, r18.xyzw, r1.xxxx, r16.xyzw - mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r20.wwww, r18.xyzx - mad r17.xyzw, r20.xyzw, r1.xxxx, r17.xyzw - endif - lt r1.x, l(0.000000), r1.y - if_nz r1.x - mad r15.xyz, r15.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r18.xyz, r15.xyzx, cb0[211].xyzx - mul r20.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r18.xyz, r18.xyzx - mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r18.xyzx - mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r15.xyz, r20.xyzx, r15.xyzx - min r15.xyz, r18.xyzx, r15.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r15.xyzx, t19.yzwx, s2, l(0.000000) - add r1.x, -r0.z, l(1.000000) - mul r1.x, r1.x, r1.y - max r1.y, r20.y, r15.y - min r1.y, r18.y, r1.y - mul r15.w, r1.y, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.xwzx, t20.xyzw, s1, l(0.000000) - add r20.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t20.xyzw, s1, l(0.000000) - mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r21.yyyy, r20.xyzx - mov r20.w, r21.y - mad r19.xyzw, r20.xyzw, r1.xxxx, r19.xyzw - add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t20.xyzw, s1, l(0.000000) - mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r15.xyz, r21.xxxx, r15.xyzx - mov r15.w, r21.x - mad r16.xyzw, r15.xyzw, r1.xxxx, r16.xyzw - mad r15.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r21.xyz, r21.wwww, r15.xyzx - mad r17.xyzw, r21.xyzw, r1.xxxx, r17.xyzw - mad r2.z, r18.w, r1.x, r2.z - endif - mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) - add r15.x, -r0.z, r1.x - add r0.z, r0.z, r1.x - mul r15.y, r0.z, l(0.500000) -else - mov r19.xyzw, l(0,0,0,0) - mov r16.xyzw, l(0,0,0,0) - mov r17.xyzw, l(0,0,0,0) - mov r15.xy, l(0,1.000000,0,0) -endif -mul r18.xyzw, r15.yxyy, cb0[213].ywzx -mad r18.y, r18.y, l(0.500000), r18.x -mul r1.xy, r15.yxyy, cb0[213].wyww -mad r18.x, r1.y, l(0.375000), r1.x -add r17.xyzw, r17.xyzw, r18.wyzx -mul r18.xyzw, r15.yxyy, cb0[214].ywzx -mad r18.y, r18.y, l(0.500000), r18.x -mul r1.xy, r15.yxyy, cb0[214].wyww -mad r18.x, r1.y, l(0.375000), r1.x -add r16.xyzw, r16.xyzw, r18.wyzx -mul r18.xyzw, r15.yxyy, cb0[215].ywzx -mad r18.y, r18.y, l(0.500000), r18.x -mul r1.xy, r15.yxyy, cb0[215].wyww -mad r18.x, r1.y, l(0.375000), r1.x -add r15.xyzw, r18.wyzx, r19.xyzw -ge r1.xy, r4.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) -and r0.z, r1.y, r1.x -if_nz r0.z - sample_l_indexable(texture2d)(float,float,float,float) r18.xyzw, r4.xyxx, t14.xyzw, s1, l(0.000000) - lt r19.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r18.xyzw| - or r1.xy, r19.zwzz, r19.xyxx - or r0.z, r1.y, r1.x - if_nz r0.z - dp3 r0.z, r18.yzwy, r18.yzwy - sqrt r0.z, r0.z - mov r1.x, l(1.000000) - mov r1.y, r0.z - mov r2.z, l(0) - loop - ge r4.x, l(4.600000), r1.y - breakc_nz r4.x - iadd r4.x, r2.z, l(1) - mul r4.yz, r1.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000) - mov r1.xy, r4.yzyy - mov r2.z, r4.x - continue - endloop - mul r18.xyzw, r1.xxxx, r18.xyzw - dp3 r0.z, r18.yzwy, r18.yzwy - sqrt r0.z, r0.z - mad r0.z, r0.z, cb6[3].x, cb6[3].y - mad r0.z, r0.z, l(255.000000), l(0.500000) - mul r1.x, r0.z, l(0.00390625000) - mov r1.y, l(0.500000) - sample_l_indexable(texture2d)(float,float,float,float) r1.xy, r1.xyxx, t13.xyzw, s1, l(0.000000) - mad r1.xy, r1.xyxx, cb6[2].xyxx, cb6[2].zwzz - mul r19.x, r1.x, l(3.54490781) - mul r19.yzw, r1.yyyy, r18.yyzw - mul r0.z, r18.x, l(0.406976730) - exp r0.z, r0.z - mul r18.xyzw, r0.zzzz, r19.xyzw - mov r19.xyzw, r18.xyzw - mov r0.z, l(0) - loop - uge r1.x, r0.z, r2.z - breakc_nz r1.x - mul r20.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - dp4 r1.x, r20.xyzw, r19.xyzw - dp2 r1.y, r20.yxyy, r19.xyxx - dp2 r4.x, r20.zxzz, r19.xzxx - dp2 r4.y, r20.wxww, r19.xwxx - iadd r4.z, r0.z, l(1) - mov r19.xy, r1.xyxx - mov r19.zw, r4.xxxy - mov r0.z, r4.z - continue - endloop - mul r18.xyzw, r19.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - mul r19.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r0.z, r18.xyzw, r19.xyzw - dp2 r1.x, r18.yxyy, r19.xyxx - dp2 r1.y, r18.zxzz, r19.xzxx - dp2 r2.z, r18.wxww, r19.xwxx - mul r19.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r4.x, r18.xyzw, r19.xyzw - dp2 r4.y, r18.yxyy, r19.xyxx - dp2 r4.z, r18.zxzz, r19.xzxx - dp2 r6.w, r18.wxww, r19.xwxx - mul r19.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r7.w, r18.xyzw, r19.xyzw - dp2 r8.w, r18.yxyy, r19.xyxx - dp2 r9.w, r18.zxzz, r19.xzxx - dp2 r11.w, r18.wxww, r19.xwxx - mul r17.w, r0.z, l(0.886226952) - mul r17.x, r2.z, l(-1.02332675) - mul r17.yz, r1.xxyx, l(0.000000, -1.02332675, 1.02332675, 0.000000) - mul r16.x, r6.w, l(-1.02332675) - mul r16.yzw, r4.yyzx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) - mul r15.w, r7.w, l(0.886226952) - mul r15.x, r11.w, l(-1.02332675) - mul r15.y, r8.w, l(-1.02332675) - mul r15.z, r9.w, l(1.02332675) - endif -endif -dp3 r0.z, r17.xyzx, r3.xyzx -add r0.z, r17.w, r0.z -max r4.x, r0.z, l(0.000000) -dp3 r0.z, r16.xyzx, r3.xyzx -add r0.z, r16.w, r0.z -max r4.y, r0.z, l(0.000000) -dp3 r0.z, r15.xyzx, r3.xyzx -add r0.z, r15.w, r0.z -max r4.z, r0.z, l(0.000000) -add r0.z, l(-1.000000), cb0[113].x -max r1.x, r10.w, l(0.001000) -log r1.x, r1.x -mad r1.x, -r1.x, l(1.200000), l(1.000000) -add r0.z, r0.z, -r1.x -mul r1.xy, r2.xyxx, cb1[0].wwww -round_ni r1.xy, r1.xyxx -add r2.z, |r1.w|, -cb1[2].y -round_ni r2.z, r2.z -add r6.w, l(-1.000000), cb1[1].x -max r7.w, r2.z, l(0.000000) -min r6.w, r6.w, r7.w -ge r2.z, r6.w, r2.z -mad r1.x, r1.y, cb1[0].x, r1.x -ftoi r1.x, r1.x -iadd r1.x, r1.x, cb0[110].z -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.x, r1.x, l(0), t0.xxxx -ftoi r1.y, r6.w -iadd r1.y, r1.y, cb0[110].w -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.y, r1.y, l(0), t0.xxxx -and r1.x, r1.y, r1.x -and r1.x, r1.x, r2.z -mul r15.xyz, r4.xyzx, cb0[111].xxxx -dp3 r1.y, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mov r5.w, l(1.000000) -mov r3.w, l(1.000000) -mov r15.xyz, l(0,0,0,0) -mov r2.z, l(1.000000) -mov r6.w, r1.x -mov r7.w, l(0) -loop - lt r8.w, l(0.010000), r2.z - ine r9.w, r6.w, l(0) - and r9.w, r8.w, r9.w - if_nz r9.w - firstbit_lo r9.w, r6.w - ishl r10.w, l(1), r9.w - xor r6.w, r6.w, r10.w - ishl r9.w, r9.w, l(3) - dp4 r16.x, cb1[r9.w + 6].xyzw, r5.xyzw - dp4 r16.y, cb1[r9.w + 7].xyzw, r5.xyzw - dp4 r16.z, cb1[r9.w + 8].xyzw, r5.xyzw - ge r17.xyz, cb1[r9.w + 5].xyzx, |r16.xyzx| - and r10.w, r17.y, r17.x - and r10.w, r17.z, r10.w - if_nz r10.w - mul r10.w, l(0.100000), cb1[r9.w + 5].x - mul r17.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) - mul r17.xy, r17.xyxx, r17.xyxx - add r18.xyz, -|r16.xyzx|, cb1[r9.w + 5].xyzx - mul r18.xyz, r18.xyzx, cb1[r9.w + 9].xyzx - eq r11.w, l(1.000000), cb1[r9.w + 10].x - if_nz r11.w - dp3 r19.x, cb1[r9.w + 6].xyzx, r14.xyzx - dp3 r19.y, cb1[r9.w + 7].xyzx, r14.xyzx - dp3 r19.z, cb1[r9.w + 8].xyzx, r14.xyzx - add r20.xyz, -r16.xyzx, cb1[r9.w + 5].xyzx - div r20.xyz, r20.xyzx, r19.xyzx - add r21.xyz, -r16.xyzx, -cb1[r9.w + 5].xyzx - div r21.xyz, r21.xyzx, r19.xyzx - lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx - movc r20.xyz, r22.xyzx, r20.xyzx, r21.xyzx - min r11.w, r20.y, r20.x - min r11.w, r20.z, r11.w - mad r16.xyz, r19.xyzx, r11.wwww, r16.xyzx - else - mov r16.xyz, r14.xyzx - endif - dp3 r11.w, r16.xyzx, r16.xyzx - rsq r11.w, r11.w - mul r16.xyz, r11.wwww, r16.xyzx - lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx - lt r20.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r19.xyz, -r19.xyzx, r20.xyzx - itof r19.xyz, r19.xyzx - dp3 r11.w, r16.xyzx, r19.xyzx - div r16.xyz, r16.xyzx, r11.wwww - lt r11.w, r16.z, l(0.000000) - add r16.zw, -|r16.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r16.zw, r16.zzzw, r19.xxxy - movc r16.xy, r11.wwww, r16.zwzz, r16.xyxx - dp4 r11.w, cb1[r9.w + 4].xyzw, r3.xyzw - max r11.w, r11.w, l(0.000000) - max r11.w, r11.w, l(0.000100) - min r12.x, r18.z, r18.y - min r12.x, r12.x, r18.x - add r13.w, r17.y, r17.x - mad r13.w, r17.z, r17.z, r13.w - mad r10.w, r10.w, r10.w, -r13.w - mul r10.w, r10.w, cb1[r9.w + 9].x - mul r10.w, r10.w, cb1[r9.w + 9].x - add r13.w, l(1.000000), -cb1[r9.w + 10].y - mul r10.w, r10.w, r13.w - mul r10.w, r10.w, l(100.000000) - mad_sat r10.w, r12.x, cb1[r9.w + 10].y, r10.w - mul r12.x, r10.w, cb1[r9.w + 10].w - mad r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) - mad r16.xy, r16.xyxx, cb1[1].wwww, cb1[2].wwww - mov r16.z, cb1[r9.w + 5].w - sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s3, r0.z - mul r16.xyz, r16.xyzx, cb1[r9.w + 9].wwww - div r13.w, r1.y, r11.w - min r13.w, |r13.w|, l(1.000000) - mad r13.w, r13.w, l(2.000000), r1.y - add r11.w, r11.w, l(2.000000) - div r11.w, r13.w, r11.w - add r11.w, r11.w, l(-1.000000) - mad r11.w, r11.w, cb0[112].w, l(1.000000) - mul r16.xyz, r11.wwww, r16.xyzx - mul r16.xyz, r12.xxxx, r16.xyzx - mad r15.xyz, r16.xyzx, r2.zzzz, r15.xyzx - mad r9.w, -r10.w, cb1[r9.w + 10].w, l(1.000000) - mul r2.z, r2.z, r9.w - endif - mov r7.w, l(-1) - continue - else - mov r7.w, r8.w - break - endif - mov r7.w, r8.w -endloop -if_nz r7.w - dp3 r1.x, r14.xyzx, r14.xyzx - rsq r1.x, r1.x - mul r5.xzw, r1.xxxx, r14.xxyz - lt r14.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r5.xzwx - lt r16.xyz, r5.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r14.xyz, -r14.xyzx, r16.xyzx - itof r14.xyz, r14.xyzx - dp3 r1.x, r5.xzwx, r14.xyzx - div r5.xzw, r5.xxzw, r1.xxxx - lt r1.x, r5.w, l(0.000000) - add r14.zw, -|r5.zzzx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r14.xy, r14.zwzz, r14.xyxx - movc r5.xz, r1.xxxx, r14.xxyx, r5.xxzx - mov r3.w, l(1.000000) - dp4 r1.x, cb1[3].xyzw, r3.xyzw - max r1.x, r1.x, l(0.000000) - max r1.x, r1.x, l(0.000100) - mad r3.xy, r5.xzxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) - mad r3.xy, r3.xyxx, cb1[1].wwww, cb1[2].wwww - mov r3.z, l(0) - sample_l_indexable(texture2darray)(float,float,float,float) r3.xyz, r3.xyzx, t5.xyzw, s3, r0.z - div r0.z, r1.y, r1.x - min r0.z, |r0.z|, l(1.000000) - mad r0.z, r0.z, l(2.000000), r1.y - add r1.x, r1.x, l(2.000000) - div r0.z, r0.z, r1.x - add r0.z, r0.z, l(-1.000000) - mad r0.z, r0.z, cb0[112].w, l(1.000000) - mul r3.xyz, r0.zzzz, r3.xyzx - mad r15.xyz, r3.xyzx, r2.zzzz, r15.xyzx -endif -mul r3.xyz, r15.xyzx, cb0[112].zzzz -mul r3.xyz, r3.xyzx, cb0[111].yyyy -if_nz r4.w - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r5.xzw, v1.xyxx, t2.xwyz, s1, cb0[108].x - add r1.x, -r0.z, l(1.000000) - mul r14.xyz, r1.xxxx, r3.xyzx - mad r3.xyz, r5.xzwx, r0.zzzz, r14.xyzx -endif -mul r4.xyz, r11.xyzx, r4.xyzx -mul r4.xyz, r4.xyzx, cb0[111].xxxx -add r0.z, -r1.z, l(1.000000) -div r0.z, r0.z, r1.z -mul r1.xyz, r0.zzzz, r9.xyzx -mad r1.xyz, r1.xyzx, r12.yzwy, r12.yzwy -mul r1.xyz, r1.xyzx, r3.xyzx -mul r1.xyz, r10.xyzx, r1.xyzx -mad r1.xyz, r4.xyzx, r13.xyzx, r1.xyzx -add r1.xyz, r1.xyzx, r6.xyzx -mad r0.z, r5.y, cb0[156].w, cb0[157].w -max r0.z, r0.z, l(0.010000) -mad r2.z, r2.w, cb0[154].w, -cb0[153].w -max r2.z, r2.z, l(0.000000) -mul r3.x, r0.z, l(-1.442695) -exp r3.x, r3.x -add r3.x, -r3.x, l(1.000000) -div r0.z, r3.x, r0.z -mad r3.x, r5.y, cb0[156].w, cb0[158].w -mul r3.x, r3.x, l(1.442695) -exp r3.x, r3.x -mul r0.z, r0.z, r3.x -mul r0.z, r0.z, -r2.z -mul r3.xyz, r0.zzzz, cb0[155].xyzx -mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) -exp r3.xyz, r3.xyzx -dp3 r0.z, -r8.xyzx, cb0[154].xyzx -mad r2.z, cb0[155].w, cb0[155].w, l(1.000000) -dp2 r3.w, r0.zzzz, cb0[155].wwww -add r2.z, r2.z, -r3.w -lt r3.w, l(0.000000), cb0[163].z -if_nz r3.w - and r0.w, l(7), cb0[108].w - imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) - imad r0.x, r0.y, r0.w, r0.x - imad r0.y, r0.w, r0.x, r0.y - imad r0.w, r0.x, r0.y, r0.w - imad r4.x, r0.y, r0.w, r0.x - dp3 r0.x, -r8.xyzx, -r7.xyzx - add r3.w, r5.y, -cb0[44].y - lt r4.z, l(5.960464478E-08), r0.x - div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x - and r0.x, r0.x, r4.z - mul r0.x, r0.x, cb0[163].w - div r4.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w - mul r4.w, r0.x, r4.z - mad r5.x, r4.w, r3.w, cb0[44].y - mad r3.w, -r4.w, r3.w, r3.w - mul r4.w, r3.w, cb0[159].z - max r4.w, r4.w, l(-127.000000) - mul r3.w, r3.w, cb0[162].x - max r3.w, r3.w, l(-127.000000) - add r5.z, r5.x, -cb0[159].x - mul r5.z, r5.z, cb0[159].z - max r5.z, r5.z, l(-127.000000) - exp r5.z, -r5.z - mul r5.z, r5.z, cb0[159].y - lt r5.w, l(5.960464478E-08), |r4.w| - exp r6.x, -r4.w - add r6.x, -r6.x, l(1.000000) - div r6.x, r6.x, r4.w - mad r4.w, -r4.w, l(0.240226507), l(0.693147182) - movc r4.w, r5.w, r6.x, r4.w - add r5.x, r5.x, -cb0[162].z - mul r5.x, r5.x, cb0[162].x - max r5.x, r5.x, l(-127.000000) - exp r5.x, -r5.x - mul r5.x, r5.x, cb0[162].y - lt r5.w, l(5.960464478E-08), |r3.w| - exp r6.x, -r3.w - add r6.x, -r6.x, l(1.000000) - div r6.x, r6.x, r3.w - mad r3.w, -r3.w, l(0.240226507), l(0.693147182) - movc r3.w, r5.w, r6.x, r3.w - mul r3.w, r3.w, r5.x - mad r3.w, r5.z, r4.w, r3.w - mad r0.x, -r0.x, r4.z, l(1.000000) - mul r0.x, r2.w, r0.x - mul r0.x, r0.x, r3.w - exp r0.x, -r0.x - min r0.x, r0.x, l(1.000000) - max r0.x, r0.x, cb0[161].w - mad_sat r4.zw, r2.wwww, cb0[160].yyyw, cb0[160].xxxz - add r0.x, r0.x, r4.z - add r0.x, r4.w, r0.x - min r0.x, r0.x, l(1.000000) - imad r4.y, r0.w, r4.x, r0.y - ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) - utof r0.yw, r0.yyyw - mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy - mul r4.xy, r0.ywyy, cb0[165].xyxx - mad r0.y, |r1.w|, cb0[164].x, cb0[164].y - log r0.y, r0.y - mul r0.y, r0.y, cb0[164].z - div r4.z, r0.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t12.xyzw, s1, l(0.000000) - add r0.y, |r1.w|, -cb0[166].z - mul_sat r0.y, r0.y, l(1000000.000000) - add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r4.xyzw, r0.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r0.y, -r0.x, l(1.000000) - mul r5.xzw, r0.yyyy, cb0[161].xxyz - mad r4.xyz, r5.xzwx, r4.wwww, r4.xyzx - mul r0.x, r0.x, r4.w -else - add r0.y, r5.y, -cb0[44].y - mul r0.w, r0.y, cb0[159].z - mul r0.y, r0.y, cb0[162].x - max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) - add r1.w, cb0[44].y, -cb0[159].x - mul r1.w, r1.w, cb0[159].z - max r1.w, r1.w, l(-127.000000) - exp r1.w, -r1.w - mul r1.w, r1.w, cb0[159].y - lt r2.x, l(5.960464478E-08), |r0.w| - exp r2.y, -r0.w - add r2.y, -r2.y, l(1.000000) - div r2.y, r2.y, r0.w - mad r0.w, -r0.w, l(0.240226507), l(0.693147182) - movc r0.w, r2.x, r2.y, r0.w - add r2.x, cb0[44].y, -cb0[162].z - mul r2.x, r2.x, cb0[162].x - max r2.x, r2.x, l(-127.000000) - exp r2.x, -r2.x - mul r2.x, r2.x, cb0[162].y - lt r2.y, l(5.960464478E-08), |r0.y| - exp r3.w, -r0.y - add r3.w, -r3.w, l(1.000000) - div r3.w, r3.w, r0.y - mad r0.y, -r0.y, l(0.240226507), l(0.693147182) - movc r0.y, r2.y, r3.w, r0.y - mul r0.y, r0.y, r2.x - mad r0.y, r1.w, r0.w, r0.y - mul r0.y, r2.w, r0.y - exp r0.y, -r0.y - min r0.y, r0.y, l(1.000000) - max r0.y, r0.y, cb0[161].w - mad_sat r2.xy, r2.wwww, cb0[160].ywyy, cb0[160].xzxx - add r0.y, r0.y, r2.x - add r0.y, r2.y, r0.y - min r0.x, r0.y, l(1.000000) - add r0.y, -r0.x, l(1.000000) - mul r4.xyz, r0.yyyy, cb0[161].xyzx -endif -mul r2.xyw, r0.xxxx, r3.xyxz -max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) -mad r0.y, r0.z, r0.z, l(1.000000) -mul r0.y, r0.y, l(0.0596831031) -mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz -mad r1.w, -cb0[155].w, cb0[155].w, l(1.000000) -mul r3.w, r2.z, l(12.566371) -sqrt r2.z, r2.z -mul r2.z, r2.z, r3.w -max r2.z, r2.z, l(0.001000) -div r1.w, r1.w, r2.z -mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw -mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) -add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mul r0.yzw, r0.yyzw, r3.xxyz -mad r0.xyz, r0.yzwy, r0.xxxx, r4.xyzx -mad o0.xyz, r1.xyzx, r2.xywx, r0.xyzx -dp3 o0.w, r2.xywx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x37837806.cso b/src/games/endfield/deferred-lighting/0x37837806.cso index a4ba6bd372d7f7a6939cb945ff4fb6dd32114959..3f199cf489641c81e3431420cfadcca144967012 100644 GIT binary patch delta 184 zcmZ2-iE+tgMoE_lC+FJM&5Yfp{S(aoo%gRvogK)?z`(F%qU2)ECm9S30YHxB#G}EC z!kZ--uS=_%Gca&DF$gfQ0mZEv6c~7cv=9(8IxsN&2LdgS+~&73znNr#N_mTbTn?c0 zw|<0DHzuIifNDT?y75724v>7HqVy((EAEU!o3Ez(GjfOmt*`@P E0DosFn*aa+ delta 72 zcmZ2-nQ_S_MoE_lC+F31yNcv~Y*ugxvM`YO{lHXgNR zWE9@a$mCzGYRPzZFRU diff --git a/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm index cede03107..5da009f1c 100644 --- a/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm @@ -38,7 +38,7 @@ dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[5], immediateIndexed dcl_constantbuffer CB6[160], dynamicIndexed dcl_constantbuffer CB7[4], immediateIndexed -dcl_constantbuffer CB13[13], immediateIndexed +dcl_constantbuffer CB13[19], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -1054,6 +1054,7 @@ loop endloop mad r1.xyz, r22.xyzx, r13.zzzz, r14.xyzx ne r11.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx +movc r11.x, cb13[18].w, l(0xFFFFFFFF), r11.x if_nz r11.x sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x mad r0.z, r0.z, l(0.750000), l(0.250000) @@ -1080,6 +1081,8 @@ else mov r11.xzw, r3.wwww mov r14.xyz, r3.wwww endif +movc r11.xzw, cb13[18].wwww, r11.xyzw, l(1.0, 0, 1.0, 1.0) +mul r1.xyz, r1.xyzx, r11.xzwx mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx add r17.xyz, r8.xzyx, -r17.xyzx max r0.z, |r17.y|, |r17.x| diff --git a/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0_original_backup.asm deleted file mode 100644 index a0c9c9472..000000000 --- a/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0_original_backup.asm +++ /dev/null @@ -1,1678 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Sat Jan 31 23:54:24 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -ps_5_0 -dcl_globalFlags refactoringAllowed -dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, - { 0, 1.000000, 0, 0}, - { 0, 0, 1.000000, 0}, - { 0, 0, 0, 1.000000}, - { 2, 1, -1.000000, 1.000000}, - { 2, 1, 1.000000, 1.000000}, - { 0, 2, 1.000000, -1.000000}, - { 0, 2, 1.000000, 1.000000}, - { 0, 1, 1.000000, 1.000000}, - { 0, 1, -1.000000, 1.000000} } -dcl_constantbuffer CB0[235], immediateIndexed -dcl_constantbuffer CB1[259], dynamicIndexed -dcl_constantbuffer CB2[3], immediateIndexed -dcl_constantbuffer CB3[2054], dynamicIndexed -dcl_constantbuffer CB4[401], dynamicIndexed -dcl_constantbuffer CB5[5], immediateIndexed -dcl_constantbuffer CB6[160], dynamicIndexed -dcl_constantbuffer CB7[4], 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_comparison -dcl_sampler s5, mode_comparison -dcl_resource_structured t0, 4 -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_texture2darray (float,float,float,float) t5 -dcl_resource_texture2d (float,float,float,float) t6 -dcl_resource_texture2d (float,float,float,float) t7 -dcl_resource_texture2d (float,float,float,float) t8 -dcl_resource_texture2d (float,float,float,float) t9 -dcl_resource_texture3d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture2d (float,float,float,float) t12 -dcl_resource_texture2d (float,float,float,float) t13 -dcl_resource_texture3d (float,float,float,float) t14 -dcl_resource_texture2d (float,float,float,float) t15 -dcl_resource_texture2d (float,float,float,float) t16 -dcl_resource_texture3d (float,float,float,float) t17 -dcl_resource_texture3d (float,float,float,float) t18 -dcl_resource_texture3d (float,float,float,float) t19 -dcl_resource_texture3d (float,float,float,float) t20 -dcl_resource_texture3d (float,float,float,float) t21 -dcl_resource_texture3d (float,float,float,float) t22 -dcl_resource_texture2d (float,float,float,float) t23 -dcl_resource_texture2d (float,float,float,float) t24 -dcl_resource_texture2d (float,float,float,float) t25 -dcl_resource_texture2d (float,float,float,float) t26 -dcl_resource_texture3d (float,float,float,float) t27 -dcl_input_ps_siv linear noperspective v0.xy, position -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 38 -ftou r0.xy, v0.xyxx -mov r0.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t24.xyzw -ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t25.xyzw -ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t26.xyzw -mul r1.xyzw, r1.xwyz, l(1023.000000, 3.000000, 1023.000000, 1023.000000) -ftou r1.xyw, r1.xyxw -ubfe r4.x, l(7), l(3), r1.x -bfi r4.yz, l(0, 3, 3, 0), l(0, 2, 2, 0), r1.xxwx, l(0, 0, 0, 0) -bfi r1.x, l(2), l(0), r1.y, r4.y -utof r1.x, r1.x -mul r1.y, r1.x, l(0.0322580636) -round_ne r1.z, r1.z -ftou r1.z, r1.z -ubfe r4.y, l(7), l(3), r1.z -utof r4.xy, r4.xyxx -mul r4.y, r4.y, l(0.00787401572) -mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| -add r5.y, -r4.w, l(1.000000) -lt r4.w, r5.y, l(0.000000) -ge r6.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) -add r6.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) -movc r6.xy, r6.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) -mul r6.xy, r6.xyxx, r6.zwzz -movc r5.xz, r4.wwww, r6.xxyx, r2.xxyx -dp3 r2.x, r5.xyzx, r5.xyzx -rsq r2.x, r2.x -mul r6.xyz, r2.xxxx, r5.xyzx -and r1.z, r1.z, l(7) -utof r1.z, r1.z -mad r1.z, r1.z, l(0.107142866), l(0.500000) -utof r5.xz, r0.xxyx -mul r7.xy, v0.xyxx, cb0[82].zwzz -mad r7.zw, r7.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) -add r8.xy, r5.xzxx, l(0.500000, 0.500000, 0.000000, 0.000000) -mul r8.xy, r8.xyxx, cb0[82].zwzz -sample_l_indexable(texture2d)(float,float,float,float) r2.y, r8.xyxx, t1.yxzw, s0, l(0.000000) -mul r8.xyzw, -r7.wwww, cb0[25].xyzw -mad r8.xyzw, cb0[24].xyzw, r7.zzzz, r8.xyzw -mad r8.xyzw, cb0[26].xyzw, r2.yyyy, r8.xyzw -add r8.xyzw, r8.xyzw, cb0[27].xyzw -div r8.xyz, r8.xyzx, r8.wwww -mul r2.y, r8.y, cb0[1].z -mad r2.y, cb0[0].z, r8.x, r2.y -mad r2.y, cb0[2].z, r8.z, r2.y -add r2.y, r2.y, cb0[3].z -eq r4.w, l(0.000000), cb0[86].w -add r9.xyz, -r8.xyzx, cb0[44].xyzx -mov r10.x, cb0[0].z -mov r10.y, cb0[1].z -mov r10.z, cb0[2].z -movc r11.xyz, r4.wwww, r9.xyzx, r10.xyzx -dp3 r4.w, r11.xyzx, r11.xyzx -max r5.w, r4.w, l(9.999999939E-09) -rsq r5.w, r5.w -mul r12.xyz, r5.wwww, r11.xyzx -mul r4.w, r4.w, r5.w -lt r7.z, l(0.000488281250), cb0[234].x -if_nz r7.z - sample_b_indexable(texture2d)(float,float,float,float) r7.z, v1.xyxx, t23.yzxw, s1, cb0[108].x -else - mov r7.z, l(1.000000) -endif -lt r13.xy, l(0.500000, 0.500000, 0.000000, 0.000000), cb0[226].xyxx -if_nz r13.x - add r7.w, |r6.y|, |r6.x| - add r7.w, |r6.z|, r7.w - div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w - mul r13.xzw, |r6.xxyz|, r7.wwww - mul r14.xyzw, r13.xxzz, l(0.000000, 1.000000, 0.707106, 0.000000) - add r14.xyz, r14.zwzz, r14.xxyx - mad r13.xzw, r13.wwww, l(1.000000, 0.000000, 0.000000, 0.000000), r14.xxyz - mul r14.xyz, r8.xyzx, cb0[229].xxxx - sample_l_indexable(texture3d)(float,float,float,float) r7.w, r14.xyzx, t10.yzwx, s2, l(0.000000) - mad r7.w, r7.w, l(2.000000), l(-1.000000) - mul r13.xzw, r7.wwww, r13.xxzw - mov r7.w, |r6.y| - add r7.w, r7.w, l(-0.700000) - mul_sat r7.w, r7.w, l(4.000000) - mad r9.w, r7.w, l(-2.000000), l(3.000000) - mul r7.w, r7.w, r7.w - mul r7.w, r7.w, r9.w - add r9.w, -cb0[229].z, cb0[229].y - mad r7.w, r7.w, r9.w, cb0[229].z - mul r13.xzw, r7.wwww, r13.xxzw -else - mov r13.xzw, l(0,0,0,0) -endif -if_nz r13.y - mul r14.xyz, r6.xyzx, cb0[233].zzzz - mul r15.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy - mad r14.xyz, r14.xyzx, cb0[225].xxxx, r15.xyzx - max r7.w, -r6.y, l(0.000000) - min r7.w, r7.w, l(0.900000) - add r7.w, -r7.w, l(1.000000) - mad r2.x, -r5.y, r2.x, l(-0.200000) - mul_sat r2.x, r2.x, l(-10.000000) - mad r5.y, r2.x, l(-2.000000), l(3.000000) - mul r2.x, r2.x, r2.x - mul r2.x, r2.x, r5.y - max r2.x, r2.x, l(0.100000) - min r2.x, r2.x, l(1.000000) - mul r2.x, r2.x, r7.w - mad r14.xyz, r14.xyzx, r2.xxxx, r8.xyzx - add r13.xyz, r13.xzwx, r14.xyzx - mul r14.xyz, r13.yyyy, cb5[1].xyzx - mad r13.xyw, cb5[0].xyxz, r13.xxxx, r14.xyxz - mad r13.xyz, cb5[2].xyzx, r13.zzzz, r13.xywx - add r13.xyz, r13.xyzx, cb5[3].xyzx - mad r14.x, r13.x, l(0.500000), cb5[4].x - mad r2.x, r13.y, l(0.500000), l(0.500000) - add r14.z, -r2.x, cb5[4].y - add r13.xy, r14.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) - max r2.x, r13.z, l(0.000488281250) - sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r13.xyxx, t9.xxxx, s5, r2.x -else - mov r2.x, l(1.000000) -endif -mov_sat r5.y, r6.y -add r7.w, l(1.000000), -cb0[230].w -mad r5.y, r5.y, r7.w, cb0[230].w -add r13.xy, r8.xzxx, -cb0[44].xzxx -max r7.w, |r13.y|, |r13.x| -mul r9.w, r5.y, cb0[230].z -mul r10.w, r2.x, r5.y -mul r11.w, l(0.0500000119), cb0[222].w -mad r12.w, -cb0[222].w, l(0.700000), r7.w -div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w -mul_sat r11.w, r11.w, r12.w -mad r12.w, r11.w, l(-2.000000), l(3.000000) -mul r11.w, r11.w, r11.w -mul r11.w, r11.w, r12.w -mad r2.x, -r5.y, r2.x, l(1.000000) -mad r2.x, r11.w, r2.x, r10.w -mad r5.y, -cb0[230].z, r5.y, l(1.000000) -mad r2.x, r2.x, r5.y, r9.w -mad r5.y, cb0[230].x, cb0[222].w, -cb0[222].w -add r7.w, r7.w, -cb0[222].w -div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y -mul_sat r5.y, r5.y, r7.w -mad r7.w, r5.y, l(-2.000000), l(3.000000) -mul r5.y, r5.y, r5.y -mul r5.y, r5.y, r7.w -add r7.w, -r2.x, cb0[230].y -mad r2.x, r5.y, r7.w, r2.x -add r2.x, -r2.x, l(1.000000) -mad r2.x, -r7.z, r2.x, l(1.000000) -mad_sat r5.y, r2.z, l(0.300000), l(0.250000) -mul r5.y, r5.y, cb0[222].x -mul r5.y, r2.x, r5.y -mad r5.y, r5.y, l(-0.750000), l(1.000000) -mul r3.xyz, r3.xyzx, r5.yyyy -min r5.y, r2.z, l(0.300000) -mul r2.x, r2.x, cb0[222].x -mul r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 3.000000) -add r5.y, -r2.z, r5.y -mad r13.w, r2.x, r5.y, r2.z -mul r2.x, r1.z, l(0.080000) -dp3 r2.z, r6.xyzx, r12.xyzx -max r5.y, r2.z, l(0.000000) -mad r14.xyzw, r13.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) -mul r7.z, r14.x, r14.x -mul r7.w, r5.y, l(-9.280000) -exp r7.w, r7.w -min r7.z, r7.w, r7.z -mad r7.z, r7.z, r14.x, r14.y -mad r7.zw, r7.zzzz, l(0.000000, 0.000000, -1.040000, 1.040000), r14.zzzw -ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t7.xyzw -lt r0.z, l(0.001000), r14.x -if_nz r0.z - sample_l_indexable(texture2d)(float,float,float,float) r0.z, r7.xyxx, t12.yzxw, s1, l(0.000000) - dp3 r9.w, -r12.xyzx, r6.xyzx - add r9.w, r9.w, r9.w - mad r15.xyz, r6.xyzx, -r9.wwww, -r12.xyzx - dp3 r9.w, -cb3[0].xyzx, r15.xyzx - mad r16.xyz, cb3[0].xyzx, r9.wwww, r15.xyzx - lt r9.w, r9.w, cb3[4].z - dp3 r10.w, r16.xyzx, r16.xyzx - max r10.w, r10.w, l(0.0000610351562) - rsq r10.w, r10.w - mul r16.xyz, r10.wwww, r16.xyzx - mul r16.xyz, r16.xyzx, cb3[4].yyyy - mad r16.xyz, -cb3[0].xyzx, cb3[4].zzzz, r16.xyzx - dp3 r10.w, r16.xyzx, r16.xyzx - rsq r10.w, r10.w - mul r16.xyz, r10.wwww, r16.xyzx - movc r15.xyz, r9.wwww, r16.xyzx, r15.xyzx - mad r16.xyz, r11.xyzx, r5.wwww, r15.xyzx - dp3 r9.w, r16.xyzx, r16.xyzx - max r9.w, r9.w, l(0.0000610351562) - rsq r9.w, r9.w - mul r16.xyz, r9.wwww, r16.xyzx - dp3 r9.w, r6.xyzx, r15.xyzx - mov_sat r13.y, r9.w - dp3_sat r10.w, r6.xyzx, r16.xyzx - dp3 r11.w, r12.xyzx, r15.xyzx - min r13.z, r5.y, l(1.000000) - mul r12.w, r13.w, r13.w - mul r12.w, r12.w, r12.w - mad r14.z, r10.w, r12.w, -r10.w - mad r10.w, r14.z, r10.w, l(1.000000) - dp3_sat r14.z, r12.xyzx, r16.xyzx - add r14.z, -r14.z, l(1.000000) - mul r14.w, r14.z, r14.z - mul r14.w, r14.w, r14.w - mul r15.x, r14.z, r14.w - add r15.y, -r13.w, l(1.000000) - mad r15.z, -r15.y, l(0.383026), l(-0.0761947036) - mad r15.z, r15.y, r15.z, l(1.049970) - mad r15.y, r15.y, r15.z, l(0.409255) - min r15.y, r15.y, l(0.999000) - add r15.z, -r15.y, l(1.000000) - mad r15.w, -r1.z, l(0.080000), l(1.000000) - mad r15.w, r15.w, l(0.0476190485), r2.x - mov_sat r16.x, -r11.w - mul r16.x, r16.x, r16.x - mad r16.x, r16.x, l(-0.640000), l(1.000000) - mul r16.x, r16.x, r16.x - mad r14.z, -r14.w, r14.z, l(1.000000) - mad r14.z, r2.x, r14.z, r15.x - mul r10.w, r10.w, r10.w - div r10.w, r12.w, r10.w - mad r16.yz, -r13.zzyz, r12.wwww, r13.zzyz - mad r16.yz, r16.yyzy, r13.zzyz, r12.wwww - sqrt r16.yz, r16.yyzy - mul r16.yz, r13.yyzy, r16.yyzy - add r12.w, r16.z, r16.y - add r12.w, r12.w, l(0.000100) - div r12.w, l(0.500000), r12.w - mul r10.w, r10.w, r12.w - mul r10.w, r10.w, r14.z - min r10.w, r10.w, l(2048.000000) - mad r17.xyzw, r13.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) - sample_l_indexable(texture2d)(float,float,float,float) r12.w, r17.xyxx, t11.yzwx, s1, l(0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r13.z, r17.zwzz, t11.yzxw, s1, l(0.000000) - mul r12.w, r12.w, r13.z - mul r12.w, r15.y, r12.w - div r12.w, r12.w, r15.z - mul r13.z, r15.w, r15.w - mul r12.w, r12.w, r13.z - mad r13.z, -r15.w, r15.z, l(1.000000) - div r12.w, r12.w, r13.z - add r10.w, r10.w, r12.w - add_sat r12.w, r2.z, l(0.200000) - mov_sat r13.z, r11.w - add r13.z, r13.z, l(0.500000) - min r13.z, r13.z, l(1.000000) - mul r14.z, r12.w, r13.z - add_sat r11.w, r11.w, l(1.000000) - mad r12.w, -r12.w, r13.z, l(1.000000) - mad r11.w, r11.w, r12.w, r14.z - mul r10.w, r10.w, r11.w - mul r10.w, r4.y, r10.w - mul r15.xyz, r4.yyyy, r3.xyzx - ubfe r1.w, l(7), l(3), r1.w - utof r1.w, r1.w - mul r1.w, r1.w, l(0.00787401572) - mul r10.w, r10.w, cb3[4].x - max r10.w, r10.w, l(0.000000) - min r10.w, r10.w, l(1000.000000) - mul r10.w, r13.y, r10.w - mad r15.xyz, r15.xyzx, r1.wwww, r10.wwww - max r1.w, r3.y, r3.x - max r1.w, r3.z, r1.w - max r1.w, r1.w, l(0.010000) - div r16.yzw, r3.xxyz, r1.wwww - mul r1.w, r4.x, l(0.00393700786) - mul r16.yzw, r1.wwww, r16.yyzw - add_sat r1.w, -r9.w, l(0.500000) - ne r10.w, r16.x, l(0.360000) - div r11.w, l(0.360000), r16.x - movc r10.w, r10.w, r11.w, l(1.000000) - mul r1.w, r1.w, r10.w - mad_sat r9.w, r1.x, l(0.0322580636), r9.w - add r9.w, -r13.y, r9.w - mul r17.xyz, r3.xyzx, r9.wwww - mad r16.xyz, r16.yzwy, r1.wwww, r17.xyzx - mad r15.xyz, r16.xyzx, r4.yyyy, r15.xyzx - mul r15.xyz, r15.xyzx, cb3[1].xyzx - mov r14.y, l(0.500000) - sample_b_indexable(texture2d)(float,float,float,float) r14.yzw, r14.xyxx, t8.wxyz, s1, cb0[108].x - add r1.w, -r14.x, l(1.000000) - mad r14.xyz, r15.xyzx, r14.yzwy, -r15.xyzx - mad r14.xyz, r1.wwww, r14.xyzx, r15.xyzx - max r1.w, r4.y, r0.z - add r1.w, -r0.z, r1.w - mad r0.z, r1.y, r1.w, r0.z - mul r14.xyz, r0.zzzz, r14.xyzx -else - mov r14.xyz, l(0,0,0,0) -endif -mul r1.yw, r5.xxxz, l(0.000000, 0.031250, 0.000000, 0.031250) -round_ni r1.yw, r1.yyyw -mad r0.z, r1.w, cb2[1].y, r1.y -mul r0.z, r0.z, l(8.000000) -ftoi r0.z, r0.z -mad r1.y, -cb0[85].y, cb2[2].w, |r2.y| -round_ni r1.y, r1.y -add r1.w, l(-1.000000), cb2[1].w -max r9.w, r1.y, l(0.000000) -min r1.w, r1.w, r9.w -mul r9.w, r1.w, l(8.000000) -ftoi r9.w, r9.w -ge r1.y, r1.w, r1.y -iadd r1.w, r9.w, cb0[110].y -mul r9.w, r13.w, r13.w -dp3 r10.w, -r12.xyzx, r6.xyzx -add r10.w, r10.w, r10.w -mad r15.xyz, r6.xyzx, -r10.wwww, -r12.xyzx -min r13.x, r5.y, l(1.000000) -add r10.w, -r13.w, l(1.000000) -mad r11.w, -r10.w, l(0.383026), l(-0.0761947036) -mad r11.w, r10.w, r11.w, l(1.049970) -mad r10.w, r10.w, r11.w, l(0.409255) -min r10.w, r10.w, l(0.999000) -add r11.w, -r10.w, l(1.000000) -mad r1.z, -r1.z, l(0.080000), l(1.000000) -mad r1.z, r1.z, l(0.0476190485), r2.x -mad r13.yz, r13.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) -sample_l_indexable(texture2d)(float,float,float,float) r12.w, r13.yzyy, t11.yzwx, s1, l(0.000000) -mad r13.y, -r1.z, r11.w, l(1.000000) -add_sat r2.z, r2.z, l(0.200000) -max r13.z, r3.y, r3.x -max r13.z, r3.z, r13.z -max r13.z, r13.z, l(0.010000) -div r16.xyz, r3.xyzx, r13.zzzz -mul r13.z, r4.x, l(0.00393700786) -mul r17.xyz, r13.zzzz, r16.xyzx -mul r18.xyz, r4.yyyy, r3.xyzx -mul r1.z, r1.z, r1.z -mov r19.w, l(1.000000) -mov r20.y, l(1.000000) -mov r21.z, r13.w -mov r22.xyz, l(0,0,0,0) -mov r13.z, l(1.000000) -mov r14.w, l(0) -loop - ilt r15.w, l(7), r14.w - breakc_nz r15.w - iadd r15.w, r0.z, r14.w - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t0.xxxx - iadd r16.w, r1.w, r14.w - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t0.xxxx - and r15.w, r15.w, r16.w - and r15.w, r1.y, r15.w - ishl r16.w, r14.w, l(5) - mov r23.xyz, l(0,0,0,0) - mov r17.w, r13.z - mov r18.w, r15.w - loop - breakc_z r18.w - firstbit_lo r20.z, r18.w - ishl r20.w, l(1), r20.z - xor r20.w, r18.w, r20.w - iadd r20.z, r16.w, r20.z - bfi r24.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r20.zzzz, l(1, 3, 5, 6) - bfi r21.w, l(29), l(3), r20.z, l(7) - ftou r22.w, cb3[r24.z + 6].w - ieq r22.w, r22.w, l(1) - if_nz r22.w - add r19.xyz, r8.xyzx, -cb3[r24.x + 6].xyzx - and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.z + 6].xzyx - and r26.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r24.w + 6].yxzy - ushr r27.xyz, cb3[r24.z + 6].xzyx, l(16, 16, 16, 0) - ushr r28.xyz, cb3[r24.w + 6].yxzy, l(16, 16, 16, 0) - f16tof32 r25.xyz, r25.xyzx - f16tof32 r26.xyz, r26.xyzx - f16tof32 r27.xyz, r27.xyzx - f16tof32 r28.xyw, r28.yxyz - mov r29.xz, r25.xxzx - mov r29.yw, r27.xxxz - dp4 r22.w, r19.xyzw, r29.xyzw - mov r27.x, r25.y - mov r27.z, r26.y - mov r27.w, r28.x - dp4 r23.w, r19.xyzw, r27.xyzw - mov r28.xz, r26.xxzx - dp4 r19.x, r19.xyzw, r28.xyzw - max r19.y, |r22.w|, |r23.w| - max r19.x, |r19.x|, r19.y - mad r19.y, cb3[r21.w + 6].x, l(0.500000), l(0.500000) - add r19.x, -r19.y, r19.x - mad r19.y, -cb3[r21.w + 6].x, l(0.500000), l(0.500000) - div_sat r19.x, r19.x, r19.y - add r19.x, -r19.x, l(1.000000) - mul r19.x, r19.x, r19.x - else - mov r19.x, l(1.000000) - endif - lt r19.y, l(0.500000), cb3[r24.y + 6].z - lt r19.z, r19.x, l(0.001000) - or r19.z, r19.y, r19.z - if_nz r19.z - mov r18.w, r20.w - continue - endif - ishl r19.z, r20.z, l(3) - bfi r20.z, l(29), l(3), r20.z, l(2) - lt r22.w, cb3[r19.z + 6].w, l(1.500000) - if_nz r22.w - mad r22.w, cb3[r20.z + 6].y, l(0.500000), l(0.500000) - add r25.x, r22.w, -|cb3[r20.z + 6].x| - add r25.y, -r25.x, cb3[r20.z + 6].y - add r22.w, -|r25.x|, l(1.000000) - add r22.w, -|r25.y|, r22.w - max r22.w, r22.w, l(0.000488281250) - ge r23.w, cb3[r20.z + 6].x, l(0.000000) - movc r25.z, r23.w, r22.w, -r22.w - dp3 r22.w, r25.xyzx, r25.xyzx - rsq r22.w, r22.w - mul r25.xyz, r22.wwww, r25.xyzx - add r26.xyz, -r8.xyzx, cb3[r24.x + 6].xyzx - dp3 r22.w, r26.xyzx, r26.xyzx - rsq r23.w, r22.w - mul r27.xyz, r23.wwww, r26.xyzx - ftoi r24.z, cb3[r21.w + 6].w - mul r28.xyz, r25.xyzx, cb3[r20.z + 6].zzzz - mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx - mad r30.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx - ftou r25.w, cb3[r19.z + 6].w - and r25.w, r25.w, l(1) - ieq r26.w, r25.w, l(0) - not r26.w, r26.w - lt r27.w, l(0.000000), cb3[r20.z + 6].z - and r26.w, r26.w, r27.w - dp3 r27.w, r29.xyzx, r29.xyzx - sqrt r27.w, r27.w - dp3 r28.w, r30.xyzx, r30.xyzx - sqrt r28.w, r28.w - dp3 r29.w, r6.xyzx, r29.xyzx - div r29.w, r29.w, r27.w - dp3 r30.w, r6.xyzx, r30.xyzx - div r30.w, r30.w, r28.w - add r29.w, r29.w, r30.w - mul_sat r31.x, r29.w, l(0.500000) - dp3 r29.w, r29.xyzx, r30.xyzx - mad r27.w, r27.w, r28.w, r29.w - mad r27.w, r27.w, l(0.500000), l(1.000000) - div r31.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w - dp3_sat r20.x, r6.xyzx, r27.xyzx - movc r21.xy, r26.wwww, r31.xyxx, r20.xyxx - lt r20.x, cb3[r24.w + 6].w, l(0.000000) - if_nz r20.x - mul r20.x, cb3[r24.x + 6].w, cb3[r24.x + 6].w - mul r20.x, r20.x, r22.w - mad r20.x, -r20.x, r20.x, l(1.000000) - max r20.x, r20.x, l(0.000000) - add r22.w, r22.w, l(1.000000) - div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w - and r27.w, r26.w, l(0x3f800000) - add r28.w, r21.y, -r22.w - mad r22.w, r27.w, r28.w, r22.w - mul r20.x, r20.x, r20.x - mul r20.x, r20.x, r22.w - else - mul r30.xyz, r26.xyzx, cb3[r24.x + 6].wwww - dp3 r22.w, r30.xyzx, r30.xyzx - min r22.w, r22.w, l(1.000000) - add r22.w, -r22.w, l(1.000000) - log r22.w, r22.w - mul r22.w, r22.w, cb3[r24.w + 6].w - exp r22.w, r22.w - mul r20.x, r21.y, r22.w - endif - dp3 r21.y, r27.xyzx, -r25.xyzx - add r21.y, r21.y, -cb3[r20.z + 6].z - mul_sat r21.y, r21.y, cb3[r20.z + 6].w - mul r21.y, r21.y, r21.y - movc r21.y, r25.w, l(1.000000), r21.y - mul r20.x, r20.x, r21.y - not r21.y, r26.w - ige r22.w, r24.z, l(0) - and r21.y, r21.y, r22.w - if_nz r21.y - if_z r25.w - ishl r21.y, r24.z, l(2) - mul r25.xyz, r8.yyyy, cb6[r21.y + 33].xywx - mad r25.xyz, cb6[r21.y + 32].xywx, r8.xxxx, r25.xyzx - mad r25.xyz, cb6[r21.y + 34].xywx, r8.zzzz, r25.xyzx - add r25.xyz, r25.xyzx, cb6[r21.y + 35].xywx - div_sat r25.xy, r25.xyxx, r25.zzzz - mad r25.xy, r25.xyxx, cb6[r24.z + 0].zwzz, cb6[r24.z + 0].xyxx - else - ishl r21.y, r24.z, l(2) - dp3 r30.x, -r26.xyzx, cb6[r21.y + 32].xyzx - dp3 r30.y, -r26.xyzx, cb6[r21.y + 33].xyzx - dp3 r30.z, -r26.xyzx, cb6[r21.y + 34].xyzx - lt r21.y, |r30.x|, |r30.y| - and r21.y, r21.y, l(1) - dp2 r22.w, |r30.xyxx|, icb[r21.y + 0].xyxx - lt r22.w, r22.w, |r30.z| - movc r21.y, r22.w, l(2), r21.y - dp3 r22.w, r30.xyzx, icb[r21.y + 0].xyzx - lt r22.w, r22.w, l(0.000000) - bfi r21.y, l(31), l(1), r21.y, r22.w - ushr r22.w, r21.y, l(1) - dp3 r22.w, r30.xyzx, icb[r22.w + 0].xyzx - div r25.z, l(0.000244140625), cb6[r24.z + 0].w - add r25.z, -r25.z, l(0.500000) - utof r26.x, r21.y - ult r26.y, r21.y, l(2) - and r26.y, r26.y, l(2) - dp2 r26.y, r30.xzxx, icb[r26.y + 0].xzxx - mul r26.y, r26.y, icb[r21.y + 4].z - div r26.y, r26.y, |r22.w| - mad r26.x, r26.y, r25.z, r26.x - add r26.x, r26.x, l(0.500000) - mul_sat r26.x, r26.x, l(0.166666672) - iadd r26.z, l(-1), icb[r21.y + 4].y - dp2 r26.z, r30.yzyy, icb[r26.z + 0].xyxx - mul r21.y, r26.z, icb[r21.y + 4].w - div r21.y, r21.y, |r22.w| - mad_sat r26.y, -r21.y, r25.z, l(0.500000) - mad r25.xy, r26.xyxx, cb6[r24.z + 0].zwzz, cb6[r24.z + 0].xyxx - endif - sample_l_indexable(texture2d)(float,float,float,float) r21.y, r25.xyxx, t13.yxzw, s1, l(0.000000) - mul r20.x, r20.x, r21.y - endif - lt r21.y, l(0.000000), r20.x - if_nz r21.y - if_z r25.w - ftoi r22.w, cb3[r24.y + 6].x - else - add r25.xyz, r8.xyzx, -cb3[r24.x + 6].xyzx - lt r26.xyz, |r25.yzzy|, |r25.xxyx| - and r24.z, r26.y, r26.x - lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx - ushr r25.w, cb3[r20.z + 6].w, l(24) - ubfe r26.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r20.z + 6].wwww - movc r25.x, r25.x, r25.w, r26.x - and r25.w, l(255), cb3[r20.z + 6].w - movc r25.y, r25.y, r26.y, r25.w - ubfe r25.w, l(8), l(8), cb3[r24.y + 6].x - and r26.x, l(255), cb3[r24.y + 6].x - movc r25.z, r25.z, r25.w, r26.x - movc r25.y, r26.z, r25.y, r25.z - movc r24.z, r24.z, r25.x, r25.y - ilt r25.x, r24.z, l(80) - movc r22.w, r25.x, r24.z, l(-1) - endif - ishl r24.z, r22.w, l(2) - mad r25.xyz, r27.xyzx, cb4[r22.w + 288].xxxx, r8.xyzx - mul r25.w, l(5.000000), cb4[r22.w + 288].y - mad r25.xyz, r6.xyzx, r25.wwww, r25.xyzx - mul r30.xyzw, r25.yyyy, cb4[r24.z + 65].xyzw - mad r30.xyzw, cb4[r24.z + 64].xyzw, r25.xxxx, r30.xyzw - mad r25.xyzw, cb4[r24.z + 66].xyzw, r25.zzzz, r30.xyzw - add r25.xyzw, r25.xyzw, cb4[r24.z + 67].xyzw - div r25.xyz, r25.xyzx, r25.wwww - ge r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx - ge r30.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - add r31.xy, -cb4[r22.w + 344].xyxx, cb4[r22.w + 344].zwzz - mad r25.xy, r25.xyxx, r31.xyxx, cb4[r22.w + 344].xyxx - mad r31.xy, r25.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) - round_ni r31.xy, r31.xyxx - mad r25.xy, r25.xyxx, cb4[400].zwzz, -r31.xyxx - add r32.xyzw, r25.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r33.xyzw, r32.xxzz, r32.xxzz - add r31.zw, -r25.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) - min r32.xz, r25.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) - max r34.xy, r25.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r35.xy, r31.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r34.xy, -r34.xyxx, r34.xyxx, r32.ywyy - add r34.xy, r34.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r34.xy, r34.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r33.xz, r33.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r25.xy, r33.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r25.xyxx - mul r36.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r25.xy, -r32.xzxx, r32.xzxx, r31.zwzz - add r25.xy, r25.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r37.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r25.xy, r32.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mov r36.z, r37.x - mov r36.w, r25.x - mov r35.z, r34.x - mov r35.w, r33.x - add r32.xyzw, r35.zwxz, r36.zwxz - mov r37.z, r36.y - mov r37.w, r25.y - mov r34.z, r35.y - mov r34.w, r33.z - add r25.xyw, r34.zyzw, r37.zyzw - div r33.xyz, r35.xzwx, r32.zwyz - add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r33.xyz, r33.yxzy, cb4[400].xxxx - div r34.xyz, r34.zywz, r25.xywx - add r34.xyz, r34.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r34.xyz, r34.xyzx, cb4[400].yyyy - mov r33.w, r34.x - mad r35.xyzw, r31.xyxy, cb4[400].xyxy, r33.ywxw - mad r31.zw, r31.xxxy, cb4[400].xxxy, r33.zzzw - mov r34.w, r33.y - mov r33.yw, r34.yyyz - mad r36.xyzw, r31.xyxy, cb4[400].xyxy, r33.xyzy - mad r34.xyzw, r31.xyxy, cb4[400].xyxy, r34.wywz - mad r33.xyzw, r31.xyxy, cb4[400].xyxy, r33.xwzw - mul r37.xyzw, r25.xxxy, r32.zwyz - sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r35.xyxx, t6.xxxx, s4, r25.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r35.zwzz, t6.xxxx, s4, r25.z - mul r25.x, r25.x, r37.y - mad r24.z, r37.x, r24.z, r25.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r31.zwzz, t6.xxxx, s4, r25.z - mad r24.z, r37.z, r25.x, r24.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r34.xyxx, t6.xxxx, s4, r25.z - mad r24.z, r37.w, r25.x, r24.z - mul r31.xyzw, r25.yyww, r32.xyzw - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r36.xyxx, t6.xxxx, s4, r25.z - mad r24.z, r31.x, r25.x, r24.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r36.zwzz, t6.xxxx, s4, r25.z - mad r24.z, r31.y, r25.x, r24.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r34.zwzz, t6.xxxx, s4, r25.z - mad r24.z, r31.z, r25.x, r24.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.x, r33.xyxx, t6.xxxx, s4, r25.z - mad r24.z, r31.w, r25.x, r24.z - ige r25.x, r22.w, l(0) - or r26.xyz, r26.xyzx, r30.xyzx - or r25.y, r26.y, r26.x - or r25.y, r26.z, r25.y - and r26.x, r25.z, l(0x7fffffff) - ult r26.x, l(0x7f800000), r26.x - or r25.y, r25.y, r26.x - mul r25.w, r25.w, r32.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.z, r33.zwzz, t6.xxxx, s4, r25.z - mad r24.z, r25.w, r25.z, r24.z - add r24.z, r24.z, l(-1.000000) - mad r22.w, cb4[r22.w + 288].w, r24.z, l(1.000000) - movc r22.w, r25.y, l(1.000000), r22.w - movc r22.w, r25.x, r22.w, l(1.000000) - else - mov r22.w, l(1.000000) - endif - if_nz r26.w - dp3 r24.z, r15.xyzx, r28.xyzx - mul_sat r25.x, r23.w, cb3[r20.z + 6].z - mad r25.x, r25.x, l(0.500000), r9.w - min r25.x, r25.x, l(1.000000) - div r25.x, r9.w, r25.x - mad r25.yzw, r15.xxyz, r24.zzzz, -r28.xxyz - dp3 r25.y, r29.xyzx, r25.yzwy - mul r24.z, r24.z, r24.z - mad r24.z, cb3[r20.z + 6].z, cb3[r20.z + 6].z, -r24.z - div_sat r24.z, r25.y, r24.z - mad r25.yzw, r28.xxyz, r24.zzzz, r29.xxyz - dp3 r24.z, r25.yzwy, r25.yzwy - rsq r24.z, r24.z - mul r27.xyz, r24.zzzz, r25.yzwy - else - mov r25.x, l(1.000000) - endif - if_nz r21.y - mul_sat r21.y, r23.w, cb3[r21.w + 6].y - mad r25.yzw, r11.xxyz, r5.wwww, r27.xxyz - dp3 r23.w, r25.yzwy, r25.yzwy - max r23.w, r23.w, l(0.0000610351562) - rsq r23.w, r23.w - mul r25.yzw, r23.wwww, r25.yyzw - dp3 r23.w, r6.xyzx, r27.xyzx - dp3_sat r24.z, r6.xyzx, r25.yzwy - dp3_sat r25.y, r12.xyzx, r25.yzwy - dp3 r25.z, r12.xyzx, r27.xyzx - lt r25.w, l(0.000000), r21.y - mul r21.y, r21.y, r21.y - mad r26.x, r25.y, l(3.600000), l(0.400000) - div r21.y, r21.y, r26.x - mad r21.y, r13.w, r13.w, r21.y - min r21.y, r21.y, l(1.000000) - movc r21.y, r25.w, r21.y, r9.w - mul r21.y, r21.y, r21.y - mad r25.w, r24.z, r21.y, -r24.z - mad r24.z, r25.w, r24.z, l(1.000000) - add r25.y, -r25.y, l(1.000000) - mul r25.w, r25.y, r25.y - mul r25.w, r25.w, r25.w - mul r26.x, r25.y, r25.w - mov_sat r26.y, -r25.z - mul r26.y, r26.y, r26.y - mad r26.y, r26.y, l(-0.640000), l(1.000000) - mul r26.y, r26.y, r26.y - mad r25.y, -r25.w, r25.y, l(1.000000) - mad r25.y, r2.x, r25.y, r26.x - mul r24.z, r24.z, r24.z - div r24.z, r21.y, r24.z - mul r24.z, r25.x, r24.z - mad r25.x, -r13.x, r21.y, r13.x - mad r25.x, r25.x, r13.x, r21.y - sqrt r25.x, r25.x - mad r25.w, -r21.x, r21.y, r21.x - mad r21.y, r25.w, r21.x, r21.y - sqrt r21.y, r21.y - mul r21.y, r13.x, r21.y - mad r21.y, r21.x, r25.x, r21.y - add r21.y, r21.y, l(0.000100) - div r21.y, l(0.500000), r21.y - mul r21.y, r21.y, r24.z - mul r21.y, r21.y, r25.y - min r21.y, r21.y, l(2048.000000) - mad r25.xy, r21.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r24.z, r25.xyxx, t11.yzxw, s1, l(0.000000) - mul r24.z, r12.w, r24.z - mul r24.z, r10.w, r24.z - div r24.z, r24.z, r11.w - mul r24.z, r1.z, r24.z - div r24.z, r24.z, r13.y - add r21.y, r21.y, r24.z - mov_sat r24.z, r25.z - add r24.z, r24.z, l(0.500000) - min r24.z, r24.z, l(1.000000) - mul r25.x, r2.z, r24.z - add_sat r25.y, r25.z, l(1.000000) - mad r24.z, -r2.z, r24.z, l(1.000000) - mad r24.z, r25.y, r24.z, r25.x - mul r21.y, r21.y, r24.z - mul r21.y, r4.y, r21.y - mul r21.y, r21.y, cb3[r21.w + 6].z - max r21.y, r21.y, l(0.000000) - min r21.y, r21.y, l(1000.000000) - add_sat r24.z, -r23.w, l(0.500000) - ne r25.x, r26.y, l(0.360000) - div r25.y, l(0.360000), r26.y - movc r25.x, r25.x, r25.y, l(1.000000) - mul r24.z, r24.z, r25.x - mad_sat r23.w, r1.x, l(0.0322580636), r23.w - add r23.w, -r21.x, r23.w - mul r25.xyz, r3.xyzx, r23.wwww - mad r25.xyz, r17.xyzx, r24.zzzz, r25.xyzx - mul r25.xyz, r4.yyyy, r25.xyzx - mad r25.xyz, r21.yyyy, r21.xxxx, r25.xyzx - mad r25.xyz, r18.xyzx, r21.xxxx, r25.xyzx - mul r26.xyz, r20.xxxx, cb3[r19.z + 6].xyzx - mul r26.xyz, r22.wwww, r26.xyzx - mul r26.xyz, r19.xxxx, r26.xyzx - mul r25.xyz, r25.xyzx, r26.xyzx - else - mov r25.xyz, l(0,0,0,0) - endif - else - if_z r19.y - mad r19.x, cb3[r20.z + 6].y, l(0.500000), l(0.500000) - add r26.x, r19.x, -|cb3[r20.z + 6].x| - add r26.y, -r26.x, cb3[r20.z + 6].y - add r19.x, -|r26.x|, l(1.000000) - add r19.x, -|r26.y|, r19.x - max r19.x, r19.x, l(0.000488281250) - ge r19.y, cb3[r20.z + 6].x, l(0.000000) - movc r26.z, r19.y, r19.x, -r19.x - dp3 r19.x, r26.xyzx, r26.xyzx - rsq r19.x, r19.x - mul r26.xyz, r19.xxxx, r26.xyzx - add r27.xyz, -r8.xyzx, cb3[r24.x + 6].xyzx - dp3 r19.x, r27.xyzx, r27.xyzx - rsq r19.y, r19.x - mul r28.xyz, r19.yyyy, r27.xyzx - ftoi r19.y, cb3[r21.w + 6].w - mul r21.xyw, r26.xyxz, cb3[r20.z + 6].zzzz - mad r29.xyz, -r21.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r27.xyzx - mad r21.xyw, r21.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r27.xyxz - ftou r19.z, cb3[r19.z + 6].w - and r19.z, r19.z, l(1) - ieq r20.x, r19.z, l(0) - not r20.x, r20.x - lt r22.w, l(0.000000), cb3[r20.z + 6].z - and r20.x, r20.x, r22.w - dp3 r22.w, r29.xyzx, r29.xyzx - sqrt r22.w, r22.w - dp3 r23.w, r21.xywx, r21.xywx - sqrt r23.w, r23.w - dp3 r21.x, r29.xyzx, r21.xywx - mad r21.x, r22.w, r23.w, r21.x - mad r21.x, r21.x, l(0.500000), l(1.000000) - div r21.x, l(1.000000, 1.000000, 1.000000, 1.000000), r21.x - movc r21.x, r20.x, r21.x, l(1.000000) - lt r21.y, cb3[r24.w + 6].w, l(0.000000) - if_nz r21.y - mul r21.y, cb3[r24.x + 6].w, cb3[r24.x + 6].w - mul r21.y, r19.x, r21.y - mad r21.y, -r21.y, r21.y, l(1.000000) - max r21.y, r21.y, l(0.000000) - add r19.x, r19.x, l(1.000000) - div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), r19.x - and r21.w, r20.x, l(0x3f800000) - add r22.w, -r19.x, r21.x - mad r19.x, r21.w, r22.w, r19.x - mul r21.y, r21.y, r21.y - mul r19.x, r19.x, r21.y - else - mul r29.xyz, r27.xyzx, cb3[r24.x + 6].wwww - dp3 r21.y, r29.xyzx, r29.xyzx - min r21.y, r21.y, l(1.000000) - add r21.y, -r21.y, l(1.000000) - log r21.y, r21.y - mul r21.y, r21.y, cb3[r24.w + 6].w - exp r21.y, r21.y - mul r19.x, r21.y, r21.x - endif - dp3 r21.x, r28.xyzx, -r26.xyzx - add r21.x, r21.x, -cb3[r20.z + 6].z - mul_sat r21.x, r21.x, cb3[r20.z + 6].w - mul r21.x, r21.x, r21.x - movc r21.x, r19.z, l(1.000000), r21.x - mul r19.x, r19.x, r21.x - not r20.x, r20.x - ige r21.x, r19.y, l(0) - and r20.x, r20.x, r21.x - if_nz r20.x - if_z r19.z - ishl r20.x, r19.y, l(2) - mul r21.xyw, r8.yyyy, cb6[r20.x + 33].xyxw - mad r21.xyw, cb6[r20.x + 32].xyxw, r8.xxxx, r21.xyxw - mad r21.xyw, cb6[r20.x + 34].xyxw, r8.zzzz, r21.xyxw - add r21.xyw, r21.xyxw, cb6[r20.x + 35].xyxw - div_sat r21.xy, r21.xyxx, r21.wwww - mad r21.xy, r21.xyxx, cb6[r19.y + 0].zwzz, cb6[r19.y + 0].xyxx - else - ishl r20.x, r19.y, l(2) - dp3 r26.x, -r27.xyzx, cb6[r20.x + 32].xyzx - dp3 r26.y, -r27.xyzx, cb6[r20.x + 33].xyzx - dp3 r26.z, -r27.xyzx, cb6[r20.x + 34].xyzx - lt r20.x, |r26.x|, |r26.y| - and r20.x, r20.x, l(1) - dp2 r21.w, |r26.xyxx|, icb[r20.x + 0].xyxx - lt r21.w, r21.w, |r26.z| - movc r20.x, r21.w, l(2), r20.x - dp3 r21.w, r26.xyzx, icb[r20.x + 0].xyzx - lt r21.w, r21.w, l(0.000000) - bfi r20.x, l(31), l(1), r20.x, r21.w - ushr r21.w, r20.x, l(1) - dp3 r21.w, r26.xyzx, icb[r21.w + 0].xyzx - div r22.w, l(0.000244140625), cb6[r19.y + 0].w - add r22.w, -r22.w, l(0.500000) - utof r23.w, r20.x - ult r24.z, r20.x, l(2) - and r24.z, r24.z, l(2) - dp2 r24.z, r26.xzxx, icb[r24.z + 0].xzxx - mul r24.z, r24.z, icb[r20.x + 4].z - div r24.z, r24.z, |r21.w| - mad r23.w, r24.z, r22.w, r23.w - add r23.w, r23.w, l(0.500000) - mul_sat r27.x, r23.w, l(0.166666672) - iadd r23.w, l(-1), icb[r20.x + 4].y - dp2 r23.w, r26.yzyy, icb[r23.w + 0].xyxx - mul r20.x, r23.w, icb[r20.x + 4].w - div r20.x, r20.x, |r21.w| - mad_sat r27.y, -r20.x, r22.w, l(0.500000) - mad r21.xy, r27.xyxx, cb6[r19.y + 0].zwzz, cb6[r19.y + 0].xyxx - endif - sample_l_indexable(texture2d)(float,float,float,float) r19.y, r21.xyxx, t13.yxzw, s1, l(0.000000) - mul r19.x, r19.y, r19.x - endif - lt r19.x, l(0.000000), r19.x - if_nz r19.x - if_z r19.z - ftoi r19.x, cb3[r24.y + 6].x - else - add r21.xyw, r8.xyxz, -cb3[r24.x + 6].xyxz - lt r24.xzw, |r21.yyww|, |r21.xxxy| - and r19.y, r24.z, r24.x - lt r21.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyxw - ushr r19.z, cb3[r20.z + 6].w, l(24) - ubfe r24.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb3[r20.z + 6].wwww - movc r19.z, r21.x, r19.z, r24.x - and r20.x, l(255), cb3[r20.z + 6].w - movc r20.x, r21.y, r24.z, r20.x - ubfe r20.z, l(8), l(8), cb3[r24.y + 6].x - and r21.x, l(255), cb3[r24.y + 6].x - movc r20.z, r21.w, r20.z, r21.x - movc r20.x, r24.w, r20.x, r20.z - movc r19.y, r19.y, r19.z, r20.x - ilt r19.z, r19.y, l(80) - movc r19.x, r19.z, r19.y, l(-1) - endif - ishl r19.y, r19.x, l(2) - mad r21.xyw, r28.xyxz, cb4[r19.x + 288].xxxx, r8.xyxz - mul r19.z, l(5.000000), cb4[r19.x + 288].y - mad r21.xyw, r6.xyxz, r19.zzzz, r21.xyxw - mul r24.xyzw, r21.yyyy, cb4[r19.y + 65].xyzw - mad r24.xyzw, cb4[r19.y + 64].xyzw, r21.xxxx, r24.xyzw - mad r24.xyzw, cb4[r19.y + 66].xyzw, r21.wwww, r24.xyzw - add r24.xyzw, r24.xyzw, cb4[r19.y + 67].xyzw - div r21.xyw, r24.xyxz, r24.wwww - ge r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xywx - ge r26.xyz, r21.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) - add r19.yz, -cb4[r19.x + 344].xxyx, cb4[r19.x + 344].zzwz - mad r19.yz, r21.xxyx, r19.yyzy, cb4[r19.x + 344].xxyx - mad r20.xz, r19.yyzy, cb4[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) - round_ni r20.xz, r20.xxzx - mad r19.yz, r19.yyzy, cb4[400].zzwz, -r20.xxzx - add r27.xyzw, r19.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r28.xyzw, r27.xxzz, r27.xxzz - add r21.xy, -r19.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) - min r27.xz, r19.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) - max r29.xy, r19.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r30.xy, r21.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r29.xy, -r29.xyxx, r29.xyxx, r27.ywyy - add r29.xy, r29.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r29.xy, r29.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r28.xz, r28.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r19.yz, r28.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r19.yyzy - mul r31.xy, r19.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r19.yz, -r27.xxzx, r27.xxzx, r21.xxyx - add r19.yz, r19.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) - mul r32.xy, r19.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r19.yz, r27.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) - mov r31.z, r32.x - mov r31.w, r19.y - mov r30.z, r29.x - mov r30.w, r28.x - add r27.xyzw, r30.zwxz, r31.zwxz - mov r32.z, r31.y - mov r32.w, r19.z - mov r29.z, r30.y - mov r29.w, r28.z - add r28.xyz, r29.zywz, r32.zywz - div r30.xyz, r30.xzwx, r27.zwyz - add r30.xyz, r30.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r30.xyz, r30.yxzy, cb4[400].xxxx - div r29.xyz, r29.zywz, r28.xyzx - add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r29.xyz, r29.xyzx, cb4[400].yyyy - mov r30.w, r29.x - mad r31.xyzw, r20.xzxz, cb4[400].xyxy, r30.ywxw - mad r19.yz, r20.xxzx, cb4[400].xxyx, r30.zzwz - mov r29.w, r30.y - mov r30.yw, r29.yyyz - mad r32.xyzw, r20.xzxz, cb4[400].xyxy, r30.xyzy - mad r29.xyzw, r20.xzxz, cb4[400].xyxy, r29.wywz - mad r30.xyzw, r20.xzxz, cb4[400].xyxy, r30.xwzw - mul r33.xyzw, r27.zwyz, r28.xxxy - sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r31.xyxx, t6.xxxx, s4, r21.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r31.zwzz, t6.xxxx, s4, r21.w - mul r20.z, r20.z, r33.y - mad r20.x, r33.x, r20.x, r20.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t6.xxxx, s4, r21.w - mad r19.y, r33.z, r19.y, r20.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r29.xyxx, t6.xxxx, s4, r21.w - mad r19.y, r33.w, r19.z, r19.y - mul r31.xyzw, r27.xyzw, r28.yyzz - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r32.xyxx, t6.xxxx, s4, r21.w - mad r19.y, r31.x, r19.z, r19.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r32.zwzz, t6.xxxx, s4, r21.w - mad r19.y, r31.y, r19.z, r19.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r29.zwzz, t6.xxxx, s4, r21.w - mad r19.y, r31.z, r19.z, r19.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r30.xyxx, t6.xxxx, s4, r21.w - mad r19.y, r31.w, r19.z, r19.y - ige r19.z, r19.x, l(0) - or r24.xyz, r24.xyzx, r26.xyzx - or r20.x, r24.y, r24.x - or r20.x, r24.z, r20.x - and r20.z, r21.w, l(0x7fffffff) - ult r20.z, l(0x7f800000), r20.z - or r20.x, r20.z, r20.x - mul r20.z, r27.y, r28.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.x, r30.zwzz, t6.xxxx, s4, r21.w - mad r19.y, r20.z, r21.x, r19.y - add r19.y, r19.y, l(-1.000000) - mad r19.x, cb4[r19.x + 288].w, r19.y, l(1.000000) - movc r19.x, r20.x, l(1.000000), r19.x - movc r19.x, r19.z, r19.x, l(1.000000) - else - mov r19.x, l(1.000000) - endif - else - mov r19.x, l(1.000000) - endif - mul r17.w, r17.w, r19.x - mov r25.xyz, l(0,0,0,0) - endif - add r23.xyz, r23.xyzx, r25.xyzx - mov r18.w, r20.w - endloop - mov r13.z, r17.w - add r22.xyz, r22.xyzx, r23.xyzx - iadd r14.w, r14.w, l(1) -endloop -mad r1.xyz, r22.xyzx, r13.zzzz, r14.xyzx -ne r11.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx -if_nz r11.x - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x - mad r0.z, r0.z, l(0.750000), l(0.250000) - min r0.z, r3.w, r0.z - add r1.w, r0.z, r5.y - mad r2.z, r13.w, l(-16.000000), l(-1.000000) - exp r2.z, r2.z - log r1.w, |r1.w| - mul r1.w, r1.w, r2.z - exp r1.w, r1.w - add r1.w, r0.z, r1.w - add r1.w, r1.w, l(-1.000000) - mov_sat r11.xzw, r1.wwww - mad r14.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) - mul r14.xyz, r0.zzzz, r14.xyzx - mad r14.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r14.xyzx - add r14.xyz, r14.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) - mul r14.xyz, r0.zzzz, r14.xyzx - mad r14.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r14.xyzx - add r14.xyz, r14.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) - mul r14.xyz, r0.zzzz, r14.xyzx - max r14.xyz, r0.zzzz, r14.xyzx -else - mov r11.xzw, r3.wwww - mov r14.xyz, r3.wwww -endif -mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx -add r17.xyz, r8.xzyx, -r17.xyzx -max r0.z, |r17.y|, |r17.x| -add r0.z, r0.z, l(-464.000000) -mul_sat r0.z, r0.z, l(0.031250) -add r1.w, |r17.z|, l(-208.000000) -mul_sat r1.w, r1.w, l(0.031250) -max r0.z, r0.z, r1.w -ne r1.w, l(0.000000), cb0[210].w -lt r2.z, r0.z, l(1.000000) -and r1.w, r1.w, r2.z -if_nz r1.w - mad r17.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r17.xyz, r8.xzyx, -r17.xyzx - max r1.w, |r17.y|, |r17.x| - add r1.w, r1.w, l(-29.000000) - mul_sat r1.w, r1.w, l(0.500000) - add r2.z, |r17.z|, l(-13.000000) - mul_sat r2.z, r2.z, l(0.500000) - max r1.w, r1.w, r2.z - lt r2.z, r1.w, l(1.000000) - if_nz r2.z - mad r17.xyz, r8.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r18.xyz, r17.xyzx, cb0[211].xyzx - round_ni r18.xyz, r18.xyzx - mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t17.yzwx, s2, l(0.000000) - add r2.z, -r1.w, l(1.000000) - mul r3.w, l(0.500000), cb0[211].y - mad r4.y, -cb0[211].y, l(0.500000), l(1.000000) - max r3.w, r3.w, r17.y - min r3.w, r4.y, r3.w - mul r17.w, r3.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t18.xyzw, s1, l(0.000000) - mad r3.w, r19.w, r2.z, r0.z - add r20.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t18.xyzw, s1, l(0.000000) - mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r18.yyyy, r20.xyzx - mov r20.w, r18.y - mul r20.xyzw, r2.zzzz, r20.xyzw - add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t18.xyzw, s1, l(0.000000) - mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r17.xyz, r18.xxxx, r17.xyzx - mov r17.w, r18.x - mul r17.xyzw, r2.zzzz, r17.xyzw - mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r18.wwww, r19.xyzx - mul r18.xyzw, r2.zzzz, r18.xyzw - else - mov r20.xyzw, l(0,0,0,0) - mov r17.xyzw, l(0,0,0,0) - mov r18.xyzw, l(0,0,0,0) - mov r3.w, r0.z - endif - mad r19.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx - add r19.xyz, r8.xzyx, -r19.xyzx - max r2.z, |r19.y|, |r19.x| - add r2.z, r2.z, l(-116.000000) - mul_sat r2.z, r2.z, l(0.125000) - add r4.y, |r19.z|, l(-52.000000) - mul_sat r4.y, r4.y, l(0.125000) - max r2.z, r2.z, r4.y - lt r4.y, r2.z, l(1.000000) - if_nz r4.y - mad r19.xyz, r8.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r21.xyz, r19.xyzx, cb0[211].xyzx - round_ni r21.xyz, r21.xyzx - mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r19.xyzx, t19.yzwx, s2, l(0.000000) - add r4.y, -r2.z, l(1.000000) - mul r1.w, r1.w, r4.y - mul r4.y, l(0.500000), cb0[211].y - mad r5.y, -cb0[211].y, l(0.500000), l(1.000000) - max r4.y, r4.y, r19.y - min r4.y, r5.y, r4.y - mul r19.w, r4.y, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r22.xyzw, r19.xwzx, t20.xyzw, s1, l(0.000000) - mad r3.w, r22.w, r1.w, r3.w - add r23.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r23.xyzx, t20.xyzw, s1, l(0.000000) - mad r23.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r23.xyz, r21.yyyy, r23.xyzx - mov r23.w, r21.y - mad r20.xyzw, r23.xyzw, r1.wwww, r20.xyzw - add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) - mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r19.xyz, r21.xxxx, r19.xyzx - mov r19.w, r21.x - mad r17.xyzw, r19.xyzw, r1.wwww, r17.xyzw - mad r19.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r21.xyz, r21.wwww, r19.xyzx - mad r18.xyzw, r21.xyzw, r1.wwww, r18.xyzw - endif - lt r1.w, l(0.000000), r2.z - if_nz r1.w - mad r19.xyz, r8.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r21.xyz, r19.xyzx, cb0[211].xyzx - mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r21.xyz, r21.xyzx - mad r19.xyz, r19.xyzx, cb0[211].xyzx, -r21.xyzx - mad r21.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r19.xyz, r22.xyzx, r19.xyzx - min r19.xyz, r21.xyzx, r19.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r19.xyzx, t21.yzwx, s2, l(0.000000) - add r1.w, -r0.z, l(1.000000) - mul r1.w, r1.w, r2.z - max r2.z, r22.y, r19.y - min r2.z, r21.y, r2.z - mul r19.w, r2.z, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r19.xwzx, t22.xyzw, s1, l(0.000000) - add r22.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t22.xyzw, s1, l(0.000000) - mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r22.xyz, r23.yyyy, r22.xyzx - mov r22.w, r23.y - mad r20.xyzw, r22.xyzw, r1.wwww, r20.xyzw - add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) - mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r19.xyz, r23.xxxx, r19.xyzx - mov r19.w, r23.x - mad r17.xyzw, r19.xyzw, r1.wwww, r17.xyzw - mad r19.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r23.xyz, r23.wwww, r19.xyzx - mad r18.xyzw, r23.xyzw, r1.wwww, r18.xyzw - mad r3.w, r21.w, r1.w, r3.w - endif - mad_sat r1.w, r3.w, l(2.000000), l(-1.000000) - add r19.x, -r0.z, r1.w - add r0.z, r0.z, r1.w - mul r19.y, r0.z, l(0.500000) -else - mov r20.xyzw, l(0,0,0,0) - mov r17.xyzw, l(0,0,0,0) - mov r18.xyzw, l(0,0,0,0) - mov r19.xy, l(0,1.000000,0,0) -endif -mul r21.xyzw, r19.yyyx, cb0[213].xyzw -mad r21.y, r21.w, l(0.500000), r21.y -mul r5.yw, r19.yyyx, cb0[213].wwwy -mad r21.w, r5.w, l(0.375000), r5.y -add r18.xyzw, r18.xyzw, r21.xyzw -mul r21.xyzw, r19.yyyx, cb0[214].xyzw -mad r21.y, r21.w, l(0.500000), r21.y -mul r5.yw, r19.yyyx, cb0[214].wwwy -mad r21.w, r5.w, l(0.375000), r5.y -add r17.xyzw, r17.xyzw, r21.xyzw -mul r21.xyzw, r19.yyyx, cb0[215].xyzw -mad r21.y, r21.w, l(0.500000), r21.y -mul r5.yw, r19.yyyx, cb0[215].wwwy -mad r21.w, r5.w, l(0.375000), r5.y -add r19.xyzw, r20.xyzw, r21.xyzw -ge r5.yw, r7.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) -and r0.z, r5.w, r5.y -if_nz r0.z - sample_l_indexable(texture2d)(float,float,float,float) r20.xyzw, r7.xyxx, t16.xyzw, s1, l(0.000000) - lt r21.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r20.xyzw| - or r5.yw, r21.zzzw, r21.xxxy - or r0.z, r5.w, r5.y - if_nz r0.z - dp3 r0.z, r20.yzwy, r20.yzwy - sqrt r0.z, r0.z - mov r5.y, l(1.000000) - mov r5.w, r0.z - mov r1.w, l(0) - loop - ge r2.z, l(4.600000), r5.w - breakc_nz r2.z - iadd r2.z, r1.w, l(1) - mul r7.xy, r5.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000) - mov r5.yw, r7.xxxy - mov r1.w, r2.z - continue - endloop - mul r20.xyzw, r5.yyyy, r20.xyzw - dp3 r0.z, r20.yzwy, r20.yzwy - sqrt r0.z, r0.z - mad r0.z, r0.z, cb7[3].x, cb7[3].y - mad r0.z, r0.z, l(255.000000), l(0.500000) - mul r7.x, r0.z, l(0.00390625000) - mov r7.y, l(0.500000) - sample_l_indexable(texture2d)(float,float,float,float) r5.yw, r7.xyxx, t15.zxwy, s1, l(0.000000) - mad r5.yw, r5.yyyw, cb7[2].xxxy, cb7[2].zzzw - mul r21.x, r5.y, l(3.54490781) - mul r21.yzw, r5.wwww, r20.yyzw - mul r0.z, r20.x, l(0.406976730) - exp r0.z, r0.z - mul r20.xyzw, r0.zzzz, r21.xyzw - mov r21.xyzw, r20.xyzw - mov r0.z, l(0) - loop - uge r2.z, r0.z, r1.w - breakc_nz r2.z - mul r22.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - dp4 r2.z, r22.xyzw, r21.xyzw - dp2 r3.w, r22.yxyy, r21.xyxx - dp2 r4.y, r22.zxzz, r21.xzxx - dp2 r5.y, r22.wxww, r21.xwxx - iadd r5.w, r0.z, l(1) - mov r21.x, r2.z - mov r21.y, r3.w - mov r21.z, r4.y - mov r21.w, r5.y - mov r0.z, r5.w - continue - endloop - mul r20.xyzw, r21.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - mul r21.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r0.z, r20.xyzw, r21.xyzw - dp2 r1.w, r20.yxyy, r21.xyxx - dp2 r2.z, r20.zxzz, r21.xzxx - dp2 r3.w, r20.wxww, r21.xwxx - mul r21.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r4.y, r20.xyzw, r21.xyzw - dp2 r5.y, r20.yxyy, r21.xyxx - dp2 r5.w, r20.zxzz, r21.xzxx - dp2 r7.x, r20.wxww, r21.xwxx - mul r21.xyzw, r19.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r7.y, r20.xyzw, r21.xyzw - dp2 r9.w, r20.yxyy, r21.xyxx - dp2 r10.w, r20.zxzz, r21.xzxx - dp2 r12.w, r20.wxww, r21.xwxx - mul r18.w, r0.z, l(0.886226952) - mul r18.x, r3.w, l(-1.02332675) - mul r18.y, r1.w, l(-1.02332675) - mul r18.z, r2.z, l(1.02332675) - mul r17.w, r4.y, l(0.886226952) - mul r17.x, r7.x, l(-1.02332675) - mul r17.yz, r5.yywy, l(0.000000, -1.02332675, 1.02332675, 0.000000) - mul r19.w, r7.y, l(0.886226952) - mul r19.x, r12.w, l(-1.02332675) - mul r19.y, r9.w, l(-1.02332675) - mul r19.z, r10.w, l(1.02332675) - endif -endif -mov r6.w, l(1.000000) -dp4 r20.x, r18.xyzw, r6.xyzw -dp4 r20.y, r17.xyzw, r6.xyzw -dp4 r20.z, r19.xyzw, r6.xyzw -max r20.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -add r0.z, l(-1.000000), cb0[113].x -max r1.w, r13.w, l(0.001000) -log r1.w, r1.w -mad r1.w, -r1.w, l(1.200000), l(1.000000) -add r0.z, r0.z, -r1.w -mul r5.yw, r5.xxxz, cb1[0].wwww -round_ni r5.yw, r5.yyyw -add r1.w, |r2.y|, -cb1[2].y -round_ni r1.w, r1.w -add r2.z, l(-1.000000), cb1[1].x -max r3.w, r1.w, l(0.000000) -min r2.z, r2.z, r3.w -ge r1.w, r2.z, r1.w -mad r3.w, r5.w, cb1[0].x, r5.y -ftoi r3.w, r3.w -iadd r3.w, r3.w, cb0[110].z -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx -ftoi r2.z, r2.z -iadd r2.z, r2.z, cb0[110].w -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.z, r2.z, l(0), t0.xxxx -and r2.z, r2.z, r3.w -and r1.w, r1.w, r2.z -mul r13.yzw, r20.xxyz, cb0[111].xxxx -dp3 r2.z, r13.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mov r8.w, l(1.000000) -mov r13.yzw, l(0,0,0,0) -mov r3.w, l(1.000000) -mov r4.y, r1.w -mov r5.y, l(0) -loop - lt r5.w, l(0.010000), r3.w - ine r7.x, r4.y, l(0) - and r7.x, r5.w, r7.x - if_nz r7.x - firstbit_lo r7.x, r4.y - ishl r7.y, l(1), r7.x - xor r4.y, r4.y, r7.y - ishl r7.x, r7.x, l(3) - dp4 r21.x, cb1[r7.x + 6].xyzw, r8.xyzw - dp4 r21.y, cb1[r7.x + 7].xyzw, r8.xyzw - dp4 r21.z, cb1[r7.x + 8].xyzw, r8.xyzw - ge r22.xyz, cb1[r7.x + 5].xyzx, |r21.xyzx| - and r7.y, r22.y, r22.x - and r7.y, r22.z, r7.y - if_nz r7.y - mul r7.y, l(0.100000), cb1[r7.x + 5].x - mul r22.xyz, |r21.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) - mul r22.xy, r22.xyxx, r22.xyxx - add r23.xyz, -|r21.xyzx|, cb1[r7.x + 5].xyzx - mul r23.xyz, r23.xyzx, cb1[r7.x + 9].xyzx - eq r9.w, l(1.000000), cb1[r7.x + 10].x - if_nz r9.w - dp3 r24.x, cb1[r7.x + 6].xyzx, r15.xyzx - dp3 r24.y, cb1[r7.x + 7].xyzx, r15.xyzx - dp3 r24.z, cb1[r7.x + 8].xyzx, r15.xyzx - add r25.xyz, -r21.xyzx, cb1[r7.x + 5].xyzx - div r25.xyz, r25.xyzx, r24.xyzx - add r26.xyz, -r21.xyzx, -cb1[r7.x + 5].xyzx - div r26.xyz, r26.xyzx, r24.xyzx - lt r27.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx - movc r25.xyz, r27.xyzx, r25.xyzx, r26.xyzx - min r9.w, r25.y, r25.x - min r9.w, r25.z, r9.w - mad r21.xyz, r24.xyzx, r9.wwww, r21.xyzx - else - mov r21.xyz, r15.xyzx - endif - dp3 r9.w, r21.xyzx, r21.xyzx - rsq r9.w, r9.w - mul r21.xyz, r9.wwww, r21.xyzx - lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx - lt r25.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r24.xyz, -r24.xyzx, r25.xyzx - itof r24.xyz, r24.xyzx - dp3 r9.w, r21.xyzx, r24.xyzx - div r21.xyz, r21.xyzx, r9.wwww - lt r9.w, r21.z, l(0.000000) - add r21.zw, -|r21.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r21.zw, r21.zzzw, r24.xxxy - movc r21.xy, r9.wwww, r21.zwzz, r21.xyxx - dp4 r9.w, cb1[r7.x + 4].xyzw, r6.xyzw - max r9.w, r9.w, l(0.000000) - max r9.w, r9.w, l(0.000100) - min r10.w, r23.z, r23.y - min r10.w, r10.w, r23.x - add r12.w, r22.y, r22.x - mad r12.w, r22.z, r22.z, r12.w - mad r7.y, r7.y, r7.y, -r12.w - mul r7.y, r7.y, cb1[r7.x + 9].x - mul r7.y, r7.y, cb1[r7.x + 9].x - add r12.w, l(1.000000), -cb1[r7.x + 10].y - mul r7.y, r7.y, r12.w - mul r7.y, r7.y, l(100.000000) - mad_sat r7.y, r10.w, cb1[r7.x + 10].y, r7.y - mul r10.w, r7.y, cb1[r7.x + 10].w - mad r21.xy, r21.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) - mad r21.xy, r21.xyxx, cb1[1].wwww, cb1[2].wwww - mov r21.z, cb1[r7.x + 5].w - sample_l_indexable(texture2darray)(float,float,float,float) r21.xyz, r21.xyzx, t5.xyzw, s3, r0.z - mul r21.xyz, r21.xyzx, cb1[r7.x + 9].wwww - div r12.w, r2.z, r9.w - min r12.w, |r12.w|, l(1.000000) - mad r12.w, r12.w, l(2.000000), r2.z - add r9.w, r9.w, l(2.000000) - div r9.w, r12.w, r9.w - add r9.w, r9.w, l(-1.000000) - mad r9.w, r9.w, cb0[112].w, l(1.000000) - mul r21.xyz, r9.wwww, r21.xyzx - mul r21.xyz, r10.wwww, r21.xyzx - mad r13.yzw, r21.xxyz, r3.wwww, r13.yyzw - mad r7.x, -r7.y, cb1[r7.x + 10].w, l(1.000000) - mul r3.w, r3.w, r7.x - endif - mov r5.y, l(-1) - continue - else - mov r5.y, r5.w - break - endif - mov r5.y, r5.w -endloop -if_nz r5.y - dp3 r1.w, r15.xyzx, r15.xyzx - rsq r1.w, r1.w - mul r15.xyz, r1.wwww, r15.xyzx - lt r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx - lt r22.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r21.xyz, -r21.xyzx, r22.xyzx - itof r21.xyz, r21.xyzx - dp3 r1.w, r15.xyzx, r21.xyzx - div r15.xyz, r15.xyzx, r1.wwww - lt r1.w, r15.z, l(0.000000) - add r5.yw, -|r15.yyyx|, l(0.000000, 1.000000, 0.000000, 1.000000) - mul r5.yw, r5.yyyw, r21.xxxy - movc r5.yw, r1.wwww, r5.yyyw, r15.xxxy - dp4 r1.w, cb1[3].xyzw, r6.xyzw - max r1.w, r1.w, l(0.000000) - max r1.w, r1.w, l(0.000100) - mad r5.yw, r5.yyyw, l(0.000000, 0.500000, 0.000000, 0.500000), l(0.000000, 0.500000, 0.000000, 0.500000) - mad r15.xy, r5.ywyy, cb1[1].wwww, cb1[2].wwww - mov r15.z, l(0) - sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z - div r0.z, r2.z, r1.w - min r0.z, |r0.z|, l(1.000000) - mad r0.z, r0.z, l(2.000000), r2.z - add r1.w, r1.w, l(2.000000) - div r0.z, r0.z, r1.w - add r0.z, r0.z, l(-1.000000) - mad r0.z, r0.z, cb0[112].w, l(1.000000) - mul r15.xyz, r0.zzzz, r15.xyzx - mad r13.yzw, r15.xxyz, r3.wwww, r13.yyzw -endif -mul r13.yzw, r13.yyzw, cb0[112].zzzz -mul r13.yzw, r13.yyzw, cb0[111].yyyy -if_nz r11.y - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r15.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x - add r1.w, -r0.z, l(1.000000) - mul r21.xyz, r1.wwww, r13.yzwy - mad r13.yzw, r15.xxyz, r0.zzzz, r21.xxyz -endif -mul r3.xyz, r3.xyzx, r20.xyzx -mul r3.xyz, r3.xyzx, cb0[111].xxxx -mad r0.z, r2.x, r7.z, r7.w -mul r7.xyz, r0.zzzz, r13.yzwy -mul r7.xyz, r11.xzwx, r7.xyzx -mad r3.xyz, r3.xyzx, r14.xyzx, r7.xyzx -mul r6.xyzw, r6.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) -dp4 r7.x, r18.xyzw, r6.xyzw -dp4 r7.y, r17.xyzw, r6.xyzw -dp4 r7.z, r19.xyzw, r6.xyzw -max r6.xyz, r7.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -mul r6.xyz, r6.xyzx, cb0[111].xxxx -mul r6.xyz, r14.xyzx, r6.xyzx -mul r6.xyz, r16.xyzx, r6.xyzx -mul r0.z, r4.x, r13.x -ftou r1.w, r2.w -bfi r1.w, l(2), l(0), r1.w, r4.z -utof r1.w, r1.w -mul r1.w, r1.w, l(0.0322580636) -mad r0.z, r0.z, l(0.00787401572), r1.w -mul r2.xzw, r0.zzzz, r6.xxyz -mad r2.xzw, r2.xxzw, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r3.xxyz -add r1.xyz, r1.xyzx, r2.xzwx -max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) -mad r0.z, r8.y, cb0[156].w, cb0[157].w -max r0.z, r0.z, l(0.010000) -mad r1.w, r4.w, cb0[154].w, -cb0[153].w -max r1.w, r1.w, l(0.000000) -mul r2.x, r0.z, l(-1.442695) -exp r2.x, r2.x -add r2.x, -r2.x, l(1.000000) -div r0.z, r2.x, r0.z -mad r2.x, r8.y, cb0[156].w, cb0[158].w -mul r2.x, r2.x, l(1.442695) -exp r2.x, r2.x -mul r0.z, r0.z, r2.x -mul r0.z, r0.z, -r1.w -mul r2.xzw, r0.zzzz, cb0[155].xxyz -mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) -exp r2.xzw, r2.xxzw -dp3 r0.z, -r12.xyzx, cb0[154].xyzx -mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) -dp2 r3.x, r0.zzzz, cb0[155].wwww -add r1.w, r1.w, -r3.x -lt r3.x, l(0.000000), cb0[163].z -if_nz r3.x - and r0.w, l(7), cb0[108].w - imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) - imad r0.x, r0.y, r0.w, r0.x - imad r0.y, r0.w, r0.x, r0.y - imad r0.w, r0.x, r0.y, r0.w - imad r3.x, r0.y, r0.w, r0.x - dp3 r0.x, -r12.xyzx, -r10.xyzx - add r3.z, r8.y, -cb0[44].y - lt r3.w, l(5.960464478E-08), r0.x - div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x - and r0.x, r0.x, r3.w - mul r0.x, r0.x, cb0[163].w - div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w - mul r4.x, r0.x, r3.w - mad r4.y, r4.x, r3.z, cb0[44].y - mad r3.z, -r4.x, r3.z, r3.z - mul r4.x, r3.z, cb0[159].z - mul r3.z, r3.z, cb0[162].x - max r3.z, r3.z, l(-127.000000) - add r4.z, r4.y, -cb0[159].x - mul r4.z, r4.z, cb0[159].z - max r4.xz, r4.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) - exp r4.z, -r4.z - mul r4.z, r4.z, cb0[159].y - lt r5.y, l(5.960464478E-08), |r4.x| - exp r5.w, -r4.x - add r5.w, -r5.w, l(1.000000) - div r5.w, r5.w, r4.x - mad r4.x, -r4.x, l(0.240226507), l(0.693147182) - movc r4.x, r5.y, r5.w, r4.x - add r4.y, r4.y, -cb0[162].z - mul r4.y, r4.y, cb0[162].x - max r4.y, r4.y, l(-127.000000) - exp r4.y, -r4.y - mul r4.y, r4.y, cb0[162].y - lt r5.y, l(5.960464478E-08), |r3.z| - exp r5.w, -r3.z - add r5.w, -r5.w, l(1.000000) - div r5.w, r5.w, r3.z - mad r3.z, -r3.z, l(0.240226507), l(0.693147182) - movc r3.z, r5.y, r5.w, r3.z - mul r3.z, r3.z, r4.y - mad r3.z, r4.z, r4.x, r3.z - mad r0.x, -r0.x, r3.w, l(1.000000) - mul r0.x, r4.w, r0.x - mul r0.x, r0.x, r3.z - exp r0.x, -r0.x - min r0.x, r0.x, l(1.000000) - max r0.x, r0.x, cb0[161].w - mad_sat r3.zw, r4.wwww, cb0[160].yyyw, cb0[160].xxxz - add r0.x, r0.x, r3.z - add r0.x, r3.w, r0.x - min r0.x, r0.x, l(1.000000) - imad r3.y, r0.w, r3.x, r0.y - ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) - utof r0.yw, r0.yyyw - mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r0.yw, r0.yyyw, cb0[167].wwww, r5.xxxz - mul r3.xy, r0.ywyy, cb0[165].xyxx - mad r0.y, |r2.y|, cb0[164].x, cb0[164].y - log r0.y, r0.y - mul r0.y, r0.y, cb0[164].z - div r3.z, r0.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t14.xyzw, s1, l(0.000000) - add r0.y, |r2.y|, -cb0[166].z - mul_sat r0.y, r0.y, l(1000000.000000) - add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r0.y, -r0.x, l(1.000000) - mul r4.xyz, r0.yyyy, cb0[161].xyzx - mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx - mul r0.x, r0.x, r3.w -else - add r0.y, r8.y, -cb0[44].y - mul r0.w, r0.y, cb0[159].z - mul r0.y, r0.y, cb0[162].x - max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) - add r2.y, cb0[44].y, -cb0[159].x - mul r2.y, r2.y, cb0[159].z - max r2.y, r2.y, l(-127.000000) - exp r2.y, -r2.y - mul r2.y, r2.y, cb0[159].y - lt r3.w, l(5.960464478E-08), |r0.w| - exp r4.x, -r0.w - add r4.x, -r4.x, l(1.000000) - div r4.x, r4.x, r0.w - mad r0.w, -r0.w, l(0.240226507), l(0.693147182) - movc r0.w, r3.w, r4.x, r0.w - add r3.w, cb0[44].y, -cb0[162].z - mul r3.w, r3.w, cb0[162].x - max r3.w, r3.w, l(-127.000000) - exp r3.w, -r3.w - mul r3.w, r3.w, cb0[162].y - lt r4.x, l(5.960464478E-08), |r0.y| - exp r4.y, -r0.y - add r4.y, -r4.y, l(1.000000) - div r4.y, r4.y, r0.y - mad r0.y, -r0.y, l(0.240226507), l(0.693147182) - movc r0.y, r4.x, r4.y, r0.y - mul r0.y, r0.y, r3.w - mad r0.y, r2.y, r0.w, r0.y - mul r0.y, r4.w, r0.y - exp r0.y, -r0.y - min r0.y, r0.y, l(1.000000) - max r0.y, r0.y, cb0[161].w - mad_sat r4.xy, r4.wwww, cb0[160].ywyy, cb0[160].xzxx - add r0.y, r0.y, r4.x - add r0.y, r4.y, r0.y - min r0.x, r0.y, l(1.000000) - add r0.y, -r0.x, l(1.000000) - mul r3.xyz, r0.yyyy, cb0[161].xyzx -endif -mul r4.xyz, r0.xxxx, r2.xzwx -mad r0.y, r0.z, r0.z, l(1.000000) -mul r0.y, r0.y, l(0.0596831031) -mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz -mad r2.y, -cb0[155].w, cb0[155].w, l(1.000000) -mul r3.w, r1.w, l(12.566371) -sqrt r1.w, r1.w -mul r1.w, r1.w, r3.w -max r1.w, r1.w, l(0.001000) -div r1.w, r2.y, r1.w -mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw -mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) -add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) -mul r0.yzw, r0.yyzw, r2.xxyz -mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx -mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx -dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) -dp3 r1.w, r9.xyzx, r9.xyzx -sqrt r1.w, r1.w -mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) -mul r2.x, r1.w, cb0[169].x -mad r1.w, -cb0[169].x, r1.w, l(1.000000) -mul r2.yzw, cb0[168].xxyz, cb0[183].wwww -mad r2.yzw, r8.xxyz, cb0[169].yyyy, r2.yyzw -sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t27.xwyz, s2, l(0.000000) -dp2 r2.x, r2.yyyy, r2.xxxx -add r1.w, r1.w, r2.x -add r2.x, r0.w, l(1.000000) -min r1.w, r1.w, r2.x -add r0.xyz, -r1.xyzx, r0.xyzx -mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx -mov o0.w, r0.w -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0_original_backup.asm deleted file mode 100644 index 670f70781..000000000 --- a/src/games/endfield/deferred-lighting/0x5468822B.ps_5_0_original_backup.asm +++ /dev/null @@ -1,1840 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Sat Jan 31 13:55:07 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy w -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// TEXCOORD 2 xyz 3 NONE float xyz -// TEXCOORD 3 xyzw 4 NONE float xyzw -// TEXCOORD 4 xyz 5 NONE float xyz -// TEXCOORD 5 xyz 6 NONE float xyz -// TEXCOORD 6 xyz 7 NONE float xyz -// TEXCOORD 7 xyz 8 NONE float xyz -// TEXCOORD 8 x 9 NONE uint x -// SV_IsFrontFace 0 x 10 FFACE uint x -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// SV_Target 1 xyzw 1 TARGET float xyzw -// -ps_5_0 -dcl_globalFlags refactoringAllowed -dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, - { 0, 1.000000, 0, 0}, - { 0, 0, 1.000000, 0}, - { 0, 0, 0, 1.000000}, - { 2, 1, -1.000000, 1.000000}, - { 2, 1, 1.000000, 1.000000}, - { 0, 2, 1.000000, -1.000000}, - { 0, 2, 1.000000, 1.000000}, - { 0, 1, 1.000000, 1.000000}, - { 0, 1, -1.000000, 1.000000} } -dcl_constantbuffer CB0[216], immediateIndexed -dcl_constantbuffer CB1[4093], dynamicIndexed -dcl_constantbuffer CB2[3], immediateIndexed -dcl_constantbuffer CB3[2054], dynamicIndexed -dcl_constantbuffer CB4[401], dynamicIndexed -dcl_constantbuffer CB5[9], immediateIndexed -dcl_constantbuffer CB6[160], dynamicIndexed -dcl_sampler s0, mode_default -dcl_sampler s1, mode_default -dcl_sampler s2, mode_comparison -dcl_sampler s3, mode_default -dcl_sampler s4, mode_default -dcl_sampler s5, mode_default -dcl_resource_structured t0, 4 -dcl_resource_structured t1, 16 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_resource_texture3d (float,float,float,float) t4 -dcl_resource_texture3d (float,float,float,float) t5 -dcl_resource_texture3d (float,float,float,float) t6 -dcl_resource_texture3d (float,float,float,float) t7 -dcl_resource_texture3d (float,float,float,float) t8 -dcl_resource_texture3d (float,float,float,float) t9 -dcl_resource_texture2d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture2d (float,float,float,float) t12 -dcl_resource_texture2d (float,float,float,float) t13 -dcl_resource_texture2d (float,float,float,float) t14 -dcl_resource_texturecube (float,float,float,float) t15 -dcl_resource_texture2d (float,float,float,float) t16 -dcl_resource_texture3d (float,float,float,float) t17 -dcl_input_ps_siv linear noperspective v0.xyw, position -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_input_ps linear v3.xyz -dcl_input_ps linear v4.xyzw -dcl_input_ps linear v5.xyz -dcl_input_ps linear v6.xyz -dcl_input_ps linear v7.xyz -dcl_input_ps linear v8.xyz -dcl_input_ps constant v9.x -dcl_input_ps_sgv constant v10.x, is_front_face -dcl_output o0.xyzw -dcl_output o1.xyzw -dcl_temps 32 -add r0.xyz, -v2.xyzx, cb0[44].xyzx -mov r1.x, cb0[0].z -mov r1.y, cb0[1].z -mov r1.z, cb0[2].z -add r2.xyz, -r0.xyzx, r1.xyzx -mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx -dp3 r0.w, r0.xyzx, r0.xyzx -max r1.w, r0.w, l(9.999999939E-09) -rsq r1.w, r1.w -mul r2.xyz, r0.xyzx, r1.wwww -ishl r2.w, v9.x, l(4) -and r3.x, l(16), cb1[r2.w + 4].w -if_nz r3.x - iadd r3.x, l(2), cb1[r2.w + 5].x - ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx - ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx -else - mov r3.xy, cb1[r2.w + 3].zxzz -endif -sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t12.xyzw, s3, cb0[108].x -sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t13.xyzw, s4, cb0[108].x -add r3.z, -r5.w, l(1.000000) -mul r4.xyzw, r4.xyzw, cb5[5].xyzw -mul r6.xyz, r4.xyzx, cb5[4].zzzz -dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww -mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww -sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t14.xywz, s5, cb0[108].x -mul r7.x, r7.x, r7.z -mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r3.w, r7.xyxx, r7.xyxx -min r3.w, r3.w, l(1.000000) -add r3.w, -r3.w, l(1.000000) -sqrt r3.w, r3.w -max r3.w, r3.w, l(1.000000017E-16) -mul r7.xy, r7.xyxx, cb5[0].wwww -add r8.xz, -r3.yyxy, v2.xxzx -mov r8.y, l(0.0000610351562) -dp3 r3.x, r8.xyzx, r8.xyzx -rsq r3.x, r3.x -mul r8.xyz, r3.xxxx, r8.xyzx -mul r9.xyz, v3.zxyz, v4.yzxy -mad r9.xyz, v3.yzxy, v4.zxyz, -r9.xyzx -mul r9.xyz, r9.xyzx, v4.wwww -mul r7.yzw, r7.yyyy, r9.xxyz -mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy -mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz -mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) -movc r6.w, v10.x, l(1.000000), r6.w -dp3 r7.x, r3.xywx, r3.xywx -max r7.x, r7.x, l(1.175494351E-38) -rsq r7.x, r7.x -mul r3.xyw, r3.xyxw, r7.xxxx -mul r7.xyz, r6.wwww, r3.xywx -dp3 r8.w, v3.xyzx, v3.xyzx -rsq r8.w, r8.w -mul r9.xyz, r8.wwww, v3.xyzx -mul r9.xyz, r6.wwww, r9.xyzx -ftou r10.xy, v0.xyxx -add r8.w, l(1.000000), -cb0[111].x -mad r8.w, cb0[198].w, r8.w, cb0[111].x -mul r8.w, r8.w, cb0[109].x -lt r9.w, cb0[187].y, l(0.500000) -if_nz r9.w - mad r11.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx - add r11.xyz, -r11.xyzx, v2.xzyx - max r9.w, |r11.y|, |r11.x| - add r9.w, r9.w, l(-464.000000) - mul_sat r9.w, r9.w, l(0.031250) - add r11.x, |r11.z|, l(-208.000000) - mul_sat r11.x, r11.x, l(0.031250) - max r9.w, r9.w, r11.x - ne r11.x, l(0.000000), cb0[210].w - lt r11.y, r9.w, l(1.000000) - and r11.x, r11.y, r11.x - if_nz r11.x - mad r11.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r11.xyz, -r11.xyzx, v2.xzyx - max r11.x, |r11.y|, |r11.x| - add r11.x, r11.x, l(-29.000000) - add r11.y, |r11.z|, l(-13.000000) - mul_sat r11.xy, r11.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) - max r11.x, r11.y, r11.x - lt r11.y, r11.x, l(1.000000) - if_nz r11.y - mad r11.yzw, v2.xxyz, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, 0.500000, 0.500000, 0.500000) - mul r12.xyz, r11.yzwy, cb0[211].xyzx - round_ni r12.xyz, r12.xyzx - mad r12.xyz, r11.yzwy, cb0[211].xyzx, -r12.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r13.xyw, r12.xyzx, t4.yzwx, s1, l(0.000000) - add r11.y, -r11.x, l(1.000000) - mul r11.z, l(0.500000), cb0[211].y - mad r11.w, -cb0[211].y, l(0.500000), l(1.000000) - max r11.z, r11.z, r12.y - min r11.z, r11.w, r11.z - mul r12.w, r11.z, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r12.xwzx, t5.xyzw, s0, l(0.000000) - mad r11.z, r14.w, r11.y, r9.w - add r15.xyz, r12.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s0, l(0.000000) - mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r15.xyz, r13.yyyy, r15.xyzx - mov r15.w, r13.y - mul r15.xyzw, r11.yyyy, r15.xyzw - add r12.xyz, r12.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t5.xyzw, s0, l(0.000000) - mad r12.xyz, r12.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r12.xyz, r13.xxxx, r12.xyzx - mov r12.w, r13.x - mul r12.xyzw, r11.yyyy, r12.xyzw - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r13.xyz, r13.wwww, r14.xyzx - mul r13.xyzw, r11.yyyy, r13.xyzw - else - mov r15.xyzw, l(0,0,0,0) - mov r12.xyzw, l(0,0,0,0) - mov r13.xyzw, l(0,0,0,0) - mov r11.z, r9.w - endif - mad r14.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx - add r14.xyz, -r14.xyzx, v2.xzyx - max r11.y, |r14.y|, |r14.x| - add r11.y, r11.y, l(-116.000000) - add r11.w, |r14.z|, l(-52.000000) - mul_sat r11.yw, r11.yyyw, l(0.000000, 0.125000, 0.000000, 0.125000) - max r11.y, r11.w, r11.y - lt r11.w, r11.y, l(1.000000) - if_nz r11.w - mad r14.xyz, v2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r16.xyz, r14.xyzx, cb0[211].xyzx - round_ni r16.xyz, r16.xyzx - mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r16.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r16.xyw, r14.xyzx, t6.yzwx, s1, l(0.000000) - add r11.w, -r11.y, l(1.000000) - mul r11.x, r11.w, r11.x - mul r11.w, l(0.500000), cb0[211].y - mad r17.x, -cb0[211].y, l(0.500000), l(1.000000) - max r11.w, r11.w, r14.y - min r11.w, r17.x, r11.w - mul r14.w, r11.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t7.xyzw, s0, l(0.000000) - mad r11.z, r17.w, r11.x, r11.z - add r18.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t7.xyzw, s0, l(0.000000) - mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r16.yyyy, r18.xyzx - mov r18.w, r16.y - mad r15.xyzw, r18.xyzw, r11.xxxx, r15.xyzw - add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t7.xyzw, s0, l(0.000000) - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r14.xyz, r16.xxxx, r14.xyzx - mov r14.w, r16.x - mad r12.xyzw, r14.xyzw, r11.xxxx, r12.xyzw - mad r14.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r16.wwww, r14.xyzx - mad r13.xyzw, r16.xyzw, r11.xxxx, r13.xyzw - endif - lt r11.x, l(0.000000), r11.y - if_nz r11.x - mad r14.xyz, v2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r16.xyz, r14.xyzx, cb0[211].xyzx - mul r17.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r16.xyz, r16.xyzx - mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r16.xyzx - mad r16.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r14.xyz, r17.xyzx, r14.xyzx - min r14.xyz, r16.xyzx, r14.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r14.xyzx, t8.yzwx, s1, l(0.000000) - add r11.x, -r9.w, l(1.000000) - mul r11.x, r11.x, r11.y - max r11.y, r17.y, r14.y - min r11.y, r16.y, r11.y - mul r14.w, r11.y, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t9.xyzw, s0, l(0.000000) - add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t9.xyzw, s0, l(0.000000) - mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r17.xyz, r18.yyyy, r17.xyzx - mov r17.w, r18.y - mad r15.xyzw, r17.xyzw, r11.xxxx, r15.xyzw - add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t9.xyzw, s0, l(0.000000) - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r14.xyz, r18.xxxx, r14.xyzx - mov r14.w, r18.x - mad r12.xyzw, r14.xyzw, r11.xxxx, r12.xyzw - mad r14.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r18.wwww, r14.xyzx - mad r13.xyzw, r18.xyzw, r11.xxxx, r13.xyzw - mad r11.z, r16.w, r11.x, r11.z - endif - mad_sat r11.x, r11.z, l(2.000000), l(-1.000000) - add r14.x, -r9.w, r11.x - add r9.w, r9.w, r11.x - mul r14.y, r9.w, l(0.500000) - else - mov r15.xyzw, l(0,0,0,0) - mov r12.xyzw, l(0,0,0,0) - mov r13.xyzw, l(0,0,0,0) - mov r14.xy, l(0,1.000000,0,0) - endif - mul r11.xyzw, r14.yyyx, cb0[213].xyzw - mad r11.y, r11.w, l(0.500000), r11.y - mul r14.zw, r14.yyyx, cb0[213].wwwy - mad r11.w, r14.w, l(0.375000), r14.z - add r11.xyzw, r11.xyzw, r13.xyzw - mul r13.xyzw, r14.yyyx, cb0[214].xyzw - mad r13.y, r13.w, l(0.500000), r13.y - mul r14.zw, r14.yyyx, cb0[214].wwwy - mad r13.w, r14.w, l(0.375000), r14.z - add r12.xyzw, r12.xyzw, r13.xyzw - mul r13.xyzw, r14.yyyx, cb0[215].xyzw - mad r13.y, r13.w, l(0.500000), r13.y - mul r14.xy, r14.yxyy, cb0[215].wyww - mad r13.w, r14.y, l(0.375000), r14.x - add r13.xyzw, r13.xyzw, r15.xyzw - mov r7.w, l(1.000000) - dp4 r14.x, r11.xyzw, r7.xyzw - dp4 r14.y, r12.xyzw, r7.xyzw - dp4 r14.z, r13.xyzw, r7.xyzw - max r14.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r15.xyz, r8.wwww, r14.xyzx - mul r16.xyz, r12.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) - mad r16.xyz, r11.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r16.xyzx - mad r16.xyz, r13.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r16.xyzx - dp3 r7.w, r16.xyzx, r16.xyzx - max r7.w, r7.w, l(1.175494351E-38) - rsq r7.w, r7.w - mul r16.xyz, r7.wwww, r16.xyzx - mov r16.y, |r16.y| - mov r16.w, l(1.000000) - dp4 r11.x, r11.xyzw, r16.xyzw - dp4 r11.y, r12.xyzw, r16.xyzw - dp4 r11.z, r13.xyzw, r16.xyzw - max r11.xyz, r11.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - ge r7.w, r15.y, r15.z - and r7.w, r7.w, l(0x3f800000) - mov r12.xy, r15.zyzz - mov r12.zw, l(0,0,-1.000000,0.666666687) - mad r13.xy, r14.yzyy, r8.wwww, -r12.xyxx - mov r13.zw, l(0,0,1.000000,-1.000000) - mad r12.xyzw, r7.wwww, r13.xyzw, r12.xyzw - ge r7.w, r15.x, r12.x - and r7.w, r7.w, l(0x3f800000) - mov r13.xyz, r12.xywx - mov r13.w, r15.x - mov r12.xyw, r13.wywx - add r12.xyzw, -r13.xyzw, r12.xyzw - mad r12.xyzw, r7.wwww, r12.xyzw, r13.xyzw - min r7.w, r12.y, r12.w - add r7.w, -r7.w, r12.x - add r9.w, -r12.y, r12.w - mad r11.w, r7.w, l(6.000000), l(0.000100) - div r9.w, r9.w, r11.w - add r9.w, r9.w, r12.z - frc r9.w, |r9.w| - add r11.w, r12.x, l(0.000100) - div r7.w, r7.w, r11.w - add r13.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) - add r9.w, |r13.x|, l(-0.450000) - mul_sat r9.w, r9.w, l(-10.000001) - mad r11.w, r9.w, l(-2.000000), l(3.000000) - mul r9.w, r9.w, r9.w - mul r9.w, r9.w, r11.w - mad r9.w, r9.w, l(-0.350000), l(0.700000) - mov_sat r12.x, r12.x - mul r9.w, r9.w, r12.x - min r7.w, r7.w, r9.w - add r9.w, -r7.w, l(2.000000) - div r9.w, l(2.000000), r9.w - frc r12.xyz, r13.yzwy - mad r12.xyz, r12.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) - add_sat r12.xyz, |r12.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) - add r12.xyz, r12.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) - mad r12.xyz, r7.wwww, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - mul r12.xyz, r9.wwww, r12.xyzx - max r7.w, r11.y, r11.x - max r7.w, r11.z, r7.w - mul r8.w, r8.w, r7.w - mov r7.w, l(1.000000) -else - mov r16.xyz, l(0,0,0,0) - mov r15.xyz, l(1.000000,1.000000,1.000000,0) - mov r12.xyz, cb0[188].xyzx - mov r7.w, l(0) -endif -add r9.w, -v2.y, cb1[r2.w + 12].z -add r9.w, r9.w, l(0.200000) -mul_sat r9.w, r9.w, l(2.85714269) -mad r11.x, r9.w, l(-2.000000), l(3.000000) -mul r9.w, r9.w, r9.w -mul r9.w, r9.w, r11.x -mul r9.w, r9.w, cb1[r2.w + 12].y -max r9.w, r9.w, cb1[r2.w + 12].w -add r11.x, r9.w, cb1[r2.w + 12].x -lt r11.x, l(0.010000), r11.x -if_nz r11.x - add r11.x, -r5.x, l(1.000000) - mul r11.yzw, r4.xxyz, r11.xxxx - dp3 r11.y, r11.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r11.y, r11.y, l(-0.350000) - mul_sat r11.y, r11.y, l(-4.000000) - mad r11.z, r11.y, l(-2.000000), l(3.000000) - mul r11.y, r11.y, r11.y - mul r11.w, r11.y, r11.z - mul r13.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) - movc r13.xyzw, cb1[r2.w + 4].wwww, r13.xyzw, v8.xzxy - mul r14.xyzw, r13.xyzw, cb0[196].zzzz - movc r17.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy - mov r17.x, v7.x - add r18.xyz, |r17.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) - mul r19.xyz, r18.xyzx, r18.xyzx - mul r18.xyz, r18.xyzx, r19.xyzx - max r18.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - dp3 r12.w, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - div r18.xyz, r18.xyzx, r12.wwww - sample_b_indexable(texture2d)(float,float,float,float) r20.xyzw, r14.zyzz, t10.xyzw, s3, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r14.zwzz, t10.xyzw, s3, cb0[108].x - mul r21.xyzw, r18.zzzz, r21.xyzw - mad r20.xyzw, r20.xyzw, r18.yyyy, r21.xyzw - sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r14.ywyy, t10.xyzw, s3, cb0[108].x - mad r18.xyzw, r21.xyzw, r18.xxxx, r20.xyzw - add r17.yw, -r18.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) - mul r20.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) - mad_sat r12.w, cb1[r2.w + 12].x, r11.x, r20.x - add r12.w, -r17.y, r12.w - mul_sat r12.w, r12.w, l(3.33333325) - mad r13.x, r12.w, l(-2.000000), l(3.000000) - mul r12.w, r12.w, r12.w - mul r12.w, r12.w, r13.x - mul_sat r11.x, r9.w, r11.x - add r11.x, -r17.w, r11.x - mul_sat r11.x, r11.x, l(1.53846145) - mad r13.x, r11.x, l(-2.000000), l(3.000000) - mul r11.x, r11.x, r11.x - mul r11.x, r11.x, r13.x - max r11.x, r11.x, r12.w - add r12.w, r5.x, l(-0.500000) - mul_sat r12.w, r12.w, l(4.000000) - mad r13.x, r12.w, l(-2.000000), l(3.000000) - mul r12.w, r12.w, r12.w - mul r12.w, r12.w, r13.x - add r5.w, -r5.w, l(0.199999988) - mul_sat r5.w, r5.w, l(-5.00000048) - mad r13.x, r5.w, l(-2.000000), l(3.000000) - mul r5.w, r5.w, r5.w - mul r5.w, r5.w, r13.x - mad r13.x, r5.w, r11.w, r12.w - min r13.x, r13.x, l(1.000000) - max r9.w, r9.w, cb1[r2.w + 12].x - mad r17.yw, r18.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mul r18.xyw, r14.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) - mul r21.xyz, r14.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) - mul r22.xyz, r19.xyzx, r19.xyzx - mul r22.xyz, r22.xyzx, r22.xyzx - mul r19.xyz, r19.xyzx, r22.xyzx - dp3 r15.w, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - div r19.xyz, r19.xyzx, r15.wwww - round_ni r22.xyzw, r18.yxyw - mul r23.xyzw, r22.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r23.xyzw, r23.xyzw - add r24.xyzw, r23.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r15.w, r23.xyxx, r24.xyxx - add r20.xw, r15.wwww, r23.xxxy - mul r15.w, r20.w, r20.x - add r16.w, r20.w, r20.x - frc r15.w, r15.w - frc r25.w, r16.w - add r26.xyzw, r22.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) - mul r26.xyzw, r26.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r26.xyzw, r26.xyzw - add r27.xyzw, r26.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r16.w, r26.xyxx, r27.xyxx - add r20.xw, r16.wwww, r26.xxxy - mul r16.w, r20.w, r20.x - add r18.y, r20.w, r20.x - frc r23.x, r16.w - frc r23.y, r18.y - mad r16.w, r15.w, l(0.399999976), l(0.600000) - mul r18.y, r16.w, l(0.250000) - mad r22.xyzw, r14.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r22.xyzw - mad r20.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r20.xw, r20.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r22.xxxy - add r20.xw, r20.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) - mul r22.x, r20.x, l(1.250000) - lt r19.w, r20.w, l(0.000000) - movc r19.w, r19.w, l(1.250000), l(0.750000) - mul r22.y, r19.w, r20.w - mad r15.w, cb0[102].x, l(3.000000), r15.w - frc r15.w, r15.w - add r20.xw, r15.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) - mul_sat r20.xw, r20.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) - mad r24.xy, r20.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) - mul r20.xw, r20.xxxw, r20.xxxw - mul r20.xw, r20.xxxw, r24.xxxy - mul r15.w, r20.w, r20.x - dp2 r19.w, r22.xyxx, r22.xyxx - sqrt r19.w, r19.w - mad r16.w, -r16.w, l(0.250000), r19.w - div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.y - mul_sat r16.w, r16.w, r19.w - mad r19.w, r16.w, l(-2.000000), l(3.000000) - mul r16.w, r16.w, r16.w - mul r16.w, r16.w, r19.w - ge r16.w, r16.w, l(0.001000) - and r16.w, r16.w, l(0x3f800000) - mul r25.z, r15.w, r16.w - div r20.xw, r22.xxxy, r18.yyyy - max r20.xw, r20.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) - min r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) - ge r15.w, r25.z, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r20.xw, r15.wwww, r20.xxxw - mad r15.w, r23.x, l(0.250000), l(0.250000) - mul r25.xy, r15.wwww, r20.xwxx - dp2 r15.w, r23.zwzz, r24.zwzz - add r20.xw, r15.wwww, r23.zzzw - mul r15.w, r20.w, r20.x - add r16.w, r20.w, r20.x - frc r15.w, r15.w - frc r23.w, r16.w - dp2 r16.w, r26.zwzz, r27.zwzz - add r20.xw, r16.wwww, r26.zzzw - mul r16.w, r20.w, r20.x - add r18.y, r20.w, r20.x - frc r22.x, r16.w - frc r22.y, r18.y - mad r16.w, r15.w, l(0.399999976), l(0.600000) - mul r18.y, r16.w, l(0.250000) - mad r20.xw, r22.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r20.xw, r20.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r22.zzzw - add r20.xw, r20.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) - mul r24.x, r20.x, l(1.250000) - lt r19.w, r20.w, l(0.000000) - movc r19.w, r19.w, l(1.250000), l(0.750000) - mul r24.y, r19.w, r20.w - mad r15.w, cb0[102].x, l(3.000000), r15.w - frc r15.w, r15.w - add r20.xw, r15.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) - mul_sat r20.xw, r20.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) - mad r22.yz, r20.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) - mul r20.xw, r20.xxxw, r20.xxxw - mul r20.xw, r20.xxxw, r22.yyyz - mul r15.w, r20.w, r20.x - dp2 r19.w, r24.xyxx, r24.xyxx - sqrt r19.w, r19.w - mad r16.w, -r16.w, l(0.250000), r19.w - div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.y - mul_sat r16.w, r16.w, r19.w - mad r19.w, r16.w, l(-2.000000), l(3.000000) - mul r16.w, r16.w, r16.w - mul r16.w, r16.w, r19.w - ge r16.w, r16.w, l(0.001000) - and r16.w, r16.w, l(0x3f800000) - mul r23.z, r15.w, r16.w - div r20.xw, r24.xxxy, r18.yyyy - max r20.xw, r20.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) - min r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) - ge r15.w, r23.z, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r20.xw, r15.wwww, r20.xxxw - mad r15.w, r22.x, l(0.250000), l(0.250000) - mul r23.xy, r15.wwww, r20.xwxx - round_ni r18.xy, r18.xwxx - mul r20.xw, r18.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r20.xw, r20.xxxw - add r22.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r15.w, r20.xwxx, r22.xyxx - add r20.xw, r15.wwww, r20.xxxw - mul r15.w, r20.w, r20.x - add r16.w, r20.w, r20.x - frc r15.w, r15.w - frc r22.w, r16.w - add r20.xw, r18.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) - mul r20.xw, r20.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r20.xw, r20.xxxw - add r24.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r16.w, r20.xwxx, r24.xyxx - add r20.xw, r16.wwww, r20.xxxw - mul r16.w, r20.w, r20.x - add r18.w, r20.w, r20.x - frc r24.x, r16.w - frc r24.y, r18.w - mad r16.w, r15.w, l(0.399999976), l(0.600000) - mul r18.w, r16.w, l(0.250000) - mad r18.xy, r14.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r18.xyxx - mad r20.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r18.xy, r20.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r18.xyxx - add r18.xy, r18.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) - mul r26.x, r18.x, l(1.250000) - lt r18.x, r18.y, l(0.000000) - movc r18.x, r18.x, l(1.250000), l(0.750000) - mul r26.y, r18.x, r18.y - mad r15.w, cb0[102].x, l(3.000000), r15.w - frc r15.w, r15.w - add r18.xy, r15.wwww, l(-0.200000, -0.850000, 0.000000, 0.000000) - mul_sat r18.xy, r18.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) - mad r20.xw, r18.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r18.xy, r18.xyxx, r18.xyxx - mul r18.xy, r18.xyxx, r20.xwxx - mul r15.w, r18.y, r18.x - dp2 r18.x, r26.xyxx, r26.xyxx - sqrt r18.x, r18.x - mad r16.w, -r16.w, l(0.250000), r18.x - div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w - mul_sat r16.w, r16.w, r18.x - mad r18.x, r16.w, l(-2.000000), l(3.000000) - mul r16.w, r16.w, r16.w - mul r16.w, r16.w, r18.x - ge r16.w, r16.w, l(0.001000) - and r16.w, r16.w, l(0x3f800000) - mul r22.z, r15.w, r16.w - div r18.xy, r26.xyxx, r18.wwww - max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r15.w, r22.z, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r18.xy, r15.wwww, r18.xyxx - mad r15.w, r24.x, l(0.250000), l(0.250000) - mul r22.xy, r15.wwww, r18.xyxx - mul r23.xyzw, r19.zzzz, r23.xyzw - mad r23.xyzw, r25.xyzw, r19.yyyy, r23.xyzw - mad r22.xyzw, r22.xyzw, r19.xxxx, r23.xyzw - round_ni r23.xyzw, r21.yxyz - mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r24.xyzw, r24.xyzw - add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r15.w, r24.xyxx, r25.xyxx - add r18.xy, r15.wwww, r24.xyxx - mul r15.w, r18.y, r18.x - add r16.w, r18.y, r18.x - frc r15.w, r15.w - frc r26.w, r16.w - add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) - mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r27.xyzw, r27.xyzw - add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r16.w, r27.xyxx, r28.xyxx - add r18.xy, r16.wwww, r27.xyxx - mul r16.w, r18.y, r18.x - add r18.x, r18.y, r18.x - frc r24.x, r16.w - frc r24.y, r18.x - mad r16.w, r15.w, l(0.399999976), l(0.600000) - mul r18.x, r16.w, l(0.250000) - mad r23.xyzw, r14.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r23.xyzw - mad r18.yw, r24.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r18.yw, r18.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r23.xxxy - add r18.yw, r18.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) - mul r23.x, r18.y, l(1.250000) - lt r14.x, r18.w, l(0.000000) - movc r14.x, r14.x, l(1.250000), l(0.750000) - mul r23.y, r14.x, r18.w - mad r14.x, cb0[102].x, l(4.345600), r15.w - frc r14.x, r14.x - add r18.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) - mul_sat r18.yw, r18.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) - mad r20.xw, r18.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r18.yw, r18.yyyw, r18.yyyw - mul r18.yw, r18.yyyw, r20.xxxw - mul r14.x, r18.w, r18.y - dp2 r15.w, r23.xyxx, r23.xyxx - sqrt r15.w, r15.w - mad r15.w, -r16.w, l(0.250000), r15.w - div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.x - mul_sat r15.w, r15.w, r16.w - mad r16.w, r15.w, l(-2.000000), l(3.000000) - mul r15.w, r15.w, r15.w - mul r15.w, r15.w, r16.w - ge r15.w, r15.w, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r26.z, r14.x, r15.w - div r18.xy, r23.xyxx, r18.xxxx - max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r14.x, r26.z, l(0.001000) - and r14.x, r14.x, l(0x3f800000) - mul r18.xy, r14.xxxx, r18.xyxx - mad r14.x, r24.x, l(0.250000), l(0.250000) - mul r26.xy, r14.xxxx, r18.xyxx - dp2 r14.x, r24.zwzz, r25.zwzz - add r18.xy, r14.xxxx, r24.zwzz - mul r14.x, r18.y, r18.x - add r15.w, r18.y, r18.x - frc r14.x, r14.x - frc r24.w, r15.w - dp2 r15.w, r27.zwzz, r28.zwzz - add r18.xy, r15.wwww, r27.zwzz - mul r15.w, r18.y, r18.x - add r16.w, r18.y, r18.x - frc r18.x, r15.w - frc r18.y, r16.w - mad r15.w, r14.x, l(0.399999976), l(0.600000) - mul r16.w, r15.w, l(0.250000) - mad r18.yw, r18.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r18.yw, r18.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r23.zzzw - add r18.yw, r18.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) - mul r23.x, r18.y, l(1.250000) - lt r18.y, r18.w, l(0.000000) - movc r18.y, r18.y, l(1.250000), l(0.750000) - mul r23.y, r18.y, r18.w - mad r14.x, cb0[102].x, l(4.345600), r14.x - frc r14.x, r14.x - add r18.yw, r14.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) - mul_sat r18.yw, r18.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) - mad r20.xw, r18.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r18.yw, r18.yyyw, r18.yyyw - mul r18.yw, r18.yyyw, r20.xxxw - mul r14.x, r18.w, r18.y - dp2 r18.y, r23.xyxx, r23.xyxx - sqrt r18.y, r18.y - mad r15.w, -r15.w, l(0.250000), r18.y - div r18.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w - mul_sat r15.w, r15.w, r18.y - mad r18.y, r15.w, l(-2.000000), l(3.000000) - mul r15.w, r15.w, r15.w - mul r15.w, r15.w, r18.y - ge r15.w, r15.w, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r24.z, r14.x, r15.w - div r18.yw, r23.xxxy, r16.wwww - max r18.yw, r18.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) - min r18.yw, r18.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) - ge r14.x, r24.z, l(0.001000) - and r14.x, r14.x, l(0x3f800000) - mul r18.yw, r14.xxxx, r18.yyyw - mad r14.x, r18.x, l(0.250000), l(0.250000) - mul r24.xy, r14.xxxx, r18.ywyy - round_ni r18.xy, r21.xzxx - mul r20.xw, r18.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r20.xw, r20.xxxw - add r21.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r14.x, r20.xwxx, r21.xyxx - add r20.xw, r14.xxxx, r20.xxxw - mul r14.x, r20.w, r20.x - add r15.w, r20.w, r20.x - frc r14.x, r14.x - frc r21.w, r15.w - add r20.xw, r18.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) - mul r20.xw, r20.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r20.xw, r20.xxxw - add r23.xy, r20.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r15.w, r20.xwxx, r23.xyxx - add r20.xw, r15.wwww, r20.xxxw - mul r15.w, r20.w, r20.x - add r16.w, r20.w, r20.x - frc r23.x, r15.w - frc r23.y, r16.w - mad r15.w, r14.x, l(0.399999976), l(0.600000) - mul r16.w, r15.w, l(0.250000) - mad r18.xy, r14.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r18.xyxx - mad r20.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r18.xy, r20.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r18.xyxx - add r18.xy, r18.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) - mul r25.x, r18.x, l(1.250000) - lt r18.x, r18.y, l(0.000000) - movc r18.x, r18.x, l(1.250000), l(0.750000) - mul r25.y, r18.x, r18.y - mad r14.x, cb0[102].x, l(4.345600), r14.x - frc r14.x, r14.x - add r18.xy, r14.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) - mul_sat r18.xy, r18.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) - mad r20.xw, r18.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r18.xy, r18.xyxx, r18.xyxx - mul r18.xy, r18.xyxx, r20.xwxx - mul r14.x, r18.y, r18.x - dp2 r18.x, r25.xyxx, r25.xyxx - sqrt r18.x, r18.x - mad r15.w, -r15.w, l(0.250000), r18.x - div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r16.w - mul_sat r15.w, r15.w, r18.x - mad r18.x, r15.w, l(-2.000000), l(3.000000) - mul r15.w, r15.w, r15.w - mul r15.w, r15.w, r18.x - ge r15.w, r15.w, l(0.001000) - and r15.w, r15.w, l(0x3f800000) - mul r21.z, r14.x, r15.w - div r18.xy, r25.xyxx, r16.wwww - max r18.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r18.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r14.x, r21.z, l(0.001000) - and r14.x, r14.x, l(0x3f800000) - mul r18.xy, r14.xxxx, r18.xyxx - mad r14.x, r23.x, l(0.250000), l(0.250000) - mul r21.xy, r14.xxxx, r18.xyxx - mul r23.xyzw, r19.zzzz, r24.xyzw - mad r23.xyzw, r26.xyzw, r19.yyyy, r23.xyzw - mad r19.xyzw, r21.xyzw, r19.xxxx, r23.xyzw - max r18.xy, r19.zwzz, r22.zwzz - mad r19.zw, -r13.xxxx, r9.wwww, l(0.000000, 0.000000, 1.000000, 1.010000) - add r14.x, r18.y, l(-0.100000) - ge r14.x, r14.x, r19.z - and r14.x, r14.x, l(0x3f800000) - mul r14.x, r14.x, r18.x - ge r2.w, cb1[r2.w + 12].x, l(0.010000) - and r2.w, r2.w, l(0x3f800000) - mul r2.w, r2.w, r14.x - lt r14.x, l(0.001000), r2.w - add r18.xy, r19.xyxx, r22.xyxx - mul r15.w, cb0[102].x, cb0[196].z - mul r19.y, r15.w, l(0.750000) - dp2 r15.w, r17.xzxx, r17.xzxx - max r15.w, r15.w, l(1.175494351E-38) - rsq r15.w, r15.w - mul r17.xz, r15.wwww, r17.xxzx - add r17.xz, |r17.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) - mul r20.xw, r17.xxxz, r17.xxxz - mul r17.xz, r17.xxzx, r20.xxwx - max r17.xz, r17.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) - dp2 r15.w, r17.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) - div r17.xz, r17.xxzx, r15.wwww - sample_b_indexable(texture2d)(float,float,float,float) r21.xyz, r14.zwzz, t11.xyzw, s3, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r14.yzw, r14.ywyy, t11.wxyz, s3, cb0[108].x - mul r14.yzw, r17.xxxx, r14.yyzw - mad r14.yzw, r21.xxyz, r17.zzzz, r14.yyzw - movc r17.yw, r14.xxxx, r18.xxxy, r17.yyyw - mad r14.xy, r14.yzyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) - mov r19.x, l(0) - mad r21.xyzw, r13.zwyw, cb0[196].zzzz, r19.xyxy - sample_b_indexable(texture2d)(float,float,float,float) r13.y, r21.xyxx, t11.xwyz, s3, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r13.z, r21.zwzz, t11.xywz, s3, cb0[108].x - mul r13.z, r17.x, r13.z - mad r13.y, r13.y, r17.z, r13.z - mad r13.yz, r14.xxyx, r13.yyyy, r17.yywy - ge r13.w, r18.z, r19.w - and r13.w, r13.w, l(0x3f800000) - max r2.w, r2.w, r13.w - add r13.w, -r14.w, l(1.000000) - mad r9.w, r13.x, r9.w, -r13.w - mul_sat r9.w, r9.w, l(9.999998) - mad r13.x, r9.w, l(-2.000000), l(3.000000) - mul r9.w, r9.w, r9.w - mul r9.w, r9.w, r13.x - max r2.w, r2.w, r9.w - mad r13.xw, -r7.zzzy, l(1.000000, 0.000000, 0.000000, 0.000000), r20.yyyz - dp2 r9.w, r13.xwxx, r13.xwxx - lt r14.x, l(0.0000610351562), r9.w - rsq r9.w, r9.w - mul r13.xw, r9.wwww, r13.xxxw - mov r13.xw, -r13.xxxw - movc r17.z, r14.x, r13.x, l(-1.000000) - and r17.y, r13.w, r14.x - min r9.w, r3.z, l(0.050000) - add r13.x, -r3.z, r9.w - mad r13.x, r2.w, r13.x, r3.z - mad r11.y, -r11.z, r11.y, l(1.000000) - mul r11.y, r11.y, r11.x - mad r5.w, -r5.w, r11.w, l(1.000000) - mul r5.w, r5.w, r11.y - mad r5.w, r5.w, l(-0.500000), l(1.000000) - mov r17.x, l(0) - mad r3.xyw, -r3.xyxw, r6.wwww, r17.zxzy - mad r3.xyw, r13.yyyy, r3.xyxw, r7.xyxz - mul r14.xyz, r7.zxyz, r17.xyzx - mad r14.xyz, r7.yzxy, r17.yzxy, -r14.xyzx - add r14.xyz, -r3.xywx, r14.xyzx - mad r3.xyw, r13.zzzz, r14.xyxz, r3.xyxw - dp3 r6.w, r3.xywx, r3.xywx - rsq r6.w, r6.w - mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz - mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz - dp3 r6.w, r3.xywx, r3.xywx - rsq r6.w, r6.w - mul r3.xyw, r3.xyxw, r6.wwww - mul r6.w, r11.w, r11.x - mad r6.w, -r6.w, l(0.200000), r13.x - min r11.x, r13.x, l(0.200000) - max r3.z, r6.w, r11.x - mul r6.xyz, r5.wwww, r6.xyzx - dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r6.w, r6.w, l(-0.700000) - mul_sat r6.w, r6.w, l(-2.50000024) - mad r11.x, r6.w, l(-2.000000), l(3.000000) - mul r6.w, r6.w, r6.w - mul r6.w, r6.w, r11.x - mad r6.w, r6.w, l(0.500000), l(1.000000) - mul r11.x, r12.w, r2.w - mad r11.yzw, r4.xxyz, r6.wwww, -r4.xxyz - mad r11.xyz, r11.xxxx, r11.yzwy, r4.xyzx - mul r4.xyz, r5.wwww, r11.xyzx -else - mov r3.xyw, r7.xyxz - mov r9.w, l(0.010000) - mov r2.w, l(0) -endif -mul r5.w, r5.y, l(0.040000) -mad r6.w, -r5.x, l(0.960000), l(0.960000) -mul r11.xyz, r4.xyzx, r6.wwww -mad r13.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx -mad r13.xyz, r5.xxxx, r13.xyzx, r5.wwww -mul r6.xyz, r6.wwww, r6.xyzx -mul r5.y, r3.z, r3.z -max r5.y, r5.y, l(0.00781250000) -max r5.w, v5.z, l(9.999999939E-09) -div r14.xy, v5.xyxx, r5.wwww -max r5.w, v6.z, l(9.999999939E-09) -div r14.zw, v6.xxxy, r5.wwww -add r14.xy, -r14.zwzz, r14.xyxx -mul r17.xy, r14.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) -sqrt r17.xy, |r17.xyxx| -sqrt r17.xy, r17.xyxx -mov r14.z, -r14.y -lt r14.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xxxz -lt r14.xz, r14.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) -iadd r14.xy, -r14.ywyy, r14.xzxx -itof r14.xy, r14.xyxx -mul r14.xy, r14.xyxx, r17.xyxx -mad o1.xy, r14.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) -lt r5.w, l(0.500000), r2.w -movc o1.w, r5.w, l(0.700000), l(0.400000) -add r14.xyz, cb0[197].xyzx, cb3[0].xyzx -mad r14.xyz, cb0[187].wwww, r14.xyzx, -cb3[0].xyzx -mov r14.w, l(0.0000610351562) -dp3 r5.w, r14.xzwx, r14.xzwx -rsq r5.w, r5.w -mul r17.xyz, r5.wwww, r14.xwzx -add r18.xyz, cb0[191].xyzx, -cb3[3].xyzx -mad r18.xyz, cb0[198].yyyy, r18.xyzx, cb3[3].xyzx -add r5.w, l(1.000000), -cb3[3].w -mad r5.w, cb0[198].w, r5.w, cb3[3].w -mul r19.xyz, r5.wwww, r18.xyzx -mov r10.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r20.xy, r10.xyzz, t3.xyzw -add r10.z, r20.x, l(-1.000000) -mad r10.z, cb4[34].x, r10.z, l(1.000000) -add r11.w, -r10.z, l(1.000000) -mad r10.z, cb0[187].z, r11.w, r10.z -dp3 r11.w, r7.xyzx, r14.xyzx -mul r20.xzw, r6.xxyz, cb0[186].zzzz -mul r21.xyz, r20.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) -dp3 r12.w, r11.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -dp2 r13.w, cb0[6].xzxx, cb0[6].xzxx -rsq r13.w, r13.w -mul r22.xy, r13.wwww, cb0[6].xzxx -dp2 r13.w, r17.xzxx, r22.xyxx -mov_sat r13.w, -r13.w -add r22.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx -mad r14.w, r11.w, l(0.500000), l(-1.000000) -mad r14.w, -r11.w, r14.w, -r11.w -add r15.w, l(0.750000), -|cb0[6].y| -add_sat r15.w, r15.w, r15.w -mad r16.w, r15.w, l(-2.000000), l(3.000000) -mul r15.w, r15.w, r15.w -mul r15.w, r15.w, r16.w -mul r15.w, r13.w, r15.w -mul r15.w, r22.x, r15.w -add r14.w, r14.w, l(0.500000) -mad r11.w, r15.w, r14.w, r11.w -mad r11.w, cb0[197].w, cb0[198].x, r11.w -max r11.w, r11.w, l(-1.000000) -min r11.w, r11.w, l(1.000000) -add r11.w, r11.w, l(-0.250000) -mul r11.w, r11.w, l(1.33333337) -max r11.w, r11.w, l(0.000000) -mad r14.w, r11.w, l(-2.000000), l(3.000000) -mul r11.w, r11.w, r11.w -mul r11.w, r11.w, r14.w -dp3 r14.w, r7.xyzx, cb0[6].xyzx -add r14.w, r14.w, l(-0.250000) -mul_sat r14.w, r14.w, l(1.33333337) -mad r15.w, r14.w, l(-2.000000), l(3.000000) -mul r14.w, r14.w, r14.w -mul r14.w, r14.w, r15.w -mul r15.w, r5.z, r20.y -min r16.w, r5.z, r20.y -min r17.w, r11.w, r16.w -mul r18.w, r14.w, r15.w -dp3 r19.w, r7.xyzx, cb0[192].xyzx -add_sat r19.w, r19.w, cb0[193].x -mad r19.w, r19.w, cb0[193].y, cb0[193].z -mul r21.w, r17.w, cb0[187].y -add r23.xyz, -r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r23.xyz, r21.wwww, r23.xyzx, r12.xyzx -mul r23.xyz, r19.wwww, r23.xyzx -mad r19.w, r8.w, l(0.350000024), l(0.650000) -min r19.w, r19.w, l(1.500000) -max r24.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) -min r24.xyz, r24.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) -add r8.w, -r19.w, r24.x -mad r8.w, cb0[187].x, r8.w, r19.w -mul r25.xyz, r8.wwww, r23.xyzx -mul r25.xyz, r25.xyzx, cb0[186].wwww -dp3 r8.w, r19.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r19.xyz, r18.xyzx, r5.wwww, -r8.wwww -mad r19.xyz, r17.wwww, r19.xyzx, r8.wwww -mul r23.xyz, r23.xyzx, r24.yyyy -mad r22.yzw, r18.xxyz, cb0[198].yyyy, r22.yyyy -mad r19.xyz, r23.xyzx, r22.yzwy, r19.xyzx -mad r19.xyz, r19.xyzx, cb0[186].yyyy, -r25.xyzx -mad r19.xyz, r10.zzzz, r19.xyzx, r25.xyzx -dp3 r8.w, r21.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r21.xyz, r20.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww -mad r21.xyz, r21.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww -mad_sat r8.w, r14.w, r15.w, r11.w -mad r22.yzw, r6.xxyz, cb0[186].zzzz, -r21.xxyz -mad r21.xyz, r8.wwww, r22.yzwy, r21.xyzx -mad r22.yzw, r4.xxyz, r6.wwww, -r21.xxyz -mad r21.xyz, r17.wwww, r22.yzwy, r21.xyzx -mad r22.yzw, r4.xxyz, r6.wwww, -r12.wwww -mad r22.yzw, r22.yyzw, l(0.000000, 1.200000, 1.200000, 1.200000), r12.wwww -mad r22.yzw, -r6.xxyz, cb0[186].zzzz, r22.yyzw -mad r20.xzw, r18.wwww, r22.yyzw, r20.xxzw -dp3 r8.w, r21.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -max r11.w, r8.w, l(0.001000) -div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w -mul r8.w, r8.w, r11.w -max r8.w, r8.w, l(0.000000) -min r8.w, r8.w, l(1.500000) -mad r21.xyz, r21.xyzx, r8.wwww, -r20.xzwx -mad r20.xzw, r10.zzzz, r21.xxyz, r20.xxzw -mad r8.w, -r14.w, r15.w, r17.w -mad r8.w, r10.z, r8.w, r18.w -add r11.w, l(1.000000), -cb0[186].z -mad r11.w, r8.w, r11.w, cb0[186].z -add r14.w, r14.y, l(-0.500000) -mad r21.y, r10.z, r14.w, l(0.500000) -dp3_sat r23.x, r3.xywx, r2.xyzx -mov r21.xz, cb0[6].xxzx -dp3 r14.w, r21.xyzx, r21.xyzx -max r14.w, r14.w, l(1.175494351E-38) -rsq r14.w, r14.w -mul r21.xyz, r14.wwww, r21.xyzx -add r21.xyz, r21.xyzx, r21.xyzx -mad r14.xyz, r14.xyzx, r10.zzzz, r21.xyzx -add r14.w, r10.z, l(2.000000) -mad r14.xyz, r2.xyzx, r14.wwww, r14.xyzx -dp3 r14.w, r14.xyzx, r14.xyzx -rsq r14.w, r14.w -mul r14.xyz, r14.wwww, r14.xyzx -dp3 r14.x, r3.xywx, r14.xyzx -mul r14.y, r5.y, r5.y -mad r14.z, r14.x, r14.y, -r14.x -mad r14.x, r14.z, r14.x, l(1.000000) -mul r14.x, r14.x, r14.x -add r14.z, l(1.000000), -cb5[1].z -mad r14.z, r4.w, cb5[1].z, r14.z -mul r21.xyz, r19.xyzx, r20.xzwx -ne r14.w, r14.x, r14.y -div r14.x, r14.y, r14.x -movc r14.x, r14.w, r14.x, l(1.000000) -mad r14.y, r23.x, l(2.000000), r5.y -add r14.y, r14.y, l(0.000100) -div r14.y, l(0.500000), r14.y -mad r14.x, r14.x, r14.y, l(-0.0000610351562) -max r14.x, r14.x, l(0.000000) -min r14.x, r14.x, l(20.000000) -mul r14.xyw, r13.xyxz, r14.xxxx -mad r8.w, r8.w, l(0.500000), l(0.500000) -mul r8.w, r11.w, r8.w -mul r19.xyz, r8.wwww, r19.xyzx -mul r14.xyw, r14.xyxw, r19.xyxz -mul r14.xyw, r14.xyxw, cb0[199].wwww -mad r14.xyw, r21.xyxz, r14.zzzz, r14.xyxw -dp3 r8.w, r14.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -add r15.w, r8.w, l(-0.500000) -max r15.w, r15.w, l(0.000000) -min r15.w, r15.w, l(0.500000) -mov r19.y, l(0) -mov r19.xz, cb0[195].yyxy -mul r21.xyz, r19.xyzx, cb0[6].zxyz -mad r19.xyz, cb0[6].yzxy, r19.yzxy, -r21.xyzx -dp3 r17.w, r19.xyzx, r19.xyzx -rsq r17.w, r17.w -mul r19.xyz, r17.wwww, r19.xyzx -dp3 r17.w, r2.xyzx, r7.xyzx -add r21.xy, -|r17.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) -dp3 r17.x, r17.xyzx, r7.xyzx -add r17.y, -r10.z, l(1.000000) -add r9.w, -r3.z, r9.w -mad r2.w, r2.w, r9.w, r3.z -mul r25.y, r2.w, r2.w -mul r26.x, r23.x, r23.x -mul r26.z, r23.x, r26.x -mul r9.w, r25.y, r25.y -mul r25.z, r25.y, r9.w -mov r23.yzw, l(0,0.0365463011,9.063200,0.990440) -dp2 r24.x, l(3.327070, 1.000000, 0.000000, 0.000000), r23.xyxx -dp2 r24.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r23.xzxx -mov r25.x, l(1.000000) -dp2 r9.w, r24.xyxx, r25.xyxx -mov r26.yw, l(0,9.044010,0,1.000000) -dp3 r27.x, l(3.596850, -1.367720, 1.000000, 0.000000), r26.xzwx -dp3 r27.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r26.xyzx -mov r28.x, l(5.565890) -mov r28.yz, r26.xxzx -dp3 r27.z, l(1.000000, 19.788601, -20.212299, 0.000000), r28.xyzx -dp3 r17.z, r27.xyzx, r25.xyzx -div r9.w, r9.w, r17.z -dp2 r24.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r23.xwxx -mov r26.x, l(1.296780) -mov r26.y, r23.x -dp2 r24.y, l(1.000000, -0.755907, 0.000000, 0.000000), r26.xyxx -dp2 r17.z, r24.xyxx, r25.xyxx -dp3 r27.x, l(2.923380, 59.418800, 1.000000, 0.000000), r26.yzwy -mov r26.xw, l(20.322500,0,0,121.563004) -dp3 r27.y, l(1.000000, -27.030199, 222.591995, 0.000000), r26.xyzx -dp3 r27.z, l(626.130005, 316.627014, 1.000000, 0.000000), r26.yzwy -dp3 r18.w, r27.xyzx, r25.xyzx -div r17.z, r17.z, r18.w -mad r22.yzw, r13.xxyz, r9.wwww, r17.zzzz -add r9.w, r9.w, r17.z -mad r15.w, r15.w, r15.w, l(1.000000) -add r14.xyw, -r8.wwww, r14.xyxw -mad r14.xyw, r15.wwww, r14.xyxw, r8.wwww -mad r21.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) -add r8.w, -r21.z, r21.w -add r15.w, -r21.z, r21.x -div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w -mul_sat r8.w, r8.w, r15.w -mad r15.w, r8.w, l(-2.000000), l(3.000000) -mul r8.w, r8.w, r8.w -mul r8.w, r8.w, r15.w -mul r23.yzw, r8.wwww, cb0[194].xxyz -mul r23.yzw, r23.yyzw, cb0[194].wwww -dp3 r8.w, r8.xyzx, r19.xyzx -add_sat r8.w, r8.w, l(1.000000) -min r5.z, r5.z, r8.w -min r5.z, r20.y, r5.z -mul r23.yzw, r5.zzzz, r23.yyzw -mad r24.xyw, r4.xyxz, r6.wwww, l(-0.250000, -0.250000, 0.000000, -0.250000) -mad r24.xyw, cb0[195].zzzz, r24.xyxw, l(0.250000, 0.250000, 0.000000, 0.250000) -dp3_sat r5.z, r19.xyzx, r7.xyzx -mul r19.xyz, r5.zzzz, r24.xywx -max r5.z, r15.y, r15.x -max r5.z, r15.z, r5.z -mul r5.z, r5.z, l(0.500000) -max r5.z, r5.z, l(1.000000) -div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z -mul r15.xyz, r5.zzzz, r15.xyzx -mad r18.xyz, r18.xyzx, r5.wwww, -r15.xyzx -mad r15.xyz, r10.zzzz, r18.xyzx, r15.xyzx -dp3 r5.z, r16.xyzx, r7.xyzx -mul r5.w, r7.w, r5.z -mad r8.w, r17.x, l(0.500000), l(-1.000000) -mad r8.w, -r17.x, r8.w, l(0.500000) -mad r5.z, -r5.z, r7.w, r8.w -mad_sat r5.z, r10.z, r5.z, r5.w -mul r15.xyz, r5.zzzz, r15.xyzx -mad r5.z, r13.w, r10.z, r17.y -mul r5.z, r22.x, r5.z -mul r15.xyz, r5.zzzz, r15.xyzx -mul_sat r5.z, r21.y, l(5.00000048) -mad r5.w, r5.z, l(-2.000000), l(3.000000) -mul r5.z, r5.z, r5.z -mul r5.z, r5.z, r5.w -mul r15.xyz, r5.zzzz, r15.xyzx -mul r15.xyz, r16.wwww, r15.xyzx -add r5.z, r12.w, l(-0.100000) -mul_sat r5.z, r5.z, l(-16.666666) -mad r5.w, r5.z, l(-2.000000), l(3.000000) -mul r5.z, r5.z, r5.z -mul r5.z, r5.z, r5.w -mad r5.z, r5.z, r10.z, r17.y -mul r15.xyz, r5.zzzz, r15.xyzx -max r16.xyz, r11.xyzx, l(0.150000, 0.150000, 0.150000, 0.000000) -mul r15.xyz, r15.xyzx, r16.xyzx -mad r15.xyz, r23.yzwy, r19.xyzx, r15.xyzx -add r14.xyw, r14.xyxw, r15.xyxz -utof r5.zw, r10.xxxy -mul r15.xy, r5.zwzz, l(0.031250, 0.031250, 0.000000, 0.000000) -round_ni r15.xy, r15.xyxx -mad r7.w, r15.y, cb2[1].y, r15.x -mul r7.w, r7.w, l(8.000000) -ftoi r7.w, r7.w -mad r8.w, -cb0[85].y, cb2[2].w, v0.w -round_ni r8.w, r8.w -add r10.z, l(-1.000000), cb2[1].w -max r12.w, r8.w, l(0.000000) -min r10.z, r10.z, r12.w -mul r12.w, r10.z, l(8.000000) -ftoi r12.w, r12.w -dp3 r13.w, -r2.xyzx, r3.xywx -add r13.w, r13.w, r13.w -mad r15.xyz, r3.xywx, -r13.wwww, -r2.xyzx -max r2.w, r2.w, l(0.001000) -log r2.w, r2.w -mad r2.w, r2.w, l(1.200000), l(5.000000) -sample_l_indexable(texturecube)(float,float,float,float) r15.xyz, r15.xyzx, t15.xyzw, s0, r2.w -add r2.w, -r9.w, l(1.000000) -div r2.w, r2.w, r9.w -mul r16.xyz, r2.wwww, r13.xyzx -mad r16.xyz, r16.xyzx, r22.yzwy, r22.yzwy -mul r15.xyz, r15.xyzx, r16.xyzx -mul r2.w, r24.z, cb0[186].w -mul r2.w, r11.w, r2.w -mul r15.xyz, r2.wwww, r15.xyzx -mad r12.xyz, r15.xyzx, r12.xyzx, r14.xywx -ge r2.w, r10.z, r8.w -iadd r8.w, r12.w, cb0[110].y -mad r9.w, r17.y, l(-0.250000), l(0.750000) -mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) -add r6.w, -r5.y, l(0.010000) -ge r5.x, r5.x, l(0.500000) -and r5.x, r5.x, l(0x3f800000) -mov r15.w, l(1.000000) -mov r14.xyw, r12.xyxz -mov r10.z, l(0) -loop - ilt r11.w, l(7), r10.z - breakc_nz r11.w - iadd r11.w, r7.w, r10.z - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx - iadd r12.w, r8.w, r10.z - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.w, r12.w, l(0), t0.xxxx - and r11.w, r11.w, r12.w - and r11.w, r2.w, r11.w - ishl r12.w, r10.z, l(5) - mov r16.xyz, r14.xywx - mov r13.w, r11.w - loop - breakc_z r13.w - firstbit_lo r16.w, r13.w - ishl r17.x, l(1), r16.w - xor r17.x, r13.w, r17.x - iadd r16.w, r12.w, r16.w - bfi r18.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) - ftou r17.y, cb3[r18.y + 6].w - ieq r17.y, r17.y, l(1) - if_nz r17.y - add r15.xyz, v2.xyzx, -cb3[r18.x + 6].xyzx - and r19.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r18.y + 6].xzyx - and r21.yzw, l(0, 0x0000ffff, 0x0000ffff, 0x0000ffff), cb3[r18.z + 6].yyxz - ushr r22.xyz, cb3[r18.y + 6].xzyx, l(16, 16, 16, 0) - ushr r23.yzw, cb3[r18.z + 6].yyxz, l(0, 16, 16, 16) - f16tof32 r19.xyz, r19.xyzx - f16tof32 r21.yzw, r21.yyzw - f16tof32 r22.xyz, r22.xyzx - f16tof32 r24.xyw, r23.zyzw - mov r25.xz, r19.xxzx - mov r25.yw, r22.xxxz - dp4 r17.y, r15.xyzw, r25.xyzw - mov r22.x, r19.y - mov r22.z, r21.z - mov r22.w, r24.x - dp4 r17.z, r15.xyzw, r22.xyzw - mov r24.xz, r21.yywy - dp4 r15.x, r15.xyzw, r24.xyzw - max r15.y, |r17.z|, |r17.y| - max r15.x, |r15.x|, r15.y - mad r15.y, cb3[r18.w + 6].x, l(0.500000), l(0.500000) - add r15.x, -r15.y, r15.x - mad r15.y, -cb3[r18.w + 6].x, l(0.500000), l(0.500000) - div_sat r15.x, r15.x, r15.y - add r15.x, -r15.x, l(1.000000) - mul r15.x, r15.x, r15.x - else - mov r15.x, l(1.000000) - endif - lt r15.y, r15.x, l(0.001000) - if_nz r15.y - mov r13.w, r17.x - continue - endif - ishl r15.y, r16.w, l(3) - lt r15.z, cb3[r15.y + 6].w, l(1.500000) - if_nz r15.z - bfi r15.z, l(29), l(3), r16.w, l(3) - ieq r17.y, l(16), cb3[r15.z + 6].w - add r17.z, cb0[198].z, cb3[r15.z + 6].z - lt r17.z, r17.z, l(0.500000) - or r17.y, r17.z, r17.y - if_z r17.y - bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) - ftou r16.w, cb3[r15.y + 6].w - and r16.w, r16.w, l(1) - ieq r18.y, r16.w, l(0) - not r18.y, r18.y - lt r19.x, l(0.000000), cb3[r17.y + 6].z - and r18.y, r18.y, r19.x - ieq r19.x, l(4), cb3[r15.z + 6].w - movc r19.y, r16.w, l(0), l(1.000000) - mad r19.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) - add r22.z, r19.z, -|cb3[r17.y + 6].x| - add r22.x, -r22.z, cb3[r17.y + 6].y - add r19.z, -|r22.z|, l(1.000000) - add r19.z, -|r22.x|, r19.z - max r19.z, r19.z, l(0.000488281250) - ge r19.w, cb3[r17.y + 6].x, l(0.000000) - movc r22.y, r19.w, r19.z, -r19.z - dp3 r19.z, r22.xyzx, r22.xyzx - rsq r19.z, r19.z - mul r21.yzw, r19.zzzz, r22.xxyz - add r19.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y - max r19.z, r19.z, l(0.100000) - and r19.w, r19.x, l(0x3f800000) - add r19.z, r19.z, -cb3[r18.z + 6].w - mad r18.z, r19.w, r19.z, cb3[r18.z + 6].w - add r22.xyz, -v2.xyzx, cb3[r18.x + 6].xyzx - dp3 r19.z, r22.yzxy, -r21.yzwy - lt r19.w, l(0.500000), cb3[r17.z + 6].z - and r19.w, r19.w, r19.x - and r19.w, r19.w, l(0x3f800000) - mul r19.w, r19.y, r19.w - mad r23.yzw, -r21.wwyz, r19.zzzz, -r22.xxyz - mad r22.xyz, r19.wwww, r23.yzwy, r22.xyzx - dp3 r19.z, r22.xyzx, r22.xyzx - rsq r19.w, r19.z - mul r23.yzw, r19.wwww, r22.xxyz - if_nz r18.y - mul r24.xyz, r21.wyzw, cb3[r17.y + 6].zzzz - mad r25.xyz, -r24.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx - mad r24.xyz, r24.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx - dp3 r19.w, r25.xyzx, r25.xyzx - sqrt r19.w, r19.w - dp3 r20.y, r24.xyzx, r24.xyzx - sqrt r20.y, r20.y - mul r26.xyz, r21.yzwy, r23.yzwy - mad r26.xyz, r21.wyzw, r23.zwyz, -r26.xyzx - mul r27.xyz, r21.yzwy, r26.xyzx - mad r26.xyz, r26.zxyz, r21.zwyz, -r27.xyzx - dp3 r22.w, r26.xyzx, r26.xyzx - rsq r22.w, r22.w - mul r23.yzw, r22.wwww, r26.xxyz - dp3 r22.w, r25.xyzx, r24.xyzx - mad r22.w, r19.w, r20.y, r22.w - mad r22.w, r22.w, l(0.500000), l(1.000000) - div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w - dp3 r24.w, r23.yzwy, r25.xyzx - div r19.w, r24.w, r19.w - dp3 r24.x, r23.yzwy, r24.xyzx - div r20.y, r24.x, r20.y - add r19.w, r19.w, r20.y - mul_sat r19.w, r19.w, l(0.500000) - mul r19.w, r19.w, r22.w - else - mov r19.w, l(1.000000) - endif - lt r20.y, r18.z, l(0.000000) - if_nz r20.y - mul r20.y, cb3[r18.x + 6].w, cb3[r18.x + 6].w - mul r20.y, r19.z, r20.y - mad r20.y, -r20.y, r20.y, l(1.000000) - max r20.y, r20.y, l(0.000000) - add r19.z, r19.z, l(1.000000) - div r19.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.z - and r22.w, r18.y, l(0x3f800000) - add r24.x, -r19.z, r19.w - mad r19.z, r22.w, r24.x, r19.z - mul r20.y, r20.y, r20.y - mul r19.z, r19.z, r20.y - else - mul r24.xyz, r22.xyzx, cb3[r18.x + 6].wwww - dp3 r20.y, r24.xyzx, r24.xyzx - min r20.y, r20.y, l(1.000000) - add r20.y, -r20.y, l(1.000000) - log r20.y, r20.y - mul r18.z, r18.z, r20.y - exp r18.z, r18.z - mul r19.z, r18.z, r19.w - endif - dp3 r18.z, r23.zwyz, -r21.yzwy - add r18.z, r18.z, -cb3[r17.y + 6].z - mul_sat r18.z, r18.z, cb3[r17.y + 6].w - mad r18.z, r18.z, r18.z, l(-1.000000) - mad r18.z, r19.y, r18.z, l(1.000000) - mul r18.z, r18.z, r19.z - ftoi r19.y, cb3[r18.w + 6].w - not r18.y, r18.y - ige r19.z, r19.y, l(0) - and r18.y, r18.y, r19.z - if_nz r18.y - if_z r16.w - ishl r18.y, r19.y, l(2) - mul r21.yzw, v2.yyyy, cb6[r18.y + 33].xxyw - mad r21.yzw, cb6[r18.y + 32].xxyw, v2.xxxx, r21.yyzw - mad r21.yzw, cb6[r18.y + 34].xxyw, v2.zzzz, r21.yyzw - add r21.yzw, r21.yyzw, cb6[r18.y + 35].xxyw - div_sat r19.zw, r21.yyyz, r21.wwww - mad r19.zw, r19.zzzw, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy - else - ishl r18.y, r19.y, l(2) - dp3 r24.x, -r22.xyzx, cb6[r18.y + 32].xyzx - dp3 r24.y, -r22.xyzx, cb6[r18.y + 33].xyzx - dp3 r24.z, -r22.xyzx, cb6[r18.y + 34].xyzx - lt r18.y, |r24.x|, |r24.y| - and r18.y, r18.y, l(1) - dp2 r20.y, |r24.xyxx|, icb[r18.y + 0].xyxx - lt r20.y, r20.y, |r24.z| - movc r18.y, r20.y, l(2), r18.y - dp3 r20.y, r24.xyzx, icb[r18.y + 0].xyzx - lt r20.y, r20.y, l(0.000000) - bfi r18.y, l(31), l(1), r18.y, r20.y - ushr r20.y, r18.y, l(1) - dp3 r20.y, r24.xyzx, icb[r20.y + 0].xyzx - div r21.y, l(0.000244140625), cb6[r19.y + 0].w - add r21.y, -r21.y, l(0.500000) - utof r21.z, r18.y - ult r21.w, r18.y, l(2) - and r21.w, r21.w, l(2) - dp2 r21.w, r24.xzxx, icb[r21.w + 0].xzxx - mul r21.w, r21.w, icb[r18.y + 4].z - div r21.w, r21.w, |r20.y| - mad r21.z, r21.w, r21.y, r21.z - add r21.z, r21.z, l(0.500000) - mul_sat r22.x, r21.z, l(0.166666672) - iadd r21.z, l(-1), icb[r18.y + 4].y - dp2 r21.z, r24.yzyy, icb[r21.z + 0].xyxx - mul r18.y, r21.z, icb[r18.y + 4].w - div r18.y, r18.y, |r20.y| - mad_sat r22.y, -r18.y, r21.y, l(0.500000) - mad r19.zw, r22.xxxy, cb6[r19.y + 0].zzzw, cb6[r19.y + 0].xxxy - endif - sample_l_indexable(texture2d)(float,float,float,float) r18.y, r19.zwzz, t16.yxzw, s0, l(0.000000) - mul r18.z, r18.y, r18.z - endif - mul r15.x, r15.x, r18.z - lt r18.y, l(0.000100), r15.x - if_nz r18.y - if_nz r19.x - add r18.y, l(1.000000), -cb3[r17.z + 6].w - dp3 r18.z, r9.xyzx, r23.yzwy - add_sat r18.z, r18.z, l(0.500000) - mad r19.y, r18.z, l(-2.000000), l(3.000000) - mul r18.z, r18.z, r18.z - mul r18.z, r18.z, r19.y - mad r18.y, r18.z, cb3[r17.z + 6].w, r18.y - mul r18.y, r18.y, cb3[r17.z + 6].x - mul r18.y, r15.x, r18.y - add r19.yzw, -r16.xxyz, cb3[r15.y + 6].xxyz - mad r19.yzw, r18.yyyy, r19.yyzw, r16.xxyz - endif - if_z r19.x - dp3 r18.y, r7.xyzx, r23.yzwy - mov_sat r18.z, r18.y - if_nz cb3[r15.z + 6].w - if_z r16.w - ftoi r16.w, cb3[r15.z + 6].x - else - add r21.yzw, v2.xxyz, -cb3[r18.x + 6].xxyz - lt r22.xyz, |r21.zwwz|, |r21.yyzy| - and r20.y, r22.y, r22.x - lt r21.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r21.yyzw - ushr r22.x, cb3[r17.y + 6].w, l(24) - ubfe r22.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb3[r17.y + 6].wwww - movc r21.y, r21.y, r22.x, r22.y - and r17.y, l(255), cb3[r17.y + 6].w - movc r17.y, r21.z, r22.w, r17.y - ubfe r21.z, l(8), l(8), cb3[r15.z + 6].x - and r22.x, l(255), cb3[r15.z + 6].x - movc r21.z, r21.w, r21.z, r22.x - movc r17.y, r22.z, r17.y, r21.z - movc r17.y, r20.y, r21.y, r17.y - ilt r20.y, r17.y, l(80) - movc r16.w, r20.y, r17.y, l(-1) - endif - ige r17.y, r16.w, l(0) - if_nz r17.y - add r21.yzw, v2.xxyz, -cb3[r18.x + 6].xxyz - ishl r17.y, r16.w, l(2) - dp3 r18.x, r21.yzwy, r21.yzwy - max r18.x, r18.x, l(1.175494351E-38) - rsq r18.x, r18.x - mul r21.yzw, r18.xxxx, r21.yyzw - mad r21.yzw, -r21.yyzw, cb4[r16.w + 288].xxxx, v2.xxyz - mul r18.x, l(5.000000), cb4[r16.w + 288].y - mad r21.yzw, r9.xxyz, r18.xxxx, r21.yyzw - mul r22.xyzw, r21.zzzz, cb4[r17.y + 65].xyzw - mad r22.xyzw, cb4[r17.y + 64].xyzw, r21.yyyy, r22.xyzw - mad r22.xyzw, cb4[r17.y + 66].xyzw, r21.wwww, r22.xyzw - add r22.xyzw, r22.xyzw, cb4[r17.y + 67].xyzw - div r21.yzw, r22.xxyz, r22.wwww - ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.yzwy - ge r24.xyz, r21.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000) - add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz - mad r21.yz, r21.yyzy, r25.xxyx, cb4[r16.w + 344].xxyx - mad r25.xy, r21.yzyy, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) - round_ni r25.xy, r25.xyxx - mad r21.yz, r21.yyzy, cb4[400].zzwz, -r25.xxyx - add r26.xyzw, r21.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r27.xyzw, r26.xxzz, r26.xxzz - add r25.zw, -r21.yyyz, l(0.000000, 0.000000, 1.000000, 1.000000) - min r26.xz, r21.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) - max r28.xy, r21.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy - add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r21.yz, r27.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r21.yyzy - mul r30.xy, r21.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r21.yz, -r26.xxzx, r26.xxzx, r25.zzwz - add r21.yz, r21.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) - mul r31.xy, r21.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r21.yz, r26.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) - mov r30.z, r31.x - mov r30.w, r21.y - mov r29.z, r28.x - mov r29.w, r27.x - add r26.xyzw, r29.zwxz, r30.zwxz - mov r31.z, r30.y - mov r31.w, r21.z - mov r28.z, r29.y - mov r28.w, r27.z - add r27.xyz, r28.zywz, r31.zywz - div r29.xyz, r29.xzwx, r26.zwyz - add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r29.xyz, r29.yxzy, cb4[400].xxxx - div r28.xyz, r28.zywz, r27.xyzx - add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r28.xyz, r28.xyzx, cb4[400].yyyy - mov r29.w, r28.x - mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw - mad r21.yz, r25.xxyx, cb4[400].xxyx, r29.zzwz - mov r28.w, r29.y - mov r29.yw, r28.yyyz - mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy - mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz - mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw - mul r29.xyzw, r26.zwyz, r27.xxxy - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r30.xyxx, t2.xxxx, s2, r21.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r30.zwzz, t2.xxxx, s2, r21.w - mul r18.x, r18.x, r29.y - mad r17.y, r29.x, r17.y, r18.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r21.yzyy, t2.xxxx, s2, r21.w - mad r17.y, r29.z, r18.x, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.xyxx, t2.xxxx, s2, r21.w - mad r17.y, r29.w, r18.x, r17.y - mul r29.xyzw, r26.xyzw, r27.yyzz - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.xyxx, t2.xxxx, s2, r21.w - mad r17.y, r29.x, r18.x, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r31.zwzz, t2.xxxx, s2, r21.w - mad r17.y, r29.y, r18.x, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r28.zwzz, t2.xxxx, s2, r21.w - mad r17.y, r29.z, r18.x, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r25.xyxx, t2.xxxx, s2, r21.w - mad r17.y, r29.w, r18.x, r17.y - or r22.xyz, r22.xyzx, r24.xyzx - or r18.x, r22.y, r22.x - or r18.x, r22.z, r18.x - and r20.y, r21.w, l(0x7fffffff) - ult r20.y, l(0x7f800000), r20.y - or r18.x, r18.x, r20.y - mul r20.y, r26.y, r27.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r21.y, r25.zwzz, t2.xxxx, s2, r21.w - mad r17.y, r20.y, r21.y, r17.y - add r17.y, r17.y, l(-1.000000) - mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) - movc r16.w, r18.x, l(1.000000), r16.w - else - dp3 r17.y, r8.xyzx, r23.yzwy - add_sat r16.w, r17.y, l(1.000000) - endif - else - mov r16.w, l(1.000000) - endif - if_z cb3[r15.z + 6].w - mul r21.yzw, r15.xxxx, cb3[r15.y + 6].xxyz - add r17.y, l(1.000000), -cb3[r17.z + 6].y - max r18.x, r21.z, r21.y - max r18.x, r21.w, r18.x - mul r18.x, r9.w, r18.x - max r18.x, r18.x, l(1.000000) - div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x - mad r17.y, r18.x, cb3[r17.z + 6].y, r17.y - mul r21.yzw, r17.yyyy, cb3[r15.y + 6].xxyz - mul r17.y, l(0.250000), cb3[r17.z + 6].x - add_sat r18.x, r18.y, l(0.500000) - mad r20.y, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) - mad r17.y, r18.x, r20.y, r17.y - mul r21.yzw, r17.yyyy, r21.yyzw - mov r22.xyz, r20.xzwx - mov r24.xyz, r20.xzwx - mov r17.y, l(1.000000) - mov r18.x, l(0) - else - ieq r20.y, l(3), cb3[r15.z + 6].w - if_nz r20.y - mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) - add r20.y, -r25.x, r25.y - add r22.w, r21.x, -r25.x - div r20.y, l(1.000000, 1.000000, 1.000000, 1.000000), r20.y - mul_sat r20.y, r20.y, r22.w - mad r22.w, r20.y, l(-2.000000), l(3.000000) - mul r20.y, r20.y, r20.y - mul r20.y, r20.y, r22.w - mul r20.y, r16.w, r20.y - mul r15.x, r15.x, r20.y - mul r25.xyz, r23.wyzw, cb0[6].xyzx - mad r25.xyz, cb0[6].zxyz, r23.yzwy, -r25.xyzx - mul r26.xyz, r25.xyzx, cb0[6].zxyz - mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx - dp3 r20.y, r25.xyzx, r25.xyzx - rsq r20.y, r20.y - mul r25.xyz, r20.yyyy, r25.xyzx - dp3_sat r18.z, r7.xyzx, -r25.xyzx - mad r22.xyz, cb3[r17.z + 6].yyyy, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) - mov r24.xyz, l(0,0,0,0) - mov r17.y, l(1.000000) - mov r18.x, l(0) - else - ieq r20.y, l(1), cb3[r15.z + 6].w - if_nz r20.y - add r18.y, r18.y, cb3[r17.z + 6].x - max_sat r18.y, r18.y, l(-1.000000) - mul r18.z, r16.w, r18.y - mul r24.xyz, r6.xyzx, cb3[r17.z + 6].yyyy - mov r17.y, l(1.000000) - mov r18.x, l(0) - else - ieq r16.w, l(2), cb3[r15.z + 6].w - if_nz r16.w - add r18.y, l(0.050000), cb3[r17.z + 6].x - add r18.y, r3.z, -r18.y - mul_sat r18.y, r18.y, l(-10.000000) - mad r22.w, r18.y, l(-2.000000), l(3.000000) - mul r18.y, r18.y, r18.y - mul r18.y, r18.y, r22.w - add r22.w, l(1.000000), -cb3[r17.z + 6].z - mad r22.w, r5.x, cb3[r17.z + 6].z, r22.w - mul r17.y, r18.y, r22.w - else - mov r17.y, l(1.000000) - endif - and r18.x, r16.w, cb3[r17.z + 6].y - mov r24.xyz, l(0,0,0,0) - endif - and r22.xyz, r11.xyzx, r20.yyyy - endif - mov r21.yzw, cb3[r15.y + 6].xxyz - endif - ine r15.y, l(3), cb3[r15.z + 6].w - if_nz r15.y - mad r15.y, r18.x, r6.w, r5.y - mad r23.yzw, r0.xxyz, r1.wwww, r23.yyzw - dp3 r15.z, r23.yzwy, r23.yzwy - rsq r15.z, r15.z - mul r23.yzw, r15.zzzz, r23.yyzw - dp3 r15.z, r3.xywx, r23.yzwy - mul r16.w, r15.y, r15.y - mad r17.z, r15.z, r16.w, -r15.z - mad r15.z, r17.z, r15.z, l(1.000000) - mul r15.z, r15.z, r15.z - ne r17.z, r15.z, r16.w - div r15.z, r16.w, r15.z - movc r15.z, r17.z, r15.z, l(1.000000) - mad r15.y, r23.x, l(2.000000), r15.y - add r15.y, r15.y, l(0.000100) - div r15.y, l(0.500000), r15.y - mad r15.y, r15.z, r15.y, l(-0.0000610351562) - max r15.y, r15.y, l(0.000000) - min r15.y, r15.y, l(20.000000) - mul r23.yzw, r13.xxyz, r15.yyyy - mul r23.yzw, r17.yyyy, r23.yyzw - mul r18.xyw, r23.yzyw, cb3[r18.w + 6].zzzz - else - mov r18.xyw, l(0,0,0,0) - endif - mul r15.xyz, r15.xxxx, r21.yzwy - add r21.yzw, r22.xxyz, -r24.xxyz - mad r21.yzw, r18.zzzz, r21.yyzw, r24.xxyz - mul r21.yzw, r15.xxyz, r21.yyzw - mul r15.xyz, r18.xywx, r15.xyzx - mul r15.xyz, r18.zzzz, r15.xyzx - mad r15.xyz, r21.yzwy, r14.zzzz, r15.xyzx - add r16.xyz, r15.xyzx, r16.xyzx - endif - else - mov r19.x, l(0) - endif - movc r16.xyz, r19.xxxx, r19.yzwy, r16.xyzx - endif - endif - mov r13.w, r17.x - endloop - mov r14.xyw, r16.xyxz - iadd r10.z, r10.z, l(1) -endloop -lt r0.x, l(0.500000), cb5[3].x -if_nz r0.x - dp3 r0.x, r14.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r3.xyz, -r0.xxxx, r14.xywx - mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx - add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) - mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) - mul r3.xyz, r0.xyzx, cb5[3].yyyy - mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx - mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx - add r2.w, l(1.000000), -cb5[4].x - mov_sat r17.w, r17.w - add r3.x, -r17.w, l(1.000000) - add r3.y, -r2.w, l(1.000000) - add r2.w, -r2.w, r3.x - div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y - mul_sat r2.w, r2.w, r3.x - mad r3.x, r2.w, l(-2.000000), l(3.000000) - mul r2.w, r2.w, r2.w - mul r2.w, r2.w, r3.x - mul r3.xyz, r2.wwww, cb5[8].xyzx - mad r14.xyw, r3.xyxz, cb5[4].yyyy, r0.xyxz -endif -div r0.xyz, r14.xywx, cb0[109].xxxx -eq r2.w, l(1.000000), cb5[2].x -movc o0.w, r2.w, r4.w, l(1.000000) -lt r2.w, cb0[198].w, l(0.500000) -if_nz r2.w - mul r0.w, r0.w, r1.w - mad r1.w, v2.y, cb0[156].w, cb0[157].w - max r1.w, r1.w, l(0.010000) - mad r2.w, r0.w, cb0[154].w, -cb0[153].w - max r2.w, r2.w, l(0.000000) - mul r3.x, r1.w, l(-1.442695) - exp r3.x, r3.x - add r3.x, -r3.x, l(1.000000) - div r1.w, r3.x, r1.w - mad r3.x, v2.y, cb0[156].w, cb0[158].w - mul r3.x, r3.x, l(1.442695) - exp r3.x, r3.x - mul r1.w, r1.w, r3.x - mul r1.w, r1.w, -r2.w - mul r3.xyz, r1.wwww, cb0[155].xyzx - mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) - exp r3.xyz, r3.xyzx - dp3 r1.w, -r2.xyzx, cb0[154].xyzx - mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) - dp2 r3.w, r1.wwww, cb0[155].wwww - add r2.w, r2.w, -r3.w - lt r3.w, l(0.000000), cb0[163].z - if_nz r3.w - and r10.w, l(7), cb0[108].w - imad r4.xyz, r10.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) - imad r3.w, r4.y, r4.z, r4.x - imad r4.x, r4.z, r3.w, r4.y - imad r4.y, r3.w, r4.x, r4.z - imad r5.x, r4.x, r4.y, r3.w - dp3 r1.x, -r2.xyzx, -r1.xyzx - add r1.y, v2.y, -cb0[44].y - lt r1.z, l(5.960464478E-08), r1.x - div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x - and r1.x, r1.x, r1.z - mul r1.x, r1.x, cb0[163].w - div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w - mul r2.x, r1.z, r1.x - mad r2.y, r2.x, r1.y, cb0[44].y - mad r1.y, -r2.x, r1.y, r1.y - mul r2.x, r1.y, cb0[159].z - mul r1.y, r1.y, cb0[162].x - max r1.y, r1.y, l(-127.000000) - add r2.z, r2.y, -cb0[159].x - mul r2.z, r2.z, cb0[159].z - max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) - exp r2.z, -r2.z - mul r2.z, r2.z, cb0[159].y - lt r3.w, l(5.960464478E-08), |r2.x| - exp r4.z, -r2.x - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r2.x - mad r2.x, -r2.x, l(0.240226507), l(0.693147182) - movc r2.x, r3.w, r4.z, r2.x - add r2.y, r2.y, -cb0[162].z - mul r2.y, r2.y, cb0[162].x - max r2.y, r2.y, l(-127.000000) - exp r2.y, -r2.y - mul r2.y, r2.y, cb0[162].y - lt r3.w, l(5.960464478E-08), |r1.y| - exp r4.z, -r1.y - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r1.y - mad r1.y, -r1.y, l(0.240226507), l(0.693147182) - movc r1.y, r3.w, r4.z, r1.y - mul r1.y, r1.y, r2.y - mad r1.y, r2.z, r2.x, r1.y - mad r1.x, -r1.x, r1.z, l(1.000000) - mul r1.x, r0.w, r1.x - mul r1.x, r1.x, r1.y - exp r1.x, -r1.x - min r1.x, r1.x, l(1.000000) - max r1.x, r1.x, cb0[161].w - mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx - add r1.x, r1.y, r1.x - add r1.x, r1.z, r1.x - min r1.x, r1.x, l(1.000000) - imad r5.y, r4.y, r5.x, r4.x - ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) - utof r1.yz, r1.yyzy - mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) - mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz - mul r2.xy, r1.yzyy, cb0[165].xyxx - mad r1.y, v0.w, cb0[164].x, cb0[164].y - log r1.y, r1.y - mul r1.y, r1.y, cb0[164].z - div r2.z, r1.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t17.xyzw, s0, l(0.000000) - add r1.y, v0.w, -cb0[166].z - mul_sat r1.y, r1.y, l(1000000.000000) - add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r1.y, -r1.x, l(1.000000) - mul r2.xyz, r1.yyyy, cb0[161].xyzx - mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx - mul r1.x, r1.x, r4.w - else - add r1.y, v2.y, -cb0[44].y - mul r1.z, r1.y, cb0[159].z - mul r1.y, r1.y, cb0[162].x - max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) - add r3.w, cb0[44].y, -cb0[159].x - mul r3.w, r3.w, cb0[159].z - max r3.w, r3.w, l(-127.000000) - exp r3.w, -r3.w - mul r3.w, r3.w, cb0[159].y - lt r4.x, l(5.960464478E-08), |r1.z| - exp r4.y, -r1.z - add r4.y, -r4.y, l(1.000000) - div r4.y, r4.y, r1.z - mad r1.z, -r1.z, l(0.240226507), l(0.693147182) - movc r1.z, r4.x, r4.y, r1.z - add r4.x, cb0[44].y, -cb0[162].z - mul r4.x, r4.x, cb0[162].x - max r4.x, r4.x, l(-127.000000) - exp r4.x, -r4.x - mul r4.x, r4.x, cb0[162].y - lt r4.y, l(5.960464478E-08), |r1.y| - exp r4.z, -r1.y - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r1.y - mad r1.y, -r1.y, l(0.240226507), l(0.693147182) - movc r1.y, r4.y, r4.z, r1.y - mul r1.y, r1.y, r4.x - mad r1.y, r3.w, r1.z, r1.y - mul r1.y, r0.w, r1.y - exp r1.y, -r1.y - min r1.y, r1.y, l(1.000000) - max r1.y, r1.y, cb0[161].w - mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx - add r0.w, r1.y, r4.x - add r0.w, r4.y, r0.w - min r1.x, r0.w, l(1.000000) - add r0.w, -r1.x, l(1.000000) - mul r2.xyz, r0.wwww, cb0[161].xyzx - endif - mul r4.xyz, r1.xxxx, r3.xyzx - mad r0.w, r1.w, r1.w, l(1.000000) - mul r0.w, r0.w, l(0.0596831031) - mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz - mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) - mul r3.w, r2.w, l(12.566371) - sqrt r2.w, r2.w - mul r2.w, r2.w, r3.w - max r2.w, r2.w, l(0.001000) - div r0.w, r0.w, r2.w - mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw - mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) - add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - mul r1.yzw, r1.yyzw, r3.xxyz - mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx - mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx -else - mov o0.xyz, r0.xyzx -endif -mov o1.z, l(1.000000) -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x620A40FD.cso b/src/games/endfield/deferred-lighting/0x620A40FD.cso index d26444eb8ffa22b0792972d5d54443b410f47146..33748756a6e198c73c3f4183c59c41e8968aad5a 100644 GIT binary patch delta 169 zcmZ2-i*e3vMoE_lC+8C#`tomfZnXcB;53!CKM-hvBa}8IY9D>iqe|}6hwRh8(bvf delta 65 zcmbPpn{ml4MoE_lC+A0poit1~vT5yA-L1U$Vn-7r0|SG~M9IaRDLD)b0YHxA#G}EC VyqhH%pG$Ankp025xj;e37XbQ46_x-1 diff --git a/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm index b6581c255..c93f109ff 100644 --- a/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm @@ -24,7 +24,7 @@ dcl_constantbuffer CB0[235], immediateIndexed dcl_constantbuffer CB1[259], dynamicIndexed dcl_constantbuffer CB2[5], immediateIndexed dcl_constantbuffer CB3[4], immediateIndexed -dcl_constantbuffer CB13[13], immediateIndexed +dcl_constantbuffer CB13[19], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -270,6 +270,7 @@ else mov r1.xyw, l(0,0,0,0) endif ne r6.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy +movc r6.z, cb13[18].w, l(0xFFFFFFFF), r6.z if_nz r6.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x mad r0.z, r0.z, l(0.750000), l(0.250000) @@ -296,6 +297,8 @@ else mov r10.xyz, r3.wwww mov r12.xyw, r3.wwww endif +movc r10.xyz, cb13[18].wwww, r10.xyzx, l(1.0, 1.0, 1.0, 0) +mul r1.xyw, r1.xyzw, r10.xyxz mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx add r14.xyz, r7.xzyx, -r14.xyzx max r0.z, |r14.y|, |r14.x| diff --git a/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0_original_backup.asm deleted file mode 100644 index 9cdfeebe7..000000000 --- a/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0_original_backup.asm +++ /dev/null @@ -1,901 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Fri Jan 30 20:20:39 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// 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[235], immediateIndexed -dcl_constantbuffer CB1[259], dynamicIndexed -dcl_constantbuffer CB2[5], immediateIndexed -dcl_constantbuffer CB3[4], immediateIndexed -dcl_sampler s0, mode_default -dcl_sampler s1, mode_default -dcl_sampler s2, mode_default -dcl_sampler s3, mode_default -dcl_resource_structured t0, 4 -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_texture2darray (float,float,float,float) t5 -dcl_resource_texture2d (float,float,float,float) t6 -dcl_resource_texture2d (float,float,float,float) t7 -dcl_resource_texture2d (float,float,float,float) t8 -dcl_resource_texture2d (float,float,float,float) t9 -dcl_resource_texture3d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture2d (float,float,float,float) t12 -dcl_resource_texture3d (float,float,float,float) t13 -dcl_resource_texture3d (float,float,float,float) t14 -dcl_resource_texture3d (float,float,float,float) t15 -dcl_resource_texture3d (float,float,float,float) t16 -dcl_resource_texture3d (float,float,float,float) t17 -dcl_resource_texture3d (float,float,float,float) t18 -dcl_resource_texture2d (float,float,float,float) t19 -dcl_resource_texture2d (float,float,float,float) t20 -dcl_resource_texture2d (float,float,float,float) t21 -dcl_resource_texture2d (float,float,float,float) t22 -dcl_resource_texture3d (float,float,float,float) t23 -dcl_input_ps_siv linear noperspective v0.xy, position -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 26 -ftou r0.xy, v0.xyxx -mov r0.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t20.xyzw -ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t21.xyzw -ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t22.xyzw -mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) -ftou r1.xz, r1.xxzx -ubfe r4.x, l(7), l(3), r1.x -utof r4.x, r4.x -round_ne r1.y, r1.y -ftou r1.y, r1.y -mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| -add r5.y, -r4.y, l(1.000000) -lt r4.y, r5.y, l(0.000000) -ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) -add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) -movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) -mul r4.zw, r4.zzzw, r6.xxxy -movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx -dp3 r2.x, r5.xyzx, r5.xyzx -rsq r2.x, r2.x -mul r5.xyz, r2.xxxx, r5.xyzx -and r2.x, r1.y, l(7) -utof r2.x, r2.x -mad r2.x, r2.x, l(0.107142866), l(0.500000) -utof r4.yz, r0.xxyx -mul r6.xy, v0.xyxx, cb0[82].zwzz -mad r6.zw, r6.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) -add r7.xy, r4.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000) -mul r7.xy, r7.xyxx, cb0[82].zwzz -sample_l_indexable(texture2d)(float,float,float,float) r2.y, r7.xyxx, t1.yxzw, s0, l(0.000000) -mul r7.xyzw, -r6.wwww, cb0[25].xyzw -mad r7.xyzw, cb0[24].xyzw, r6.zzzz, r7.xyzw -mad r7.xyzw, cb0[26].xyzw, r2.yyyy, r7.xyzw -add r7.xyzw, r7.xyzw, cb0[27].xyzw -div r7.xyz, r7.xyzx, r7.wwww -mul r2.y, r7.y, cb0[1].z -mad r2.y, cb0[0].z, r7.x, r2.y -mad r2.y, cb0[2].z, r7.z, r2.y -add r2.y, r2.y, cb0[3].z -eq r4.w, l(0.000000), cb0[86].w -add r8.xyz, -r7.xyzx, cb0[44].xyzx -mov r9.x, cb0[0].z -mov r9.y, cb0[1].z -mov r9.z, cb0[2].z -movc r10.xyz, r4.wwww, r8.xyzx, r9.xyzx -dp3 r4.w, r10.xyzx, r10.xyzx -max r6.z, r4.w, l(9.999999939E-09) -rsq r6.z, r6.z -mul r11.xyz, r6.zzzz, r10.xyzx -mul r4.w, r4.w, r6.z -lt r6.w, l(0.000488281250), cb0[234].x -if_nz r6.w - sample_b_indexable(texture2d)(float,float,float,float) r6.w, v1.xyxx, t19.yzwx, s1, cb0[108].x -else - mov r6.w, l(1.000000) -endif -add r6.w, -r6.w, l(1.000000) -mad_sat r8.w, r2.z, l(0.300000), l(0.250000) -mul r8.w, r8.w, cb0[222].x -mul r8.w, r6.w, r8.w -mad r8.w, r8.w, l(-0.750000), l(1.000000) -mul r3.xyz, r3.xyzx, r8.wwww -min r8.w, r2.z, l(0.300000) -mul r6.w, r6.w, cb0[222].x -mul r6.w, r6.w, l(0.500000) -add r8.w, -r2.z, r8.w -mad r12.z, r6.w, r8.w, r2.z -mul r2.zw, r2.xxxw, l(0.000000, 0.000000, 0.080000, 3.000000) -dp3 r6.w, r5.xyzx, r11.xyzx -max r8.w, r6.w, l(0.000000) -mad r13.xyzw, r12.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) -mul r9.w, r13.x, r13.x -mul r10.w, r8.w, l(-9.280000) -exp r10.w, r10.w -min r9.w, r9.w, r10.w -mad r9.w, r9.w, r13.x, r13.y -mad r13.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz -ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t6.zwxy -lt r0.z, l(0.001000), r13.z -if_nz r0.z - bfi r0.z, l(3), l(2), r1.x, l(0) - mul r1.x, r1.w, l(3.000000) - ftou r1.x, r1.x - bfi r0.z, l(2), l(0), r1.x, r0.z - utof r0.z, r0.z - mul r1.x, r0.z, l(0.0322580636) - ubfe r1.y, l(7), l(3), r1.y - utof r1.y, r1.y - mul r1.y, r1.y, l(0.00787401572) - sample_l_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t9.yzwx, s1, l(0.000000) - dp3 r9.w, -r11.xyzx, r5.xyzx - add r9.w, r9.w, r9.w - mad r14.xyz, r5.xyzx, -r9.wwww, -r11.xyzx - dp3 r9.w, -cb2[0].xyzx, r14.xyzx - mad r15.xyz, cb2[0].xyzx, r9.wwww, r14.xyzx - lt r9.w, r9.w, cb2[4].z - dp3 r10.w, r15.xyzx, r15.xyzx - max r10.w, r10.w, l(0.0000610351562) - rsq r10.w, r10.w - mul r15.xyz, r10.wwww, r15.xyzx - mul r15.xyz, r15.xyzx, cb2[4].yyyy - mad r15.xyz, -cb2[0].xyzx, cb2[4].zzzz, r15.xyzx - dp3 r10.w, r15.xyzx, r15.xyzx - rsq r10.w, r10.w - mul r15.xyz, r10.wwww, r15.xyzx - movc r14.xyz, r9.wwww, r15.xyzx, r14.xyzx - mad r10.xyz, r10.xyzx, r6.zzzz, r14.xyzx - dp3 r6.z, r10.xyzx, r10.xyzx - max r6.z, r6.z, l(0.0000610351562) - rsq r6.z, r6.z - mul r10.xyz, r6.zzzz, r10.xyzx - dp3 r6.z, r5.xyzx, r14.xyzx - mov_sat r12.x, r6.z - dp3_sat r9.w, r5.xyzx, r10.xyzx - dp3 r10.w, r11.xyzx, r14.xyzx - min r12.y, r8.w, l(1.000000) - mul r11.w, r12.z, r12.z - mul r11.w, r11.w, r11.w - mad r12.w, r9.w, r11.w, -r9.w - mad r9.w, r12.w, r9.w, l(1.000000) - dp3_sat r10.x, r11.xyzx, r10.xyzx - add r10.x, -r10.x, l(1.000000) - mul r10.y, r10.x, r10.x - mul r10.y, r10.y, r10.y - mul r10.z, r10.x, r10.y - add r12.w, -r12.z, l(1.000000) - mad r14.x, -r12.w, l(0.383026), l(-0.0761947036) - mad r14.x, r12.w, r14.x, l(1.049970) - mad r12.w, r12.w, r14.x, l(0.409255) - min r12.w, r12.w, l(0.999000) - add r14.x, -r12.w, l(1.000000) - mad r2.x, -r2.x, l(0.080000), l(1.000000) - mad r2.x, r2.x, l(0.0476190485), r2.z - mov_sat r14.y, -r10.w - mul r14.y, r14.y, r14.y - mad r14.y, r14.y, l(-0.640000), l(1.000000) - mul r14.y, r14.y, r14.y - mad r10.x, -r10.y, r10.x, l(1.000000) - mad r10.x, r2.z, r10.x, r10.z - mul r9.w, r9.w, r9.w - div r9.w, r11.w, r9.w - mad r10.yz, -r12.yyxy, r11.wwww, r12.yyxy - mad r10.yz, r10.yyzy, r12.yyxy, r11.wwww - sqrt r10.yz, r10.yyzy - mul r10.yz, r10.yyzy, r12.xxyx - add r10.y, r10.z, r10.y - add r10.y, r10.y, l(0.000100) - div r10.y, l(0.500000), r10.y - mul r9.w, r9.w, r10.y - mul r9.w, r9.w, r10.x - min r9.w, r9.w, l(2048.000000) - mad r15.xyzw, r12.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) - sample_l_indexable(texture2d)(float,float,float,float) r10.x, r15.xyxx, t8.xyzw, s1, l(0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r10.y, r15.zwzz, t8.yxzw, s1, l(0.000000) - mul r10.x, r10.y, r10.x - mul r10.x, r12.w, r10.x - div r10.x, r10.x, r14.x - mul r10.y, r2.x, r2.x - mul r10.x, r10.x, r10.y - mad r2.x, -r2.x, r14.x, l(1.000000) - div r2.x, r10.x, r2.x - add r2.x, r2.x, r9.w - add_sat r6.w, r6.w, l(0.200000) - mov_sat r9.w, r10.w - add r9.w, r9.w, l(0.500000) - min r9.w, r9.w, l(1.000000) - mul r10.x, r6.w, r9.w - add_sat r10.y, r10.w, l(1.000000) - mad r6.w, -r6.w, r9.w, l(1.000000) - mad r6.w, r10.y, r6.w, r10.x - mul r2.x, r2.x, r6.w - mul r2.x, r1.y, r2.x - mul r10.xyz, r1.yyyy, r3.xyzx - ubfe r6.w, l(7), l(3), r1.z - utof r6.w, r6.w - mul r6.w, r6.w, l(0.00787401572) - mul r2.x, r2.x, cb2[4].x - max r2.x, r2.x, l(0.000000) - min r2.x, r2.x, l(1000.000000) - mul r2.x, r12.x, r2.x - mad r10.xyz, r10.xyzx, r6.wwww, r2.xxxx - max r2.x, r3.y, r3.x - max r2.x, r3.z, r2.x - max r2.x, r2.x, l(0.010000) - div r14.xzw, r3.xxyz, r2.xxxx - mul r2.x, r4.x, l(0.00393700786) - mul r14.xzw, r2.xxxx, r14.xxzw - add_sat r2.x, -r6.z, l(0.500000) - ne r6.w, r14.y, l(0.360000) - div r9.w, l(0.360000), r14.y - movc r6.w, r6.w, r9.w, l(1.000000) - mul r2.x, r2.x, r6.w - mad_sat r0.z, r0.z, l(0.0322580636), r6.z - add r0.z, -r12.x, r0.z - mul r12.xyw, r0.zzzz, r3.xyxz - mad r12.xyw, r14.xzxw, r2.xxxx, r12.xyxw - mad r10.xyz, r12.xywx, r1.yyyy, r10.xyzx - mul r10.xyz, r10.xyzx, cb2[1].xyzx - mov r13.w, l(0.500000) - sample_b_indexable(texture2d)(float,float,float,float) r12.xyw, r13.zwzz, t7.xywz, s1, cb0[108].x - add r0.z, -r13.z, l(1.000000) - mad r12.xyw, r10.xyxz, r12.xyxw, -r10.xyxz - mad r10.xyz, r0.zzzz, r12.xywx, r10.xyzx - max r0.z, r1.y, r1.w - add r0.z, -r1.w, r0.z - mad r0.z, r1.x, r0.z, r1.w - mul r1.xyw, r0.zzzz, r10.xyxz -else - mov r1.xyw, l(0,0,0,0) -endif -ne r6.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy -if_nz r6.z - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x - mad r0.z, r0.z, l(0.750000), l(0.250000) - min r0.z, r3.w, r0.z - add r2.x, r0.z, r8.w - mad r6.z, r12.z, l(-16.000000), l(-1.000000) - exp r6.z, r6.z - log r2.x, |r2.x| - mul r2.x, r2.x, r6.z - exp r2.x, r2.x - add r2.x, r0.z, r2.x - add r2.x, r2.x, l(-1.000000) - mov_sat r10.xyz, r2.xxxx - mad r12.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) - mul r12.xyw, r0.zzzz, r12.xyxw - mad r12.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r12.xyxw - add r12.xyw, r12.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) - mul r12.xyw, r0.zzzz, r12.xyxw - mad r12.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r12.xyxw - add r12.xyw, r12.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) - mul r12.xyw, r0.zzzz, r12.xyxw - max r12.xyw, r0.zzzz, r12.xyxw -else - mov r10.xyz, r3.wwww - mov r12.xyw, r3.wwww -endif -mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx -add r14.xyz, r7.xzyx, -r14.xyzx -max r0.z, |r14.y|, |r14.x| -add r0.z, r0.z, l(-464.000000) -mul_sat r0.z, r0.z, l(0.031250) -add r2.x, |r14.z|, l(-208.000000) -mul_sat r2.x, r2.x, l(0.031250) -max r0.z, r0.z, r2.x -ne r2.x, l(0.000000), cb0[210].w -lt r3.w, r0.z, l(1.000000) -and r2.x, r2.x, r3.w -if_nz r2.x - mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r14.xyz, r7.xzyx, -r14.xyzx - max r2.x, |r14.y|, |r14.x| - add r2.x, r2.x, l(-29.000000) - mul_sat r2.x, r2.x, l(0.500000) - add r3.w, |r14.z|, l(-13.000000) - mul_sat r3.w, r3.w, l(0.500000) - max r2.x, r2.x, r3.w - lt r3.w, r2.x, l(1.000000) - if_nz r3.w - mad r14.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r15.xyz, r14.xyzx, cb0[211].xyzx - round_ni r15.xyz, r15.xyzx - mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r15.xyw, r14.xyzx, t13.yzwx, s2, l(0.000000) - add r3.w, -r2.x, l(1.000000) - mul r6.z, l(0.500000), cb0[211].y - mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) - max r6.z, r6.z, r14.y - min r6.z, r9.w, r6.z - mul r14.w, r6.z, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t14.xyzw, s1, l(0.000000) - mad r6.z, r16.w, r3.w, r0.z - add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t14.xyzw, s1, l(0.000000) - mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r17.xyz, r15.yyyy, r17.xyzx - mov r17.w, r15.y - mul r17.xyzw, r3.wwww, r17.xyzw - add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t14.xyzw, s1, l(0.000000) - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r14.xyz, r15.xxxx, r14.xyzx - mov r14.w, r15.x - mul r14.xyzw, r3.wwww, r14.xyzw - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r15.xyz, r15.wwww, r16.xyzx - mul r15.xyzw, r3.wwww, r15.xyzw - else - mov r17.xyzw, l(0,0,0,0) - mov r14.xyzw, l(0,0,0,0) - mov r15.xyzw, l(0,0,0,0) - mov r6.z, r0.z - endif - mad r16.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx - add r16.xyz, r7.xzyx, -r16.xyzx - max r3.w, |r16.y|, |r16.x| - add r3.w, r3.w, l(-116.000000) - mul_sat r3.w, r3.w, l(0.125000) - add r9.w, |r16.z|, l(-52.000000) - mul_sat r9.w, r9.w, l(0.125000) - max r3.w, r3.w, r9.w - lt r9.w, r3.w, l(1.000000) - if_nz r9.w - mad r16.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r18.xyz, r16.xyzx, cb0[211].xyzx - round_ni r18.xyz, r18.xyzx - mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r16.xyzx, t15.yzwx, s2, l(0.000000) - add r9.w, -r3.w, l(1.000000) - mul r2.x, r2.x, r9.w - mul r9.w, l(0.500000), cb0[211].y - mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) - max r9.w, r9.w, r16.y - min r9.w, r10.w, r9.w - mul r16.w, r9.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t16.xyzw, s1, l(0.000000) - mad r6.z, r19.w, r2.x, r6.z - add r20.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t16.xyzw, s1, l(0.000000) - mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r18.yyyy, r20.xyzx - mov r20.w, r18.y - mad r17.xyzw, r20.xyzw, r2.xxxx, r17.xyzw - add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t16.xyzw, s1, l(0.000000) - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r18.xxxx, r16.xyzx - mov r16.w, r18.x - mad r14.xyzw, r16.xyzw, r2.xxxx, r14.xyzw - mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r18.wwww, r16.xyzx - mad r15.xyzw, r18.xyzw, r2.xxxx, r15.xyzw - endif - lt r2.x, l(0.000000), r3.w - if_nz r2.x - mad r16.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r18.xyz, r16.xyzx, cb0[211].xyzx - mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r18.xyz, r18.xyzx - mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx - mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r16.xyz, r19.xyzx, r16.xyzx - min r16.xyz, r18.xyzx, r16.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) - add r2.x, -r0.z, l(1.000000) - mul r2.x, r2.x, r3.w - max r3.w, r19.y, r16.y - min r3.w, r18.y, r3.w - mul r16.w, r3.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) - add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t18.xyzw, s1, l(0.000000) - mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r19.xyz, r20.yyyy, r19.xyzx - mov r19.w, r20.y - mad r17.xyzw, r19.xyzw, r2.xxxx, r17.xyzw - add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r20.xxxx, r16.xyzx - mov r16.w, r20.x - mad r14.xyzw, r16.xyzw, r2.xxxx, r14.xyzw - mad r16.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r20.wwww, r16.xyzx - mad r15.xyzw, r20.xyzw, r2.xxxx, r15.xyzw - mad r6.z, r18.w, r2.x, r6.z - endif - mad_sat r2.x, r6.z, l(2.000000), l(-1.000000) - add r16.x, -r0.z, r2.x - add r0.z, r0.z, r2.x - mul r16.y, r0.z, l(0.500000) -else - mov r17.xyzw, l(0,0,0,0) - mov r14.xyzw, l(0,0,0,0) - mov r15.xyzw, l(0,0,0,0) - mov r16.xy, l(0,1.000000,0,0) -endif -mul r18.xyzw, r16.yyyx, cb0[213].xyzw -mad r18.y, r18.w, l(0.500000), r18.y -mul r13.zw, r16.yyyx, cb0[213].wwwy -mad r18.w, r13.w, l(0.375000), r13.z -add r15.xyzw, r15.xyzw, r18.xyzw -mul r18.xyzw, r16.yyyx, cb0[214].xyzw -mad r18.y, r18.w, l(0.500000), r18.y -mul r13.zw, r16.yyyx, cb0[214].wwwy -mad r18.w, r13.w, l(0.375000), r13.z -add r14.xyzw, r14.xyzw, r18.xyzw -mul r18.xyzw, r16.yyyx, cb0[215].xyzw -mad r18.y, r18.w, l(0.500000), r18.y -mul r13.zw, r16.yyyx, cb0[215].wwwy -mad r18.w, r13.w, l(0.375000), r13.z -add r16.xyzw, r17.xyzw, r18.xyzw -ge r13.zw, r6.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) -and r0.z, r13.w, r13.z -if_nz r0.z - sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r6.xyxx, t12.xyzw, s1, l(0.000000) - lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| - or r6.xy, r18.zwzz, r18.xyxx - or r0.z, r6.y, r6.x - if_nz r0.z - dp3 r0.z, r17.yzwy, r17.yzwy - sqrt r0.z, r0.z - mov r6.x, l(1.000000) - mov r6.y, r0.z - mov r2.x, l(0) - loop - ge r3.w, l(4.600000), r6.y - breakc_nz r3.w - iadd r3.w, r2.x, l(1) - mul r13.zw, r6.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) - mov r6.xy, r13.zwzz - mov r2.x, r3.w - continue - endloop - mul r17.xyzw, r6.xxxx, r17.xyzw - dp3 r0.z, r17.yzwy, r17.yzwy - sqrt r0.z, r0.z - mad r0.z, r0.z, cb3[3].x, cb3[3].y - mad r0.z, r0.z, l(255.000000), l(0.500000) - mul r6.x, r0.z, l(0.00390625000) - mov r6.y, l(0.500000) - sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyxx, t11.xyzw, s1, l(0.000000) - mad r6.xy, r6.xyxx, cb3[2].xyxx, cb3[2].zwzz - mul r18.x, r6.x, l(3.54490781) - mul r18.yzw, r6.yyyy, r17.yyzw - mul r0.z, r17.x, l(0.406976730) - exp r0.z, r0.z - mul r17.xyzw, r0.zzzz, r18.xyzw - mov r18.xyzw, r17.xyzw - mov r0.z, l(0) - loop - uge r3.w, r0.z, r2.x - breakc_nz r3.w - mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - dp4 r3.w, r19.xyzw, r18.xyzw - dp2 r6.x, r19.yxyy, r18.xyxx - dp2 r6.y, r19.zxzz, r18.xzxx - dp2 r6.z, r19.wxww, r18.xwxx - iadd r9.w, r0.z, l(1) - mov r18.x, r3.w - mov r18.yzw, r6.xxyz - mov r0.z, r9.w - continue - endloop - mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r0.z, r17.xyzw, r18.xyzw - dp2 r2.x, r17.yxyy, r18.xyxx - dp2 r3.w, r17.zxzz, r18.xzxx - dp2 r6.x, r17.wxww, r18.xwxx - mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r6.y, r17.xyzw, r18.xyzw - dp2 r6.z, r17.yxyy, r18.xyxx - dp2 r9.w, r17.zxzz, r18.xzxx - dp2 r10.w, r17.wxww, r18.xwxx - mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r11.w, r17.xyzw, r18.xyzw - dp2 r13.z, r17.yxyy, r18.xyxx - dp2 r13.w, r17.zxzz, r18.xzxx - dp2 r17.x, r17.wxww, r18.xwxx - mul r15.w, r0.z, l(0.886226952) - mul r15.x, r6.x, l(-1.02332675) - mul r15.y, r2.x, l(-1.02332675) - mul r15.z, r3.w, l(1.02332675) - mul r14.x, r10.w, l(-1.02332675) - mul r14.yw, r6.zzzy, l(0.000000, -1.02332675, 0.000000, 0.886226952) - mul r14.z, r9.w, l(1.02332675) - mul r16.w, r11.w, l(0.886226952) - mul r16.x, r17.x, l(-1.02332675) - mul r16.yz, r13.zzwz, l(0.000000, -1.02332675, 1.02332675, 0.000000) - endif -endif -mov r5.w, l(1.000000) -dp4 r6.x, r15.xyzw, r5.xyzw -dp4 r6.y, r14.xyzw, r5.xyzw -dp4 r6.z, r16.xyzw, r5.xyzw -max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -dp3 r0.z, -r11.xyzx, r5.xyzx -add r0.z, r0.z, r0.z -mad r17.xyz, r5.xyzx, -r0.zzzz, -r11.xyzx -add r0.z, l(-1.000000), cb0[113].x -max r2.x, r12.z, l(0.001000) -log r2.x, r2.x -mad r2.x, -r2.x, l(1.200000), l(1.000000) -add r0.z, r0.z, -r2.x -mul r13.zw, r4.yyyz, cb1[0].wwww -round_ni r13.zw, r13.zzzw -add r2.x, |r2.y|, -cb1[2].y -round_ni r2.x, r2.x -add r3.w, l(-1.000000), cb1[1].x -max r9.w, r2.x, l(0.000000) -min r3.w, r3.w, r9.w -ge r2.x, r3.w, r2.x -mad r9.w, r13.w, cb1[0].x, r13.z -ftoi r9.w, r9.w -iadd r9.w, r9.w, cb0[110].z -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r9.w, l(0), t0.xxxx -ftoi r3.w, r3.w -iadd r3.w, r3.w, cb0[110].w -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx -and r3.w, r3.w, r9.w -and r2.x, r2.x, r3.w -mul r18.xyz, r6.xyzx, cb0[111].xxxx -dp3 r3.w, r18.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mov r7.w, l(1.000000) -mov r18.xyz, l(0,0,0,0) -mov r9.w, l(1.000000) -mov r10.w, r2.x -mov r11.w, l(0) -loop - lt r12.z, l(0.010000), r9.w - ine r13.z, r10.w, l(0) - and r13.z, r12.z, r13.z - if_nz r13.z - firstbit_lo r13.z, r10.w - ishl r13.w, l(1), r13.z - xor r10.w, r10.w, r13.w - ishl r13.z, r13.z, l(3) - dp4 r19.x, cb1[r13.z + 6].xyzw, r7.xyzw - dp4 r19.y, cb1[r13.z + 7].xyzw, r7.xyzw - dp4 r19.z, cb1[r13.z + 8].xyzw, r7.xyzw - ge r20.xyz, cb1[r13.z + 5].xyzx, |r19.xyzx| - and r13.w, r20.y, r20.x - and r13.w, r20.z, r13.w - if_nz r13.w - mul r13.w, l(0.100000), cb1[r13.z + 5].x - mul r20.xyz, |r19.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) - mul r20.xy, r20.xyxx, r20.xyxx - add r21.xyz, -|r19.xyzx|, cb1[r13.z + 5].xyzx - mul r21.xyz, r21.xyzx, cb1[r13.z + 9].xyzx - eq r17.w, l(1.000000), cb1[r13.z + 10].x - if_nz r17.w - dp3 r22.x, cb1[r13.z + 6].xyzx, r17.xyzx - dp3 r22.y, cb1[r13.z + 7].xyzx, r17.xyzx - dp3 r22.z, cb1[r13.z + 8].xyzx, r17.xyzx - add r23.xyz, -r19.xyzx, cb1[r13.z + 5].xyzx - div r23.xyz, r23.xyzx, r22.xyzx - add r24.xyz, -r19.xyzx, -cb1[r13.z + 5].xyzx - div r24.xyz, r24.xyzx, r22.xyzx - lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx - movc r23.xyz, r25.xyzx, r23.xyzx, r24.xyzx - min r17.w, r23.y, r23.x - min r17.w, r23.z, r17.w - mad r19.xyz, r22.xyzx, r17.wwww, r19.xyzx - else - mov r19.xyz, r17.xyzx - endif - dp3 r17.w, r19.xyzx, r19.xyzx - rsq r17.w, r17.w - mul r19.xyz, r17.wwww, r19.xyzx - lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx - lt r23.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r22.xyz, -r22.xyzx, r23.xyzx - itof r22.xyz, r22.xyzx - dp3 r17.w, r19.xyzx, r22.xyzx - div r19.xyz, r19.xyzx, r17.wwww - lt r17.w, r19.z, l(0.000000) - add r19.zw, -|r19.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r19.zw, r19.zzzw, r22.xxxy - movc r19.xy, r17.wwww, r19.zwzz, r19.xyxx - dp4 r17.w, cb1[r13.z + 4].xyzw, r5.xyzw - max r17.w, r17.w, l(0.000000) - max r17.w, r17.w, l(0.000100) - min r18.w, r21.z, r21.y - min r18.w, r18.w, r21.x - add r19.z, r20.y, r20.x - mad r19.z, r20.z, r20.z, r19.z - mad r13.w, r13.w, r13.w, -r19.z - mul r13.w, r13.w, cb1[r13.z + 9].x - mul r13.w, r13.w, cb1[r13.z + 9].x - add r19.z, l(1.000000), -cb1[r13.z + 10].y - mul r13.w, r13.w, r19.z - mul r13.w, r13.w, l(100.000000) - mad_sat r13.w, r18.w, cb1[r13.z + 10].y, r13.w - mul r18.w, r13.w, cb1[r13.z + 10].w - mad r19.xy, r19.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) - mad r19.xy, r19.xyxx, cb1[1].wwww, cb1[2].wwww - mov r19.z, cb1[r13.z + 5].w - sample_l_indexable(texture2darray)(float,float,float,float) r19.xyz, r19.xyzx, t5.xyzw, s3, r0.z - mul r19.xyz, r19.xyzx, cb1[r13.z + 9].wwww - div r19.w, r3.w, r17.w - min r19.w, |r19.w|, l(1.000000) - mad r19.w, r19.w, l(2.000000), r3.w - add r17.w, r17.w, l(2.000000) - div r17.w, r19.w, r17.w - add r17.w, r17.w, l(-1.000000) - mad r17.w, r17.w, cb0[112].w, l(1.000000) - mul r19.xyz, r17.wwww, r19.xyzx - mul r19.xyz, r18.wwww, r19.xyzx - mad r18.xyz, r19.xyzx, r9.wwww, r18.xyzx - mad r13.z, -r13.w, cb1[r13.z + 10].w, l(1.000000) - mul r9.w, r9.w, r13.z - endif - mov r11.w, l(-1) - continue - else - mov r11.w, r12.z - break - endif - mov r11.w, r12.z -endloop -if_nz r11.w - dp3 r2.x, r17.xyzx, r17.xyzx - rsq r2.x, r2.x - mul r17.xyz, r2.xxxx, r17.xyzx - lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx - lt r20.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r19.xyz, -r19.xyzx, r20.xyzx - itof r19.xyz, r19.xyzx - dp3 r2.x, r17.xyzx, r19.xyzx - div r17.xyz, r17.xyzx, r2.xxxx - lt r2.x, r17.z, l(0.000000) - add r13.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r13.zw, r13.zzzw, r19.xxxy - movc r13.zw, r2.xxxx, r13.zzzw, r17.xxxy - dp4 r2.x, cb1[3].xyzw, r5.xyzw - max r2.x, r2.x, l(0.000000) - max r2.x, r2.x, l(0.000100) - mad r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) - mad r17.xy, r13.zwzz, cb1[1].wwww, cb1[2].wwww - mov r17.z, l(0) - sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s3, r0.z - div r0.z, r3.w, r2.x - min r0.z, |r0.z|, l(1.000000) - mad r0.z, r0.z, l(2.000000), r3.w - add r2.x, r2.x, l(2.000000) - div r0.z, r0.z, r2.x - add r0.z, r0.z, l(-1.000000) - mad r0.z, r0.z, cb0[112].w, l(1.000000) - mul r17.xyz, r0.zzzz, r17.xyzx - mad r18.xyz, r17.xyzx, r9.wwww, r18.xyzx -endif -mul r17.xyz, r18.xyzx, cb0[112].zzzz -mul r17.xyz, r17.xyzx, cb0[111].yyyy -if_nz r6.w - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r18.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x - add r2.x, -r0.z, l(1.000000) - mul r19.xyz, r2.xxxx, r17.xyzx - mad r17.xyz, r18.xyzx, r0.zzzz, r19.xyzx -endif -mul r6.xyz, r3.xyzx, r6.xyzx -mul r6.xyz, r6.xyzx, cb0[111].xxxx -mad r0.z, r2.z, r13.x, r13.y -mul r13.xyz, r0.zzzz, r17.xyzx -mul r10.xyz, r10.xyzx, r13.xyzx -mad r6.xyz, r6.xyzx, r12.xywx, r10.xyzx -mul r5.xyzw, r5.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) -dp4 r10.x, r15.xyzw, r5.xyzw -dp4 r10.y, r14.xyzw, r5.xyzw -dp4 r10.z, r16.xyzw, r5.xyzw -max r5.xyz, r10.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -mul r5.xyz, r5.xyzx, cb0[111].xxxx -mul r5.xyz, r12.xywx, r5.xyzx -max r0.z, r3.y, r3.x -max r0.z, r3.z, r0.z -max r0.z, r0.z, l(0.010000) -div r3.xyz, r3.xyzx, r0.zzzz -mul r3.xyz, r3.xyzx, r5.xyzx -mul r0.z, r4.x, l(0.00787401572) -min r2.x, r8.w, l(1.000000) -bfi r1.z, l(3), l(2), r1.z, l(0) -ftou r2.z, r2.w -bfi r1.z, l(2), l(0), r2.z, r1.z -utof r1.z, r1.z -mul r1.z, r1.z, l(0.0322580636) -mad r0.z, r0.z, r2.x, r1.z -mul r2.xzw, r0.zzzz, r3.xxyz -mad r2.xzw, r2.xxzw, l(0.318309873, 0.000000, 0.318309873, 0.318309873), r6.xxyz -add r1.xyz, r1.xywx, r2.xzwx -max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) -mad r0.z, r7.y, cb0[156].w, cb0[157].w -max r0.z, r0.z, l(0.010000) -mad r1.w, r4.w, cb0[154].w, -cb0[153].w -max r1.w, r1.w, l(0.000000) -mul r2.x, r0.z, l(-1.442695) -exp r2.x, r2.x -add r2.x, -r2.x, l(1.000000) -div r0.z, r2.x, r0.z -mad r2.x, r7.y, cb0[156].w, cb0[158].w -mul r2.x, r2.x, l(1.442695) -exp r2.x, r2.x -mul r0.z, r0.z, r2.x -mul r0.z, r0.z, -r1.w -mul r2.xzw, r0.zzzz, cb0[155].xxyz -mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) -exp r2.xzw, r2.xxzw -dp3 r0.z, -r11.xyzx, cb0[154].xyzx -mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) -dp2 r3.x, r0.zzzz, cb0[155].wwww -add r1.w, r1.w, -r3.x -lt r3.x, l(0.000000), cb0[163].z -if_nz r3.x - and r0.w, l(7), cb0[108].w - imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) - imad r0.x, r0.y, r0.w, r0.x - imad r0.y, r0.w, r0.x, r0.y - imad r0.w, r0.x, r0.y, r0.w - imad r3.x, r0.y, r0.w, r0.x - dp3 r0.x, -r11.xyzx, -r9.xyzx - add r3.z, r7.y, -cb0[44].y - lt r3.w, l(5.960464478E-08), r0.x - div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x - and r0.x, r0.x, r3.w - mul r0.x, r0.x, cb0[163].w - div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w - mul r4.x, r0.x, r3.w - mad r5.x, r4.x, r3.z, cb0[44].y - mad r3.z, -r4.x, r3.z, r3.z - mul r4.x, r3.z, cb0[159].z - max r4.x, r4.x, l(-127.000000) - mul r3.z, r3.z, cb0[162].x - max r3.z, r3.z, l(-127.000000) - add r5.y, r5.x, -cb0[159].x - mul r5.y, r5.y, cb0[159].z - max r5.y, r5.y, l(-127.000000) - exp r5.y, -r5.y - mul r5.y, r5.y, cb0[159].y - lt r5.z, l(5.960464478E-08), |r4.x| - exp r5.w, -r4.x - add r5.w, -r5.w, l(1.000000) - div r5.w, r5.w, r4.x - mad r4.x, -r4.x, l(0.240226507), l(0.693147182) - movc r4.x, r5.z, r5.w, r4.x - add r5.x, r5.x, -cb0[162].z - mul r5.x, r5.x, cb0[162].x - max r5.x, r5.x, l(-127.000000) - exp r5.x, -r5.x - mul r5.x, r5.x, cb0[162].y - lt r5.z, l(5.960464478E-08), |r3.z| - exp r5.w, -r3.z - add r5.w, -r5.w, l(1.000000) - div r5.w, r5.w, r3.z - mad r3.z, -r3.z, l(0.240226507), l(0.693147182) - movc r3.z, r5.z, r5.w, r3.z - mul r3.z, r3.z, r5.x - mad r3.z, r5.y, r4.x, r3.z - mad r0.x, -r0.x, r3.w, l(1.000000) - mul r0.x, r4.w, r0.x - mul r0.x, r0.x, r3.z - exp r0.x, -r0.x - min r0.x, r0.x, l(1.000000) - max r0.x, r0.x, cb0[161].w - mad_sat r3.zw, r4.wwww, cb0[160].yyyw, cb0[160].xxxz - add r0.x, r0.x, r3.z - add r0.x, r3.w, r0.x - min r0.x, r0.x, l(1.000000) - imad r3.y, r0.w, r3.x, r0.y - ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) - utof r0.yw, r0.yyyw - mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz - mul r3.xy, r0.ywyy, cb0[165].xyxx - mad r0.y, |r2.y|, cb0[164].x, cb0[164].y - log r0.y, r0.y - mul r0.y, r0.y, cb0[164].z - div r3.z, r0.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t10.xyzw, s1, l(0.000000) - add r0.y, |r2.y|, -cb0[166].z - mul_sat r0.y, r0.y, l(1000000.000000) - add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r0.y, -r0.x, l(1.000000) - mul r4.xyz, r0.yyyy, cb0[161].xyzx - mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx - mul r0.x, r0.x, r3.w -else - add r0.y, r7.y, -cb0[44].y - mul r0.w, r0.y, cb0[159].z - mul r0.y, r0.y, cb0[162].x - max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) - add r2.y, cb0[44].y, -cb0[159].x - mul r2.y, r2.y, cb0[159].z - max r2.y, r2.y, l(-127.000000) - exp r2.y, -r2.y - mul r2.y, r2.y, cb0[159].y - lt r3.w, l(5.960464478E-08), |r0.w| - exp r4.x, -r0.w - add r4.x, -r4.x, l(1.000000) - div r4.x, r4.x, r0.w - mad r0.w, -r0.w, l(0.240226507), l(0.693147182) - movc r0.w, r3.w, r4.x, r0.w - add r3.w, cb0[44].y, -cb0[162].z - mul r3.w, r3.w, cb0[162].x - max r3.w, r3.w, l(-127.000000) - exp r3.w, -r3.w - mul r3.w, r3.w, cb0[162].y - lt r4.x, l(5.960464478E-08), |r0.y| - exp r4.y, -r0.y - add r4.y, -r4.y, l(1.000000) - div r4.y, r4.y, r0.y - mad r0.y, -r0.y, l(0.240226507), l(0.693147182) - movc r0.y, r4.x, r4.y, r0.y - mul r0.y, r0.y, r3.w - mad r0.y, r2.y, r0.w, r0.y - mul r0.y, r4.w, r0.y - exp r0.y, -r0.y - min r0.y, r0.y, l(1.000000) - max r0.y, r0.y, cb0[161].w - mad_sat r4.xy, r4.wwww, cb0[160].ywyy, cb0[160].xzxx - add r0.y, r0.y, r4.x - add r0.y, r4.y, r0.y - min r0.x, r0.y, l(1.000000) - add r0.y, -r0.x, l(1.000000) - mul r3.xyz, r0.yyyy, cb0[161].xyzx -endif -mul r4.xyz, r0.xxxx, r2.xzwx -mad r0.y, r0.z, r0.z, l(1.000000) -mul r0.y, r0.y, l(0.0596831031) -mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz -mad r2.y, -cb0[155].w, cb0[155].w, l(1.000000) -mul r3.w, r1.w, l(12.566371) -sqrt r1.w, r1.w -mul r1.w, r1.w, r3.w -max r1.w, r1.w, l(0.001000) -div r1.w, r2.y, r1.w -mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw -mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) -add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) -mul r0.yzw, r0.yyzw, r2.xxyz -mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx -mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx -dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) -dp3 r1.w, r8.xyzx, r8.xyzx -sqrt r1.w, r1.w -mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) -mul r2.x, r1.w, cb0[169].x -mad r1.w, -cb0[169].x, r1.w, l(1.000000) -mul r2.yzw, cb0[168].xxyz, cb0[183].wwww -mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw -sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t23.xwyz, s2, l(0.000000) -dp2 r2.x, r2.yyyy, r2.xxxx -add r1.w, r1.w, r2.x -add r2.x, r0.w, l(1.000000) -min r1.w, r1.w, r2.x -add r0.xyz, -r1.xyzx, r0.xyzx -mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx -mov o0.w, r0.w -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x7010AF4B.cso b/src/games/endfield/deferred-lighting/0x7010AF4B.cso index 2a8a06d4d1ae08520e521c7048e068c6b886e6df..4c43b5857d81547e106d6add63ec887edc62623c 100644 GIT binary patch delta 186 zcmZ2-m2u8BMk$vFCufJNTNwow=(U9VmRCP{KXVZy0|SFh_C%>goH1Dp3;{si^od7< z8HG1XGA@=>HD_Spa$*o*U;&C-H7GFf0%;*2W^`a+_zwhHAi2#urLHr{0+sS^0&=;5 z(%8(! delta 83 zcmV-Z0IdI<)&Zo|0UAVDLPPngN^U%H9y~bB4Lxo7c0U0C005+Fks6{2bn0izkSXL_Q0m466r21|R9wb_fq@;Qf&-`mBnqQJIyO(ppI``NIM{=XW?*R8ti4cB8UXE* BD(CeA0n2K$gX}L4SDuo(xJA5}(W{J+fq|i7qU2)E9d8&I0)QO7jYq8+ z8HG19GR>c>YRzzmeIYEWR{1=2!5%;>#2~=H3>3F&P+;H%(n3JY=)l169|)vCa+^cF`I%*bN_jT{xgaIq z`VmUq_<&-QFS3ZrHP~A)Ft8T^)o=jSxG_O#W{956DSjSC+zbp3_8`L<7#cQjZqjVcN^7y^L2vm1|E XGcxjSW@OT?-W*cn&Z delta 66 zcmeBq!#L$Nqm)a8lXK+5FZ)V@s=5EP+*Z|ky~m!Bfq`L4=|rhToL5R17y^Ji(}_ou W8F@ErGEP_9{6hT)(`EzhJ6-^O${BkA diff --git a/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm index ded914070..6489dec71 100644 --- a/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm @@ -25,7 +25,7 @@ dcl_constantbuffer CB1[259], dynamicIndexed dcl_constantbuffer CB2[5], immediateIndexed dcl_constantbuffer CB3[5], immediateIndexed dcl_constantbuffer CB4[4], immediateIndexed -dcl_constantbuffer CB13[13], immediateIndexed +dcl_constantbuffer CB13[19], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -357,6 +357,7 @@ else mov r1.xyw, l(0,0,0,0) endif ne r2.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +movc r2.y, cb13[18].w, l(0xFFFFFFFF), r2.y if_nz r2.y sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x mad r0.z, r0.z, l(0.750000), l(0.250000) @@ -383,6 +384,8 @@ else mov r10.xyz, r3.wwww mov r12.xyw, r3.wwww endif +movc r10.xyz, cb13[18].wwww, r10.xyzx, l(1.0, 1.0, 1.0, 0) +mul r1.xyw, r1.xyzw, r10.xyxz mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx add r14.xyz, r7.xzyx, -r14.xyzx max r0.z, |r14.y|, |r14.x| diff --git a/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0_original_backup.asm deleted file mode 100644 index 86cb2ba1e..000000000 --- a/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0_original_backup.asm +++ /dev/null @@ -1,990 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Sun Feb 1 03:51:02 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// 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[235], immediateIndexed -dcl_constantbuffer CB1[259], dynamicIndexed -dcl_constantbuffer CB2[5], immediateIndexed -dcl_constantbuffer CB3[5], immediateIndexed -dcl_constantbuffer CB4[4], 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_comparison -dcl_resource_structured t0, 4 -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_texture2darray (float,float,float,float) t5 -dcl_resource_texture2d (float,float,float,float) t6 -dcl_resource_texture2d (float,float,float,float) t7 -dcl_resource_texture2d (float,float,float,float) t8 -dcl_resource_texture3d (float,float,float,float) t9 -dcl_resource_texture2d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture3d (float,float,float,float) t12 -dcl_resource_texture2d (float,float,float,float) t13 -dcl_resource_texture2d (float,float,float,float) t14 -dcl_resource_texture3d (float,float,float,float) t15 -dcl_resource_texture3d (float,float,float,float) t16 -dcl_resource_texture3d (float,float,float,float) t17 -dcl_resource_texture3d (float,float,float,float) t18 -dcl_resource_texture3d (float,float,float,float) t19 -dcl_resource_texture3d (float,float,float,float) t20 -dcl_resource_texture2d (float,float,float,float) t21 -dcl_resource_texture2d (float,float,float,float) t22 -dcl_resource_texture2d (float,float,float,float) t23 -dcl_resource_texture2d (float,float,float,float) t24 -dcl_resource_texture3d (float,float,float,float) t25 -dcl_input_ps_siv linear noperspective v0.xy, position -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 26 -ftou r0.xy, v0.xyxx -mov r0.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw -ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t23.xyzw -ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t24.xyzw -mul r1.xyz, r1.xyzx, l(1023.000000, 1023.000000, 1023.000000, 0.000000) -ftou r1.xz, r1.xxzx -ubfe r4.x, l(7), l(3), r1.x -utof r4.x, r4.x -round_ne r1.y, r1.y -ftou r1.y, r1.y -mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r4.y, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| -add r5.y, -r4.y, l(1.000000) -lt r4.y, r5.y, l(0.000000) -ge r4.zw, r2.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) -add r6.xy, -|r2.yxyy|, l(1.000000, 1.000000, 0.000000, 0.000000) -movc r4.zw, r4.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000) -mul r4.zw, r4.zzzw, r6.xxxy -movc r5.xz, r4.yyyy, r4.zzwz, r2.xxyx -dp3 r2.x, r5.xyzx, r5.xyzx -rsq r2.x, r2.x -mul r6.xyz, r2.xxxx, r5.xyzx -and r2.y, r1.y, l(7) -utof r2.y, r2.y -mad r2.y, r2.y, l(0.107142866), l(0.500000) -utof r4.yz, r0.xxyx -mul r5.xz, v0.xxyx, cb0[82].zzwz -mad r7.xy, r5.xzxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -add r7.zw, r4.yyyz, l(0.000000, 0.000000, 0.500000, 0.500000) -mul r7.zw, r7.zzzw, cb0[82].zzzw -sample_l_indexable(texture2d)(float,float,float,float) r4.w, r7.zwzz, t1.yzwx, s0, l(0.000000) -mul r8.xyzw, -r7.yyyy, cb0[25].xyzw -mad r7.xyzw, cb0[24].xyzw, r7.xxxx, r8.xyzw -mad r7.xyzw, cb0[26].xyzw, r4.wwww, r7.xyzw -add r7.xyzw, r7.xyzw, cb0[27].xyzw -div r7.xyz, r7.xyzx, r7.wwww -mul r4.w, r7.y, cb0[1].z -mad r4.w, cb0[0].z, r7.x, r4.w -mad r4.w, cb0[2].z, r7.z, r4.w -add r4.w, r4.w, cb0[3].z -eq r5.w, l(0.000000), cb0[86].w -add r8.xyz, -r7.xyzx, cb0[44].xyzx -mov r9.x, cb0[0].z -mov r9.y, cb0[1].z -mov r9.z, cb0[2].z -movc r10.xyz, r5.wwww, r8.xyzx, r9.xyzx -dp3 r5.w, r10.xyzx, r10.xyzx -max r8.w, r5.w, l(9.999999939E-09) -rsq r8.w, r8.w -mul r11.xyz, r8.wwww, r10.xyzx -mul r5.w, r5.w, r8.w -lt r9.w, l(0.000488281250), cb0[234].x -if_nz r9.w - sample_b_indexable(texture2d)(float,float,float,float) r9.w, v1.xyxx, t21.yzwx, s1, cb0[108].x -else - mov r9.w, l(1.000000) -endif -lt r12.xy, l(0.500000, 0.500000, 0.000000, 0.000000), cb0[226].xyxx -if_nz r12.x - add r10.w, |r6.y|, |r6.x| - add r10.w, |r6.z|, r10.w - div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w - mul r12.xzw, |r6.xxyz|, r10.wwww - mul r13.xyzw, r12.xxzz, l(0.000000, 1.000000, 0.707106, 0.000000) - add r13.xyz, r13.zwzz, r13.xxyx - mad r12.xzw, r12.wwww, l(1.000000, 0.000000, 0.000000, 0.000000), r13.xxyz - mul r13.xyz, r7.xyzx, cb0[229].xxxx - sample_l_indexable(texture3d)(float,float,float,float) r10.w, r13.xyzx, t9.yzwx, s2, l(0.000000) - mad r10.w, r10.w, l(2.000000), l(-1.000000) - mul r12.xzw, r10.wwww, r12.xxzw - mov r10.w, |r6.y| - add r10.w, r10.w, l(-0.700000) - mul_sat r10.w, r10.w, l(4.000000) - mad r11.w, r10.w, l(-2.000000), l(3.000000) - mul r10.w, r10.w, r10.w - mul r10.w, r10.w, r11.w - add r11.w, -cb0[229].z, cb0[229].y - mad r10.w, r10.w, r11.w, cb0[229].z - mul r12.xzw, r10.wwww, r12.xxzw -else - mov r12.xzw, l(0,0,0,0) -endif -if_nz r12.y - mul r13.xyz, r6.xyzx, cb0[233].zzzz - mul r14.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy - mad r13.xyz, r13.xyzx, cb0[225].xxxx, r14.xyzx - max r10.w, -r6.y, l(0.000000) - min r10.w, r10.w, l(0.900000) - add r10.w, -r10.w, l(1.000000) - mad r2.x, -r5.y, r2.x, l(-0.200000) - mul_sat r2.x, r2.x, l(-10.000000) - mad r5.y, r2.x, l(-2.000000), l(3.000000) - mul r2.x, r2.x, r2.x - mul r2.x, r2.x, r5.y - max r2.x, r2.x, l(0.100000) - min r2.x, r2.x, l(1.000000) - mul r2.x, r2.x, r10.w - mad r13.xyz, r13.xyzx, r2.xxxx, r7.xyzx - add r12.xyz, r12.xzwx, r13.xyzx - mul r13.xyz, r12.yyyy, cb3[1].xyzx - mad r12.xyw, cb3[0].xyxz, r12.xxxx, r13.xyxz - mad r12.xyz, cb3[2].xyzx, r12.zzzz, r12.xywx - add r12.xyz, r12.xyzx, cb3[3].xyzx - mad r13.x, r12.x, l(0.500000), cb3[4].x - mad r2.x, r12.y, l(0.500000), l(0.500000) - add r13.z, -r2.x, cb3[4].y - add r12.xy, r13.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) - max r2.x, r12.z, l(0.000488281250) - sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r12.xyxx, t8.xxxx, s4, r2.x -else - mov r2.x, l(1.000000) -endif -mov_sat r5.y, r6.y -add r10.w, l(1.000000), -cb0[230].w -mad r5.y, r5.y, r10.w, cb0[230].w -add r12.xy, r7.xzxx, -cb0[44].xzxx -max r10.w, |r12.y|, |r12.x| -mul r11.w, r5.y, cb0[230].z -mul r12.x, r2.x, r5.y -mul r12.y, l(0.0500000119), cb0[222].w -mad r12.z, -cb0[222].w, l(0.700000), r10.w -div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), r12.y -mul_sat r12.y, r12.y, r12.z -mad r12.z, r12.y, l(-2.000000), l(3.000000) -mul r12.y, r12.y, r12.y -mul r12.y, r12.y, r12.z -mad r2.x, -r5.y, r2.x, l(1.000000) -mad r2.x, r12.y, r2.x, r12.x -mad r5.y, -cb0[230].z, r5.y, l(1.000000) -mad r2.x, r2.x, r5.y, r11.w -mad r5.y, cb0[230].x, cb0[222].w, -cb0[222].w -add r10.w, r10.w, -cb0[222].w -div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y -mul_sat r5.y, r5.y, r10.w -mad r10.w, r5.y, l(-2.000000), l(3.000000) -mul r5.y, r5.y, r5.y -mul r5.y, r5.y, r10.w -add r10.w, -r2.x, cb0[230].y -mad r2.x, r5.y, r10.w, r2.x -add r2.x, -r2.x, l(1.000000) -mad r2.x, -r9.w, r2.x, l(1.000000) -mad_sat r5.y, r2.z, l(0.300000), l(0.250000) -mul r5.y, r5.y, cb0[222].x -mul r5.y, r2.x, r5.y -mad r5.y, r5.y, l(-0.750000), l(1.000000) -mul r3.xyz, r3.xyzx, r5.yyyy -min r5.y, r2.z, l(0.300000) -mul r2.x, r2.x, cb0[222].x -mul r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 3.000000) -add r5.y, -r2.z, r5.y -mad r12.z, r2.x, r5.y, r2.z -mul r2.x, r2.y, l(0.080000) -dp3 r2.z, r6.xyzx, r11.xyzx -max r5.y, r2.z, l(0.000000) -mad r13.xyzw, r12.zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) -mul r9.w, r13.x, r13.x -mul r10.w, r5.y, l(-9.280000) -exp r10.w, r10.w -min r9.w, r9.w, r10.w -mad r9.w, r9.w, r13.x, r13.y -mad r13.xy, r9.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz -ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t6.zwxy -lt r0.z, l(0.001000), r13.z -if_nz r0.z - bfi r0.z, l(3), l(2), r1.x, l(0) - mul r1.x, r1.w, l(3.000000) - ftou r1.x, r1.x - bfi r0.z, l(2), l(0), r1.x, r0.z - utof r0.z, r0.z - mul r1.x, r0.z, l(0.0322580636) - ubfe r1.y, l(7), l(3), r1.y - utof r1.y, r1.y - mul r1.y, r1.y, l(0.00787401572) - sample_l_indexable(texture2d)(float,float,float,float) r1.w, r5.xzxx, t11.yzwx, s1, l(0.000000) - dp3 r9.w, -r11.xyzx, r6.xyzx - add r9.w, r9.w, r9.w - mad r14.xyz, r6.xyzx, -r9.wwww, -r11.xyzx - dp3 r9.w, -cb2[0].xyzx, r14.xyzx - mad r15.xyz, cb2[0].xyzx, r9.wwww, r14.xyzx - lt r9.w, r9.w, cb2[4].z - dp3 r10.w, r15.xyzx, r15.xyzx - max r10.w, r10.w, l(0.0000610351562) - rsq r10.w, r10.w - mul r15.xyz, r10.wwww, r15.xyzx - mul r15.xyz, r15.xyzx, cb2[4].yyyy - mad r15.xyz, -cb2[0].xyzx, cb2[4].zzzz, r15.xyzx - dp3 r10.w, r15.xyzx, r15.xyzx - rsq r10.w, r10.w - mul r15.xyz, r10.wwww, r15.xyzx - movc r14.xyz, r9.wwww, r15.xyzx, r14.xyzx - mad r10.xyz, r10.xyzx, r8.wwww, r14.xyzx - dp3 r8.w, r10.xyzx, r10.xyzx - max r8.w, r8.w, l(0.0000610351562) - rsq r8.w, r8.w - mul r10.xyz, r8.wwww, r10.xyzx - dp3 r8.w, r6.xyzx, r14.xyzx - mov_sat r12.x, r8.w - dp3_sat r9.w, r6.xyzx, r10.xyzx - dp3 r10.w, r11.xyzx, r14.xyzx - min r12.y, r5.y, l(1.000000) - mul r11.w, r12.z, r12.z - mul r11.w, r11.w, r11.w - mad r12.w, r9.w, r11.w, -r9.w - mad r9.w, r12.w, r9.w, l(1.000000) - dp3_sat r10.x, r11.xyzx, r10.xyzx - add r10.x, -r10.x, l(1.000000) - mul r10.y, r10.x, r10.x - mul r10.y, r10.y, r10.y - mul r10.z, r10.x, r10.y - add r12.w, -r12.z, l(1.000000) - mad r14.x, -r12.w, l(0.383026), l(-0.0761947036) - mad r14.x, r12.w, r14.x, l(1.049970) - mad r12.w, r12.w, r14.x, l(0.409255) - min r12.w, r12.w, l(0.999000) - add r14.x, -r12.w, l(1.000000) - mad r2.y, -r2.y, l(0.080000), l(1.000000) - mad r2.y, r2.y, l(0.0476190485), r2.x - mov_sat r14.y, -r10.w - mul r14.y, r14.y, r14.y - mad r14.y, r14.y, l(-0.640000), l(1.000000) - mul r14.y, r14.y, r14.y - mad r10.x, -r10.y, r10.x, l(1.000000) - mad r10.x, r2.x, r10.x, r10.z - mul r9.w, r9.w, r9.w - div r9.w, r11.w, r9.w - mad r10.yz, -r12.yyxy, r11.wwww, r12.yyxy - mad r10.yz, r10.yyzy, r12.yyxy, r11.wwww - sqrt r10.yz, r10.yyzy - mul r10.yz, r10.yyzy, r12.xxyx - add r10.y, r10.z, r10.y - add r10.y, r10.y, l(0.000100) - div r10.y, l(0.500000), r10.y - mul r9.w, r9.w, r10.y - mul r9.w, r9.w, r10.x - min r9.w, r9.w, l(2048.000000) - mad r15.xyzw, r12.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) - sample_l_indexable(texture2d)(float,float,float,float) r10.x, r15.xyxx, t10.xyzw, s1, l(0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r10.y, r15.zwzz, t10.yxzw, s1, l(0.000000) - mul r10.x, r10.y, r10.x - mul r10.x, r12.w, r10.x - div r10.x, r10.x, r14.x - mul r10.y, r2.y, r2.y - mul r10.x, r10.x, r10.y - mad r2.y, -r2.y, r14.x, l(1.000000) - div r2.y, r10.x, r2.y - add r2.y, r2.y, r9.w - add_sat r2.z, r2.z, l(0.200000) - mov_sat r9.w, r10.w - add r9.w, r9.w, l(0.500000) - min r9.w, r9.w, l(1.000000) - mul r10.x, r2.z, r9.w - add_sat r10.y, r10.w, l(1.000000) - mad r2.z, -r2.z, r9.w, l(1.000000) - mad r2.z, r10.y, r2.z, r10.x - mul r2.y, r2.z, r2.y - mul r2.y, r1.y, r2.y - mul r10.xyz, r1.yyyy, r3.xyzx - ubfe r2.z, l(7), l(3), r1.z - utof r2.z, r2.z - mul r2.z, r2.z, l(0.00787401572) - mul r2.y, r2.y, cb2[4].x - max r2.y, r2.y, l(0.000000) - min r2.y, r2.y, l(1000.000000) - mul r2.y, r12.x, r2.y - mad r10.xyz, r10.xyzx, r2.zzzz, r2.yyyy - max r2.y, r3.y, r3.x - max r2.y, r3.z, r2.y - max r2.y, r2.y, l(0.010000) - div r14.xzw, r3.xxyz, r2.yyyy - mul r2.y, r4.x, l(0.00393700786) - mul r14.xzw, r2.yyyy, r14.xxzw - add_sat r2.y, -r8.w, l(0.500000) - ne r2.z, r14.y, l(0.360000) - div r9.w, l(0.360000), r14.y - movc r2.z, r2.z, r9.w, l(1.000000) - mul r2.y, r2.z, r2.y - mad_sat r0.z, r0.z, l(0.0322580636), r8.w - add r0.z, -r12.x, r0.z - mul r12.xyw, r0.zzzz, r3.xyxz - mad r12.xyw, r14.xzxw, r2.yyyy, r12.xyxw - mad r10.xyz, r12.xywx, r1.yyyy, r10.xyzx - mul r10.xyz, r10.xyzx, cb2[1].xyzx - mov r13.w, l(0.500000) - sample_b_indexable(texture2d)(float,float,float,float) r12.xyw, r13.zwzz, t7.xywz, s1, cb0[108].x - add r0.z, -r13.z, l(1.000000) - mad r12.xyw, r10.xyxz, r12.xyxw, -r10.xyxz - mad r10.xyz, r0.zzzz, r12.xywx, r10.xyzx - max r0.z, r1.y, r1.w - add r0.z, -r1.w, r0.z - mad r0.z, r1.x, r0.z, r1.w - mul r1.xyw, r0.zzzz, r10.xyxz -else - mov r1.xyw, l(0,0,0,0) -endif -ne r2.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx -if_nz r2.y - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x - mad r0.z, r0.z, l(0.750000), l(0.250000) - min r0.z, r3.w, r0.z - add r2.y, r0.z, r5.y - mad r8.w, r12.z, l(-16.000000), l(-1.000000) - exp r8.w, r8.w - log r2.y, |r2.y| - mul r2.y, r2.y, r8.w - exp r2.y, r2.y - add r2.y, r0.z, r2.y - add r2.y, r2.y, l(-1.000000) - mov_sat r10.xyz, r2.yyyy - mad r12.xyw, r3.xyxz, l(2.040400, 2.040400, 0.000000, 2.040400), l(-0.332400, -0.332400, 0.000000, -0.332400) - mul r12.xyw, r0.zzzz, r12.xyxw - mad r12.xyw, r3.xyxz, l(-4.795100, -4.795100, 0.000000, -4.795100), r12.xyxw - add r12.xyw, r12.xyxw, l(0.641700, 0.641700, 0.000000, 0.641700) - mul r12.xyw, r0.zzzz, r12.xyxw - mad r12.xyw, r3.xyxz, l(2.755200, 2.755200, 0.000000, 2.755200), r12.xyxw - add r12.xyw, r12.xyxw, l(0.690300, 0.690300, 0.000000, 0.690300) - mul r12.xyw, r0.zzzz, r12.xyxw - max r12.xyw, r0.zzzz, r12.xyxw -else - mov r10.xyz, r3.wwww - mov r12.xyw, r3.wwww -endif -mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx -add r14.xyz, r7.xzyx, -r14.xyzx -max r0.z, |r14.y|, |r14.x| -add r0.z, r0.z, l(-464.000000) -mul_sat r0.z, r0.z, l(0.031250) -add r2.y, |r14.z|, l(-208.000000) -mul_sat r2.y, r2.y, l(0.031250) -max r0.z, r0.z, r2.y -ne r2.y, l(0.000000), cb0[210].w -lt r3.w, r0.z, l(1.000000) -and r2.y, r2.y, r3.w -if_nz r2.y - mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r14.xyz, r7.xzyx, -r14.xyzx - max r2.y, |r14.y|, |r14.x| - add r2.y, r2.y, l(-29.000000) - mul_sat r2.y, r2.y, l(0.500000) - add r3.w, |r14.z|, l(-13.000000) - mul_sat r3.w, r3.w, l(0.500000) - max r2.y, r2.y, r3.w - lt r3.w, r2.y, l(1.000000) - if_nz r3.w - mad r14.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r15.xyz, r14.xyzx, cb0[211].xyzx - round_ni r15.xyz, r15.xyzx - mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r15.xyw, r14.xyzx, t15.yzwx, s2, l(0.000000) - add r3.w, -r2.y, l(1.000000) - mul r8.w, l(0.500000), cb0[211].y - mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) - max r8.w, r8.w, r14.y - min r8.w, r9.w, r8.w - mul r14.w, r8.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t16.xyzw, s1, l(0.000000) - mad r8.w, r16.w, r3.w, r0.z - add r17.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s1, l(0.000000) - mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r17.xyz, r15.yyyy, r17.xyzx - mov r17.w, r15.y - mul r17.xyzw, r3.wwww, r17.xyzw - add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t16.xyzw, s1, l(0.000000) - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r14.xyz, r15.xxxx, r14.xyzx - mov r14.w, r15.x - mul r14.xyzw, r3.wwww, r14.xyzw - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r15.xyz, r15.wwww, r16.xyzx - mul r15.xyzw, r3.wwww, r15.xyzw - else - mov r17.xyzw, l(0,0,0,0) - mov r14.xyzw, l(0,0,0,0) - mov r15.xyzw, l(0,0,0,0) - mov r8.w, r0.z - endif - mad r16.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx - add r16.xyz, r7.xzyx, -r16.xyzx - max r3.w, |r16.y|, |r16.x| - add r3.w, r3.w, l(-116.000000) - mul_sat r3.w, r3.w, l(0.125000) - add r9.w, |r16.z|, l(-52.000000) - mul_sat r9.w, r9.w, l(0.125000) - max r3.w, r3.w, r9.w - lt r9.w, r3.w, l(1.000000) - if_nz r9.w - mad r16.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r18.xyz, r16.xyzx, cb0[211].xyzx - round_ni r18.xyz, r18.xyzx - mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r16.xyzx, t17.yzwx, s2, l(0.000000) - add r9.w, -r3.w, l(1.000000) - mul r2.y, r2.y, r9.w - mul r9.w, l(0.500000), cb0[211].y - mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) - max r9.w, r9.w, r16.y - min r9.w, r10.w, r9.w - mul r16.w, r9.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r16.xwzx, t18.xyzw, s1, l(0.000000) - mad r8.w, r19.w, r2.y, r8.w - add r20.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t18.xyzw, s1, l(0.000000) - mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r18.yyyy, r20.xyzx - mov r20.w, r18.y - mad r17.xyzw, r20.xyzw, r2.yyyy, r17.xyzw - add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t18.xyzw, s1, l(0.000000) - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r18.xxxx, r16.xyzx - mov r16.w, r18.x - mad r14.xyzw, r16.xyzw, r2.yyyy, r14.xyzw - mad r16.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r18.wwww, r16.xyzx - mad r15.xyzw, r18.xyzw, r2.yyyy, r15.xyzw - endif - lt r2.y, l(0.000000), r3.w - if_nz r2.y - mad r16.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r18.xyz, r16.xyzx, cb0[211].xyzx - mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r18.xyz, r18.xyzx - mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r18.xyzx - mad r18.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r16.xyz, r19.xyzx, r16.xyzx - min r16.xyz, r18.xyzx, r16.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r16.xyzx, t19.yzwx, s2, l(0.000000) - add r2.y, -r0.z, l(1.000000) - mul r2.y, r2.y, r3.w - max r3.w, r19.y, r16.y - min r3.w, r18.y, r3.w - mul r16.w, r3.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t20.xyzw, s1, l(0.000000) - add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t20.xyzw, s1, l(0.000000) - mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r19.xyz, r20.yyyy, r19.xyzx - mov r19.w, r20.y - mad r17.xyzw, r19.xyzw, r2.yyyy, r17.xyzw - add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t20.xyzw, s1, l(0.000000) - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r20.xxxx, r16.xyzx - mov r16.w, r20.x - mad r14.xyzw, r16.xyzw, r2.yyyy, r14.xyzw - mad r16.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r20.wwww, r16.xyzx - mad r15.xyzw, r20.xyzw, r2.yyyy, r15.xyzw - mad r8.w, r18.w, r2.y, r8.w - endif - mad_sat r2.y, r8.w, l(2.000000), l(-1.000000) - add r16.x, -r0.z, r2.y - add r0.z, r0.z, r2.y - mul r16.y, r0.z, l(0.500000) -else - mov r17.xyzw, l(0,0,0,0) - mov r14.xyzw, l(0,0,0,0) - mov r15.xyzw, l(0,0,0,0) - mov r16.xy, l(0,1.000000,0,0) -endif -mul r18.xyzw, r16.yyyx, cb0[213].xyzw -mad r18.y, r18.w, l(0.500000), r18.y -mul r13.zw, r16.yyyx, cb0[213].wwwy -mad r18.w, r13.w, l(0.375000), r13.z -add r15.xyzw, r15.xyzw, r18.xyzw -mul r18.xyzw, r16.yyyx, cb0[214].xyzw -mad r18.y, r18.w, l(0.500000), r18.y -mul r13.zw, r16.yyyx, cb0[214].wwwy -mad r18.w, r13.w, l(0.375000), r13.z -add r14.xyzw, r14.xyzw, r18.xyzw -mul r18.xyzw, r16.yyyx, cb0[215].xyzw -mad r18.y, r18.w, l(0.500000), r18.y -mul r13.zw, r16.yyyx, cb0[215].wwwy -mad r18.w, r13.w, l(0.375000), r13.z -add r16.xyzw, r17.xyzw, r18.xyzw -ge r13.zw, r5.xxxz, l(0.000000, 0.000000, 0.000000, 0.000000) -and r0.z, r13.w, r13.z -if_nz r0.z - sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r5.xzxx, t14.xyzw, s1, l(0.000000) - lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| - or r5.xz, r18.zzwz, r18.xxyx - or r0.z, r5.z, r5.x - if_nz r0.z - dp3 r0.z, r17.yzwy, r17.yzwy - sqrt r0.z, r0.z - mov r5.x, l(1.000000) - mov r5.z, r0.z - mov r2.y, l(0) - loop - ge r3.w, l(4.600000), r5.z - breakc_nz r3.w - iadd r3.w, r2.y, l(1) - mul r13.zw, r5.xxxz, l(0.000000, 0.000000, 0.500000, 0.500000) - mov r5.xz, r13.zzwz - mov r2.y, r3.w - continue - endloop - mul r17.xyzw, r5.xxxx, r17.xyzw - dp3 r0.z, r17.yzwy, r17.yzwy - sqrt r0.z, r0.z - mad r0.z, r0.z, cb4[3].x, cb4[3].y - mad r0.z, r0.z, l(255.000000), l(0.500000) - mul r18.x, r0.z, l(0.00390625000) - mov r18.y, l(0.500000) - sample_l_indexable(texture2d)(float,float,float,float) r5.xz, r18.xyxx, t13.xzyw, s1, l(0.000000) - mad r5.xz, r5.xxzx, cb4[2].xxyx, cb4[2].zzwz - mul r18.x, r5.x, l(3.54490781) - mul r18.yzw, r5.zzzz, r17.yyzw - mul r0.z, r17.x, l(0.406976730) - exp r0.z, r0.z - mul r17.xyzw, r0.zzzz, r18.xyzw - mov r18.xyzw, r17.xyzw - mov r0.z, l(0) - loop - uge r3.w, r0.z, r2.y - breakc_nz r3.w - mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - dp4 r3.w, r19.xyzw, r18.xyzw - dp2 r5.x, r19.yxyy, r18.xyxx - dp2 r5.z, r19.zxzz, r18.xzxx - dp2 r8.w, r19.wxww, r18.xwxx - iadd r9.w, r0.z, l(1) - mov r18.x, r3.w - mov r18.yz, r5.xxzx - mov r18.w, r8.w - mov r0.z, r9.w - continue - endloop - mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r0.z, r17.xyzw, r18.xyzw - dp2 r2.y, r17.yxyy, r18.xyxx - dp2 r3.w, r17.zxzz, r18.xzxx - dp2 r5.x, r17.wxww, r18.xwxx - mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r5.z, r17.xyzw, r18.xyzw - dp2 r8.w, r17.yxyy, r18.xyxx - dp2 r9.w, r17.zxzz, r18.xzxx - dp2 r10.w, r17.wxww, r18.xwxx - mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r11.w, r17.xyzw, r18.xyzw - dp2 r13.z, r17.yxyy, r18.xyxx - dp2 r13.w, r17.zxzz, r18.xzxx - dp2 r17.x, r17.wxww, r18.xwxx - mul r15.w, r0.z, l(0.886226952) - mul r15.x, r5.x, l(-1.02332675) - mul r15.y, r2.y, l(-1.02332675) - mul r15.z, r3.w, l(1.02332675) - mul r14.w, r5.z, l(0.886226952) - mul r14.x, r10.w, l(-1.02332675) - mul r14.y, r8.w, l(-1.02332675) - mul r14.z, r9.w, l(1.02332675) - mul r16.w, r11.w, l(0.886226952) - mul r16.x, r17.x, l(-1.02332675) - mul r16.yz, r13.zzwz, l(0.000000, -1.02332675, 1.02332675, 0.000000) - endif -endif -mov r6.w, l(1.000000) -dp4 r17.x, r15.xyzw, r6.xyzw -dp4 r17.y, r14.xyzw, r6.xyzw -dp4 r17.z, r16.xyzw, r6.xyzw -max r17.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -dp3 r0.z, -r11.xyzx, r6.xyzx -add r0.z, r0.z, r0.z -mad r18.xyz, r6.xyzx, -r0.zzzz, -r11.xyzx -add r0.z, l(-1.000000), cb0[113].x -max r2.y, r12.z, l(0.001000) -log r2.y, r2.y -mad r2.y, -r2.y, l(1.200000), l(1.000000) -add r0.z, r0.z, -r2.y -mul r5.xz, r4.yyzy, cb1[0].wwww -round_ni r5.xz, r5.xxzx -add r2.y, |r4.w|, -cb1[2].y -round_ni r2.y, r2.y -add r3.w, l(-1.000000), cb1[1].x -max r8.w, r2.y, l(0.000000) -min r3.w, r3.w, r8.w -ge r2.y, r3.w, r2.y -mad r5.x, r5.z, cb1[0].x, r5.x -ftoi r5.x, r5.x -iadd r5.x, r5.x, cb0[110].z -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.x, r5.x, l(0), t0.xxxx -ftoi r3.w, r3.w -iadd r3.w, r3.w, cb0[110].w -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx -and r3.w, r3.w, r5.x -and r2.y, r2.y, r3.w -mul r19.xyz, r17.xyzx, cb0[111].xxxx -dp3 r3.w, r19.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mov r7.w, l(1.000000) -mov r19.xyz, l(0,0,0,0) -mov r5.x, l(1.000000) -mov r5.z, r2.y -mov r8.w, l(0) -loop - lt r9.w, l(0.010000), r5.x - ine r10.w, r5.z, l(0) - and r10.w, r9.w, r10.w - if_nz r10.w - firstbit_lo r10.w, r5.z - ishl r11.w, l(1), r10.w - xor r5.z, r5.z, r11.w - ishl r10.w, r10.w, l(3) - dp4 r20.x, cb1[r10.w + 6].xyzw, r7.xyzw - dp4 r20.y, cb1[r10.w + 7].xyzw, r7.xyzw - dp4 r20.z, cb1[r10.w + 8].xyzw, r7.xyzw - ge r21.xyz, cb1[r10.w + 5].xyzx, |r20.xyzx| - and r11.w, r21.y, r21.x - and r11.w, r21.z, r11.w - if_nz r11.w - mul r11.w, l(0.100000), cb1[r10.w + 5].x - mul r21.xyz, |r20.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) - mul r13.zw, r21.xxxy, r21.xxxy - add r21.xyw, -|r20.xyxz|, cb1[r10.w + 5].xyxz - mul r21.xyw, r21.xyxw, cb1[r10.w + 9].xyxz - eq r12.z, l(1.000000), cb1[r10.w + 10].x - if_nz r12.z - dp3 r22.x, cb1[r10.w + 6].xyzx, r18.xyzx - dp3 r22.y, cb1[r10.w + 7].xyzx, r18.xyzx - dp3 r22.z, cb1[r10.w + 8].xyzx, r18.xyzx - add r23.xyz, -r20.xyzx, cb1[r10.w + 5].xyzx - div r23.xyz, r23.xyzx, r22.xyzx - add r24.xyz, -r20.xyzx, -cb1[r10.w + 5].xyzx - div r24.xyz, r24.xyzx, r22.xyzx - lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx - movc r23.xyz, r25.xyzx, r23.xyzx, r24.xyzx - min r12.z, r23.y, r23.x - min r12.z, r23.z, r12.z - mad r20.xyz, r22.xyzx, r12.zzzz, r20.xyzx - else - mov r20.xyz, r18.xyzx - endif - dp3 r12.z, r20.xyzx, r20.xyzx - rsq r12.z, r12.z - mul r20.xyz, r12.zzzz, r20.xyzx - lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx - lt r23.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r22.xyz, -r22.xyzx, r23.xyzx - itof r22.xyz, r22.xyzx - dp3 r12.z, r20.xyzx, r22.xyzx - div r20.xyz, r20.xyzx, r12.zzzz - lt r12.z, r20.z, l(0.000000) - add r20.zw, -|r20.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r20.zw, r20.zzzw, r22.xxxy - movc r20.xy, r12.zzzz, r20.zwzz, r20.xyxx - dp4 r12.z, cb1[r10.w + 4].xyzw, r6.xyzw - max r12.z, r12.z, l(0.000000) - max r12.z, r12.z, l(0.000100) - min r17.w, r21.w, r21.y - min r17.w, r17.w, r21.x - add r13.z, r13.w, r13.z - mad r13.z, r21.z, r21.z, r13.z - mad r11.w, r11.w, r11.w, -r13.z - mul r11.w, r11.w, cb1[r10.w + 9].x - mul r11.w, r11.w, cb1[r10.w + 9].x - add r13.z, l(1.000000), -cb1[r10.w + 10].y - mul r11.w, r11.w, r13.z - mul r11.w, r11.w, l(100.000000) - mad_sat r11.w, r17.w, cb1[r10.w + 10].y, r11.w - mul r13.z, r11.w, cb1[r10.w + 10].w - mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) - mad r20.xy, r20.xyxx, cb1[1].wwww, cb1[2].wwww - mov r20.z, cb1[r10.w + 5].w - sample_l_indexable(texture2darray)(float,float,float,float) r20.xyz, r20.xyzx, t5.xyzw, s3, r0.z - mul r20.xyz, r20.xyzx, cb1[r10.w + 9].wwww - div r13.w, r3.w, r12.z - min r13.w, |r13.w|, l(1.000000) - mad r13.w, r13.w, l(2.000000), r3.w - add r12.z, r12.z, l(2.000000) - div r12.z, r13.w, r12.z - add r12.z, r12.z, l(-1.000000) - mad r12.z, r12.z, cb0[112].w, l(1.000000) - mul r20.xyz, r12.zzzz, r20.xyzx - mul r20.xyz, r13.zzzz, r20.xyzx - mad r19.xyz, r20.xyzx, r5.xxxx, r19.xyzx - mad r10.w, -r11.w, cb1[r10.w + 10].w, l(1.000000) - mul r5.x, r5.x, r10.w - endif - mov r8.w, l(-1) - continue - else - mov r8.w, r9.w - break - endif - mov r8.w, r9.w -endloop -if_nz r8.w - dp3 r2.y, r18.xyzx, r18.xyzx - rsq r2.y, r2.y - mul r18.xyz, r2.yyyy, r18.xyzx - lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx - lt r21.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r20.xyz, -r20.xyzx, r21.xyzx - itof r20.xyz, r20.xyzx - dp3 r2.y, r18.xyzx, r20.xyzx - div r18.xyz, r18.xyzx, r2.yyyy - lt r2.y, r18.z, l(0.000000) - add r13.zw, -|r18.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r13.zw, r13.zzzw, r20.xxxy - movc r13.zw, r2.yyyy, r13.zzzw, r18.xxxy - dp4 r2.y, cb1[3].xyzw, r6.xyzw - max r2.y, r2.y, l(0.000000) - max r2.y, r2.y, l(0.000100) - mad r13.zw, r13.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) - mad r18.xy, r13.zwzz, cb1[1].wwww, cb1[2].wwww - mov r18.z, l(0) - sample_l_indexable(texture2darray)(float,float,float,float) r18.xyz, r18.xyzx, t5.xyzw, s3, r0.z - div r0.z, r3.w, r2.y - min r0.z, |r0.z|, l(1.000000) - mad r0.z, r0.z, l(2.000000), r3.w - add r2.y, r2.y, l(2.000000) - div r0.z, r0.z, r2.y - add r0.z, r0.z, l(-1.000000) - mad r0.z, r0.z, cb0[112].w, l(1.000000) - mul r18.xyz, r0.zzzz, r18.xyzx - mad r19.xyz, r18.xyzx, r5.xxxx, r19.xyzx -endif -mul r18.xyz, r19.xyzx, cb0[112].zzzz -mul r18.xyz, r18.xyzx, cb0[111].yyyy -if_nz r2.z - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r19.xyz, v1.xyxx, t2.xyzw, s1, cb0[108].x - add r2.y, -r0.z, l(1.000000) - mul r20.xyz, r2.yyyy, r18.xyzx - mad r18.xyz, r19.xyzx, r0.zzzz, r20.xyzx -endif -mul r17.xyz, r3.xyzx, r17.xyzx -mul r17.xyz, r17.xyzx, cb0[111].xxxx -mad r0.z, r2.x, r13.x, r13.y -mul r2.xyz, r0.zzzz, r18.xyzx -mul r2.xyz, r10.xyzx, r2.xyzx -mad r2.xyz, r17.xyzx, r12.xywx, r2.xyzx -mul r6.xyzw, r6.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) -dp4 r10.x, r15.xyzw, r6.xyzw -dp4 r10.y, r14.xyzw, r6.xyzw -dp4 r10.z, r16.xyzw, r6.xyzw -max r6.xyz, r10.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -mul r6.xyz, r6.xyzx, cb0[111].xxxx -mul r6.xyz, r12.xywx, r6.xyzx -max r0.z, r3.y, r3.x -max r0.z, r3.z, r0.z -max r0.z, r0.z, l(0.010000) -div r3.xyz, r3.xyzx, r0.zzzz -mul r3.xyz, r3.xyzx, r6.xyzx -mul r0.z, r4.x, l(0.00787401572) -min r3.w, r5.y, l(1.000000) -bfi r1.z, l(3), l(2), r1.z, l(0) -ftou r2.w, r2.w -bfi r1.z, l(2), l(0), r2.w, r1.z -utof r1.z, r1.z -mul r1.z, r1.z, l(0.0322580636) -mad r0.z, r0.z, r3.w, r1.z -mul r3.xyz, r0.zzzz, r3.xyzx -mad r2.xyz, r3.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r2.xyzx -add r1.xyz, r1.xywx, r2.xyzx -max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) -mad r0.z, r7.y, cb0[156].w, cb0[157].w -max r0.z, r0.z, l(0.010000) -mad r1.w, r5.w, cb0[154].w, -cb0[153].w -max r1.w, r1.w, l(0.000000) -mul r2.x, r0.z, l(-1.442695) -exp r2.x, r2.x -add r2.x, -r2.x, l(1.000000) -div r0.z, r2.x, r0.z -mad r2.x, r7.y, cb0[156].w, cb0[158].w -mul r2.x, r2.x, l(1.442695) -exp r2.x, r2.x -mul r0.z, r0.z, r2.x -mul r0.z, r0.z, -r1.w -mul r2.xyz, r0.zzzz, cb0[155].xyzx -mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) -exp r2.xyz, r2.xyzx -dp3 r0.z, -r11.xyzx, cb0[154].xyzx -mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) -dp2 r2.w, r0.zzzz, cb0[155].wwww -add r1.w, r1.w, -r2.w -lt r2.w, l(0.000000), cb0[163].z -if_nz r2.w - and r0.w, l(7), cb0[108].w - imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) - imad r0.x, r0.y, r0.w, r0.x - imad r0.y, r0.w, r0.x, r0.y - imad r0.w, r0.x, r0.y, r0.w - imad r3.x, r0.y, r0.w, r0.x - dp3 r0.x, -r11.xyzx, -r9.xyzx - add r2.w, r7.y, -cb0[44].y - lt r3.z, l(5.960464478E-08), r0.x - div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x - and r0.x, r0.x, r3.z - mul r0.x, r0.x, cb0[163].w - div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w - mul r3.w, r0.x, r3.z - mad r4.x, r3.w, r2.w, cb0[44].y - mad r2.w, -r3.w, r2.w, r2.w - mul r3.w, r2.w, cb0[159].z - max r3.w, r3.w, l(-127.000000) - mul r2.w, r2.w, cb0[162].x - max r2.w, r2.w, l(-127.000000) - add r5.x, r4.x, -cb0[159].x - mul r5.x, r5.x, cb0[159].z - max r5.x, r5.x, l(-127.000000) - exp r5.x, -r5.x - mul r5.x, r5.x, cb0[159].y - lt r5.y, l(5.960464478E-08), |r3.w| - exp r5.z, -r3.w - add r5.z, -r5.z, l(1.000000) - div r5.z, r5.z, r3.w - mad r3.w, -r3.w, l(0.240226507), l(0.693147182) - movc r3.w, r5.y, r5.z, r3.w - add r4.x, r4.x, -cb0[162].z - mul r4.x, r4.x, cb0[162].x - max r4.x, r4.x, l(-127.000000) - exp r4.x, -r4.x - mul r4.x, r4.x, cb0[162].y - lt r5.y, l(5.960464478E-08), |r2.w| - exp r5.z, -r2.w - add r5.z, -r5.z, l(1.000000) - div r5.z, r5.z, r2.w - mad r2.w, -r2.w, l(0.240226507), l(0.693147182) - movc r2.w, r5.y, r5.z, r2.w - mul r2.w, r2.w, r4.x - mad r2.w, r5.x, r3.w, r2.w - mad r0.x, -r0.x, r3.z, l(1.000000) - mul r0.x, r5.w, r0.x - mul r0.x, r0.x, r2.w - exp r0.x, -r0.x - min r0.x, r0.x, l(1.000000) - max r0.x, r0.x, cb0[161].w - mad_sat r3.zw, r5.wwww, cb0[160].yyyw, cb0[160].xxxz - add r0.x, r0.x, r3.z - add r0.x, r3.w, r0.x - min r0.x, r0.x, l(1.000000) - imad r3.y, r0.w, r3.x, r0.y - ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) - utof r0.yw, r0.yyyw - mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r0.yw, r0.yyyw, cb0[167].wwww, r4.yyyz - mul r3.xy, r0.ywyy, cb0[165].xyxx - mad r0.y, |r4.w|, cb0[164].x, cb0[164].y - log r0.y, r0.y - mul r0.y, r0.y, cb0[164].z - div r3.z, r0.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t12.xyzw, s1, l(0.000000) - add r0.y, |r4.w|, -cb0[166].z - mul_sat r0.y, r0.y, l(1000000.000000) - add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r0.y, -r0.x, l(1.000000) - mul r4.xyz, r0.yyyy, cb0[161].xyzx - mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx - mul r0.x, r0.x, r3.w -else - add r0.y, r7.y, -cb0[44].y - mul r0.w, r0.y, cb0[159].z - mul r0.y, r0.y, cb0[162].x - max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) - add r2.w, cb0[44].y, -cb0[159].x - mul r2.w, r2.w, cb0[159].z - max r2.w, r2.w, l(-127.000000) - exp r2.w, -r2.w - mul r2.w, r2.w, cb0[159].y - lt r3.w, l(5.960464478E-08), |r0.w| - exp r4.x, -r0.w - add r4.x, -r4.x, l(1.000000) - div r4.x, r4.x, r0.w - mad r0.w, -r0.w, l(0.240226507), l(0.693147182) - movc r0.w, r3.w, r4.x, r0.w - add r3.w, cb0[44].y, -cb0[162].z - mul r3.w, r3.w, cb0[162].x - max r3.w, r3.w, l(-127.000000) - exp r3.w, -r3.w - mul r3.w, r3.w, cb0[162].y - lt r4.x, l(5.960464478E-08), |r0.y| - exp r4.y, -r0.y - add r4.y, -r4.y, l(1.000000) - div r4.y, r4.y, r0.y - mad r0.y, -r0.y, l(0.240226507), l(0.693147182) - movc r0.y, r4.x, r4.y, r0.y - mul r0.y, r0.y, r3.w - mad r0.y, r2.w, r0.w, r0.y - mul r0.y, r5.w, r0.y - exp r0.y, -r0.y - min r0.y, r0.y, l(1.000000) - max r0.y, r0.y, cb0[161].w - mad_sat r4.xy, r5.wwww, cb0[160].ywyy, cb0[160].xzxx - add r0.y, r0.y, r4.x - add r0.y, r4.y, r0.y - min r0.x, r0.y, l(1.000000) - add r0.y, -r0.x, l(1.000000) - mul r3.xyz, r0.yyyy, cb0[161].xyzx -endif -mul r4.xyz, r0.xxxx, r2.xyzx -mad r0.y, r0.z, r0.z, l(1.000000) -mul r0.y, r0.y, l(0.0596831031) -mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz -mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) -mul r3.w, r1.w, l(12.566371) -sqrt r1.w, r1.w -mul r1.w, r1.w, r3.w -max r1.w, r1.w, l(0.001000) -div r1.w, r2.w, r1.w -mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw -mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) -add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mul r0.yzw, r0.yyzw, r2.xxyz -mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx -mad r0.xyz, r1.xyzx, r4.xyzx, r0.xyzx -dp3 r0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) -dp3 r1.w, r8.xyzx, r8.xyzx -sqrt r1.w, r1.w -mad_sat r1.w, -r1.w, cb0[169].z, l(1.000000) -mul r2.x, r1.w, cb0[169].x -mad r1.w, -cb0[169].x, r1.w, l(1.000000) -mul r2.yzw, cb0[168].xxyz, cb0[183].wwww -mad r2.yzw, r7.xxyz, cb0[169].yyyy, r2.yyzw -sample_l_indexable(texture3d)(float,float,float,float) r2.y, r2.yzwy, t25.xwyz, s2, l(0.000000) -dp2 r2.x, r2.yyyy, r2.xxxx -add r1.w, r1.w, r2.x -add r2.x, r0.w, l(1.000000) -min r1.w, r1.w, r2.x -add r0.xyz, -r1.xyzx, r0.xyzx -mad o0.xyz, r1.wwww, r0.xyzx, r1.xyzx -mov o0.w, r0.w -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0_original_backup.asm deleted file mode 100644 index eb832b91d..000000000 --- a/src/games/endfield/deferred-lighting/0xC34914B1.ps_5_0_original_backup.asm +++ /dev/null @@ -1,1911 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Sat Jan 31 22:27:23 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy w -// TEXCOORD 0 xy 1 NONE float xy -// TEXCOORD 1 xyz 2 NONE float xyz -// TEXCOORD 2 xyz 3 NONE float xyz -// TEXCOORD 3 xyzw 4 NONE float xyzw -// TEXCOORD 4 xyz 5 NONE float xyz -// TEXCOORD 5 xyz 6 NONE float xyz -// TEXCOORD 6 xyz 7 NONE float xyz -// TEXCOORD 7 xyz 8 NONE float xyz -// TEXCOORD 8 x 9 NONE uint x -// SV_IsFrontFace 0 x 10 FFACE uint x -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// SV_Target 1 xyzw 1 TARGET float xyzw -// -ps_5_0 -dcl_globalFlags refactoringAllowed -dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, - { 0, 1.000000, 0, 0}, - { 0, 0, 1.000000, 0}, - { 0, 0, 0, 1.000000}, - { 2, 1, -1.000000, 1.000000}, - { 2, 1, 1.000000, 1.000000}, - { 0, 2, 1.000000, -1.000000}, - { 0, 2, 1.000000, 1.000000}, - { 0, 1, 1.000000, 1.000000}, - { 0, 1, -1.000000, 1.000000} } -dcl_constantbuffer CB0[216], immediateIndexed -dcl_constantbuffer CB1[4093], dynamicIndexed -dcl_constantbuffer CB2[3], immediateIndexed -dcl_constantbuffer CB3[2054], dynamicIndexed -dcl_constantbuffer CB4[401], dynamicIndexed -dcl_constantbuffer CB5[14], immediateIndexed -dcl_constantbuffer CB6[160], dynamicIndexed -dcl_sampler s0, mode_default -dcl_sampler s1, mode_default -dcl_sampler s2, mode_comparison -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_resource_structured t0, 4 -dcl_resource_structured t1, 16 -dcl_resource_texture2d (float,float,float,float) t2 -dcl_resource_texture2d (float,float,float,float) t3 -dcl_resource_texture3d (float,float,float,float) t4 -dcl_resource_texture3d (float,float,float,float) t5 -dcl_resource_texture3d (float,float,float,float) t6 -dcl_resource_texture3d (float,float,float,float) t7 -dcl_resource_texture3d (float,float,float,float) t8 -dcl_resource_texture3d (float,float,float,float) t9 -dcl_resource_texture2d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture2d (float,float,float,float) t12 -dcl_resource_texture2d (float,float,float,float) t13 -dcl_resource_texture2d (float,float,float,float) t14 -dcl_resource_texture2d (float,float,float,float) t15 -dcl_resource_texture2d (float,float,float,float) t16 -dcl_resource_texturecube (float,float,float,float) t17 -dcl_resource_texture2d (float,float,float,float) t18 -dcl_resource_texture3d (float,float,float,float) t19 -dcl_input_ps_siv linear noperspective v0.xyw, position -dcl_input_ps linear v1.xy -dcl_input_ps linear v2.xyz -dcl_input_ps linear v3.xyz -dcl_input_ps linear v4.xyzw -dcl_input_ps linear v5.xyz -dcl_input_ps linear v6.xyz -dcl_input_ps linear v7.xyz -dcl_input_ps linear v8.xyz -dcl_input_ps constant v9.x -dcl_input_ps_sgv constant v10.x, is_front_face -dcl_output o0.xyzw -dcl_output o1.xyzw -dcl_temps 32 -add r0.xyz, -v2.xyzx, cb0[44].xyzx -mov r1.x, cb0[0].z -mov r1.y, cb0[1].z -mov r1.z, cb0[2].z -add r2.xyz, -r0.xyzx, r1.xyzx -mad r0.xyz, cb0[86].wwww, r2.xyzx, r0.xyzx -dp3 r0.w, r0.xyzx, r0.xyzx -max r1.w, r0.w, l(9.999999939E-09) -rsq r1.w, r1.w -mul r2.xyz, r0.xyzx, r1.wwww -ishl r2.w, v9.x, l(4) -and r3.x, l(16), cb1[r2.w + 4].w -if_nz r3.x - iadd r3.x, l(2), cb1[r2.w + 5].x - ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.x, r3.x, l(12), t1.xxxx - ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.y, cb1[r2.w + 5].x, l(12), t1.xxxx -else - mov r3.xy, cb1[r2.w + 3].zxzz -endif -sample_b_indexable(texture2d)(float,float,float,float) r4.xyzw, v1.xyxx, t13.xyzw, s4, cb0[108].x -sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t14.xyzw, s5, cb0[108].x -add r3.z, -r5.w, l(1.000000) -mul r4.xyzw, r4.xyzw, cb5[5].xyzw -mul r6.xyz, r4.xyzx, cb5[4].zzzz -dp3 r3.w, r6.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r6.xyz, r4.xyzx, cb5[4].zzzz, -r3.wwww -mad r6.xyz, cb5[4].wwww, r6.xyzx, r3.wwww -sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, v1.xyxx, t15.xywz, s6, cb0[108].x -mul r7.x, r7.x, r7.z -mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r3.w, r7.xyxx, r7.xyxx -min r3.w, r3.w, l(1.000000) -add r3.w, -r3.w, l(1.000000) -sqrt r3.w, r3.w -max r3.w, r3.w, l(1.000000017E-16) -mul r7.xy, r7.xyxx, cb5[0].wwww -sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, v1.xyxx, t16.xyzw, s7, cb0[108].x -add r9.xz, -r3.yyxy, v2.xxzx -mov r9.y, l(0.0000610351562) -dp3 r3.x, r9.xyzx, r9.xyzx -rsq r3.x, r3.x -mul r9.xyz, r3.xxxx, r9.xyzx -mul r10.xyz, v3.zxyz, v4.yzxy -mad r10.xyz, v3.yzxy, v4.zxyz, -r10.xyzx -mul r10.xyz, r10.xyzx, v4.wwww -mul r7.yzw, r7.yyyy, r10.xxyz -mad r7.xyz, r7.xxxx, v4.xyzx, r7.yzwy -mad r3.xyw, r3.wwww, v3.xyxz, r7.xyxz -mad r6.w, cb5[1].y, l(2.000000), l(-1.000000) -movc r6.w, v10.x, l(1.000000), r6.w -dp3 r7.x, r3.xywx, r3.xywx -max r7.x, r7.x, l(1.175494351E-38) -rsq r7.x, r7.x -mul r3.xyw, r3.xyxw, r7.xxxx -mul r7.xyz, r6.wwww, r3.xywx -dp3 r8.w, v3.xyzx, v3.xyzx -rsq r8.w, r8.w -mul r11.xyz, r8.wwww, v3.xyzx -mul r11.xyz, r6.wwww, r11.xyzx -ftou r12.xy, v0.xyxx -add r8.w, l(1.000000), -cb0[111].x -mad r8.w, cb0[198].w, r8.w, cb0[111].x -mul r8.w, r8.w, cb0[109].x -lt r9.w, cb0[187].y, l(0.500000) -if_nz r9.w - mad r13.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx - add r13.xyz, -r13.xyzx, v2.xzyx - max r9.w, |r13.y|, |r13.x| - add r9.w, r9.w, l(-464.000000) - mul_sat r9.w, r9.w, l(0.031250) - add r10.w, |r13.z|, l(-208.000000) - mul_sat r10.w, r10.w, l(0.031250) - max r9.w, r9.w, r10.w - ne r10.w, l(0.000000), cb0[210].w - lt r11.w, r9.w, l(1.000000) - and r10.w, r10.w, r11.w - if_nz r10.w - mad r13.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r13.xyz, -r13.xyzx, v2.xzyx - max r10.w, |r13.y|, |r13.x| - add r10.w, r10.w, l(-29.000000) - mul_sat r10.w, r10.w, l(0.500000) - add r11.w, |r13.z|, l(-13.000000) - mul_sat r11.w, r11.w, l(0.500000) - max r10.w, r10.w, r11.w - lt r11.w, r10.w, l(1.000000) - if_nz r11.w - mad r13.xyz, v2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r14.xyz, r13.xyzx, cb0[211].xyzx - round_ni r14.xyz, r14.xyzx - mad r13.xyz, r13.xyzx, cb0[211].xyzx, -r14.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r14.xyw, r13.xyzx, t4.yzwx, s1, l(0.000000) - add r11.w, -r10.w, l(1.000000) - mul r15.x, l(0.500000), cb0[211].y - mad r15.y, -cb0[211].y, l(0.500000), l(1.000000) - max r13.y, r13.y, r15.x - min r13.y, r15.y, r13.y - mul r13.w, r13.y, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t5.xyzw, s0, l(0.000000) - mad r13.y, r15.w, r11.w, r9.w - add r16.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t5.xyzw, s0, l(0.000000) - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r14.yyyy, r16.xyzx - mov r16.w, r14.y - mul r16.xyzw, r11.wwww, r16.xyzw - add r13.xzw, r13.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t5.xwyz, s0, l(0.000000) - mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) - mul r17.xyz, r14.xxxx, r13.xzwx - mov r17.w, r14.x - mul r17.xyzw, r11.wwww, r17.xyzw - mad r13.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) - mul r14.xyz, r14.wwww, r13.xzwx - mul r14.xyzw, r11.wwww, r14.xyzw - else - mov r16.xyzw, l(0,0,0,0) - mov r17.xyzw, l(0,0,0,0) - mov r14.xyzw, l(0,0,0,0) - mov r13.y, r9.w - endif - mad r13.xzw, cb0[6].xxzy, -cb0[212].zzzz, cb0[210].xxzy - add r13.xzw, -r13.xxzw, v2.xxzy - max r11.w, |r13.z|, |r13.x| - add r11.w, r11.w, l(-116.000000) - mul_sat r11.w, r11.w, l(0.125000) - add r13.x, |r13.w|, l(-52.000000) - mul_sat r13.x, r13.x, l(0.125000) - max r11.w, r11.w, r13.x - lt r13.x, r11.w, l(1.000000) - if_nz r13.x - mad r13.xzw, v2.xxyz, l(0.500000, 0.000000, 0.500000, 0.500000), l(0.500000, 0.000000, 0.500000, 0.500000) - mul r15.xyz, r13.xzwx, cb0[211].xyzx - round_ni r15.xyz, r15.xyzx - mad r15.xyz, r13.xzwx, cb0[211].xyzx, -r15.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r15.xyzx, t6.yzwx, s1, l(0.000000) - add r13.x, -r11.w, l(1.000000) - mul r10.w, r10.w, r13.x - mul r13.x, l(0.500000), cb0[211].y - mad r13.z, -cb0[211].y, l(0.500000), l(1.000000) - max r13.x, r13.x, r15.y - min r13.x, r13.z, r13.x - mul r15.w, r13.x, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r15.xwzx, t7.xyzw, s0, l(0.000000) - mad r13.y, r19.w, r10.w, r13.y - add r13.xzw, r15.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t7.xwyz, s0, l(0.000000) - mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) - mul r20.xyz, r18.yyyy, r13.xzwx - mov r20.w, r18.y - mad r16.xyzw, r20.xyzw, r10.wwww, r16.xyzw - add r13.xzw, r15.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t7.xwyz, s0, l(0.000000) - mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) - mul r15.xyz, r18.xxxx, r13.xzwx - mov r15.w, r18.x - mad r17.xyzw, r15.xyzw, r10.wwww, r17.xyzw - mad r13.xzw, r19.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) - mul r18.xyz, r18.wwww, r13.xzwx - mad r14.xyzw, r18.xyzw, r10.wwww, r14.xyzw - endif - lt r10.w, l(0.000000), r11.w - if_nz r10.w - mad r13.xzw, v2.xxyz, l(0.125000, 0.000000, 0.125000, 0.125000), l(0.500000, 0.000000, 0.500000, 0.500000) - mul r15.xyz, r13.xzwx, cb0[211].xyzx - mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r15.xyz, r15.xyzx - mad r13.xzw, r13.xxzw, cb0[211].xxyz, -r15.xxyz - mad r15.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r13.xzw, r18.xxyz, r13.xxzw - min r19.xyz, r15.xyzx, r13.xzwx - sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r19.xyzx, t8.yzwx, s1, l(0.000000) - add r10.w, -r9.w, l(1.000000) - mul r10.w, r10.w, r11.w - max r11.w, r18.y, r19.y - min r11.w, r15.y, r11.w - mul r19.w, r11.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r19.xwzx, t9.xyzw, s0, l(0.000000) - add r13.xzw, r19.xxwz, l(0.000000, 0.000000, 0.666666687, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t9.xwyz, s0, l(0.000000) - mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) - mul r18.xyz, r20.yyyy, r13.xzwx - mov r18.w, r20.y - mad r16.xyzw, r18.xyzw, r10.wwww, r16.xyzw - add r13.xzw, r19.xxwz, l(0.000000, 0.000000, 0.333333343, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r13.xzw, r13.xzwx, t9.xwyz, s0, l(0.000000) - mad r13.xzw, r13.xxzw, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) - mul r18.xyz, r20.xxxx, r13.xzwx - mov r18.w, r20.x - mad r17.xyzw, r18.xyzw, r10.wwww, r17.xyzw - mad r13.xzw, r15.xxyz, l(4.000000, 0.000000, 4.000000, 4.000000), l(-2.000000, 0.000000, -2.000000, -2.000000) - mul r20.xyz, r20.wwww, r13.xzwx - mad r14.xyzw, r20.xyzw, r10.wwww, r14.xyzw - mad r13.y, r15.w, r10.w, r13.y - endif - mad_sat r10.w, r13.y, l(2.000000), l(-1.000000) - add r13.x, -r9.w, r10.w - add r9.w, r9.w, r10.w - mul r13.y, r9.w, l(0.500000) - else - mov r16.xyzw, l(0,0,0,0) - mov r17.xyzw, l(0,0,0,0) - mov r14.xyzw, l(0,0,0,0) - mov r13.xy, l(0,1.000000,0,0) - endif - mul r15.xyzw, r13.yyyx, cb0[213].xyzw - mad r15.y, r15.w, l(0.500000), r15.y - mul r13.zw, r13.yyyx, cb0[213].wwwy - mad r15.w, r13.w, l(0.375000), r13.z - add r14.xyzw, r14.xyzw, r15.xyzw - mul r15.xyzw, r13.yyyx, cb0[214].xyzw - mad r15.y, r15.w, l(0.500000), r15.y - mul r13.zw, r13.yyyx, cb0[214].wwwy - mad r15.w, r13.w, l(0.375000), r13.z - add r15.xyzw, r15.xyzw, r17.xyzw - mul r17.xyzw, r13.yyyx, cb0[215].xyzw - mad r17.y, r17.w, l(0.500000), r17.y - mul r13.xy, r13.yxyy, cb0[215].wyww - mad r17.w, r13.y, l(0.375000), r13.x - add r13.xyzw, r16.xyzw, r17.xyzw - mov r7.w, l(1.000000) - dp4 r16.x, r14.xyzw, r7.xyzw - dp4 r16.y, r15.xyzw, r7.xyzw - dp4 r16.z, r13.xyzw, r7.xyzw - max r16.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r17.xyz, r8.wwww, r16.xyzx - mul r18.xyz, r15.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000) - mad r18.xyz, r14.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r18.xyzx - mad r18.xyz, r13.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r18.xyzx - dp3 r7.w, r18.xyzx, r18.xyzx - max r7.w, r7.w, l(1.175494351E-38) - rsq r7.w, r7.w - mul r18.xyz, r7.wwww, r18.xyzx - mov r18.y, |r18.y| - mov r18.w, l(1.000000) - dp4 r14.x, r14.xyzw, r18.xyzw - dp4 r14.y, r15.xyzw, r18.xyzw - dp4 r14.z, r13.xyzw, r18.xyzw - max r13.xyz, r14.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - ge r7.w, r17.y, r17.z - and r7.w, r7.w, l(0x3f800000) - mov r14.xy, r17.zyzz - mov r14.zw, l(0,0,-1.000000,0.666666687) - mad r15.xy, r16.yzyy, r8.wwww, -r14.xyxx - mov r15.zw, l(0,0,1.000000,-1.000000) - mad r14.xyzw, r7.wwww, r15.xyzw, r14.xyzw - ge r7.w, r17.x, r14.x - and r7.w, r7.w, l(0x3f800000) - mov r15.xyz, r14.xywx - mov r15.w, r17.x - mov r14.xyw, r15.wywx - add r14.xyzw, -r15.xyzw, r14.xyzw - mad r14.xyzw, r7.wwww, r14.xyzw, r15.xyzw - min r7.w, r14.y, r14.w - add r7.w, -r7.w, r14.x - add r9.w, -r14.y, r14.w - mad r10.w, r7.w, l(6.000000), l(0.000100) - div r9.w, r9.w, r10.w - add r9.w, r9.w, r14.z - frc r9.w, |r9.w| - add r10.w, r14.x, l(0.000100) - div r7.w, r7.w, r10.w - add r15.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343) - add r9.w, |r15.x|, l(-0.450000) - mul_sat r9.w, r9.w, l(-10.000001) - mad r10.w, r9.w, l(-2.000000), l(3.000000) - mul r9.w, r9.w, r9.w - mul r9.w, r9.w, r10.w - mad r9.w, r9.w, l(-0.350000), l(0.700000) - mov_sat r14.x, r14.x - mul r9.w, r9.w, r14.x - min r7.w, r7.w, r9.w - add r9.w, -r7.w, l(2.000000) - div r9.w, l(2.000000), r9.w - frc r14.xyz, r15.yzwy - mad r14.xyz, r14.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000) - add_sat r14.xyz, |r14.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000) - add r14.xyz, r14.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000) - mad r14.xyz, r7.wwww, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - mul r14.xyz, r9.wwww, r14.xyzx - max r7.w, r13.y, r13.x - max r7.w, r13.z, r7.w - mul r8.w, r8.w, r7.w - mov r7.w, l(1.000000) -else - mov r18.xyz, l(0,0,0,0) - mov r17.xyz, l(1.000000,1.000000,1.000000,0) - mov r14.xyz, cb0[188].xyzx - mov r7.w, l(0) -endif -dp3 r13.x, v4.xyzx, r2.xyzx -dp3 r13.y, r10.xyzx, r2.xyzx -dp3 r13.z, v3.xyzx, r2.xyzx -dp3 r9.w, r13.xyzx, r13.xyzx -max r9.w, r9.w, l(1.175494351E-38) -rsq r9.w, r9.w -mul r10.xyz, r9.wwww, r13.xyzx -mad r13.xy, v1.xyxx, cb5[13].xyxx, cb5[13].zwzz -deriv_rtx_coarse r13.zw, v1.xxxy -deriv_rty_coarse r15.xy, v1.xyxx -min r9.w, l(20.000000), cb5[11].x -div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w -max r10.z, r10.z, l(0.001000) -div r10.xy, r10.xyxx, r10.zzzz -mul r10.xy, r10.xyxx, -cb5[11].yyyy -mul r15.zw, r10.wwww, r10.xxxy -add r10.z, -r10.w, l(1.000000) -add r9.w, r9.w, l(1.000000) -mul r13.zw, r13.zzzw, cb0[108].yyyy -mul r15.xy, r15.xyxx, cb0[108].yyyy -mov r16.xy, r15.zwzz -mov r16.zw, l(0,0,0,0) -mov r11.w, r10.z -mov r14.w, l(0) -mov r17.w, l(1.000000) -mov r18.w, l(0) -mov r19.x, l(0) -loop - lt r19.y, r19.x, r9.w - if_nz r19.y - add r19.yz, r13.xxyx, r16.xxyx - sample_d_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t10.yxzw, s3, r13.zwzz, r15.xyxx - lt r19.z, r11.w, r19.y - if_nz r19.z - mov r18.w, r19.y - break - endif - add r19.x, r19.x, l(1.000000) - mad r19.zw, r10.xxxy, r10.wwww, r16.xxxy - add r20.x, -r10.w, r11.w - mov r16.zw, r16.xxxy - mov r14.w, r19.y - mov r17.w, r11.w - mov r11.w, r20.x - mov r16.xy, r19.zwzz - continue - else - mov r18.w, r14.w - break - endif -endloop -add r9.w, r14.w, -r17.w -add r10.x, r14.w, -r18.w -add r10.x, r11.w, r10.x -add r10.x, -r17.w, r10.x -div r9.w, r9.w, r10.x -mad r10.xy, r15.zwzz, r9.wwww, r16.zwzz -add r10.xy, r13.xyxx, r10.xyxx -sample_b_indexable(texture2d)(float,float,float,float) r9.w, r10.xyxx, t10.yzwx, s3, cb0[108].x -add r10.x, -v2.y, cb1[r2.w + 12].z -add r10.x, r10.x, l(0.200000) -mul_sat r10.x, r10.x, l(2.85714269) -mad r10.y, r10.x, l(-2.000000), l(3.000000) -mul r10.x, r10.x, r10.x -mul r10.x, r10.x, r10.y -mul r10.x, r10.x, cb1[r2.w + 12].y -max r10.x, r10.x, cb1[r2.w + 12].w -add r10.y, r10.x, cb1[r2.w + 12].x -lt r10.y, l(0.010000), r10.y -if_nz r10.y - add r10.y, -r5.x, l(1.000000) - mul r13.xyz, r4.xyzx, r10.yyyy - dp3 r10.z, r13.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r10.z, r10.z, l(-0.350000) - mul_sat r10.z, r10.z, l(-4.000000) - mad r10.w, r10.z, l(-2.000000), l(3.000000) - mul r10.z, r10.z, r10.z - mul r11.w, r10.z, r10.w - mul r13.xyzw, v8.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000) - movc r13.xyzw, cb1[r2.w + 4].wwww, r13.xyzw, v8.xzxy - mul r15.xyzw, r13.xyzw, cb0[196].zzzz - movc r16.yz, cb1[r2.w + 4].wwww, v7.zzyz, v7.yyzy - mov r16.x, v7.x - add r19.xyz, |r16.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000) - mul r20.xyz, r19.xyzx, r19.xyzx - mul r19.xyz, r19.xyzx, r20.xyzx - max r19.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - dp3 r13.x, r19.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - div r19.xyz, r19.xyzx, r13.xxxx - sample_b_indexable(texture2d)(float,float,float,float) r21.xyzw, r15.zyzz, t11.xyzw, s4, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.zwzz, t11.xyzw, s4, cb0[108].x - mul r22.xyzw, r19.zzzz, r22.xyzw - mad r21.xyzw, r21.xyzw, r19.yyyy, r22.xyzw - sample_b_indexable(texture2d)(float,float,float,float) r22.xyzw, r15.ywyy, t11.xyzw, s4, cb0[108].x - mad r19.xyzw, r22.xyzw, r19.xxxx, r21.xyzw - add r16.yw, -r19.wwww, l(0.000000, 0.800000, 0.000000, 0.450000) - mul r21.xyz, r7.yyxy, l(0.200000, 0.000000, 1.000000, 0.000000) - mad_sat r13.x, cb1[r2.w + 12].x, r10.y, r21.x - add r13.x, -r16.y, r13.x - mul_sat r13.x, r13.x, l(3.33333325) - mad r14.w, r13.x, l(-2.000000), l(3.000000) - mul r13.x, r13.x, r13.x - mul r13.x, r13.x, r14.w - mul_sat r10.y, r10.y, r10.x - add r10.y, -r16.w, r10.y - mul_sat r10.y, r10.y, l(1.53846145) - mad r14.w, r10.y, l(-2.000000), l(3.000000) - mul r10.y, r10.y, r10.y - mul r10.y, r10.y, r14.w - max r10.y, r10.y, r13.x - add r13.x, r5.x, l(-0.500000) - mul_sat r13.x, r13.x, l(4.000000) - mad r14.w, r13.x, l(-2.000000), l(3.000000) - mul r13.x, r13.x, r13.x - mul r13.x, r13.x, r14.w - add r5.w, -r5.w, l(0.199999988) - mul_sat r5.w, r5.w, l(-5.00000048) - mad r14.w, r5.w, l(-2.000000), l(3.000000) - mul r5.w, r5.w, r5.w - mul r5.w, r5.w, r14.w - mad r14.w, r5.w, r11.w, r13.x - min r14.w, r14.w, l(1.000000) - max r10.x, r10.x, cb1[r2.w + 12].x - mad r16.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mul r19.xyw, r15.yzyw, l(20.000000, 20.000000, 0.000000, 20.000000) - mul r22.xyz, r15.yzwy, l(34.345600, 34.345600, 34.345600, 0.000000) - mul r23.xyz, r20.xyzx, r20.xyzx - mul r23.xyz, r23.xyzx, r23.xyzx - mul r20.xyz, r20.xyzx, r23.xyzx - dp3 r17.w, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - div r20.xyz, r20.xyzx, r17.wwww - round_ni r23.xyzw, r19.yxyw - mul r24.xyzw, r23.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r24.xyzw, r24.xyzw - add r25.xyzw, r24.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r17.w, r24.xyxx, r25.xyxx - add r21.xw, r17.wwww, r24.xxxy - mul r17.w, r21.w, r21.x - add r18.w, r21.w, r21.x - frc r17.w, r17.w - frc r26.w, r18.w - add r27.xyzw, r23.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) - mul r27.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r27.xyzw, r27.xyzw - add r28.xyzw, r27.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r18.w, r27.xyxx, r28.xyxx - add r21.xw, r18.wwww, r27.xxxy - mul r18.w, r21.w, r21.x - add r19.y, r21.w, r21.x - frc r24.x, r18.w - frc r24.y, r19.y - mad r18.w, r17.w, l(0.399999976), l(0.600000) - mul r19.y, r18.w, l(0.250000) - mad r23.xyzw, r15.zyzw, l(20.000000, 20.000000, 20.000000, 20.000000), -r23.xyzw - mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.xxxy - add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) - mul r23.x, r21.x, l(1.250000) - lt r20.w, r21.w, l(0.000000) - movc r20.w, r20.w, l(1.250000), l(0.750000) - mul r23.y, r20.w, r21.w - mad r17.w, cb0[102].x, l(3.000000), r17.w - frc r17.w, r17.w - add r21.xw, r17.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) - mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) - mad r25.xy, r21.xwxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) - mul r21.xw, r21.xxxw, r21.xxxw - mul r21.xw, r21.xxxw, r25.xxxy - mul r17.w, r21.w, r21.x - dp2 r20.w, r23.xyxx, r23.xyxx - sqrt r20.w, r20.w - mad r18.w, -r18.w, l(0.250000), r20.w - div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.y - mul_sat r18.w, r18.w, r20.w - mad r20.w, r18.w, l(-2.000000), l(3.000000) - mul r18.w, r18.w, r18.w - mul r18.w, r18.w, r20.w - ge r18.w, r18.w, l(0.001000) - and r18.w, r18.w, l(0x3f800000) - mul r26.z, r17.w, r18.w - div r21.xw, r23.xxxy, r19.yyyy - max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) - min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) - ge r17.w, r26.z, l(0.001000) - and r17.w, r17.w, l(0x3f800000) - mul r21.xw, r17.wwww, r21.xxxw - mad r17.w, r24.x, l(0.250000), l(0.250000) - mul r26.xy, r17.wwww, r21.xwxx - dp2 r17.w, r24.zwzz, r25.zwzz - add r21.xw, r17.wwww, r24.zzzw - mul r17.w, r21.w, r21.x - add r18.w, r21.w, r21.x - frc r17.w, r17.w - frc r24.w, r18.w - dp2 r18.w, r27.zwzz, r28.zwzz - add r21.xw, r18.wwww, r27.zzzw - mul r18.w, r21.w, r21.x - add r19.y, r21.w, r21.x - frc r23.x, r18.w - frc r23.y, r19.y - mad r18.w, r17.w, l(0.399999976), l(0.600000) - mul r19.y, r18.w, l(0.250000) - mad r21.xw, r23.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r21.xw, r21.xxxw, l(0.250000, 0.000000, 0.000000, 0.250000), r23.zzzw - add r21.xw, r21.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000) - mul r25.x, r21.x, l(1.250000) - lt r20.w, r21.w, l(0.000000) - movc r20.w, r20.w, l(1.250000), l(0.750000) - mul r25.y, r20.w, r21.w - mad r17.w, cb0[102].x, l(3.000000), r17.w - frc r17.w, r17.w - add r21.xw, r17.wwww, l(-0.200000, 0.000000, 0.000000, -0.850000) - mul_sat r21.xw, r21.xxxw, l(50.000011, 0.000000, 0.000000, -3.33333325) - mad r23.yz, r21.xxwx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000) - mul r21.xw, r21.xxxw, r21.xxxw - mul r21.xw, r21.xxxw, r23.yyyz - mul r17.w, r21.w, r21.x - dp2 r20.w, r25.xyxx, r25.xyxx - sqrt r20.w, r20.w - mad r18.w, -r18.w, l(0.250000), r20.w - div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.y - mul_sat r18.w, r18.w, r20.w - mad r20.w, r18.w, l(-2.000000), l(3.000000) - mul r18.w, r18.w, r18.w - mul r18.w, r18.w, r20.w - ge r18.w, r18.w, l(0.001000) - and r18.w, r18.w, l(0x3f800000) - mul r24.z, r17.w, r18.w - div r21.xw, r25.xxxy, r19.yyyy - max r21.xw, r21.xxxw, l(-1.000000, 0.000000, 0.000000, -1.000000) - min r21.xw, r21.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) - ge r17.w, r24.z, l(0.001000) - and r17.w, r17.w, l(0x3f800000) - mul r21.xw, r17.wwww, r21.xxxw - mad r17.w, r23.x, l(0.250000), l(0.250000) - mul r24.xy, r17.wwww, r21.xwxx - round_ni r19.xy, r19.xwxx - mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r21.xw, r21.xxxw - add r23.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r17.w, r21.xwxx, r23.xyxx - add r21.xw, r17.wwww, r21.xxxw - mul r17.w, r21.w, r21.x - add r18.w, r21.w, r21.x - frc r17.w, r17.w - frc r23.w, r18.w - add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) - mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r21.xw, r21.xxxw - add r25.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r18.w, r21.xwxx, r25.xyxx - add r21.xw, r18.wwww, r21.xxxw - mul r18.w, r21.w, r21.x - add r19.w, r21.w, r21.x - frc r25.x, r18.w - frc r25.y, r19.w - mad r18.w, r17.w, l(0.399999976), l(0.600000) - mul r19.w, r18.w, l(0.250000) - mad r19.xy, r15.ywyy, l(20.000000, 20.000000, 0.000000, 0.000000), -r19.xyxx - mad r21.xw, r25.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx - add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) - mul r27.x, r19.x, l(1.250000) - lt r19.x, r19.y, l(0.000000) - movc r19.x, r19.x, l(1.250000), l(0.750000) - mul r27.y, r19.x, r19.y - mad r17.w, cb0[102].x, l(3.000000), r17.w - frc r17.w, r17.w - add r19.xy, r17.wwww, l(-0.200000, -0.850000, 0.000000, 0.000000) - mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) - mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r19.xy, r19.xyxx, r19.xyxx - mul r19.xy, r19.xyxx, r21.xwxx - mul r17.w, r19.y, r19.x - dp2 r19.x, r27.xyxx, r27.xyxx - sqrt r19.x, r19.x - mad r18.w, -r18.w, l(0.250000), r19.x - div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.w - mul_sat r18.w, r18.w, r19.x - mad r19.x, r18.w, l(-2.000000), l(3.000000) - mul r18.w, r18.w, r18.w - mul r18.w, r18.w, r19.x - ge r18.w, r18.w, l(0.001000) - and r18.w, r18.w, l(0x3f800000) - mul r23.z, r17.w, r18.w - div r19.xy, r27.xyxx, r19.wwww - max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r17.w, r23.z, l(0.001000) - and r17.w, r17.w, l(0x3f800000) - mul r19.xy, r17.wwww, r19.xyxx - mad r17.w, r25.x, l(0.250000), l(0.250000) - mul r23.xy, r17.wwww, r19.xyxx - mul r24.xyzw, r20.zzzz, r24.xyzw - mad r24.xyzw, r26.xyzw, r20.yyyy, r24.xyzw - mad r23.xyzw, r23.xyzw, r20.xxxx, r24.xyzw - round_ni r24.xyzw, r22.yxyz - mul r25.xyzw, r24.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r25.xyzw, r25.xyzw - add r26.xyzw, r25.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r17.w, r25.xyxx, r26.xyxx - add r19.xy, r17.wwww, r25.xyxx - mul r17.w, r19.y, r19.x - add r18.w, r19.y, r19.x - frc r17.w, r17.w - frc r27.w, r18.w - add r28.xyzw, r24.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000) - mul r28.xyzw, r28.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991) - frc r28.xyzw, r28.xyzw - add r29.xyzw, r28.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001) - dp2 r18.w, r28.xyxx, r29.xyxx - add r19.xy, r18.wwww, r28.xyxx - mul r18.w, r19.y, r19.x - add r19.x, r19.y, r19.x - frc r25.x, r18.w - frc r25.y, r19.x - mad r18.w, r17.w, l(0.399999976), l(0.600000) - mul r19.x, r18.w, l(0.250000) - mad r24.xyzw, r15.xyzw, l(34.345600, 34.345600, 34.345600, 34.345600), -r24.xyzw - mad r19.yw, r25.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.xxxy - add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) - mul r24.x, r19.y, l(1.250000) - lt r15.x, r19.w, l(0.000000) - movc r15.x, r15.x, l(1.250000), l(0.750000) - mul r24.y, r15.x, r19.w - mad r15.x, cb0[102].x, l(4.345600), r17.w - frc r15.x, r15.x - add r19.yw, r15.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) - mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) - mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r19.yw, r19.yyyw, r19.yyyw - mul r19.yw, r19.yyyw, r21.xxxw - mul r15.x, r19.w, r19.y - dp2 r17.w, r24.xyxx, r24.xyxx - sqrt r17.w, r17.w - mad r17.w, -r18.w, l(0.250000), r17.w - div r18.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.x - mul_sat r17.w, r17.w, r18.w - mad r18.w, r17.w, l(-2.000000), l(3.000000) - mul r17.w, r17.w, r17.w - mul r17.w, r17.w, r18.w - ge r17.w, r17.w, l(0.001000) - and r17.w, r17.w, l(0x3f800000) - mul r27.z, r15.x, r17.w - div r19.xy, r24.xyxx, r19.xxxx - max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r15.x, r27.z, l(0.001000) - and r15.x, r15.x, l(0x3f800000) - mul r19.xy, r15.xxxx, r19.xyxx - mad r15.x, r25.x, l(0.250000), l(0.250000) - mul r27.xy, r15.xxxx, r19.xyxx - dp2 r15.x, r25.zwzz, r26.zwzz - add r19.xy, r15.xxxx, r25.zwzz - mul r15.x, r19.y, r19.x - add r17.w, r19.y, r19.x - frc r15.x, r15.x - frc r25.w, r17.w - dp2 r17.w, r28.zwzz, r29.zwzz - add r19.xy, r17.wwww, r28.zwzz - mul r17.w, r19.y, r19.x - add r18.w, r19.y, r19.x - frc r19.x, r17.w - frc r19.y, r18.w - mad r17.w, r15.x, l(0.399999976), l(0.600000) - mul r18.w, r17.w, l(0.250000) - mad r19.yw, r19.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r19.yw, r19.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r24.zzzw - add r19.yw, r19.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000) - mul r24.x, r19.y, l(1.250000) - lt r19.y, r19.w, l(0.000000) - movc r19.y, r19.y, l(1.250000), l(0.750000) - mul r24.y, r19.y, r19.w - mad r15.x, cb0[102].x, l(4.345600), r15.x - frc r15.x, r15.x - add r19.yw, r15.xxxx, l(0.000000, -0.200000, 0.000000, -0.850000) - mul_sat r19.yw, r19.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325) - mad r21.xw, r19.yyyw, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r19.yw, r19.yyyw, r19.yyyw - mul r19.yw, r19.yyyw, r21.xxxw - mul r15.x, r19.w, r19.y - dp2 r19.y, r24.xyxx, r24.xyxx - sqrt r19.y, r19.y - mad r17.w, -r17.w, l(0.250000), r19.y - div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w - mul_sat r17.w, r17.w, r19.y - mad r19.y, r17.w, l(-2.000000), l(3.000000) - mul r17.w, r17.w, r17.w - mul r17.w, r17.w, r19.y - ge r17.w, r17.w, l(0.001000) - and r17.w, r17.w, l(0x3f800000) - mul r25.z, r15.x, r17.w - div r19.yw, r24.xxxy, r18.wwww - max r19.yw, r19.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000) - min r19.yw, r19.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000) - ge r15.x, r25.z, l(0.001000) - and r15.x, r15.x, l(0x3f800000) - mul r19.yw, r15.xxxx, r19.yyyw - mad r15.x, r19.x, l(0.250000), l(0.250000) - mul r25.xy, r15.xxxx, r19.ywyy - round_ni r19.xy, r22.xzxx - mul r21.xw, r19.xxxy, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r21.xw, r21.xxxw - add r22.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r15.x, r21.xwxx, r22.xyxx - add r21.xw, r15.xxxx, r21.xxxw - mul r15.x, r21.w, r21.x - add r17.w, r21.w, r21.x - frc r15.x, r15.x - frc r22.w, r17.w - add r21.xw, r19.xxxy, l(114.514000, 0.000000, 0.000000, 114.514000) - mul r21.xw, r21.xxxw, l(123.339996, 0.000000, 0.000000, 456.209991) - frc r21.xw, r21.xxxw - add r24.xy, r21.xwxx, l(34.345001, 34.345001, 0.000000, 0.000000) - dp2 r17.w, r21.xwxx, r24.xyxx - add r21.xw, r17.wwww, r21.xxxw - mul r17.w, r21.w, r21.x - add r18.w, r21.w, r21.x - frc r24.x, r17.w - frc r24.y, r18.w - mad r17.w, r15.x, l(0.399999976), l(0.600000) - mul r18.w, r17.w, l(0.250000) - mad r19.xy, r15.ywyy, l(34.345600, 34.345600, 0.000000, 0.000000), -r19.xyxx - mad r21.xw, r24.xxxy, l(2.000000, 0.000000, 0.000000, 2.000000), l(-1.000000, 0.000000, 0.000000, -1.000000) - mad r19.xy, r21.xwxx, l(0.250000, 0.250000, 0.000000, 0.000000), r19.xyxx - add r19.xy, r19.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000) - mul r26.x, r19.x, l(1.250000) - lt r19.x, r19.y, l(0.000000) - movc r19.x, r19.x, l(1.250000), l(0.750000) - mul r26.y, r19.x, r19.y - mad r15.x, cb0[102].x, l(4.345600), r15.x - frc r15.x, r15.x - add r19.xy, r15.xxxx, l(-0.200000, -0.850000, 0.000000, 0.000000) - mul_sat r19.xy, r19.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000) - mad r21.xw, r19.xxxy, l(-2.000000, 0.000000, 0.000000, -2.000000), l(3.000000, 0.000000, 0.000000, 3.000000) - mul r19.xy, r19.xyxx, r19.xyxx - mul r19.xy, r19.xyxx, r21.xwxx - mul r15.x, r19.y, r19.x - dp2 r19.x, r26.xyxx, r26.xyxx - sqrt r19.x, r19.x - mad r17.w, -r17.w, l(0.250000), r19.x - div r19.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r18.w - mul_sat r17.w, r17.w, r19.x - mad r19.x, r17.w, l(-2.000000), l(3.000000) - mul r17.w, r17.w, r17.w - mul r17.w, r17.w, r19.x - ge r17.w, r17.w, l(0.001000) - and r17.w, r17.w, l(0x3f800000) - mul r22.z, r15.x, r17.w - div r19.xy, r26.xyxx, r18.wwww - max r19.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - min r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - ge r15.x, r22.z, l(0.001000) - and r15.x, r15.x, l(0x3f800000) - mul r19.xy, r15.xxxx, r19.xyxx - mad r15.x, r24.x, l(0.250000), l(0.250000) - mul r22.xy, r15.xxxx, r19.xyxx - mul r24.xyzw, r20.zzzz, r25.xyzw - mad r24.xyzw, r27.xyzw, r20.yyyy, r24.xyzw - mad r20.xyzw, r22.xyzw, r20.xxxx, r24.xyzw - max r19.xy, r20.zwzz, r23.zwzz - mad r20.zw, -r14.wwww, r10.xxxx, l(0.000000, 0.000000, 1.000000, 1.010000) - add r15.x, r19.y, l(-0.100000) - ge r15.x, r15.x, r20.z - and r15.x, r15.x, l(0x3f800000) - mul r15.x, r15.x, r19.x - ge r2.w, cb1[r2.w + 12].x, l(0.010000) - and r2.w, r2.w, l(0x3f800000) - mul r2.w, r2.w, r15.x - lt r15.x, l(0.001000), r2.w - add r19.xy, r20.xyxx, r23.xyxx - mul r17.w, cb0[102].x, cb0[196].z - mul r20.y, r17.w, l(0.750000) - dp2 r17.w, r16.xzxx, r16.xzxx - max r17.w, r17.w, l(1.175494351E-38) - rsq r17.w, r17.w - mul r16.xz, r16.xxzx, r17.wwww - add r16.xz, |r16.xxzx|, l(-0.200000, 0.000000, -0.200000, 0.000000) - mul r21.xw, r16.xxxz, r16.xxxz - mul r16.xz, r16.xxzx, r21.xxwx - max r16.xz, r16.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) - dp2 r17.w, r16.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) - div r16.xz, r16.xxzx, r17.wwww - sample_b_indexable(texture2d)(float,float,float,float) r22.xyz, r15.zwzz, t12.xyzw, s4, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r15.yzw, r15.ywyy, t12.wxyz, s4, cb0[108].x - mul r15.yzw, r16.xxxx, r15.yyzw - mad r15.yzw, r22.xxyz, r16.zzzz, r15.yyzw - movc r16.yw, r15.xxxx, r19.xxxy, r16.yyyw - mad r15.xy, r15.yzyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) - mov r20.x, l(0) - mad r22.xyzw, r13.zwyw, cb0[196].zzzz, r20.xyxy - sample_b_indexable(texture2d)(float,float,float,float) r13.y, r22.xyxx, t12.xwyz, s4, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r13.z, r22.zwzz, t12.xywz, s4, cb0[108].x - mul r13.z, r16.x, r13.z - mad r13.y, r13.y, r16.z, r13.z - mad r13.yz, r15.xxyx, r13.yyyy, r16.yywy - ge r13.w, r19.z, r20.w - and r13.w, r13.w, l(0x3f800000) - max r2.w, r2.w, r13.w - add r13.w, -r15.w, l(1.000000) - mad r10.x, r14.w, r10.x, -r13.w - mul_sat r10.x, r10.x, l(9.999998) - mad r13.w, r10.x, l(-2.000000), l(3.000000) - mul r10.x, r10.x, r10.x - mul r10.x, r10.x, r13.w - max r2.w, r2.w, r10.x - mad r15.xy, -r7.zyzz, l(1.000000, 0.000000, 0.000000, 0.000000), r21.yzyy - dp2 r10.x, r15.xyxx, r15.xyxx - lt r13.w, l(0.0000610351562), r10.x - rsq r10.x, r10.x - mul r15.xy, r10.xxxx, r15.xyxx - mov r15.xy, -r15.xyxx - movc r16.z, r13.w, r15.x, l(-1.000000) - and r16.y, r13.w, r15.y - min r10.x, r3.z, l(0.050000) - add r13.w, -r3.z, r10.x - mad r13.w, r2.w, r13.w, r3.z - mad r10.z, -r10.w, r10.z, l(1.000000) - mul r10.z, r10.z, r10.y - mad r5.w, -r5.w, r11.w, l(1.000000) - mul r5.w, r5.w, r10.z - mad r5.w, r5.w, l(-0.500000), l(1.000000) - mov r16.x, l(0) - mad r3.xyw, -r3.xyxw, r6.wwww, r16.zxzy - mad r3.xyw, r13.yyyy, r3.xyxw, r7.xyxz - mul r15.xyz, r7.zxyz, r16.xyzx - mad r15.xyz, r7.yzxy, r16.yzxy, -r15.xyzx - add r15.xyz, -r3.xywx, r15.xyzx - mad r3.xyw, r13.zzzz, r15.xyxz, r3.xyxw - dp3 r6.w, r3.xywx, r3.xywx - rsq r6.w, r6.w - mad r3.xyw, r3.xyxw, r6.wwww, -r7.xyxz - mad r3.xyw, r2.wwww, r3.xyxw, r7.xyxz - dp3 r6.w, r3.xywx, r3.xywx - rsq r6.w, r6.w - mul r3.xyw, r3.xyxw, r6.wwww - mul r6.w, r11.w, r10.y - mad r6.w, -r6.w, l(0.200000), r13.w - min r10.y, r13.w, l(0.200000) - max r3.z, r6.w, r10.y - mul r6.xyz, r5.wwww, r6.xyzx - dp3 r6.w, r4.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r6.w, r6.w, l(-0.700000) - mul_sat r6.w, r6.w, l(-2.50000024) - mad r10.y, r6.w, l(-2.000000), l(3.000000) - mul r6.w, r6.w, r6.w - mul r6.w, r6.w, r10.y - mad r6.w, r6.w, l(0.500000), l(1.000000) - mul r10.y, r13.x, r2.w - mad r13.xyz, r4.xyzx, r6.wwww, -r4.xyzx - mad r10.yzw, r10.yyyy, r13.xxyz, r4.xxyz - mul r4.xyz, r5.wwww, r10.yzwy -else - mov r3.xyw, r7.xyxz - mov r10.x, l(0.010000) - mov r2.w, l(0) -endif -mul r5.w, r5.y, l(0.040000) -mad r6.w, -r5.x, l(0.960000), l(0.960000) -mul r10.yzw, r4.xxyz, r6.wwww -mad r13.xyz, -r5.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r4.xyzx -mad r13.xyz, r5.xxxx, r13.xyzx, r5.wwww -mul r6.xyz, r6.wwww, r6.xyzx -mul r5.y, r3.z, r3.z -max r5.y, r5.y, l(0.00781250000) -max r5.w, v5.z, l(9.999999939E-09) -div r15.xy, v5.xyxx, r5.wwww -max r5.w, v6.z, l(9.999999939E-09) -div r15.zw, v6.xxxy, r5.wwww -add r15.xy, -r15.zwzz, r15.xyxx -mul r16.xy, r15.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) -sqrt r16.xy, |r16.xyxx| -sqrt r16.xy, r16.xyxx -mov r15.z, -r15.y -lt r15.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xxxz -lt r15.xz, r15.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) -iadd r15.xy, -r15.ywyy, r15.xzxx -itof r15.xy, r15.xyxx -mul r15.xy, r15.xyxx, r16.xyxx -mad o1.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) -lt r5.w, l(0.500000), r2.w -movc o1.w, r5.w, l(0.700000), l(0.400000) -add r15.xyz, cb0[197].xyzx, cb3[0].xyzx -mad r15.xyz, cb0[187].wwww, r15.xyzx, -cb3[0].xyzx -mov r15.w, l(0.0000610351562) -dp3 r5.w, r15.xzwx, r15.xzwx -rsq r5.w, r5.w -mul r16.xyz, r5.wwww, r15.xwzx -add r19.xyz, cb0[191].xyzx, -cb3[3].xyzx -mad r19.xyz, cb0[198].yyyy, r19.xyzx, cb3[3].xyzx -add r5.w, l(1.000000), -cb3[3].w -mad r5.w, cb0[198].w, r5.w, cb3[3].w -mul r20.xyz, r5.wwww, r19.xyzx -mov r12.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r21.xy, r12.xyzz, t3.xyzw -add r11.w, r21.x, l(-1.000000) -mad r11.w, cb4[34].x, r11.w, l(1.000000) -add r12.z, -r11.w, l(1.000000) -mad r11.w, cb0[187].z, r12.z, r11.w -dp3 r12.z, r7.xyzx, r15.xyzx -mul r21.xzw, r6.xxyz, cb0[186].zzzz -mul r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000) -dp3 r13.w, r10.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) -dp2 r14.w, cb0[6].xzxx, cb0[6].xzxx -rsq r14.w, r14.w -mul r23.xy, r14.wwww, cb0[6].xzxx -dp2 r14.w, r16.xzxx, r23.xyxx -mov_sat r14.w, -r14.w -add r23.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb0[198].xyxx -mad r15.w, r12.z, l(0.500000), l(-1.000000) -mad r15.w, -r12.z, r15.w, -r12.z -add r16.w, l(0.750000), -|cb0[6].y| -add_sat r16.w, r16.w, r16.w -mad r17.w, r16.w, l(-2.000000), l(3.000000) -mul r16.w, r16.w, r16.w -mul r16.w, r16.w, r17.w -mul r16.w, r14.w, r16.w -mul r16.w, r23.x, r16.w -add r15.w, r15.w, l(0.500000) -mad r12.z, r16.w, r15.w, r12.z -mad r12.z, cb0[197].w, cb0[198].x, r12.z -max r12.z, r12.z, l(-1.000000) -min r12.z, r12.z, l(1.000000) -add r12.z, r12.z, l(-0.250000) -mul r12.z, r12.z, l(1.33333337) -max r12.z, r12.z, l(0.000000) -mad r15.w, r12.z, l(-2.000000), l(3.000000) -mul r12.z, r12.z, r12.z -mul r12.z, r12.z, r15.w -dp3 r15.w, r7.xyzx, cb0[6].xyzx -add r15.w, r15.w, l(-0.250000) -mul_sat r15.w, r15.w, l(1.33333337) -mad r16.w, r15.w, l(-2.000000), l(3.000000) -mul r15.w, r15.w, r15.w -mul r15.w, r15.w, r16.w -mul r16.w, r5.z, r21.y -min r17.w, r5.z, r21.y -min r18.w, r12.z, r17.w -mul r19.w, r15.w, r16.w -dp3 r20.w, r7.xyzx, cb0[192].xyzx -add_sat r20.w, r20.w, cb0[193].x -mad r20.w, r20.w, cb0[193].y, cb0[193].z -mul r22.w, r18.w, cb0[187].y -add r24.xyz, -r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r24.xyz, r22.wwww, r24.xyzx, r14.xyzx -mul r24.xyz, r20.wwww, r24.xyzx -mad r20.w, r8.w, l(0.350000024), l(0.650000) -min r20.w, r20.w, l(1.500000) -max r25.xyz, r8.wwww, l(1.250000, 0.000000, 0.500000, 0.000000) -min r25.xyz, r25.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000) -add r8.w, -r20.w, r25.x -mad r8.w, cb0[187].x, r8.w, r20.w -mul r26.xyz, r8.wwww, r24.xyzx -mul r26.xyz, r26.xyzx, cb0[186].wwww -dp3 r8.w, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r20.xyz, r19.xyzx, r5.wwww, -r8.wwww -mad r20.xyz, r18.wwww, r20.xyzx, r8.wwww -mul r24.xyz, r24.xyzx, r25.yyyy -mad r23.yzw, r19.xxyz, cb0[198].yyyy, r23.yyyy -mad r20.xyz, r24.xyzx, r23.yzwy, r20.xyzx -mad r20.xyz, r20.xyzx, cb0[186].yyyy, -r26.xyzx -mad r20.xyz, r11.wwww, r20.xyzx, r26.xyzx -dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mad r22.xyz, r21.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r8.wwww -mad r22.xyz, r22.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r8.wwww -mad_sat r8.w, r15.w, r16.w, r12.z -mad r23.yzw, r6.xxyz, cb0[186].zzzz, -r22.xxyz -mad r22.xyz, r8.wwww, r23.yzwy, r22.xyzx -mad r23.yzw, r4.xxyz, r6.wwww, -r22.xxyz -mad r22.xyz, r18.wwww, r23.yzwy, r22.xyzx -mad r23.yzw, r4.xxyz, r6.wwww, -r13.wwww -mad r23.yzw, r23.yyzw, l(0.000000, 1.200000, 1.200000, 1.200000), r13.wwww -mad r23.yzw, -r6.xxyz, cb0[186].zzzz, r23.yyzw -mad r21.xzw, r19.wwww, r23.yyzw, r21.xxzw -dp3 r8.w, r22.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -max r12.z, r8.w, l(0.001000) -div r12.z, l(1.000000, 1.000000, 1.000000, 1.000000), r12.z -mul r8.w, r8.w, r12.z -max r8.w, r8.w, l(0.000000) -min r8.w, r8.w, l(1.500000) -mad r22.xyz, r22.xyzx, r8.wwww, -r21.xzwx -mad r21.xzw, r11.wwww, r22.xxyz, r21.xxzw -mad r8.w, -r15.w, r16.w, r18.w -mad r8.w, r11.w, r8.w, r19.w -add r12.z, l(1.000000), -cb0[186].z -mad r12.z, r8.w, r12.z, cb0[186].z -add r15.w, r15.y, l(-0.500000) -mad r22.y, r11.w, r15.w, l(0.500000) -dp3_sat r24.x, r3.xywx, r2.xyzx -mov r22.xz, cb0[6].xxzx -dp3 r15.w, r22.xyzx, r22.xyzx -max r15.w, r15.w, l(1.175494351E-38) -rsq r15.w, r15.w -mul r22.xyz, r15.wwww, r22.xyzx -add r22.xyz, r22.xyzx, r22.xyzx -mad r15.xyz, r15.xyzx, r11.wwww, r22.xyzx -add r15.w, r11.w, l(2.000000) -mad r15.xyz, r2.xyzx, r15.wwww, r15.xyzx -dp3 r15.w, r15.xyzx, r15.xyzx -rsq r15.w, r15.w -mul r15.xyz, r15.wwww, r15.xyzx -dp3 r15.x, r3.xywx, r15.xyzx -mul r15.y, r5.y, r5.y -mad r15.z, r15.x, r15.y, -r15.x -mad r15.x, r15.z, r15.x, l(1.000000) -mul r15.x, r15.x, r15.x -add r15.z, l(1.000000), -cb5[1].z -mad r15.z, r4.w, cb5[1].z, r15.z -mul r22.xyz, r20.xyzx, r21.xzwx -ne r15.w, r15.x, r15.y -div r15.x, r15.y, r15.x -movc r15.x, r15.w, r15.x, l(1.000000) -mad r15.y, r24.x, l(2.000000), r5.y -add r15.y, r15.y, l(0.000100) -div r15.y, l(0.500000), r15.y -mad r15.x, r15.x, r15.y, l(-0.0000610351562) -max r15.x, r15.x, l(0.000000) -min r15.x, r15.x, l(20.000000) -mul r15.xyw, r13.xyxz, r15.xxxx -mad r8.w, r8.w, l(0.500000), l(0.500000) -mul r8.w, r12.z, r8.w -mul r20.xyz, r8.wwww, r20.xyzx -mul r15.xyw, r15.xyxw, r20.xyxz -mul r15.xyw, r15.xyxw, cb0[199].wwww -mad r15.xyw, r22.xyxz, r15.zzzz, r15.xyxw -dp3 r8.w, r15.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -add r16.w, r8.w, l(-0.500000) -max r16.w, r16.w, l(0.000000) -min r16.w, r16.w, l(0.500000) -mov r20.y, l(0) -mov r20.xz, cb0[195].yyxy -mul r22.xyz, r20.xyzx, cb0[6].zxyz -mad r20.xyz, cb0[6].yzxy, r20.yzxy, -r22.xyzx -dp3 r18.w, r20.xyzx, r20.xyzx -rsq r18.w, r18.w -mul r20.xyz, r18.wwww, r20.xyzx -dp3 r18.w, r2.xyzx, r7.xyzx -add r22.xy, -|r18.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000) -dp3 r16.x, r16.xyzx, r7.xyzx -add r16.y, -r11.w, l(1.000000) -add r10.x, -r3.z, r10.x -mad r2.w, r2.w, r10.x, r3.z -mul r26.y, r2.w, r2.w -mul r27.x, r24.x, r24.x -mul r27.z, r24.x, r27.x -mul r10.x, r26.y, r26.y -mul r26.z, r26.y, r10.x -mov r24.yzw, l(0,0.0365463011,9.063200,0.990440) -dp2 r25.x, l(3.327070, 1.000000, 0.000000, 0.000000), r24.xyxx -dp2 r25.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r24.xzxx -mov r26.x, l(1.000000) -dp2 r10.x, r25.xyxx, r26.xyxx -mov r27.yw, l(0,9.044010,0,1.000000) -dp3 r28.x, l(3.596850, -1.367720, 1.000000, 0.000000), r27.xzwx -dp3 r28.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r27.xyzx -mov r29.x, l(5.565890) -mov r29.yz, r27.xxzx -dp3 r28.z, l(1.000000, 19.788601, -20.212299, 0.000000), r29.xyzx -dp3 r16.z, r28.xyzx, r26.xyzx -div r10.x, r10.x, r16.z -dp2 r25.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r24.xwxx -mov r27.x, l(1.296780) -mov r27.y, r24.x -dp2 r25.y, l(1.000000, -0.755907, 0.000000, 0.000000), r27.xyxx -dp2 r16.z, r25.xyxx, r26.xyxx -dp3 r28.x, l(2.923380, 59.418800, 1.000000, 0.000000), r27.yzwy -mov r27.xw, l(20.322500,0,0,121.563004) -dp3 r28.y, l(1.000000, -27.030199, 222.591995, 0.000000), r27.xyzx -dp3 r28.z, l(626.130005, 316.627014, 1.000000, 0.000000), r27.yzwy -dp3 r19.w, r28.xyzx, r26.xyzx -div r16.z, r16.z, r19.w -mad r23.yzw, r13.xxyz, r10.xxxx, r16.zzzz -add r10.x, r10.x, r16.z -mad r16.z, r16.w, r16.w, l(1.000000) -add r15.xyw, -r8.wwww, r15.xyxw -mad r15.xyw, r16.zzzz, r15.xyxw, r8.wwww -mad r16.zw, cb0[195].wwww, l(0.000000, 0.000000, -0.600000, -0.399999976), l(0.000000, 0.000000, 0.800000, 0.900000) -add r8.w, -r16.z, r16.w -add r16.z, -r16.z, r22.x -div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w -mul_sat r8.w, r8.w, r16.z -mad r16.z, r8.w, l(-2.000000), l(3.000000) -mul r8.w, r8.w, r8.w -mul r8.w, r8.w, r16.z -mul r24.yzw, r8.wwww, cb0[194].xxyz -mul r24.yzw, r24.yyzw, cb0[194].wwww -dp3 r8.w, r9.xyzx, r20.xyzx -add_sat r8.w, r8.w, l(1.000000) -min r5.z, r5.z, r8.w -min r5.z, r21.y, r5.z -mul r24.yzw, r5.zzzz, r24.yyzw -mad r25.xyw, r4.xyxz, r6.wwww, l(-0.250000, -0.250000, 0.000000, -0.250000) -mad r25.xyw, cb0[195].zzzz, r25.xyxw, l(0.250000, 0.250000, 0.000000, 0.250000) -dp3_sat r5.z, r20.xyzx, r7.xyzx -mul r20.xyz, r5.zzzz, r25.xywx -max r5.z, r17.y, r17.x -max r5.z, r17.z, r5.z -mul r5.z, r5.z, l(0.500000) -max r5.z, r5.z, l(1.000000) -div r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z -mul r17.xyz, r5.zzzz, r17.xyzx -mad r19.xyz, r19.xyzx, r5.wwww, -r17.xyzx -mad r17.xyz, r11.wwww, r19.xyzx, r17.xyzx -dp3 r5.z, r18.xyzx, r7.xyzx -mul r5.w, r7.w, r5.z -mad r8.w, r16.x, l(0.500000), l(-1.000000) -mad r8.w, -r16.x, r8.w, l(0.500000) -mad r5.z, -r5.z, r7.w, r8.w -mad_sat r5.z, r11.w, r5.z, r5.w -mul r16.xzw, r5.zzzz, r17.xxyz -mad r5.z, r14.w, r11.w, r16.y -mul r5.z, r23.x, r5.z -mul r16.xzw, r5.zzzz, r16.xxzw -mul_sat r5.z, r22.y, l(5.00000048) -mad r5.w, r5.z, l(-2.000000), l(3.000000) -mul r5.z, r5.z, r5.z -mul r5.z, r5.z, r5.w -mul r16.xzw, r5.zzzz, r16.xxzw -mul r16.xzw, r17.wwww, r16.xxzw -add r5.z, r13.w, l(-0.100000) -mul_sat r5.z, r5.z, l(-16.666666) -mad r5.w, r5.z, l(-2.000000), l(3.000000) -mul r5.z, r5.z, r5.z -mul r5.z, r5.z, r5.w -mad r5.z, r5.z, r11.w, r16.y -mul r16.xzw, r5.zzzz, r16.xxzw -max r17.xyz, r10.yzwy, l(0.150000, 0.150000, 0.150000, 0.000000) -mul r16.xzw, r16.xxzw, r17.xxyz -mad r16.xzw, r24.yyzw, r20.xxyz, r16.xxzw -add r15.xyw, r15.xyxw, r16.xzxw -utof r5.zw, r12.xxxy -mul r16.xz, r5.zzwz, l(0.031250, 0.000000, 0.031250, 0.000000) -round_ni r16.xz, r16.xxzx -mad r7.w, r16.z, cb2[1].y, r16.x -mul r7.w, r7.w, l(8.000000) -ftoi r7.w, r7.w -mad r8.w, -cb0[85].y, cb2[2].w, v0.w -round_ni r8.w, r8.w -add r11.w, l(-1.000000), cb2[1].w -max r13.w, r8.w, l(0.000000) -min r11.w, r11.w, r13.w -mul r13.w, r11.w, l(8.000000) -ftoi r13.w, r13.w -mul r8.xyz, r8.xyzx, cb5[6].xyzx -mul r16.xzw, r9.wwww, cb5[12].xxyz -mul r16.xzw, r4.wwww, r16.xxzw -mad r8.xyz, r8.xyzx, cb5[1].wwww, r16.xzwx -mad r8.xyz, r8.xyzx, r15.zzzz, r15.xywx -dp3 r9.w, -r2.xyzx, r3.xywx -add r9.w, r9.w, r9.w -mad r15.xyw, r3.xyxw, -r9.wwww, -r2.xyxz -max r2.w, r2.w, l(0.001000) -log r2.w, r2.w -mad r2.w, r2.w, l(1.200000), l(5.000000) -sample_l_indexable(texturecube)(float,float,float,float) r15.xyw, r15.xywx, t17.xywz, s0, r2.w -add r2.w, -r10.x, l(1.000000) -div r2.w, r2.w, r10.x -mul r16.xzw, r2.wwww, r13.xxyz -mad r16.xzw, r16.xxzw, r23.yyzw, r23.yyzw -mul r15.xyw, r15.xyxw, r16.xzxw -mul r2.w, r25.z, cb0[186].w -mul r2.w, r12.z, r2.w -mul r15.xyw, r2.wwww, r15.xyxw -mad r8.xyz, r15.xywx, r14.xyzx, r8.xyzx -ge r2.w, r11.w, r8.w -iadd r8.w, r13.w, cb0[110].y -mad r9.w, r16.y, l(-0.250000), l(0.750000) -mad r4.xyz, r4.xyzx, r6.wwww, l(-0.500000, -0.500000, -0.500000, 0.000000) -add r6.w, -r5.y, l(0.010000) -ge r5.x, r5.x, l(0.500000) -and r5.x, r5.x, l(0x3f800000) -mov r14.w, l(1.000000) -mov r15.xyw, r8.xyxz -mov r10.x, l(0) -loop - ilt r11.w, l(7), r10.x - breakc_nz r11.w - iadd r11.w, r7.w, r10.x - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx - iadd r12.z, r8.w, r10.x - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.z, r12.z, l(0), t0.xxxx - and r11.w, r11.w, r12.z - and r11.w, r2.w, r11.w - ishl r12.z, r10.x, l(5) - mov r16.xyz, r15.xywx - mov r13.w, r11.w - loop - breakc_z r13.w - firstbit_lo r16.w, r13.w - ishl r17.x, l(1), r16.w - xor r17.x, r13.w, r17.x - iadd r16.w, r12.z, r16.w - bfi r19.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r16.wwww, l(1, 5, 6, 7) - ftou r17.y, cb3[r19.y + 6].w - ieq r17.y, r17.y, l(1) - if_nz r17.y - add r14.xyz, v2.xyzx, -cb3[r19.x + 6].xyzx - and r17.yzw, l(0, 0x0000ffff, 0x0000ffff, 0x0000ffff), cb3[r19.y + 6].xxzy - and r18.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r19.z + 6].yxzy - ushr r20.xyz, cb3[r19.y + 6].xzyx, l(16, 16, 16, 0) - ushr r22.yzw, cb3[r19.z + 6].yyxz, l(0, 16, 16, 16) - f16tof32 r17.yzw, r17.yyzw - f16tof32 r18.xyz, r18.xyzx - f16tof32 r20.xyz, r20.xyzx - f16tof32 r23.xyw, r22.zyzw - mov r25.xz, r17.yywy - mov r25.yw, r20.xxxz - dp4 r17.y, r14.xyzw, r25.xyzw - mov r20.x, r17.z - mov r20.z, r18.y - mov r20.w, r23.x - dp4 r17.z, r14.xyzw, r20.xyzw - mov r23.xz, r18.xxzx - dp4 r14.x, r14.xyzw, r23.xyzw - max r14.y, |r17.z|, |r17.y| - max r14.x, |r14.x|, r14.y - mad r14.y, cb3[r19.w + 6].x, l(0.500000), l(0.500000) - add r14.x, -r14.y, r14.x - mad r14.y, -cb3[r19.w + 6].x, l(0.500000), l(0.500000) - div_sat r14.x, r14.x, r14.y - add r14.x, -r14.x, l(1.000000) - mul r14.x, r14.x, r14.x - else - mov r14.x, l(1.000000) - endif - lt r14.y, r14.x, l(0.001000) - if_nz r14.y - mov r13.w, r17.x - continue - endif - ishl r14.y, r16.w, l(3) - lt r14.z, cb3[r14.y + 6].w, l(1.500000) - if_nz r14.z - bfi r14.z, l(29), l(3), r16.w, l(3) - ieq r17.y, l(16), cb3[r14.z + 6].w - add r17.z, cb0[198].z, cb3[r14.z + 6].z - lt r17.z, r17.z, l(0.500000) - or r17.y, r17.z, r17.y - if_z r17.y - bfi r17.yz, l(0, 29, 29, 0), l(0, 3, 3, 0), r16.wwww, l(0, 2, 4, 0) - ftou r16.w, cb3[r14.y + 6].w - and r16.w, r16.w, l(1) - ieq r17.w, r16.w, l(0) - not r17.w, r17.w - lt r18.x, l(0.000000), cb3[r17.y + 6].z - and r17.w, r17.w, r18.x - ieq r18.x, l(4), cb3[r14.z + 6].w - movc r18.y, r16.w, l(0), l(1.000000) - mad r18.z, cb3[r17.y + 6].y, l(0.500000), l(0.500000) - add r20.z, r18.z, -|cb3[r17.y + 6].x| - add r20.x, -r20.z, cb3[r17.y + 6].y - add r18.z, -|r20.z|, l(1.000000) - add r18.z, -|r20.x|, r18.z - max r18.z, r18.z, l(0.000488281250) - ge r19.y, cb3[r17.y + 6].x, l(0.000000) - movc r20.y, r19.y, r18.z, -r18.z - dp3 r18.z, r20.xyzx, r20.xyzx - rsq r18.z, r18.z - mul r20.xyz, r18.zzzz, r20.xyzx - add r18.z, cb3[r17.z + 6].y, cb3[r17.z + 6].y - max r18.z, r18.z, l(0.100000) - and r19.y, r18.x, l(0x3f800000) - add r18.z, r18.z, -cb3[r19.z + 6].w - mad r18.z, r19.y, r18.z, cb3[r19.z + 6].w - add r22.yzw, -v2.xxyz, cb3[r19.x + 6].xxyz - dp3 r19.y, r22.zwyz, -r20.xyzx - lt r19.z, l(0.500000), cb3[r17.z + 6].z - and r19.z, r18.x, r19.z - and r19.z, r19.z, l(0x3f800000) - mul r19.z, r18.y, r19.z - mad r23.xyz, -r20.zxyz, r19.yyyy, -r22.yzwy - mad r22.yzw, r19.zzzz, r23.xxyz, r22.yyzw - dp3 r19.y, r22.yzwy, r22.yzwy - rsq r19.z, r19.y - mul r23.xyz, r19.zzzz, r22.yzwy - if_nz r17.w - mul r24.yzw, r20.zzxy, cb3[r17.y + 6].zzzz - mad r25.xyz, -r24.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000), r22.yzwy - mad r24.yzw, r24.yyzw, l(0.000000, 0.500000, 0.500000, 0.500000), r22.yyzw - dp3 r19.z, r25.xyzx, r25.xyzx - sqrt r19.z, r19.z - dp3 r20.w, r24.yzwy, r24.yzwy - sqrt r20.w, r20.w - mul r26.xyz, r20.xyzx, r23.xyzx - mad r26.xyz, r20.zxyz, r23.yzxy, -r26.xyzx - mul r27.xyz, r20.xyzx, r26.xyzx - mad r26.xyz, r26.zxyz, r20.yzxy, -r27.xyzx - dp3 r21.y, r26.xyzx, r26.xyzx - rsq r21.y, r21.y - mul r23.xyz, r21.yyyy, r26.xyzx - dp3 r21.y, r25.xyzx, r24.yzwy - mad r21.y, r19.z, r20.w, r21.y - mad r21.y, r21.y, l(0.500000), l(1.000000) - div r21.y, l(1.000000, 1.000000, 1.000000, 1.000000), r21.y - dp3 r23.w, r23.xyzx, r25.xyzx - div r19.z, r23.w, r19.z - dp3 r23.w, r23.xyzx, r24.yzwy - div r20.w, r23.w, r20.w - add r19.z, r19.z, r20.w - mul_sat r19.z, r19.z, l(0.500000) - mul r19.z, r19.z, r21.y - else - mov r19.z, l(1.000000) - endif - lt r20.w, r18.z, l(0.000000) - if_nz r20.w - mul r20.w, cb3[r19.x + 6].w, cb3[r19.x + 6].w - mul r20.w, r19.y, r20.w - mad r20.w, -r20.w, r20.w, l(1.000000) - max r20.w, r20.w, l(0.000000) - add r19.y, r19.y, l(1.000000) - div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), r19.y - and r21.y, r17.w, l(0x3f800000) - add r23.w, -r19.y, r19.z - mad r19.y, r21.y, r23.w, r19.y - mul r20.w, r20.w, r20.w - mul r19.y, r19.y, r20.w - else - mul r24.yzw, r22.yyzw, cb3[r19.x + 6].wwww - dp3 r20.w, r24.yzwy, r24.yzwy - min r20.w, r20.w, l(1.000000) - add r20.w, -r20.w, l(1.000000) - log r20.w, r20.w - mul r18.z, r18.z, r20.w - exp r18.z, r18.z - mul r19.y, r18.z, r19.z - endif - dp3 r18.z, r23.yzxy, -r20.xyzx - add r18.z, r18.z, -cb3[r17.y + 6].z - mul_sat r18.z, r18.z, cb3[r17.y + 6].w - mad r18.z, r18.z, r18.z, l(-1.000000) - mad r18.y, r18.y, r18.z, l(1.000000) - mul r18.y, r18.y, r19.y - ftoi r18.z, cb3[r19.w + 6].w - not r17.w, r17.w - ige r19.y, r18.z, l(0) - and r17.w, r17.w, r19.y - if_nz r17.w - if_z r16.w - ishl r17.w, r18.z, l(2) - mul r20.xyz, v2.yyyy, cb6[r17.w + 33].xywx - mad r20.xyz, cb6[r17.w + 32].xywx, v2.xxxx, r20.xyzx - mad r20.xyz, cb6[r17.w + 34].xywx, v2.zzzz, r20.xyzx - add r20.xyz, r20.xyzx, cb6[r17.w + 35].xywx - div_sat r19.yz, r20.xxyx, r20.zzzz - mad r19.yz, r19.yyzy, cb6[r18.z + 0].zzwz, cb6[r18.z + 0].xxyx - else - ishl r17.w, r18.z, l(2) - dp3 r20.x, -r22.yzwy, cb6[r17.w + 32].xyzx - dp3 r20.y, -r22.yzwy, cb6[r17.w + 33].xyzx - dp3 r20.z, -r22.yzwy, cb6[r17.w + 34].xyzx - lt r17.w, |r20.x|, |r20.y| - and r17.w, r17.w, l(1) - dp2 r20.w, |r20.xyxx|, icb[r17.w + 0].xyxx - lt r20.w, r20.w, |r20.z| - movc r17.w, r20.w, l(2), r17.w - dp3 r20.w, r20.xyzx, icb[r17.w + 0].xyzx - lt r20.w, r20.w, l(0.000000) - bfi r17.w, l(31), l(1), r17.w, r20.w - ushr r20.w, r17.w, l(1) - dp3 r20.w, r20.xyzx, icb[r20.w + 0].xyzx - div r21.y, l(0.000244140625), cb6[r18.z + 0].w - add r21.y, -r21.y, l(0.500000) - utof r22.y, r17.w - ult r22.z, r17.w, l(2) - and r22.z, r22.z, l(2) - dp2 r20.x, r20.xzxx, icb[r22.z + 0].xzxx - mul r20.x, r20.x, icb[r17.w + 4].z - div r20.x, r20.x, |r20.w| - mad r20.x, r20.x, r21.y, r22.y - add r20.x, r20.x, l(0.500000) - mul_sat r25.x, r20.x, l(0.166666672) - iadd r20.x, l(-1), icb[r17.w + 4].y - dp2 r20.x, r20.yzyy, icb[r20.x + 0].xyxx - mul r17.w, r20.x, icb[r17.w + 4].w - div r17.w, r17.w, |r20.w| - mad_sat r25.y, -r17.w, r21.y, l(0.500000) - mad r19.yz, r25.xxyx, cb6[r18.z + 0].zzwz, cb6[r18.z + 0].xxyx - endif - sample_l_indexable(texture2d)(float,float,float,float) r17.w, r19.yzyy, t18.yzwx, s0, l(0.000000) - mul r18.y, r17.w, r18.y - endif - mul r14.x, r14.x, r18.y - lt r17.w, l(0.000100), r14.x - if_nz r17.w - if_nz r18.x - add r17.w, l(1.000000), -cb3[r17.z + 6].w - dp3 r18.y, r11.xyzx, r23.xyzx - add_sat r18.y, r18.y, l(0.500000) - mad r18.z, r18.y, l(-2.000000), l(3.000000) - mul r18.y, r18.y, r18.y - mul r18.y, r18.y, r18.z - mad r17.w, r18.y, cb3[r17.z + 6].w, r17.w - mul r17.w, r17.w, cb3[r17.z + 6].x - mul r17.w, r14.x, r17.w - add r20.xyz, -r16.xyzx, cb3[r14.y + 6].xyzx - mad r20.xyz, r17.wwww, r20.xyzx, r16.xyzx - endif - if_z r18.x - dp3 r17.w, r7.xyzx, r23.xyzx - mov_sat r18.y, r17.w - if_nz cb3[r14.z + 6].w - if_z r16.w - ftoi r16.w, cb3[r14.z + 6].x - else - add r22.yzw, v2.xxyz, -cb3[r19.x + 6].xxyz - lt r24.yzw, |r22.zzww|, |r22.yyyz| - and r18.z, r24.z, r24.y - lt r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r22.yyzw - ushr r19.y, cb3[r17.y + 6].w, l(24) - ubfe r24.yz, l(0, 8, 8, 0), l(0, 16, 8, 0), cb3[r17.y + 6].wwww - movc r19.y, r22.y, r19.y, r24.y - and r17.y, l(255), cb3[r17.y + 6].w - movc r17.y, r22.z, r24.z, r17.y - ubfe r19.z, l(8), l(8), cb3[r14.z + 6].x - and r20.w, l(255), cb3[r14.z + 6].x - movc r19.z, r22.w, r19.z, r20.w - movc r17.y, r24.w, r17.y, r19.z - movc r17.y, r18.z, r19.y, r17.y - ilt r18.z, r17.y, l(80) - movc r16.w, r18.z, r17.y, l(-1) - endif - ige r17.y, r16.w, l(0) - if_nz r17.y - add r19.xyz, v2.xyzx, -cb3[r19.x + 6].xyzx - ishl r17.y, r16.w, l(2) - dp3 r18.z, r19.xyzx, r19.xyzx - max r18.z, r18.z, l(1.175494351E-38) - rsq r18.z, r18.z - mul r19.xyz, r18.zzzz, r19.xyzx - mad r19.xyz, -r19.xyzx, cb4[r16.w + 288].xxxx, v2.xyzx - mul r18.z, l(5.000000), cb4[r16.w + 288].y - mad r19.xyz, r11.xyzx, r18.zzzz, r19.xyzx - mul r25.xyzw, r19.yyyy, cb4[r17.y + 65].xyzw - mad r25.xyzw, cb4[r17.y + 64].xyzw, r19.xxxx, r25.xyzw - mad r25.xyzw, cb4[r17.y + 66].xyzw, r19.zzzz, r25.xyzw - add r25.xyzw, r25.xyzw, cb4[r17.y + 67].xyzw - div r19.xyz, r25.xyzx, r25.wwww - ge r22.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxyz - ge r24.yzw, r19.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000) - add r25.xy, -cb4[r16.w + 344].xyxx, cb4[r16.w + 344].zwzz - mad r19.xy, r19.xyxx, r25.xyxx, cb4[r16.w + 344].xyxx - mad r25.xy, r19.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) - round_ni r25.xy, r25.xyxx - mad r19.xy, r19.xyxx, cb4[400].zwzz, -r25.xyxx - add r26.xyzw, r19.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r27.xyzw, r26.xxzz, r26.xxzz - add r25.zw, -r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) - min r26.xz, r19.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) - max r28.xy, r19.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy - add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r19.xy, r27.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r19.xyxx - mul r30.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r19.xy, -r26.xzxx, r26.xzxx, r25.zwzz - add r19.xy, r19.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r31.xy, r19.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r19.xy, r26.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mov r30.z, r31.x - mov r30.w, r19.x - mov r29.z, r28.x - mov r29.w, r27.x - add r26.xyzw, r29.zwxz, r30.zwxz - mov r31.z, r30.y - mov r31.w, r19.y - mov r28.z, r29.y - mov r28.w, r27.z - add r27.xyz, r28.zywz, r31.zywz - div r29.xyz, r29.xzwx, r26.zwyz - add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r29.xyz, r29.yxzy, cb4[400].xxxx - div r28.xyz, r28.zywz, r27.xyzx - add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r28.xyz, r28.xyzx, cb4[400].yyyy - mov r29.w, r28.x - mad r30.xyzw, r25.xyxy, cb4[400].xyxy, r29.ywxw - mad r19.xy, r25.xyxx, cb4[400].xyxx, r29.zwzz - mov r28.w, r29.y - mov r29.yw, r28.yyyz - mad r31.xyzw, r25.xyxy, cb4[400].xyxy, r29.xyzy - mad r28.xyzw, r25.xyxy, cb4[400].xyxy, r28.wywz - mad r25.xyzw, r25.xyxy, cb4[400].xyxy, r29.xwzw - mul r29.xyzw, r26.zwyz, r27.xxxy - sample_c_lz_indexable(texture2d)(float,float,float,float) r17.y, r30.xyxx, t2.xxxx, s2, r19.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.zwzz, t2.xxxx, s2, r19.z - mul r18.z, r18.z, r29.y - mad r17.y, r29.x, r17.y, r18.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r19.xyxx, t2.xxxx, s2, r19.z - mad r17.y, r29.z, r18.z, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.xyxx, t2.xxxx, s2, r19.z - mad r17.y, r29.w, r18.z, r17.y - mul r29.xyzw, r26.xyzw, r27.yyzz - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r31.xyxx, t2.xxxx, s2, r19.z - mad r17.y, r29.x, r18.z, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r31.zwzz, t2.xxxx, s2, r19.z - mad r17.y, r29.y, r18.z, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.zwzz, t2.xxxx, s2, r19.z - mad r17.y, r29.z, r18.z, r17.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r25.xyxx, t2.xxxx, s2, r19.z - mad r17.y, r29.w, r18.z, r17.y - or r22.yzw, r22.yyzw, r24.yyzw - or r18.z, r22.z, r22.y - or r18.z, r22.w, r18.z - and r19.x, r19.z, l(0x7fffffff) - ult r19.x, l(0x7f800000), r19.x - or r18.z, r18.z, r19.x - mul r19.x, r26.y, r27.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r25.zwzz, t2.xxxx, s2, r19.z - mad r17.y, r19.x, r19.y, r17.y - add r17.y, r17.y, l(-1.000000) - mad r16.w, cb4[r16.w + 288].w, r17.y, l(1.000000) - movc r16.w, r18.z, l(1.000000), r16.w - else - dp3 r17.y, r9.xyzx, r23.xyzx - add_sat r16.w, r17.y, l(1.000000) - endif - else - mov r16.w, l(1.000000) - endif - if_z cb3[r14.z + 6].w - mul r19.xyz, r14.xxxx, cb3[r14.y + 6].xyzx - add r17.y, l(1.000000), -cb3[r17.z + 6].y - max r18.z, r19.y, r19.x - max r18.z, r19.z, r18.z - mul r18.z, r9.w, r18.z - max r18.z, r18.z, l(1.000000) - div r18.z, l(1.000000, 1.000000, 1.000000, 1.000000), r18.z - mad r17.y, r18.z, cb3[r17.z + 6].y, r17.y - mul r19.xyz, r17.yyyy, cb3[r14.y + 6].xyzx - mul r17.y, l(0.250000), cb3[r17.z + 6].x - add_sat r18.z, r17.w, l(0.500000) - mad r20.w, -cb3[r17.z + 6].x, l(0.250000), l(1.000000) - mad r17.y, r18.z, r20.w, r17.y - mul r19.xyz, r17.yyyy, r19.xyzx - mov r22.yzw, r21.xxzw - mov r24.yzw, r21.xxzw - mov r17.y, l(1.000000) - mov r18.z, l(0) - else - ieq r20.w, l(3), cb3[r14.z + 6].w - if_nz r20.w - mad r25.xy, cb3[r17.z + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000) - add r20.w, -r25.x, r25.y - add r21.y, r22.x, -r25.x - div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r20.w - mul_sat r20.w, r20.w, r21.y - mad r21.y, r20.w, l(-2.000000), l(3.000000) - mul r20.w, r20.w, r20.w - mul r20.w, r20.w, r21.y - mul r20.w, r16.w, r20.w - mul r14.x, r14.x, r20.w - mul r25.xyz, r23.zxyz, cb0[6].xyzx - mad r25.xyz, cb0[6].zxyz, r23.xyzx, -r25.xyzx - mul r26.xyz, r25.xyzx, cb0[6].zxyz - mad r25.xyz, cb0[6].yzxy, r25.yzxy, -r26.xyzx - dp3 r20.w, r25.xyzx, r25.xyzx - rsq r20.w, r20.w - mul r25.xyz, r20.wwww, r25.xyzx - dp3_sat r18.y, r7.xyzx, -r25.xyzx - mad r22.yzw, cb3[r17.z + 6].yyyy, r4.xxyz, l(0.000000, 0.500000, 0.500000, 0.500000) - mov r24.yzw, l(0,0,0,0) - mov r17.y, l(1.000000) - mov r18.z, l(0) - else - ieq r20.w, l(1), cb3[r14.z + 6].w - if_nz r20.w - add r17.w, r17.w, cb3[r17.z + 6].x - max_sat r17.w, r17.w, l(-1.000000) - mul r18.y, r16.w, r17.w - mul r24.yzw, r6.xxyz, cb3[r17.z + 6].yyyy - mov r17.y, l(1.000000) - mov r18.z, l(0) - else - ieq r16.w, l(2), cb3[r14.z + 6].w - if_nz r16.w - add r17.w, l(0.050000), cb3[r17.z + 6].x - add r17.w, r3.z, -r17.w - mul_sat r17.w, r17.w, l(-10.000000) - mad r21.y, r17.w, l(-2.000000), l(3.000000) - mul r17.w, r17.w, r17.w - mul r17.w, r17.w, r21.y - add r21.y, l(1.000000), -cb3[r17.z + 6].z - mad r21.y, r5.x, cb3[r17.z + 6].z, r21.y - mul r17.y, r17.w, r21.y - else - mov r17.y, l(1.000000) - endif - and r18.z, r16.w, cb3[r17.z + 6].y - mov r24.yzw, l(0,0,0,0) - endif - and r22.yzw, r10.yyzw, r20.wwww - endif - mov r19.xyz, cb3[r14.y + 6].xyzx - endif - ine r14.y, l(3), cb3[r14.z + 6].w - if_nz r14.y - mad r14.y, r18.z, r6.w, r5.y - mad r23.xyz, r0.xyzx, r1.wwww, r23.xyzx - dp3 r14.z, r23.xyzx, r23.xyzx - rsq r14.z, r14.z - mul r23.xyz, r14.zzzz, r23.xyzx - dp3 r14.z, r3.xywx, r23.xyzx - mul r16.w, r14.y, r14.y - mad r17.z, r14.z, r16.w, -r14.z - mad r14.z, r17.z, r14.z, l(1.000000) - mul r14.z, r14.z, r14.z - ne r17.z, r14.z, r16.w - div r14.z, r16.w, r14.z - movc r14.z, r17.z, r14.z, l(1.000000) - mad r14.y, r24.x, l(2.000000), r14.y - add r14.y, r14.y, l(0.000100) - div r14.y, l(0.500000), r14.y - mad r14.y, r14.z, r14.y, l(-0.0000610351562) - max r14.y, r14.y, l(0.000000) - min r14.y, r14.y, l(20.000000) - mul r23.xyz, r13.xyzx, r14.yyyy - mul r17.yzw, r17.yyyy, r23.xxyz - mul r17.yzw, r17.yyzw, cb3[r19.w + 6].zzzz - else - mov r17.yzw, l(0,0,0,0) - endif - mul r14.xyz, r14.xxxx, r19.xyzx - add r19.xyz, r22.yzwy, -r24.yzwy - mad r19.xyz, r18.yyyy, r19.xyzx, r24.yzwy - mul r19.xyz, r14.xyzx, r19.xyzx - mul r14.xyz, r17.yzwy, r14.xyzx - mul r14.xyz, r18.yyyy, r14.xyzx - mad r14.xyz, r19.xyzx, r15.zzzz, r14.xyzx - add r16.xyz, r14.xyzx, r16.xyzx - endif - else - mov r18.x, l(0) - endif - movc r16.xyz, r18.xxxx, r20.xyzx, r16.xyzx - endif - endif - mov r13.w, r17.x - endloop - mov r15.xyw, r16.xyxz - iadd r10.x, r10.x, l(1) -endloop -lt r0.x, l(0.500000), cb5[3].x -if_nz r0.x - dp3 r0.x, r15.xywx, l(0.212672904, 0.715152204, 0.072175, 0.000000) - add r3.xyz, -r0.xxxx, r15.xywx - mad r0.xyz, cb5[3].zzzz, r3.xyzx, r0.xxxx - add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000) - mad r0.xyz, cb5[3].wwww, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) - mul r3.xyz, r0.xyzx, cb5[3].yyyy - mad r0.xyz, -r0.xyzx, cb5[3].yyyy, cb5[7].xyzx - mad r0.xyz, cb5[7].wwww, r0.xyzx, r3.xyzx - add r2.w, l(1.000000), -cb5[4].x - mov_sat r18.w, r18.w - add r3.x, -r18.w, l(1.000000) - add r3.y, -r2.w, l(1.000000) - add r2.w, -r2.w, r3.x - div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y - mul_sat r2.w, r2.w, r3.x - mad r3.x, r2.w, l(-2.000000), l(3.000000) - mul r2.w, r2.w, r2.w - mul r2.w, r2.w, r3.x - mul r3.xyz, r2.wwww, cb5[8].xyzx - mad r15.xyw, r3.xyxz, cb5[4].yyyy, r0.xyxz -endif -div r0.xyz, r15.xywx, cb0[109].xxxx -eq r2.w, l(1.000000), cb5[2].x -movc o0.w, r2.w, r4.w, l(1.000000) -lt r2.w, cb0[198].w, l(0.500000) -if_nz r2.w - mul r0.w, r0.w, r1.w - mad r1.w, v2.y, cb0[156].w, cb0[157].w - max r1.w, r1.w, l(0.010000) - mad r2.w, r0.w, cb0[154].w, -cb0[153].w - max r2.w, r2.w, l(0.000000) - mul r3.x, r1.w, l(-1.442695) - exp r3.x, r3.x - add r3.x, -r3.x, l(1.000000) - div r1.w, r3.x, r1.w - mad r3.x, v2.y, cb0[156].w, cb0[158].w - mul r3.x, r3.x, l(1.442695) - exp r3.x, r3.x - mul r1.w, r1.w, r3.x - mul r1.w, r1.w, -r2.w - mul r3.xyz, r1.wwww, cb0[155].xyzx - mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) - exp r3.xyz, r3.xyzx - dp3 r1.w, -r2.xyzx, cb0[154].xyzx - mad r2.w, cb0[155].w, cb0[155].w, l(1.000000) - dp2 r3.w, r1.wwww, cb0[155].wwww - add r2.w, r2.w, -r3.w - lt r3.w, l(0.000000), cb0[163].z - if_nz r3.w - and r12.w, l(7), cb0[108].w - imad r4.xyz, r12.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) - imad r3.w, r4.y, r4.z, r4.x - imad r4.x, r4.z, r3.w, r4.y - imad r4.y, r3.w, r4.x, r4.z - imad r5.x, r4.x, r4.y, r3.w - dp3 r1.x, -r2.xyzx, -r1.xyzx - add r1.y, v2.y, -cb0[44].y - lt r1.z, l(5.960464478E-08), r1.x - div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x - and r1.x, r1.x, r1.z - mul r1.x, r1.x, cb0[163].w - div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w - mul r2.x, r1.z, r1.x - mad r2.y, r2.x, r1.y, cb0[44].y - mad r1.y, -r2.x, r1.y, r1.y - mul r2.x, r1.y, cb0[159].z - mul r1.y, r1.y, cb0[162].x - max r1.y, r1.y, l(-127.000000) - add r2.z, r2.y, -cb0[159].x - mul r2.z, r2.z, cb0[159].z - max r2.xz, r2.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) - exp r2.z, -r2.z - mul r2.z, r2.z, cb0[159].y - lt r3.w, l(5.960464478E-08), |r2.x| - exp r4.z, -r2.x - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r2.x - mad r2.x, -r2.x, l(0.240226507), l(0.693147182) - movc r2.x, r3.w, r4.z, r2.x - add r2.y, r2.y, -cb0[162].z - mul r2.y, r2.y, cb0[162].x - max r2.y, r2.y, l(-127.000000) - exp r2.y, -r2.y - mul r2.y, r2.y, cb0[162].y - lt r3.w, l(5.960464478E-08), |r1.y| - exp r4.z, -r1.y - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r1.y - mad r1.y, -r1.y, l(0.240226507), l(0.693147182) - movc r1.y, r3.w, r4.z, r1.y - mul r1.y, r1.y, r2.y - mad r1.y, r2.z, r2.x, r1.y - mad r1.x, -r1.x, r1.z, l(1.000000) - mul r1.x, r0.w, r1.x - mul r1.x, r1.x, r1.y - exp r1.x, -r1.x - min r1.x, r1.x, l(1.000000) - max r1.x, r1.x, cb0[161].w - mad_sat r1.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx - add r1.x, r1.y, r1.x - add r1.x, r1.z, r1.x - min r1.x, r1.x, l(1.000000) - imad r5.y, r4.y, r5.x, r4.x - ushr r1.yz, r5.xxyx, l(0, 16, 16, 0) - utof r1.yz, r1.yyzy - mad r1.yz, r1.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) - mad r1.yz, r1.yyzy, cb0[167].wwww, r5.zzwz - mul r2.xy, r1.yzyy, cb0[165].xyxx - mad r1.y, v0.w, cb0[164].x, cb0[164].y - log r1.y, r1.y - mul r1.y, r1.y, cb0[164].z - div r2.z, r1.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzx, t19.xyzw, s0, l(0.000000) - add r1.y, v0.w, -cb0[166].z - mul_sat r1.y, r1.y, l(1000000.000000) - add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r4.xyzw, r1.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r1.y, -r1.x, l(1.000000) - mul r2.xyz, r1.yyyy, cb0[161].xyzx - mad r2.xyz, r2.xyzx, r4.wwww, r4.xyzx - mul r1.x, r1.x, r4.w - else - add r1.y, v2.y, -cb0[44].y - mul r1.z, r1.y, cb0[159].z - mul r1.y, r1.y, cb0[162].x - max r1.yz, r1.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000) - add r3.w, cb0[44].y, -cb0[159].x - mul r3.w, r3.w, cb0[159].z - max r3.w, r3.w, l(-127.000000) - exp r3.w, -r3.w - mul r3.w, r3.w, cb0[159].y - lt r4.x, l(5.960464478E-08), |r1.z| - exp r4.y, -r1.z - add r4.y, -r4.y, l(1.000000) - div r4.y, r4.y, r1.z - mad r1.z, -r1.z, l(0.240226507), l(0.693147182) - movc r1.z, r4.x, r4.y, r1.z - add r4.x, cb0[44].y, -cb0[162].z - mul r4.x, r4.x, cb0[162].x - max r4.x, r4.x, l(-127.000000) - exp r4.x, -r4.x - mul r4.x, r4.x, cb0[162].y - lt r4.y, l(5.960464478E-08), |r1.y| - exp r4.z, -r1.y - add r4.z, -r4.z, l(1.000000) - div r4.z, r4.z, r1.y - mad r1.y, -r1.y, l(0.240226507), l(0.693147182) - movc r1.y, r4.y, r4.z, r1.y - mul r1.y, r1.y, r4.x - mad r1.y, r3.w, r1.z, r1.y - mul r1.y, r0.w, r1.y - exp r1.y, -r1.y - min r1.y, r1.y, l(1.000000) - max r1.y, r1.y, cb0[161].w - mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx - add r0.w, r1.y, r4.x - add r0.w, r4.y, r0.w - min r1.x, r0.w, l(1.000000) - add r0.w, -r1.x, l(1.000000) - mul r2.xyz, r0.wwww, cb0[161].xyzx - endif - mul r4.xyz, r1.xxxx, r3.xyzx - mad r0.w, r1.w, r1.w, l(1.000000) - mul r0.w, r0.w, l(0.0596831031) - mad r1.yzw, cb0[156].xxyz, r0.wwww, cb0[158].xxyz - mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) - mul r3.w, r2.w, l(12.566371) - sqrt r2.w, r2.w - mul r2.w, r2.w, r3.w - max r2.w, r2.w, l(0.001000) - div r0.w, r0.w, r2.w - mad_sat r1.yzw, cb0[157].xxyz, r0.wwww, r1.yyzw - mul r1.yzw, r1.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) - add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - mul r1.yzw, r1.yyzw, r3.xxyz - mad r1.xyz, r1.yzwy, r1.xxxx, r2.xyzx - mad o0.xyz, r0.xyzx, r4.xyzx, r1.xyzx -else - mov o0.xyz, r0.xyzx -endif -mov o1.z, l(1.000000) -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD3FA93FC.cso b/src/games/endfield/deferred-lighting/0xD3FA93FC.cso index 243a01365cc91d14d04cc1c82dfd8ed16b50d32b..32e50ebb97cb2766c6b89e76f7a841698762af2b 100644 GIT binary patch delta 203 zcmbR7n`y=$CMlN)Cuh0YjnWlC>(kRaM8)nq|KG#Nz`!7}Z=%#9&WODX3;{r1*v6yU zjEusYKQeX~sG2h{a0xL8FmM1RtQr&;c!9JK5HmV3F#HDsE|A>j%A(&)zCfkCm!L|& z^&^zF@k6vT0ktqNG}wbk2;E?B!N9;?1k?j^g&PxuZes?jpM1AWdUH?d9ydmz&7OPw M8979OcG>|k07}FwssI20 delta 76 zcmV-S0JHy?`~sN!0vbeELPNKPjUbh%j$1CUadp4WZJYrB005Z1ks6{2*t`G$Pyhe` iHnGJk0RauO@d1l)v!rtP0<-LO)JBsKz67(xyi5VO&mX-2 diff --git a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm index 2ab496bfc..4a9ce18fa 100644 --- a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm @@ -37,7 +37,7 @@ dcl_constantbuffer CB3[2054], dynamicIndexed dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[160], dynamicIndexed dcl_constantbuffer CB6[4], immediateIndexed -dcl_constantbuffer CB13[13], immediateIndexed +dcl_constantbuffer CB13[19], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -966,6 +966,7 @@ loop endloop mad r1.xyz, r21.xyzx, r13.wwww, r13.xyzx ne r8.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx +movc r8.x, cb13[18].w, l(0xFFFFFFFF), r8.x if_nz r8.x sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x mad r0.z, r0.z, l(0.750000), l(0.250000) @@ -992,6 +993,8 @@ else mov r8.xzw, r3.wwww mov r13.xyz, r3.wwww endif +movc r8.xzw, cb13[18].wwww, r8.xzww, l(1.0, 0, 1.0, 1.0) +mul r1.xyz, r1.xyzx, r8.xzwx mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx add r16.xyz, r7.xzyx, -r16.xyzx max r0.z, |r16.y|, |r16.x| @@ -1570,32 +1573,21 @@ mul r0.yzw, r0.yyzw, r3.xxyz mad r0.xyz, r0.yzwy, r0.xxxx, r2.xyzx // Check fog modification toggle (cb13[12].y) -// If 0 (Original), skip fog modification and output original if_z cb13[12].y mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) ret +else + // === Fog Modification (Anti-Banding) === + mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) + mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) + add r7.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r7.xyz, r7.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx + mul r6.xyz, r6.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) + mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx + mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) + dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) + ret endif - -// === Simplified Fog Modification (Anti-Banding) === -// r1.xyz = scene color (0-255), r4.xyz = transmittance, r0.xyz = fog inscatter (0-255) - -// Normalize colors to 0-1 range -mul r5.xyz, r1.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // sceneColor = r1/255 -mul r6.xyz, r0.xyzx, l(0.003921569, 0.003921569, 0.003921569, 0.000000) // fogColor = r0/255 - -// Boost transmittance: transmittance = lerp(transmittance, 1, 0.35) to reduce fog density -add r7.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mad r7.xyz, r7.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000), r4.xyzx - -// Reduce fog inscatter intensity -mul r6.xyz, r6.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) - -// Standard fog blend with reduced intensity -mad r8.xyz, r5.xyzx, r7.xyzx, r6.xyzx - -// Output: scale back to 0-255 range -mul o0.xyz, r8.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) -dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) ret // Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0_original_backup.asm deleted file mode 100644 index 005e698cc..000000000 --- a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0_original_backup.asm +++ /dev/null @@ -1,1573 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Thu Jan 29 18:08:39 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// -ps_5_0 -dcl_globalFlags refactoringAllowed -dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, - { 0, 1.000000, 0, 0}, - { 0, 0, 1.000000, 0}, - { 0, 0, 0, 1.000000}, - { 2, 1, -1.000000, 1.000000}, - { 2, 1, 1.000000, 1.000000}, - { 0, 2, 1.000000, -1.000000}, - { 0, 2, 1.000000, 1.000000}, - { 0, 1, 1.000000, 1.000000}, - { 0, 1, -1.000000, 1.000000} } -dcl_constantbuffer CB0[235], immediateIndexed -dcl_constantbuffer CB1[259], dynamicIndexed -dcl_constantbuffer CB2[3], immediateIndexed -dcl_constantbuffer CB3[2054], dynamicIndexed -dcl_constantbuffer CB4[401], dynamicIndexed -dcl_constantbuffer CB5[160], dynamicIndexed -dcl_constantbuffer CB6[4], 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_comparison -dcl_resource_structured t0, 4 -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_texture2darray (float,float,float,float) t5 -dcl_resource_texture2d (float,float,float,float) t6 -dcl_resource_texture2d (float,float,float,float) t7 -dcl_resource_texture2d (float,float,float,float) t8 -dcl_resource_texture2d (float,float,float,float) t9 -dcl_resource_texture2d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture3d (float,float,float,float) t12 -dcl_resource_texture2d (float,float,float,float) t13 -dcl_resource_texture2d (float,float,float,float) t14 -dcl_resource_texture3d (float,float,float,float) t15 -dcl_resource_texture3d (float,float,float,float) t16 -dcl_resource_texture3d (float,float,float,float) t17 -dcl_resource_texture3d (float,float,float,float) t18 -dcl_resource_texture3d (float,float,float,float) t19 -dcl_resource_texture3d (float,float,float,float) t20 -dcl_resource_texture2d (float,float,float,float) t21 -dcl_resource_texture2d (float,float,float,float) t22 -dcl_resource_texture2d (float,float,float,float) t23 -dcl_resource_texture2d (float,float,float,float) t24 -dcl_input_ps_siv linear noperspective v0.xy, position -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 37 -ftou r0.xy, v0.xyxx -mov r0.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw -ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.xyzz, t23.xyzw -ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyzz, t24.xyzw -mul r1.xyzw, r1.xwyz, l(1023.000000, 3.000000, 1023.000000, 1023.000000) -ftou r1.xyw, r1.xyxw -ubfe r4.x, l(7), l(3), r1.x -bfi r4.yz, l(0, 3, 3, 0), l(0, 2, 2, 0), r1.xxwx, l(0, 0, 0, 0) -bfi r1.x, l(2), l(0), r1.y, r4.y -utof r1.x, r1.x -mul r1.y, r1.x, l(0.0322580636) -round_ne r1.z, r1.z -ftou r1.z, r1.z -ubfe r4.y, l(7), l(3), r1.z -utof r4.xy, r4.xyxx -mul r4.y, r4.y, l(0.00787401572) -mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r4.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| -add r5.y, -r4.w, l(1.000000) -lt r4.w, r5.y, l(0.000000) -ge r6.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) -add r6.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) -movc r6.xy, r6.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) -mul r6.xy, r6.xyxx, r6.zwzz -movc r5.xz, r4.wwww, r6.xxyx, r2.xxyx -dp3 r2.x, r5.xyzx, r5.xyzx -rsq r2.x, r2.x -mul r5.xyz, r2.xxxx, r5.xyzx -and r1.z, r1.z, l(7) -utof r1.z, r1.z -mad r1.z, r1.z, l(0.107142866), l(0.500000) -utof r2.xy, r0.xyxx -mul r6.xy, v0.xyxx, cb0[82].zwzz -mad r6.zw, r6.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) -add r7.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) -mul r7.xy, r7.xyxx, cb0[82].zwzz -sample_l_indexable(texture2d)(float,float,float,float) r4.w, r7.xyxx, t1.yzwx, s0, l(0.000000) -mul r7.xyzw, -r6.wwww, cb0[25].xyzw -mad r7.xyzw, cb0[24].xyzw, r6.zzzz, r7.xyzw -mad r7.xyzw, cb0[26].xyzw, r4.wwww, r7.xyzw -add r7.xyzw, r7.xyzw, cb0[27].xyzw -div r7.xyz, r7.xyzx, r7.wwww -mul r4.w, r7.y, cb0[1].z -mad r4.w, cb0[0].z, r7.x, r4.w -mad r4.w, cb0[2].z, r7.z, r4.w -add r4.w, r4.w, cb0[3].z -eq r6.z, l(0.000000), cb0[86].w -add r8.xyz, -r7.xyzx, cb0[44].xyzx -mov r9.x, cb0[0].z -mov r9.y, cb0[1].z -mov r9.z, cb0[2].z -movc r8.xyz, r6.zzzz, r8.xyzx, r9.xyzx -dp3 r6.z, r8.xyzx, r8.xyzx -max r6.w, r6.z, l(9.999999939E-09) -rsq r6.w, r6.w -mul r10.xyz, r6.wwww, r8.xyzx -mul r6.z, r6.w, r6.z -lt r8.w, l(0.000488281250), cb0[234].x -if_nz r8.w - sample_b_indexable(texture2d)(float,float,float,float) r8.w, v1.xyxx, t21.yzwx, s1, cb0[108].x -else - mov r8.w, l(1.000000) -endif -add r8.w, -r8.w, l(1.000000) -mul r2.w, r2.w, l(3.000000) -mad_sat r9.w, r2.z, l(0.300000), l(0.250000) -mul r9.w, r9.w, cb0[222].x -mul r9.w, r8.w, r9.w -mad r9.w, r9.w, l(-0.750000), l(1.000000) -mul r3.xyz, r3.xyzx, r9.wwww -min r9.w, r2.z, l(0.300000) -mul r8.w, r8.w, cb0[222].x -mul r8.w, r8.w, l(0.500000) -add r9.w, -r2.z, r9.w -mad r11.w, r8.w, r9.w, r2.z -mul r2.z, r1.z, l(0.080000) -dp3 r8.w, r5.xyzx, r10.xyzx -max r9.w, r8.w, l(0.000000) -mad r12.xyzw, r11.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) -mul r10.w, r12.x, r12.x -mul r13.x, r9.w, l(-9.280000) -exp r13.x, r13.x -min r10.w, r10.w, r13.x -mad r10.w, r10.w, r12.x, r12.y -mad r12.xy, r10.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r12.zwzz -ld_indexable(texture2d)(float,float,float,float) r12.z, r0.xyzz, t7.zwxy -lt r0.z, l(0.001000), r12.z -if_nz r0.z - sample_l_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t10.yzxw, s1, l(0.000000) - dp3 r10.w, -r10.xyzx, r5.xyzx - add r10.w, r10.w, r10.w - mad r13.xyz, r5.xyzx, -r10.wwww, -r10.xyzx - dp3 r10.w, -cb3[0].xyzx, r13.xyzx - mad r14.xyz, cb3[0].xyzx, r10.wwww, r13.xyzx - lt r10.w, r10.w, cb3[4].z - dp3 r13.w, r14.xyzx, r14.xyzx - max r13.w, r13.w, l(0.0000610351562) - rsq r13.w, r13.w - mul r14.xyz, r13.wwww, r14.xyzx - mul r14.xyz, r14.xyzx, cb3[4].yyyy - mad r14.xyz, -cb3[0].xyzx, cb3[4].zzzz, r14.xyzx - dp3 r13.w, r14.xyzx, r14.xyzx - rsq r13.w, r13.w - mul r14.xyz, r13.wwww, r14.xyzx - movc r13.xyz, r10.wwww, r14.xyzx, r13.xyzx - mad r14.xyz, r8.xyzx, r6.wwww, r13.xyzx - dp3 r10.w, r14.xyzx, r14.xyzx - max r10.w, r10.w, l(0.0000610351562) - rsq r10.w, r10.w - mul r14.xyz, r10.wwww, r14.xyzx - dp3 r10.w, r5.xyzx, r13.xyzx - mov_sat r11.y, r10.w - dp3_sat r13.w, r5.xyzx, r14.xyzx - dp3 r13.x, r10.xyzx, r13.xyzx - min r11.z, r9.w, l(1.000000) - mul r13.y, r11.w, r11.w - mul r13.y, r13.y, r13.y - mad r13.z, r13.w, r13.y, -r13.w - mad r13.z, r13.z, r13.w, l(1.000000) - dp3_sat r13.w, r10.xyzx, r14.xyzx - add r13.w, -r13.w, l(1.000000) - mul r14.x, r13.w, r13.w - mul r14.x, r14.x, r14.x - mul r14.y, r13.w, r14.x - add r14.z, -r11.w, l(1.000000) - mad r14.w, -r14.z, l(0.383026), l(-0.0761947036) - mad r14.w, r14.z, r14.w, l(1.049970) - mad r14.z, r14.z, r14.w, l(0.409255) - min r14.z, r14.z, l(0.999000) - add r14.w, -r14.z, l(1.000000) - mad r15.x, -r1.z, l(0.080000), l(1.000000) - mad r15.x, r15.x, l(0.0476190485), r2.z - mov_sat r15.y, -r13.x - mul r15.y, r15.y, r15.y - mad r15.y, r15.y, l(-0.640000), l(1.000000) - mul r15.y, r15.y, r15.y - mad r13.w, -r14.x, r13.w, l(1.000000) - mad r13.w, r2.z, r13.w, r14.y - mul r13.z, r13.z, r13.z - div r13.z, r13.y, r13.z - mad r14.xy, -r11.zyzz, r13.yyyy, r11.zyzz - mad r14.xy, r14.xyxx, r11.zyzz, r13.yyyy - sqrt r14.xy, r14.xyxx - mul r14.xy, r11.yzyy, r14.xyxx - add r13.y, r14.y, r14.x - add r13.y, r13.y, l(0.000100) - div r13.y, l(0.500000), r13.y - mul r13.y, r13.y, r13.z - mul r13.y, r13.y, r13.w - min r13.y, r13.y, l(2048.000000) - mad r16.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) - sample_l_indexable(texture2d)(float,float,float,float) r11.z, r16.xyxx, t9.yzxw, s1, l(0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r13.z, r16.zwzz, t9.yzxw, s1, l(0.000000) - mul r11.z, r11.z, r13.z - mul r11.z, r14.z, r11.z - div r11.z, r11.z, r14.w - mul r13.z, r15.x, r15.x - mul r11.z, r11.z, r13.z - mad r13.z, -r15.x, r14.w, l(1.000000) - div r11.z, r11.z, r13.z - add r11.z, r11.z, r13.y - add_sat r13.y, r8.w, l(0.200000) - mov_sat r13.z, r13.x - add r13.z, r13.z, l(0.500000) - min r13.z, r13.z, l(1.000000) - mul r13.w, r13.z, r13.y - add_sat r13.x, r13.x, l(1.000000) - mad r13.y, -r13.y, r13.z, l(1.000000) - mad r13.x, r13.x, r13.y, r13.w - mul r11.z, r11.z, r13.x - mul r11.z, r4.y, r11.z - mul r13.xyz, r4.yyyy, r3.xyzx - ubfe r1.w, l(7), l(3), r1.w - utof r1.w, r1.w - mul r1.w, r1.w, l(0.00787401572) - mul r11.z, r11.z, cb3[4].x - max r11.z, r11.z, l(0.000000) - min r11.z, r11.z, l(1000.000000) - mul r11.z, r11.y, r11.z - mad r13.xyz, r13.xyzx, r1.wwww, r11.zzzz - max r1.w, r3.y, r3.x - max r1.w, r3.z, r1.w - max r1.w, r1.w, l(0.010000) - div r14.xyz, r3.xyzx, r1.wwww - mul r1.w, r4.x, l(0.00393700786) - mul r14.xyz, r1.wwww, r14.xyzx - add_sat r1.w, -r10.w, l(0.500000) - ne r11.z, r15.y, l(0.360000) - div r13.w, l(0.360000), r15.y - movc r11.z, r11.z, r13.w, l(1.000000) - mul r1.w, r1.w, r11.z - mad_sat r10.w, r1.x, l(0.0322580636), r10.w - add r10.w, -r11.y, r10.w - mul r15.xyz, r3.xyzx, r10.wwww - mad r14.xyz, r14.xyzx, r1.wwww, r15.xyzx - mad r13.xyz, r14.xyzx, r4.yyyy, r13.xyzx - mul r13.xyz, r13.xyzx, cb3[1].xyzx - mov r12.w, l(0.500000) - sample_b_indexable(texture2d)(float,float,float,float) r14.xyz, r12.zwzz, t8.xyzw, s1, cb0[108].x - add r1.w, -r12.z, l(1.000000) - mad r14.xyz, r13.xyzx, r14.xyzx, -r13.xyzx - mad r13.xyz, r1.wwww, r14.xyzx, r13.xyzx - max r1.w, r4.y, r0.z - add r1.w, -r0.z, r1.w - mad r0.z, r1.y, r1.w, r0.z - mul r13.xyz, r0.zzzz, r13.xyzx -else - mov r13.xyz, l(0,0,0,0) -endif -mul r1.yw, r2.xxxy, l(0.000000, 0.031250, 0.000000, 0.031250) -round_ni r1.yw, r1.yyyw -mad r0.z, r1.w, cb2[1].y, r1.y -mul r0.z, r0.z, l(8.000000) -ftoi r0.z, r0.z -mad r1.y, -cb0[85].y, cb2[2].w, |r4.w| -round_ni r1.y, r1.y -add r1.w, l(-1.000000), cb2[1].w -max r10.w, r1.y, l(0.000000) -min r1.w, r1.w, r10.w -mul r10.w, r1.w, l(8.000000) -ftoi r10.w, r10.w -ge r1.y, r1.w, r1.y -iadd r1.w, r10.w, cb0[110].y -mul r10.w, r11.w, r11.w -dp3 r11.y, -r10.xyzx, r5.xyzx -add r11.y, r11.y, r11.y -mad r14.xyz, r5.xyzx, -r11.yyyy, -r10.xyzx -min r11.x, r9.w, l(1.000000) -add r11.y, -r11.w, l(1.000000) -mad r11.z, -r11.y, l(0.383026), l(-0.0761947036) -mad r11.z, r11.y, r11.z, l(1.049970) -mad r11.y, r11.y, r11.z, l(0.409255) -min r11.y, r11.y, l(0.999000) -add r11.z, -r11.y, l(1.000000) -mad r1.z, -r1.z, l(0.080000), l(1.000000) -mad r1.z, r1.z, l(0.0476190485), r2.z -mad r12.zw, r11.xxxw, l(0.000000, 0.000000, 0.968750, 0.968750), l(0.000000, 0.000000, 0.015625, 0.015625) -sample_l_indexable(texture2d)(float,float,float,float) r12.z, r12.zwzz, t9.yzxw, s1, l(0.000000) -mad r12.w, -r1.z, r11.z, l(1.000000) -add_sat r8.w, r8.w, l(0.200000) -max r13.w, r3.y, r3.x -max r13.w, r3.z, r13.w -max r13.w, r13.w, l(0.010000) -div r15.xyz, r3.xyzx, r13.wwww -mul r13.w, r4.x, l(0.00393700786) -mul r16.xyz, r13.wwww, r15.xyzx -mul r17.xyz, r4.yyyy, r3.xyzx -mul r1.z, r1.z, r1.z -mov r18.w, l(1.000000) -mov r19.y, l(1.000000) -mov r20.z, r11.w -mov r21.xyz, l(0,0,0,0) -mov r13.w, l(1.000000) -mov r14.w, l(0) -loop - ilt r15.w, l(7), r14.w - breakc_nz r15.w - iadd r15.w, r0.z, r14.w - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r15.w, l(0), t0.xxxx - iadd r16.w, r1.w, r14.w - ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t0.xxxx - and r15.w, r15.w, r16.w - and r15.w, r1.y, r15.w - ishl r16.w, r14.w, l(5) - mov r22.xyz, l(0,0,0,0) - mov r17.w, r13.w - mov r19.z, r15.w - loop - breakc_z r19.z - firstbit_lo r19.w, r19.z - ishl r20.w, l(1), r19.w - xor r20.w, r19.z, r20.w - iadd r19.w, r16.w, r19.w - bfi r23.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r19.wwww, l(1, 3, 5, 6) - bfi r21.w, l(29), l(3), r19.w, l(7) - ftou r22.w, cb3[r23.z + 6].w - ieq r22.w, r22.w, l(1) - if_nz r22.w - add r18.xyz, r7.xyzx, -cb3[r23.x + 6].xyzx - and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.z + 6].xzyx - and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb3[r23.w + 6].yxzy - ushr r26.xyz, cb3[r23.z + 6].xzyx, l(16, 16, 16, 0) - ushr r27.xyz, cb3[r23.w + 6].yxzy, l(16, 16, 16, 0) - f16tof32 r24.xyz, r24.xyzx - f16tof32 r25.xyz, r25.xyzx - f16tof32 r26.xyz, r26.xyzx - f16tof32 r27.xyw, r27.yxyz - mov r28.xz, r24.xxzx - mov r28.yw, r26.xxxz - dp4 r22.w, r18.xyzw, r28.xyzw - mov r26.x, r24.y - mov r26.z, r25.y - mov r26.w, r27.x - dp4 r23.z, r18.xyzw, r26.xyzw - mov r27.xz, r25.xxzx - dp4 r18.x, r18.xyzw, r27.xyzw - max r18.y, |r22.w|, |r23.z| - max r18.x, |r18.x|, r18.y - mad r18.y, cb3[r21.w + 6].x, l(0.500000), l(0.500000) - add r18.x, -r18.y, r18.x - mad r18.y, -cb3[r21.w + 6].x, l(0.500000), l(0.500000) - div_sat r18.x, r18.x, r18.y - add r18.x, -r18.x, l(1.000000) - mul r18.x, r18.x, r18.x - else - mov r18.x, l(1.000000) - endif - lt r18.y, l(0.500000), cb3[r23.y + 6].z - lt r18.z, r18.x, l(0.001000) - or r18.z, r18.y, r18.z - if_nz r18.z - mov r19.z, r20.w - continue - endif - ishl r18.z, r19.w, l(3) - bfi r19.w, l(29), l(3), r19.w, l(2) - lt r22.w, cb3[r18.z + 6].w, l(1.500000) - if_nz r22.w - mad r22.w, cb3[r19.w + 6].y, l(0.500000), l(0.500000) - add r24.x, r22.w, -|cb3[r19.w + 6].x| - add r24.y, -r24.x, cb3[r19.w + 6].y - add r22.w, -|r24.x|, l(1.000000) - add r22.w, -|r24.y|, r22.w - max r22.w, r22.w, l(0.000488281250) - ge r23.z, cb3[r19.w + 6].x, l(0.000000) - movc r24.z, r23.z, r22.w, -r22.w - dp3 r22.w, r24.xyzx, r24.xyzx - rsq r22.w, r22.w - mul r24.xyz, r22.wwww, r24.xyzx - add r25.xyz, -r7.xyzx, cb3[r23.x + 6].xyzx - dp3 r22.w, r25.xyzx, r25.xyzx - rsq r23.z, r22.w - mul r26.xyz, r23.zzzz, r25.xyzx - ftoi r24.w, cb3[r21.w + 6].w - mul r27.xyz, r24.xyzx, cb3[r19.w + 6].zzzz - mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx - mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx - ftou r25.w, cb3[r18.z + 6].w - and r25.w, r25.w, l(1) - ieq r26.w, r25.w, l(0) - not r26.w, r26.w - lt r27.w, l(0.000000), cb3[r19.w + 6].z - and r26.w, r26.w, r27.w - dp3 r27.w, r28.xyzx, r28.xyzx - sqrt r27.w, r27.w - dp3 r28.w, r29.xyzx, r29.xyzx - sqrt r28.w, r28.w - dp3 r29.w, r5.xyzx, r28.xyzx - div r29.w, r29.w, r27.w - dp3 r30.x, r5.xyzx, r29.xyzx - div r30.x, r30.x, r28.w - add r29.w, r29.w, r30.x - mul_sat r30.x, r29.w, l(0.500000) - dp3 r29.x, r28.xyzx, r29.xyzx - mad r27.w, r27.w, r28.w, r29.x - mad r27.w, r27.w, l(0.500000), l(1.000000) - div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r27.w - dp3_sat r19.x, r5.xyzx, r26.xyzx - movc r20.xy, r26.wwww, r30.xyxx, r19.xyxx - lt r19.x, cb3[r23.w + 6].w, l(0.000000) - if_nz r19.x - mul r19.x, cb3[r23.x + 6].w, cb3[r23.x + 6].w - mul r19.x, r19.x, r22.w - mad r19.x, -r19.x, r19.x, l(1.000000) - max r19.x, r19.x, l(0.000000) - add r22.w, r22.w, l(1.000000) - div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w - and r27.w, r26.w, l(0x3f800000) - add r28.w, r20.y, -r22.w - mad r22.w, r27.w, r28.w, r22.w - mul r19.x, r19.x, r19.x - mul r19.x, r19.x, r22.w - else - mul r29.xyz, r25.xyzx, cb3[r23.x + 6].wwww - dp3 r22.w, r29.xyzx, r29.xyzx - min r22.w, r22.w, l(1.000000) - add r22.w, -r22.w, l(1.000000) - log r22.w, r22.w - mul r22.w, r22.w, cb3[r23.w + 6].w - exp r22.w, r22.w - mul r19.x, r20.y, r22.w - endif - dp3 r20.y, r26.xyzx, -r24.xyzx - add r20.y, r20.y, -cb3[r19.w + 6].z - mul_sat r20.y, r20.y, cb3[r19.w + 6].w - mul r20.y, r20.y, r20.y - movc r20.y, r25.w, l(1.000000), r20.y - mul r19.x, r19.x, r20.y - not r20.y, r26.w - ige r22.w, r24.w, l(0) - and r20.y, r20.y, r22.w - if_nz r20.y - if_z r25.w - ishl r20.y, r24.w, l(2) - mul r24.xyz, r7.yyyy, cb5[r20.y + 33].xywx - mad r24.xyz, cb5[r20.y + 32].xywx, r7.xxxx, r24.xyzx - mad r24.xyz, cb5[r20.y + 34].xywx, r7.zzzz, r24.xyzx - add r24.xyz, r24.xyzx, cb5[r20.y + 35].xywx - div_sat r24.xy, r24.xyxx, r24.zzzz - mad r24.xy, r24.xyxx, cb5[r24.w + 0].zwzz, cb5[r24.w + 0].xyxx - else - ishl r20.y, r24.w, l(2) - dp3 r29.x, -r25.xyzx, cb5[r20.y + 32].xyzx - dp3 r29.y, -r25.xyzx, cb5[r20.y + 33].xyzx - dp3 r29.z, -r25.xyzx, cb5[r20.y + 34].xyzx - lt r20.y, |r29.x|, |r29.y| - and r20.y, r20.y, l(1) - dp2 r22.w, |r29.xyxx|, icb[r20.y + 0].xyxx - lt r22.w, r22.w, |r29.z| - movc r20.y, r22.w, l(2), r20.y - dp3 r22.w, r29.xyzx, icb[r20.y + 0].xyzx - lt r22.w, r22.w, l(0.000000) - bfi r20.y, l(31), l(1), r20.y, r22.w - ushr r22.w, r20.y, l(1) - dp3 r22.w, r29.xyzx, icb[r22.w + 0].xyzx - div r24.z, l(0.000244140625), cb5[r24.w + 0].w - add r24.z, -r24.z, l(0.500000) - utof r25.x, r20.y - ult r25.y, r20.y, l(2) - and r25.y, r25.y, l(2) - dp2 r25.y, r29.xzxx, icb[r25.y + 0].xzxx - mul r25.y, r25.y, icb[r20.y + 4].z - div r25.y, r25.y, |r22.w| - mad r25.x, r25.y, r24.z, r25.x - add r25.x, r25.x, l(0.500000) - mul_sat r25.x, r25.x, l(0.166666672) - iadd r25.z, l(-1), icb[r20.y + 4].y - dp2 r25.z, r29.yzyy, icb[r25.z + 0].xyxx - mul r20.y, r25.z, icb[r20.y + 4].w - div r20.y, r20.y, |r22.w| - mad_sat r25.y, -r20.y, r24.z, l(0.500000) - mad r24.xy, r25.xyxx, cb5[r24.w + 0].zwzz, cb5[r24.w + 0].xyxx - endif - sample_l_indexable(texture2d)(float,float,float,float) r20.y, r24.xyxx, t11.yxzw, s1, l(0.000000) - mul r19.x, r19.x, r20.y - endif - lt r20.y, l(0.000000), r19.x - if_nz r20.y - if_z r25.w - ftoi r22.w, cb3[r23.y + 6].x - else - add r24.xyz, r7.xyzx, -cb3[r23.x + 6].xyzx - lt r25.xyz, |r24.yzzy|, |r24.xxyx| - and r24.w, r25.y, r25.x - lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx - ushr r25.x, cb3[r19.w + 6].w, l(24) - ubfe r25.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb3[r19.w + 6].wwww - movc r24.x, r24.x, r25.x, r25.y - and r25.x, l(255), cb3[r19.w + 6].w - movc r24.y, r24.y, r25.w, r25.x - ubfe r25.x, l(8), l(8), cb3[r23.y + 6].x - and r25.y, l(255), cb3[r23.y + 6].x - movc r24.z, r24.z, r25.x, r25.y - movc r24.y, r25.z, r24.y, r24.z - movc r24.x, r24.w, r24.x, r24.y - ilt r24.y, r24.x, l(80) - movc r22.w, r24.y, r24.x, l(-1) - endif - ishl r24.x, r22.w, l(2) - mad r24.yzw, r26.xxyz, cb4[r22.w + 288].xxxx, r7.xxyz - mul r25.x, l(5.000000), cb4[r22.w + 288].y - mad r24.yzw, r5.xxyz, r25.xxxx, r24.yyzw - mul r25.xyzw, r24.zzzz, cb4[r24.x + 65].xyzw - mad r25.xyzw, cb4[r24.x + 64].xyzw, r24.yyyy, r25.xyzw - mad r25.xyzw, cb4[r24.x + 66].xyzw, r24.wwww, r25.xyzw - add r24.xyzw, r25.xyzw, cb4[r24.x + 67].xyzw - div r24.xyz, r24.xyzx, r24.wwww - ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx - ge r29.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - add r30.xy, -cb4[r22.w + 344].xyxx, cb4[r22.w + 344].zwzz - mad r24.xy, r24.xyxx, r30.xyxx, cb4[r22.w + 344].xyxx - mad r30.xy, r24.xyxx, cb4[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) - round_ni r30.xy, r30.xyxx - mad r24.xy, r24.xyxx, cb4[400].zwzz, -r30.xyxx - add r31.xyzw, r24.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r32.xyzw, r31.xxzz, r31.xxzz - add r30.zw, -r24.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) - min r31.xz, r24.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) - max r33.xy, r24.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r34.xy, r30.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy - add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r24.xy, r32.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r24.xyxx - mul r35.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r24.xy, -r31.xzxx, r31.xzxx, r30.zwzz - add r24.xy, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) - mul r36.xy, r24.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r24.xy, r31.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mov r35.z, r36.x - mov r35.w, r24.x - mov r34.z, r33.x - mov r34.w, r32.x - add r31.xyzw, r34.zwxz, r35.zwxz - mov r36.z, r35.y - mov r36.w, r24.y - mov r33.z, r34.y - mov r33.w, r32.z - add r24.xyw, r33.zyzw, r36.zyzw - div r32.xyz, r34.xzwx, r31.zwyz - add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r32.xyz, r32.yxzy, cb4[400].xxxx - div r33.xyz, r33.zywz, r24.xywx - add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r33.xyz, r33.xyzx, cb4[400].yyyy - mov r32.w, r33.x - mad r34.xyzw, r30.xyxy, cb4[400].xyxy, r32.ywxw - mad r30.zw, r30.xxxy, cb4[400].xxxy, r32.zzzw - mov r33.w, r32.y - mov r32.yw, r33.yyyz - mad r35.xyzw, r30.xyxy, cb4[400].xyxy, r32.xyzy - mad r33.xyzw, r30.xyxy, cb4[400].xyxy, r33.wywz - mad r32.xyzw, r30.xyxy, cb4[400].xyxy, r32.xwzw - mul r36.xyzw, r24.xxxy, r31.zwyz - sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r34.xyxx, t6.xxxx, s4, r24.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r34.zwzz, t6.xxxx, s4, r24.z - mul r25.w, r25.w, r36.y - mad r24.x, r36.x, r24.x, r25.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r30.zwzz, t6.xxxx, s4, r24.z - mad r24.x, r36.z, r25.w, r24.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r25.w, r33.xyxx, t6.xxxx, s4, r24.z - mad r24.x, r36.w, r25.w, r24.x - mul r30.xyzw, r24.yyww, r31.xyzw - sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r35.xyxx, t6.xxxx, s4, r24.z - mad r24.x, r30.x, r24.y, r24.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r35.zwzz, t6.xxxx, s4, r24.z - mad r24.x, r30.y, r24.y, r24.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r33.zwzz, t6.xxxx, s4, r24.z - mad r24.x, r30.z, r24.y, r24.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r32.xyxx, t6.xxxx, s4, r24.z - mad r24.x, r30.w, r24.y, r24.x - ige r24.y, r22.w, l(0) - or r25.xyz, r25.xyzx, r29.xyzx - or r25.x, r25.y, r25.x - or r25.x, r25.z, r25.x - and r25.y, r24.z, l(0x7fffffff) - ult r25.y, l(0x7f800000), r25.y - or r25.x, r25.y, r25.x - mul r24.w, r24.w, r31.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r32.zwzz, t6.xxxx, s4, r24.z - mad r24.x, r24.w, r24.z, r24.x - add r24.x, r24.x, l(-1.000000) - mad r22.w, cb4[r22.w + 288].w, r24.x, l(1.000000) - movc r22.w, r25.x, l(1.000000), r22.w - movc r22.w, r24.y, r22.w, l(1.000000) - else - mov r22.w, l(1.000000) - endif - if_nz r26.w - dp3 r24.x, r14.xyzx, r27.xyzx - mul_sat r24.y, r23.z, cb3[r19.w + 6].z - mad r24.y, r24.y, l(0.500000), r10.w - min r24.y, r24.y, l(1.000000) - div r24.y, r10.w, r24.y - mad r25.xyz, r14.xyzx, r24.xxxx, -r27.xyzx - dp3 r24.z, r28.xyzx, r25.xyzx - mul r24.x, r24.x, r24.x - mad r24.x, cb3[r19.w + 6].z, cb3[r19.w + 6].z, -r24.x - div_sat r24.x, r24.z, r24.x - mad r24.xzw, r27.xxyz, r24.xxxx, r28.xxyz - dp3 r25.x, r24.xzwx, r24.xzwx - rsq r25.x, r25.x - mul r26.xyz, r24.xzwx, r25.xxxx - else - mov r24.y, l(1.000000) - endif - if_nz r20.y - mul_sat r20.y, r23.z, cb3[r21.w + 6].y - mad r24.xzw, r8.xxyz, r6.wwww, r26.xxyz - dp3 r23.z, r24.xzwx, r24.xzwx - max r23.z, r23.z, l(0.0000610351562) - rsq r23.z, r23.z - mul r24.xzw, r23.zzzz, r24.xxzw - dp3 r23.z, r5.xyzx, r26.xyzx - dp3_sat r25.x, r5.xyzx, r24.xzwx - dp3_sat r24.x, r10.xyzx, r24.xzwx - dp3 r24.z, r10.xyzx, r26.xyzx - lt r24.w, l(0.000000), r20.y - mul r20.y, r20.y, r20.y - mad r25.y, r24.x, l(3.600000), l(0.400000) - div r20.y, r20.y, r25.y - mad r20.y, r11.w, r11.w, r20.y - min r20.y, r20.y, l(1.000000) - movc r20.y, r24.w, r20.y, r10.w - mul r20.y, r20.y, r20.y - mad r24.w, r25.x, r20.y, -r25.x - mad r24.w, r24.w, r25.x, l(1.000000) - add r24.x, -r24.x, l(1.000000) - mul r25.x, r24.x, r24.x - mul r25.x, r25.x, r25.x - mul r25.y, r24.x, r25.x - mov_sat r25.z, -r24.z - mul r25.z, r25.z, r25.z - mad r25.z, r25.z, l(-0.640000), l(1.000000) - mul r25.z, r25.z, r25.z - mad r24.x, -r25.x, r24.x, l(1.000000) - mad r24.x, r2.z, r24.x, r25.y - mul r24.w, r24.w, r24.w - div r24.w, r20.y, r24.w - mul r24.y, r24.y, r24.w - mad r24.w, -r11.x, r20.y, r11.x - mad r24.w, r24.w, r11.x, r20.y - sqrt r24.w, r24.w - mad r25.x, -r20.x, r20.y, r20.x - mad r20.y, r25.x, r20.x, r20.y - sqrt r20.y, r20.y - mul r20.y, r11.x, r20.y - mad r20.y, r20.x, r24.w, r20.y - add r20.y, r20.y, l(0.000100) - div r20.y, l(0.500000), r20.y - mul r20.y, r20.y, r24.y - mul r20.y, r20.y, r24.x - min r20.y, r20.y, l(2048.000000) - mad r24.xy, r20.xzxx, l(0.968750, 0.968750, 0.000000, 0.000000), l(0.015625, 0.015625, 0.000000, 0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r24.x, r24.xyxx, t9.xyzw, s1, l(0.000000) - mul r24.x, r12.z, r24.x - mul r24.x, r11.y, r24.x - div r24.x, r24.x, r11.z - mul r24.x, r1.z, r24.x - div r24.x, r24.x, r12.w - add r20.y, r20.y, r24.x - mov_sat r24.x, r24.z - add r24.x, r24.x, l(0.500000) - min r24.x, r24.x, l(1.000000) - mul r24.y, r8.w, r24.x - add_sat r24.z, r24.z, l(1.000000) - mad r24.x, -r8.w, r24.x, l(1.000000) - mad r24.x, r24.z, r24.x, r24.y - mul r20.y, r20.y, r24.x - mul r20.y, r4.y, r20.y - mul r20.y, r20.y, cb3[r21.w + 6].z - max r20.y, r20.y, l(0.000000) - min r20.y, r20.y, l(1000.000000) - add_sat r24.x, -r23.z, l(0.500000) - ne r24.y, r25.z, l(0.360000) - div r24.z, l(0.360000), r25.z - movc r24.y, r24.y, r24.z, l(1.000000) - mul r24.x, r24.y, r24.x - mad_sat r23.z, r1.x, l(0.0322580636), r23.z - add r23.z, -r20.x, r23.z - mul r24.yzw, r3.xxyz, r23.zzzz - mad r24.xyz, r16.xyzx, r24.xxxx, r24.yzwy - mul r24.xyz, r4.yyyy, r24.xyzx - mad r24.xyz, r20.yyyy, r20.xxxx, r24.xyzx - mad r24.xyz, r17.xyzx, r20.xxxx, r24.xyzx - mul r25.xyz, r19.xxxx, cb3[r18.z + 6].xyzx - mul r25.xyz, r22.wwww, r25.xyzx - mul r25.xyz, r18.xxxx, r25.xyzx - mul r24.xyz, r24.xyzx, r25.xyzx - else - mov r24.xyz, l(0,0,0,0) - endif - else - if_z r18.y - mad r18.x, cb3[r19.w + 6].y, l(0.500000), l(0.500000) - add r25.x, r18.x, -|cb3[r19.w + 6].x| - add r25.y, -r25.x, cb3[r19.w + 6].y - add r18.x, -|r25.x|, l(1.000000) - add r18.x, -|r25.y|, r18.x - max r18.x, r18.x, l(0.000488281250) - ge r18.y, cb3[r19.w + 6].x, l(0.000000) - movc r25.z, r18.y, r18.x, -r18.x - dp3 r18.x, r25.xyzx, r25.xyzx - rsq r18.x, r18.x - mul r25.xyz, r18.xxxx, r25.xyzx - add r26.xyz, -r7.xyzx, cb3[r23.x + 6].xyzx - dp3 r18.x, r26.xyzx, r26.xyzx - rsq r18.y, r18.x - mul r27.xyz, r18.yyyy, r26.xyzx - ftoi r18.y, cb3[r21.w + 6].w - mul r28.xyz, r25.xyzx, cb3[r19.w + 6].zzzz - mad r29.xyz, -r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx - mad r28.xyz, r28.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r26.xyzx - ftou r18.z, cb3[r18.z + 6].w - and r18.z, r18.z, l(1) - ieq r19.x, r18.z, l(0) - not r19.x, r19.x - lt r20.x, l(0.000000), cb3[r19.w + 6].z - and r19.x, r19.x, r20.x - dp3 r20.x, r29.xyzx, r29.xyzx - dp3 r20.y, r28.xyzx, r28.xyzx - sqrt r20.xy, r20.xyxx - dp3 r21.w, r29.xyzx, r28.xyzx - mad r20.x, r20.x, r20.y, r21.w - mad r20.x, r20.x, l(0.500000), l(1.000000) - div r20.x, l(1.000000, 1.000000, 1.000000, 1.000000), r20.x - movc r20.x, r19.x, r20.x, l(1.000000) - lt r20.y, cb3[r23.w + 6].w, l(0.000000) - if_nz r20.y - mul r20.y, cb3[r23.x + 6].w, cb3[r23.x + 6].w - mul r20.y, r18.x, r20.y - mad r20.y, -r20.y, r20.y, l(1.000000) - max r20.y, r20.y, l(0.000000) - add r18.x, r18.x, l(1.000000) - div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x - and r21.w, r19.x, l(0x3f800000) - add r22.w, -r18.x, r20.x - mad r18.x, r21.w, r22.w, r18.x - mul r20.y, r20.y, r20.y - mul r18.x, r18.x, r20.y - else - mul r28.xyz, r26.xyzx, cb3[r23.x + 6].wwww - dp3 r20.y, r28.xyzx, r28.xyzx - min r20.y, r20.y, l(1.000000) - add r20.y, -r20.y, l(1.000000) - log r20.y, r20.y - mul r20.y, r20.y, cb3[r23.w + 6].w - exp r20.y, r20.y - mul r18.x, r20.y, r20.x - endif - dp3 r20.x, r27.xyzx, -r25.xyzx - add r20.x, r20.x, -cb3[r19.w + 6].z - mul_sat r20.x, r20.x, cb3[r19.w + 6].w - mul r20.x, r20.x, r20.x - movc r20.x, r18.z, l(1.000000), r20.x - mul r18.x, r18.x, r20.x - not r19.x, r19.x - ige r20.x, r18.y, l(0) - and r19.x, r19.x, r20.x - if_nz r19.x - if_z r18.z - ishl r19.x, r18.y, l(2) - mul r25.xyz, r7.yyyy, cb5[r19.x + 33].xywx - mad r25.xyz, cb5[r19.x + 32].xywx, r7.xxxx, r25.xyzx - mad r25.xyz, cb5[r19.x + 34].xywx, r7.zzzz, r25.xyzx - add r25.xyz, r25.xyzx, cb5[r19.x + 35].xywx - div_sat r20.xy, r25.xyxx, r25.zzzz - mad r20.xy, r20.xyxx, cb5[r18.y + 0].zwzz, cb5[r18.y + 0].xyxx - else - ishl r19.x, r18.y, l(2) - dp3 r25.x, -r26.xyzx, cb5[r19.x + 32].xyzx - dp3 r25.y, -r26.xyzx, cb5[r19.x + 33].xyzx - dp3 r25.z, -r26.xyzx, cb5[r19.x + 34].xyzx - lt r19.x, |r25.x|, |r25.y| - and r19.x, r19.x, l(1) - dp2 r21.w, |r25.xyxx|, icb[r19.x + 0].xyxx - lt r21.w, r21.w, |r25.z| - movc r19.x, r21.w, l(2), r19.x - dp3 r21.w, r25.xyzx, icb[r19.x + 0].xyzx - lt r21.w, r21.w, l(0.000000) - bfi r19.x, l(31), l(1), r19.x, r21.w - ushr r21.w, r19.x, l(1) - dp3 r21.w, r25.xyzx, icb[r21.w + 0].xyzx - div r22.w, l(0.000244140625), cb5[r18.y + 0].w - add r22.w, -r22.w, l(0.500000) - utof r23.z, r19.x - ult r23.w, r19.x, l(2) - and r23.w, r23.w, l(2) - dp2 r23.w, r25.xzxx, icb[r23.w + 0].xzxx - mul r23.w, r23.w, icb[r19.x + 4].z - div r23.w, r23.w, |r21.w| - mad r23.z, r23.w, r22.w, r23.z - add r23.z, r23.z, l(0.500000) - mul_sat r26.x, r23.z, l(0.166666672) - iadd r23.z, l(-1), icb[r19.x + 4].y - dp2 r23.z, r25.yzyy, icb[r23.z + 0].xyxx - mul r19.x, r23.z, icb[r19.x + 4].w - div r19.x, r19.x, |r21.w| - mad_sat r26.y, -r19.x, r22.w, l(0.500000) - mad r20.xy, r26.xyxx, cb5[r18.y + 0].zwzz, cb5[r18.y + 0].xyxx - endif - sample_l_indexable(texture2d)(float,float,float,float) r18.y, r20.xyxx, t11.yxzw, s1, l(0.000000) - mul r18.x, r18.y, r18.x - endif - lt r18.x, l(0.000000), r18.x - if_nz r18.x - if_z r18.z - ftoi r18.x, cb3[r23.y + 6].x - else - add r23.xzw, r7.xxyz, -cb3[r23.x + 6].xxyz - lt r25.xyz, |r23.zwwz|, |r23.xxzx| - and r18.y, r25.y, r25.x - lt r23.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xxzw - ushr r18.z, cb3[r19.w + 6].w, l(24) - ubfe r20.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb3[r19.w + 6].wwww - movc r18.z, r23.x, r18.z, r20.x - and r19.x, l(255), cb3[r19.w + 6].w - movc r19.x, r23.z, r20.y, r19.x - ubfe r19.w, l(8), l(8), cb3[r23.y + 6].x - and r20.x, l(255), cb3[r23.y + 6].x - movc r19.w, r23.w, r19.w, r20.x - movc r19.x, r25.z, r19.x, r19.w - movc r18.y, r18.y, r18.z, r19.x - ilt r18.z, r18.y, l(80) - movc r18.x, r18.z, r18.y, l(-1) - endif - ishl r18.y, r18.x, l(2) - mad r23.xyz, r27.xyzx, cb4[r18.x + 288].xxxx, r7.xyzx - mul r18.z, l(5.000000), cb4[r18.x + 288].y - mad r23.xyz, r5.xyzx, r18.zzzz, r23.xyzx - mul r25.xyzw, r23.yyyy, cb4[r18.y + 65].xyzw - mad r25.xyzw, cb4[r18.y + 64].xyzw, r23.xxxx, r25.xyzw - mad r23.xyzw, cb4[r18.y + 66].xyzw, r23.zzzz, r25.xyzw - add r23.xyzw, r23.xyzw, cb4[r18.y + 67].xyzw - div r23.xyz, r23.xyzx, r23.wwww - ge r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx - ge r26.xyz, r23.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) - add r18.yz, -cb4[r18.x + 344].xxyx, cb4[r18.x + 344].zzwz - mad r18.yz, r23.xxyx, r18.yyzy, cb4[r18.x + 344].xxyx - mad r19.xw, r18.yyyz, cb4[400].zzzw, l(0.500000, 0.000000, 0.000000, 0.500000) - round_ni r19.xw, r19.xxxw - mad r18.yz, r18.yyzy, cb4[400].zzwz, -r19.xxwx - add r27.xyzw, r18.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) - mul r28.xyzw, r27.xxzz, r27.xxzz - add r20.xy, -r18.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) - min r23.xy, r18.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) - max r27.xz, r18.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) - mul r29.xy, r20.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r27.xz, -r27.xxzx, r27.xxzx, r27.yywy - add r27.xz, r27.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) - mul r30.xy, r27.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r27.xz, r28.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) - mad r18.yz, r28.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r18.yyzy - mul r28.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mad r18.yz, -r23.xxyx, r23.xxyx, r20.xxyx - add r18.yz, r18.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) - mul r31.xy, r18.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) - mul r18.yz, r27.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) - mov r28.z, r31.x - mov r28.w, r18.y - mov r29.z, r30.x - mov r29.w, r27.x - add r32.xyzw, r28.zwxz, r29.zwxz - mov r31.z, r28.y - mov r31.w, r18.z - mov r30.z, r29.y - mov r30.w, r27.z - add r23.xyw, r30.zyzw, r31.zyzw - div r27.xyz, r29.xzwx, r32.zwyz - add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r27.xyz, r27.yxzy, cb4[400].xxxx - div r28.xyz, r30.zywz, r23.xywx - add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) - mul r28.xyz, r28.xyzx, cb4[400].yyyy - mov r27.w, r28.x - mad r29.xyzw, r19.xwxw, cb4[400].xyxy, r27.ywxw - mad r18.yz, r19.xxwx, cb4[400].xxyx, r27.zzwz - mov r28.w, r27.y - mov r27.yw, r28.yyyz - mad r30.xyzw, r19.xwxw, cb4[400].xyxy, r27.xyzy - mad r28.xyzw, r19.xwxw, cb4[400].xyxy, r28.wywz - mad r27.xyzw, r19.xwxw, cb4[400].xyxy, r27.xwzw - mul r31.xyzw, r23.xxxy, r32.zwyz - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r29.xyxx, t6.xxxx, s4, r23.z - sample_c_lz_indexable(texture2d)(float,float,float,float) r19.w, r29.zwzz, t6.xxxx, s4, r23.z - mul r19.w, r19.w, r31.y - mad r19.x, r31.x, r19.x, r19.w - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r18.yzyy, t6.xxxx, s4, r23.z - mad r18.y, r31.z, r18.y, r19.x - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.xyxx, t6.xxxx, s4, r23.z - mad r18.y, r31.w, r18.z, r18.y - mul r29.xyzw, r23.yyww, r32.xyzw - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.xyxx, t6.xxxx, s4, r23.z - mad r18.y, r29.x, r18.z, r18.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r30.zwzz, t6.xxxx, s4, r23.z - mad r18.y, r29.y, r18.z, r18.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r28.zwzz, t6.xxxx, s4, r23.z - mad r18.y, r29.z, r18.z, r18.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r27.xyxx, t6.xxxx, s4, r23.z - mad r18.y, r29.w, r18.z, r18.y - ige r18.z, r18.x, l(0) - or r25.xyz, r25.xyzx, r26.xyzx - or r19.x, r25.y, r25.x - or r19.x, r25.z, r19.x - and r19.w, r23.z, l(0x7fffffff) - ult r19.w, l(0x7f800000), r19.w - or r19.x, r19.w, r19.x - mul r19.w, r23.w, r32.y - sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r27.zwzz, t6.xxxx, s4, r23.z - mad r18.y, r19.w, r20.x, r18.y - add r18.y, r18.y, l(-1.000000) - mad r18.x, cb4[r18.x + 288].w, r18.y, l(1.000000) - movc r18.x, r19.x, l(1.000000), r18.x - movc r18.x, r18.z, r18.x, l(1.000000) - else - mov r18.x, l(1.000000) - endif - else - mov r18.x, l(1.000000) - endif - mul r17.w, r17.w, r18.x - mov r24.xyz, l(0,0,0,0) - endif - add r22.xyz, r22.xyzx, r24.xyzx - mov r19.z, r20.w - endloop - mov r13.w, r17.w - add r21.xyz, r21.xyzx, r22.xyzx - iadd r14.w, r14.w, l(1) -endloop -mad r1.xyz, r21.xyzx, r13.wwww, r13.xyzx -ne r8.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx -if_nz r8.x - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x - mad r0.z, r0.z, l(0.750000), l(0.250000) - min r0.z, r3.w, r0.z - add r1.w, r0.z, r9.w - mad r4.y, r11.w, l(-16.000000), l(-1.000000) - exp r4.y, r4.y - log r1.w, |r1.w| - mul r1.w, r1.w, r4.y - exp r1.w, r1.w - add r1.w, r0.z, r1.w - add r1.w, r1.w, l(-1.000000) - mov_sat r8.xzw, r1.wwww - mad r13.xyz, r3.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) - mul r13.xyz, r0.zzzz, r13.xyzx - mad r13.xyz, r3.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r13.xyzx - add r13.xyz, r13.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) - mul r13.xyz, r0.zzzz, r13.xyzx - mad r13.xyz, r3.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r13.xyzx - add r13.xyz, r13.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) - mul r13.xyz, r0.zzzz, r13.xyzx - max r13.xyz, r0.zzzz, r13.xyzx -else - mov r8.xzw, r3.wwww - mov r13.xyz, r3.wwww -endif -mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx -add r16.xyz, r7.xzyx, -r16.xyzx -max r0.z, |r16.y|, |r16.x| -add r0.z, r0.z, l(-464.000000) -mul_sat r0.z, r0.z, l(0.031250) -add r1.w, |r16.z|, l(-208.000000) -mul_sat r1.w, r1.w, l(0.031250) -max r0.z, r0.z, r1.w -ne r1.w, l(0.000000), cb0[210].w -lt r3.w, r0.z, l(1.000000) -and r1.w, r1.w, r3.w -if_nz r1.w - mad r16.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r16.xyz, r7.xzyx, -r16.xyzx - max r1.w, |r16.y|, |r16.x| - add r1.w, r1.w, l(-29.000000) - mul_sat r1.w, r1.w, l(0.500000) - add r3.w, |r16.z|, l(-13.000000) - mul_sat r3.w, r3.w, l(0.500000) - max r1.w, r1.w, r3.w - lt r3.w, r1.w, l(1.000000) - if_nz r3.w - mad r16.xyz, r7.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r17.xyz, r16.xyzx, cb0[211].xyzx - round_ni r17.xyz, r17.xyzx - mad r16.xyz, r16.xyzx, cb0[211].xyzx, -r17.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t15.yzwx, s2, l(0.000000) - add r3.w, -r1.w, l(1.000000) - mul r4.y, l(0.500000), cb0[211].y - mad r6.w, -cb0[211].y, l(0.500000), l(1.000000) - max r4.y, r4.y, r16.y - min r4.y, r6.w, r4.y - mul r16.w, r4.y, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.xwzx, t16.xyzw, s1, l(0.000000) - mad r4.y, r18.w, r3.w, r0.z - add r19.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t16.xyzw, s1, l(0.000000) - mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r19.xyz, r17.yyyy, r19.xyzx - mov r19.w, r17.y - mul r19.xyzw, r3.wwww, r19.xyzw - add r16.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t16.xyzw, s1, l(0.000000) - mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r17.xxxx, r16.xyzx - mov r16.w, r17.x - mul r16.xyzw, r3.wwww, r16.xyzw - mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r17.xyz, r17.wwww, r18.xyzx - mul r17.xyzw, r3.wwww, r17.xyzw - else - mov r19.xyzw, l(0,0,0,0) - mov r16.xyzw, l(0,0,0,0) - mov r17.xyzw, l(0,0,0,0) - mov r4.y, r0.z - endif - mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx - add r18.xyz, r7.xzyx, -r18.xyzx - max r3.w, |r18.y|, |r18.x| - add r3.w, r3.w, l(-116.000000) - mul_sat r3.w, r3.w, l(0.125000) - add r6.w, |r18.z|, l(-52.000000) - mul_sat r6.w, r6.w, l(0.125000) - max r3.w, r3.w, r6.w - lt r6.w, r3.w, l(1.000000) - if_nz r6.w - mad r18.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r20.xyz, r18.xyzx, cb0[211].xyzx - round_ni r20.xyz, r20.xyzx - mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r18.xyzx, t17.yzwx, s2, l(0.000000) - add r6.w, -r3.w, l(1.000000) - mul r1.w, r1.w, r6.w - mul r6.w, l(0.500000), cb0[211].y - mad r9.w, -cb0[211].y, l(0.500000), l(1.000000) - max r6.w, r6.w, r18.y - min r6.w, r9.w, r6.w - mul r18.w, r6.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xwzx, t18.xyzw, s1, l(0.000000) - mad r4.y, r21.w, r1.w, r4.y - add r22.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t18.xyzw, s1, l(0.000000) - mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r22.xyz, r20.yyyy, r22.xyzx - mov r22.w, r20.y - mad r19.xyzw, r22.xyzw, r1.wwww, r19.xyzw - add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) - mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r20.xxxx, r18.xyzx - mov r18.w, r20.x - mad r16.xyzw, r18.xyzw, r1.wwww, r16.xyzw - mad r18.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r20.wwww, r18.xyzx - mad r17.xyzw, r20.xyzw, r1.wwww, r17.xyzw - endif - lt r1.w, l(0.000000), r3.w - if_nz r1.w - mad r18.xyz, r7.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r20.xyz, r18.xyzx, cb0[211].xyzx - mul r21.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r20.xyz, r20.xyzx - mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r20.xyzx - mad r20.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r18.xyz, r21.xyzx, r18.xyzx - min r18.xyz, r20.xyzx, r18.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r18.xyzx, t19.yzwx, s2, l(0.000000) - add r1.w, -r0.z, l(1.000000) - mul r1.w, r1.w, r3.w - max r3.w, r21.y, r18.y - min r3.w, r20.y, r3.w - mul r18.w, r3.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t20.xyzw, s1, l(0.000000) - add r21.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t20.xyzw, s1, l(0.000000) - mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r21.xyz, r22.yyyy, r21.xyzx - mov r21.w, r22.y - mad r19.xyzw, r21.xyzw, r1.wwww, r19.xyzw - add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t20.xyzw, s1, l(0.000000) - mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r22.xxxx, r18.xyzx - mov r18.w, r22.x - mad r16.xyzw, r18.xyzw, r1.wwww, r16.xyzw - mad r18.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r22.xyz, r22.wwww, r18.xyzx - mad r17.xyzw, r22.xyzw, r1.wwww, r17.xyzw - mad r4.y, r20.w, r1.w, r4.y - endif - mad_sat r1.w, r4.y, l(2.000000), l(-1.000000) - add r18.x, -r0.z, r1.w - add r0.z, r0.z, r1.w - mul r18.y, r0.z, l(0.500000) -else - mov r19.xyzw, l(0,0,0,0) - mov r16.xyzw, l(0,0,0,0) - mov r17.xyzw, l(0,0,0,0) - mov r18.xy, l(0,1.000000,0,0) -endif -mul r20.xyzw, r18.yyyx, cb0[213].xyzw -mad r20.y, r20.w, l(0.500000), r20.y -mul r11.yz, r18.yyxy, cb0[213].wwyw -mad r20.w, r11.z, l(0.375000), r11.y -add r17.xyzw, r17.xyzw, r20.xyzw -mul r20.xyzw, r18.yyyx, cb0[214].xyzw -mad r20.y, r20.w, l(0.500000), r20.y -mul r11.yz, r18.yyxy, cb0[214].wwyw -mad r20.w, r11.z, l(0.375000), r11.y -add r16.xyzw, r16.xyzw, r20.xyzw -mul r20.xyzw, r18.yyyx, cb0[215].xyzw -mad r20.y, r20.w, l(0.500000), r20.y -mul r11.yz, r18.yyxy, cb0[215].wwyw -mad r20.w, r11.z, l(0.375000), r11.y -add r18.xyzw, r19.xyzw, r20.xyzw -ge r11.yz, r6.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) -and r0.z, r11.z, r11.y -if_nz r0.z - sample_l_indexable(texture2d)(float,float,float,float) r19.xyzw, r6.xyxx, t14.xyzw, s1, l(0.000000) - lt r20.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r19.xyzw| - or r6.xy, r20.zwzz, r20.xyxx - or r0.z, r6.y, r6.x - if_nz r0.z - dp3 r0.z, r19.yzwy, r19.yzwy - sqrt r0.z, r0.z - mov r6.x, l(1.000000) - mov r6.y, r0.z - mov r1.w, l(0) - loop - ge r3.w, l(4.600000), r6.y - breakc_nz r3.w - iadd r3.w, r1.w, l(1) - mul r11.yz, r6.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000) - mov r6.xy, r11.yzyy - mov r1.w, r3.w - continue - endloop - mul r19.xyzw, r6.xxxx, r19.xyzw - dp3 r0.z, r19.yzwy, r19.yzwy - sqrt r0.z, r0.z - mad r0.z, r0.z, cb6[3].x, cb6[3].y - mad r0.z, r0.z, l(255.000000), l(0.500000) - mul r6.x, r0.z, l(0.00390625000) - mov r6.y, l(0.500000) - sample_l_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyxx, t13.xyzw, s1, l(0.000000) - mad r6.xy, r6.xyxx, cb6[2].xyxx, cb6[2].zwzz - mul r20.x, r6.x, l(3.54490781) - mul r20.yzw, r6.yyyy, r19.yyzw - mul r0.z, r19.x, l(0.406976730) - exp r0.z, r0.z - mul r19.xyzw, r0.zzzz, r20.xyzw - mov r20.xyzw, r19.xyzw - mov r0.z, l(0) - loop - uge r3.w, r0.z, r1.w - breakc_nz r3.w - mul r21.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - dp4 r3.w, r21.xyzw, r20.xyzw - dp2 r4.y, r21.yxyy, r20.xyxx - dp2 r6.x, r21.zxzz, r20.xzxx - dp2 r6.y, r21.wxww, r20.xwxx - iadd r6.w, r0.z, l(1) - mov r20.x, r3.w - mov r20.y, r4.y - mov r20.zw, r6.xxxy - mov r0.z, r6.w - continue - endloop - mul r19.xyzw, r20.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - mul r20.xyzw, r17.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r0.z, r19.xyzw, r20.xyzw - dp2 r1.w, r19.yxyy, r20.xyxx - dp2 r3.w, r19.zxzz, r20.xzxx - dp2 r4.y, r19.wxww, r20.xwxx - mul r20.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r6.x, r19.xyzw, r20.xyzw - dp2 r6.y, r19.yxyy, r20.xyxx - dp2 r6.w, r19.zxzz, r20.xzxx - dp2 r9.w, r19.wxww, r20.xwxx - mul r20.xyzw, r18.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r10.w, r19.xyzw, r20.xyzw - dp2 r11.y, r19.yxyy, r20.xyxx - dp2 r11.z, r19.zxzz, r20.xzxx - dp2 r12.z, r19.wxww, r20.xwxx - mul r17.w, r0.z, l(0.886226952) - mul r17.x, r4.y, l(-1.02332675) - mul r17.y, r1.w, l(-1.02332675) - mul r17.z, r3.w, l(1.02332675) - mul r16.x, r9.w, l(-1.02332675) - mul r16.yzw, r6.yywx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) - mul r18.w, r10.w, l(0.886226952) - mul r18.x, r12.z, l(-1.02332675) - mul r18.yz, r11.yyzy, l(0.000000, -1.02332675, 1.02332675, 0.000000) - endif -endif -mov r5.w, l(1.000000) -dp4 r19.x, r17.xyzw, r5.xyzw -dp4 r19.y, r16.xyzw, r5.xyzw -dp4 r19.z, r18.xyzw, r5.xyzw -max r6.xyw, r19.xyxz, l(0.000000, 0.000000, 0.000000, 0.000000) -add r0.z, l(-1.000000), cb0[113].x -max r1.w, r11.w, l(0.001000) -log r1.w, r1.w -mad r1.w, -r1.w, l(1.200000), l(1.000000) -add r0.z, r0.z, -r1.w -mul r11.yz, r2.xxyx, cb1[0].wwww -round_ni r11.yz, r11.yyzy -add r1.w, |r4.w|, -cb1[2].y -round_ni r1.w, r1.w -add r3.w, l(-1.000000), cb1[1].x -max r4.y, r1.w, l(0.000000) -min r3.w, r3.w, r4.y -ge r1.w, r3.w, r1.w -mad r4.y, r11.z, cb1[0].x, r11.y -ftoi r4.y, r4.y -iadd r4.y, r4.y, cb0[110].z -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r4.y, r4.y, l(0), t0.xxxx -ftoi r3.w, r3.w -iadd r3.w, r3.w, cb0[110].w -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.w, r3.w, l(0), t0.xxxx -and r3.w, r3.w, r4.y -and r1.w, r1.w, r3.w -mul r11.yzw, r6.xxyw, cb0[111].xxxx -dp3 r3.w, r11.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mov r7.w, l(1.000000) -mov r11.yzw, l(0,0,0,0) -mov r4.y, l(1.000000) -mov r9.w, r1.w -mov r10.w, l(0) -loop - lt r12.z, l(0.010000), r4.y - ine r12.w, r9.w, l(0) - and r12.w, r12.z, r12.w - if_nz r12.w - firstbit_lo r12.w, r9.w - ishl r13.w, l(1), r12.w - xor r9.w, r9.w, r13.w - ishl r12.w, r12.w, l(3) - dp4 r19.x, cb1[r12.w + 6].xyzw, r7.xyzw - dp4 r19.y, cb1[r12.w + 7].xyzw, r7.xyzw - dp4 r19.z, cb1[r12.w + 8].xyzw, r7.xyzw - ge r20.xyz, cb1[r12.w + 5].xyzx, |r19.xyzx| - and r13.w, r20.y, r20.x - and r13.w, r20.z, r13.w - if_nz r13.w - mul r13.w, l(0.100000), cb1[r12.w + 5].x - mul r20.xyz, |r19.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) - mul r20.xy, r20.xyxx, r20.xyxx - add r21.xyz, -|r19.xyzx|, cb1[r12.w + 5].xyzx - mul r21.xyz, r21.xyzx, cb1[r12.w + 9].xyzx - eq r14.w, l(1.000000), cb1[r12.w + 10].x - if_nz r14.w - dp3 r22.x, cb1[r12.w + 6].xyzx, r14.xyzx - dp3 r22.y, cb1[r12.w + 7].xyzx, r14.xyzx - dp3 r22.z, cb1[r12.w + 8].xyzx, r14.xyzx - add r23.xyz, -r19.xyzx, cb1[r12.w + 5].xyzx - div r23.xyz, r23.xyzx, r22.xyzx - add r24.xyz, -r19.xyzx, -cb1[r12.w + 5].xyzx - div r24.xyz, r24.xyzx, r22.xyzx - lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx - movc r23.xyz, r25.xyzx, r23.xyzx, r24.xyzx - min r14.w, r23.y, r23.x - min r14.w, r23.z, r14.w - mad r19.xyz, r22.xyzx, r14.wwww, r19.xyzx - else - mov r19.xyz, r14.xyzx - endif - dp3 r14.w, r19.xyzx, r19.xyzx - rsq r14.w, r14.w - mul r19.xyz, r14.wwww, r19.xyzx - lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx - lt r23.xyz, r19.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r22.xyz, -r22.xyzx, r23.xyzx - itof r22.xyz, r22.xyzx - dp3 r14.w, r19.xyzx, r22.xyzx - div r19.xyz, r19.xyzx, r14.wwww - lt r14.w, r19.z, l(0.000000) - add r19.zw, -|r19.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r19.zw, r19.zzzw, r22.xxxy - movc r19.xy, r14.wwww, r19.zwzz, r19.xyxx - dp4 r14.w, cb1[r12.w + 4].xyzw, r5.xyzw - max r14.w, r14.w, l(0.000000) - max r14.w, r14.w, l(0.000100) - min r15.w, r21.z, r21.y - min r15.w, r15.w, r21.x - add r19.z, r20.y, r20.x - mad r19.z, r20.z, r20.z, r19.z - mad r13.w, r13.w, r13.w, -r19.z - mul r13.w, r13.w, cb1[r12.w + 9].x - mul r13.w, r13.w, cb1[r12.w + 9].x - add r19.z, l(1.000000), -cb1[r12.w + 10].y - mul r13.w, r13.w, r19.z - mul r13.w, r13.w, l(100.000000) - mad_sat r13.w, r15.w, cb1[r12.w + 10].y, r13.w - mul r15.w, r13.w, cb1[r12.w + 10].w - mad r19.xy, r19.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) - mad r19.xy, r19.xyxx, cb1[1].wwww, cb1[2].wwww - mov r19.z, cb1[r12.w + 5].w - sample_l_indexable(texture2darray)(float,float,float,float) r19.xyz, r19.xyzx, t5.xyzw, s3, r0.z - mul r19.xyz, r19.xyzx, cb1[r12.w + 9].wwww - div r19.w, r3.w, r14.w - min r19.w, |r19.w|, l(1.000000) - mad r19.w, r19.w, l(2.000000), r3.w - add r14.w, r14.w, l(2.000000) - div r14.w, r19.w, r14.w - add r14.w, r14.w, l(-1.000000) - mad r14.w, r14.w, cb0[112].w, l(1.000000) - mul r19.xyz, r14.wwww, r19.xyzx - mul r19.xyz, r15.wwww, r19.xyzx - mad r11.yzw, r19.xxyz, r4.yyyy, r11.yyzw - mad r12.w, -r13.w, cb1[r12.w + 10].w, l(1.000000) - mul r4.y, r4.y, r12.w - endif - mov r10.w, l(-1) - continue - else - mov r10.w, r12.z - break - endif - mov r10.w, r12.z -endloop -if_nz r10.w - dp3 r1.w, r14.xyzx, r14.xyzx - rsq r1.w, r1.w - mul r7.xzw, r1.wwww, r14.xxyz - lt r14.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r7.xzwx - lt r19.xyz, r7.xzwx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r14.xyz, -r14.xyzx, r19.xyzx - itof r14.xyz, r14.xyzx - dp3 r1.w, r7.xzwx, r14.xyzx - div r7.xzw, r7.xxzw, r1.wwww - lt r1.w, r7.w, l(0.000000) - add r12.zw, -|r7.zzzx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r12.zw, r12.zzzw, r14.xxxy - movc r7.xz, r1.wwww, r12.zzwz, r7.xxzx - dp4 r1.w, cb1[3].xyzw, r5.xyzw - max r1.w, r1.w, l(0.000000) - max r1.w, r1.w, l(0.000100) - mad r7.xz, r7.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) - mad r14.xy, r7.xzxx, cb1[1].wwww, cb1[2].wwww - mov r14.z, l(0) - sample_l_indexable(texture2darray)(float,float,float,float) r7.xzw, r14.xyzx, t5.xwyz, s3, r0.z - div r0.z, r3.w, r1.w - min r0.z, |r0.z|, l(1.000000) - mad r0.z, r0.z, l(2.000000), r3.w - add r1.w, r1.w, l(2.000000) - div r0.z, r0.z, r1.w - add r0.z, r0.z, l(-1.000000) - mad r0.z, r0.z, cb0[112].w, l(1.000000) - mul r7.xzw, r0.zzzz, r7.xxzw - mad r11.yzw, r7.xxzw, r4.yyyy, r11.yyzw -endif -mul r7.xzw, r11.yyzw, cb0[112].zzzz -mul r7.xzw, r7.xxzw, cb0[111].yyyy -if_nz r8.y - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r11.yzw, v1.xyxx, t2.wxyz, s1, cb0[108].x - add r1.w, -r0.z, l(1.000000) - mul r14.xyz, r1.wwww, r7.xzwx - mad r7.xzw, r11.yyzw, r0.zzzz, r14.xxyz -endif -mul r3.xyz, r3.xyzx, r6.xywx -mul r3.xyz, r3.xyzx, cb0[111].xxxx -mad r0.z, r2.z, r12.x, r12.y -mul r6.xyw, r0.zzzz, r7.xzxw -mul r6.xyw, r8.xzxw, r6.xyxw -mad r3.xyz, r3.xyzx, r13.xyzx, r6.xywx -mul r5.xyzw, r5.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000) -dp4 r8.x, r17.xyzw, r5.xyzw -dp4 r8.y, r16.xyzw, r5.xyzw -dp4 r8.z, r18.xyzw, r5.xyzw -max r5.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -mul r5.xyz, r5.xyzx, cb0[111].xxxx -mul r5.xyz, r13.xyzx, r5.xyzx -mul r5.xyz, r15.xyzx, r5.xyzx -mul r0.z, r4.x, r11.x -ftou r1.w, r2.w -bfi r1.w, l(2), l(0), r1.w, r4.z -utof r1.w, r1.w -mul r1.w, r1.w, l(0.0322580636) -mad r0.z, r0.z, l(0.00787401572), r1.w -mul r4.xyz, r0.zzzz, r5.xyzx -mad r3.xyz, r4.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000), r3.xyzx -add r1.xyz, r1.xyzx, r3.xyzx -mad r0.z, r7.y, cb0[156].w, cb0[157].w -max r0.z, r0.z, l(0.010000) -mad r1.w, r6.z, cb0[154].w, -cb0[153].w -max r1.w, r1.w, l(0.000000) -mul r2.z, r0.z, l(-1.442695) -exp r2.z, r2.z -add r2.z, -r2.z, l(1.000000) -div r0.z, r2.z, r0.z -mad r2.z, r7.y, cb0[156].w, cb0[158].w -mul r2.z, r2.z, l(1.442695) -exp r2.z, r2.z -mul r0.z, r0.z, r2.z -mul r0.z, r0.z, -r1.w -mul r3.xyz, r0.zzzz, cb0[155].xyzx -mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) -exp r3.xyz, r3.xyzx -dp3 r0.z, -r10.xyzx, cb0[154].xyzx -mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) -dp2 r2.z, r0.zzzz, cb0[155].wwww -add r1.w, r1.w, -r2.z -lt r2.z, l(0.000000), cb0[163].z -if_nz r2.z - and r0.w, l(7), cb0[108].w - imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) - imad r0.x, r0.y, r0.w, r0.x - imad r0.y, r0.w, r0.x, r0.y - imad r0.w, r0.x, r0.y, r0.w - imad r4.x, r0.y, r0.w, r0.x - dp3 r0.x, -r10.xyzx, -r9.xyzx - add r2.z, r7.y, -cb0[44].y - lt r2.w, l(5.960464478E-08), r0.x - div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x - and r0.x, r0.x, r2.w - mul r0.x, r0.x, cb0[163].w - div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.z - mul r3.w, r0.x, r2.w - mad r4.z, r3.w, r2.z, cb0[44].y - mad r2.z, -r3.w, r2.z, r2.z - mul r3.w, r2.z, cb0[159].z - max r3.w, r3.w, l(-127.000000) - mul r2.z, r2.z, cb0[162].x - max r2.z, r2.z, l(-127.000000) - add r5.x, r4.z, -cb0[159].x - mul r5.x, r5.x, cb0[159].z - max r5.x, r5.x, l(-127.000000) - exp r5.x, -r5.x - mul r5.x, r5.x, cb0[159].y - lt r5.y, l(5.960464478E-08), |r3.w| - exp r5.z, -r3.w - add r5.z, -r5.z, l(1.000000) - div r5.z, r5.z, r3.w - mad r3.w, -r3.w, l(0.240226507), l(0.693147182) - movc r3.w, r5.y, r5.z, r3.w - add r4.z, r4.z, -cb0[162].z - mul r4.z, r4.z, cb0[162].x - max r4.z, r4.z, l(-127.000000) - exp r4.z, -r4.z - mul r4.z, r4.z, cb0[162].y - lt r5.y, l(5.960464478E-08), |r2.z| - exp r5.z, -r2.z - add r5.z, -r5.z, l(1.000000) - div r5.z, r5.z, r2.z - mad r2.z, -r2.z, l(0.240226507), l(0.693147182) - movc r2.z, r5.y, r5.z, r2.z - mul r2.z, r2.z, r4.z - mad r2.z, r5.x, r3.w, r2.z - mad r0.x, -r0.x, r2.w, l(1.000000) - mul r0.x, r6.z, r0.x - mul r0.x, r0.x, r2.z - exp r0.x, -r0.x - min r0.x, r0.x, l(1.000000) - max r0.x, r0.x, cb0[161].w - mad_sat r2.zw, r6.zzzz, cb0[160].yyyw, cb0[160].xxxz - add r0.x, r0.x, r2.z - add r0.x, r2.w, r0.x - min r0.x, r0.x, l(1.000000) - imad r4.y, r0.w, r4.x, r0.y - ushr r0.yw, r4.xxxy, l(0, 16, 0, 16) - utof r0.yw, r0.yyyw - mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r0.yw, r0.yyyw, cb0[167].wwww, r2.xxxy - mul r2.xy, r0.ywyy, cb0[165].xyxx - mad r0.y, |r4.w|, cb0[164].x, cb0[164].y - log r0.y, r0.y - mul r0.y, r0.y, cb0[164].z - div r2.z, r0.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r2.xyzw, r2.xyzx, t12.xyzw, s1, l(0.000000) - add r0.y, |r4.w|, -cb0[166].z - mul_sat r0.y, r0.y, l(1000000.000000) - add r2.xyzw, r2.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r2.xyzw, r0.yyyy, r2.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r0.y, -r0.x, l(1.000000) - mul r4.xyz, r0.yyyy, cb0[161].xyzx - mad r2.xyz, r4.xyzx, r2.wwww, r2.xyzx - mul r0.x, r0.x, r2.w -else - add r0.y, r7.y, -cb0[44].y - mul r0.w, r0.y, cb0[159].z - mul r0.y, r0.y, cb0[162].x - max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) - add r2.w, cb0[44].y, -cb0[159].x - mul r2.w, r2.w, cb0[159].z - max r2.w, r2.w, l(-127.000000) - exp r2.w, -r2.w - mul r2.w, r2.w, cb0[159].y - lt r3.w, l(5.960464478E-08), |r0.w| - exp r4.x, -r0.w - add r4.x, -r4.x, l(1.000000) - div r4.x, r4.x, r0.w - mad r0.w, -r0.w, l(0.240226507), l(0.693147182) - movc r0.w, r3.w, r4.x, r0.w - add r3.w, cb0[44].y, -cb0[162].z - mul r3.w, r3.w, cb0[162].x - max r3.w, r3.w, l(-127.000000) - exp r3.w, -r3.w - mul r3.w, r3.w, cb0[162].y - lt r4.x, l(5.960464478E-08), |r0.y| - exp r4.y, -r0.y - add r4.y, -r4.y, l(1.000000) - div r4.y, r4.y, r0.y - mad r0.y, -r0.y, l(0.240226507), l(0.693147182) - movc r0.y, r4.x, r4.y, r0.y - mul r0.y, r0.y, r3.w - mad r0.y, r2.w, r0.w, r0.y - mul r0.y, r6.z, r0.y - exp r0.y, -r0.y - min r0.y, r0.y, l(1.000000) - max r0.y, r0.y, cb0[161].w - mad_sat r4.xy, r6.zzzz, cb0[160].ywyy, cb0[160].xzxx - add r0.y, r0.y, r4.x - add r0.y, r4.y, r0.y - min r0.x, r0.y, l(1.000000) - add r0.y, -r0.x, l(1.000000) - mul r2.xyz, r0.yyyy, cb0[161].xyzx -endif -mul r4.xyz, r0.xxxx, r3.xyzx -max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) -mad r0.y, r0.z, r0.z, l(1.000000) -mul r0.y, r0.y, l(0.0596831031) -mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz -mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) -mul r3.w, r1.w, l(12.566371) -sqrt r1.w, r1.w -mul r1.w, r1.w, r3.w -max r1.w, r1.w, l(0.001000) -div r1.w, r2.w, r1.w -mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw -mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) -add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mul r0.yzw, r0.yyzw, r3.xxyz -mad r0.xyz, r0.yzwy, r0.xxxx, r2.xyzx -mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx -dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.cso b/src/games/endfield/deferred-lighting/0xD5B102A4.cso index b4458e5229bcb17f80a3b10224da68d383598d06..81a2b599a51d02cdef0ba45e72321cf30f8652f3 100644 GIT binary patch delta 299 zcmdn8mg&rTCMlN)CuhOx&GFGM{ZGY6yfq~)7^odf7IC-WsFa!X3hbJCQ zW)$A6$tdroYRzzh_(YEWR{1=2!5%;>2LiArEYvcvB?KnMCBUnEf^Tsi-2m_fNI>Bpfoc?&*l)n3?)u6po|qz1=Hq@1y%fV zEHFz!7MlQdHv#2fYQ!cx@(ROsh)rfR6SjfN0o8*X$-v-X51||EV74;>MM1WM=x_WG O^F)ElH)}NXhyegiVlmwS delta 76 zcmV-S0JHzhuL88K0vbeELPO43I2P!fWPV7#$kvgq=U)K;006X>ks6{2^pyYrPyhe` ieUZgu0S&V$0Ut`Ua7zpWv&>FtBC|+wZx6FWfr%EDFdX*) diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm index c203b31c3..836daa6ec 100644 --- a/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm @@ -25,7 +25,7 @@ dcl_constantbuffer CB1[259], dynamicIndexed dcl_constantbuffer CB2[5], immediateIndexed dcl_constantbuffer CB3[5], immediateIndexed dcl_constantbuffer CB4[4], immediateIndexed -dcl_constantbuffer CB13[13], immediateIndexed +dcl_constantbuffer CB13[19], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -648,6 +648,7 @@ else mov r6.xyz, l(0,0,0,0) endif ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx +movc r3.y, cb13[18].w, l(0xFFFFFFFF), r3.y if_nz r3.y sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x min r0.z, r1.y, r0.z @@ -675,6 +676,8 @@ else mov r11.xyw, r1.yyyy mov r12.xyz, r1.yyyy endif +movc r11.xyw, cb13[18].wwww, r11.xyzw, l(1.0, 1.0, 0, 1.0) +mul r6.xyz, r6.xyzx, r11.xywx mad r14.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx round_z r0.z, cb0[212].x mad r15.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx @@ -957,6 +960,7 @@ and r2.w, r2.w, r3.y and r1.y, r1.y, r2.w mul r14.xyz, r16.xyzx, cb0[111].xxxx dp3 r2.w, r14.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r22.w, r2.w // Store ambient luminance for cubemap modulation mov r5.w, l(1.000000) mov r13.w, l(1.000000) mov r14.xyz, l(0,0,0,0) @@ -1089,6 +1093,13 @@ if_nz r4.w endif mul r2.xyz, r14.xyzx, cb0[112].zzzz mul r2.xyz, r2.xyzx, cb0[111].yyyy +// Cubemap ambient link modulation (cb13[13].w) +if_nz cb13[13].w + max r22.w, r22.w, l(0.000000) + min r22.w, r22.w, l(1.000000) + mad r22.w, r22.w, l(0.750000), l(0.250000) + mul r2.xyz, r2.xyzx, r22.wwww +endif if_nz r3.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x sample_b_indexable(texture2d)(float,float,float,float) r5.xzw, v1.xyxx, t2.xwyz, s1, cb0[108].x diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0_original_backup.asm b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0_original_backup.asm deleted file mode 100644 index cbebeb69e..000000000 --- a/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0_original_backup.asm +++ /dev/null @@ -1,1263 +0,0 @@ -// -// Generated by Microsoft (R) D3D Shader Disassembler -// -// using 3Dmigoto v1.4.1 on Sat Jan 31 22:30:13 2026 -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------- ------ -// SV_Position 0 xyzw 0 POS float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// 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[235], immediateIndexed -dcl_constantbuffer CB1[259], dynamicIndexed -dcl_constantbuffer CB2[5], immediateIndexed -dcl_constantbuffer CB3[5], immediateIndexed -dcl_constantbuffer CB4[4], 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_comparison -dcl_resource_structured t0, 4 -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_texture2darray (float,float,float,float) t5 -dcl_resource_texture2d (float,float,float,float) t6 -dcl_resource_texture2d (float,float,float,float) t7 -dcl_resource_texture2d (float,float,float,float) t8 -dcl_resource_texture3d (float,float,float,float) t9 -dcl_resource_texture2d (float,float,float,float) t10 -dcl_resource_texture2d (float,float,float,float) t11 -dcl_resource_texture2d (float,float,float,float) t12 -dcl_resource_texture2d (float,float,float,float) t13 -dcl_resource_texture3d (float,float,float,float) t14 -dcl_resource_texture2d (float,float,float,float) t15 -dcl_resource_texture2d (float,float,float,float) t16 -dcl_resource_texture3d (float,float,float,float) t17 -dcl_resource_texture3d (float,float,float,float) t18 -dcl_resource_texture3d (float,float,float,float) t19 -dcl_resource_texture3d (float,float,float,float) t20 -dcl_resource_texture3d (float,float,float,float) t21 -dcl_resource_texture3d (float,float,float,float) t22 -dcl_resource_texture2d (float,float,float,float) t23 -dcl_resource_texture2d (float,float,float,float) t24 -dcl_resource_texture2d (float,float,float,float) t25 -dcl_resource_texture2d (float,float,float,float) t26 -dcl_input_ps_siv linear noperspective v0.xy, position -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 23 -ftou r0.xy, v0.xyxx -mov r0.z, l(0) -ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t24.xyzw -ld_indexable(texture2d)(float,float,float,float) r2.xyz, r0.xyzz, t25.xyzw -mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -dp2 r1.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r2.xyxx| -add r3.y, -r1.w, l(1.000000) -lt r1.w, r3.y, l(0.000000) -ge r4.xy, r2.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) -add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) -movc r4.xy, r4.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0) -mul r4.xy, r4.xyxx, r4.zwzz -movc r3.xz, r1.wwww, r4.xxyx, r2.xxyx -dp3 r1.w, r3.xyzx, r3.xyzx -rsq r1.w, r1.w -mul r2.xyw, r1.wwww, r3.xyxz -utof r4.xy, r0.xyxx -mul r4.zw, v0.xxxy, cb0[82].zzzw -mad r5.xy, r4.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) -add r5.zw, r4.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000) -mul r5.zw, r5.zzzw, cb0[82].zzzw -sample_l_indexable(texture2d)(float,float,float,float) r3.w, r5.zwzz, t1.yzwx, s0, l(0.000000) -mul r6.xyzw, -r5.yyyy, cb0[25].xyzw -mad r5.xyzw, cb0[24].xyzw, r5.xxxx, r6.xyzw -mad r5.xyzw, cb0[26].xyzw, r3.wwww, r5.xyzw -add r5.xyzw, r5.xyzw, cb0[27].xyzw -div r5.xyz, r5.xyzx, r5.wwww -mul r3.w, r5.y, cb0[1].z -mad r3.w, cb0[0].z, r5.x, r3.w -mad r3.w, cb0[2].z, r5.z, r3.w -add r3.w, r3.w, cb0[3].z -eq r6.x, l(0.000000), cb0[86].w -add r6.yzw, -r5.xxyz, cb0[44].xxyz -mov r7.x, cb0[0].z -mov r7.y, cb0[1].z -mov r7.z, cb0[2].z -movc r6.xyz, r6.xxxx, r6.yzwy, r7.xyzx -dp3 r6.w, r6.xyzx, r6.xyzx -max r7.w, r6.w, l(9.999999939E-09) -rsq r7.w, r7.w -mul r8.xyz, r6.xyzx, r7.wwww -mul r6.w, r6.w, r7.w -lt r8.w, l(0.000488281250), cb0[234].x -if_nz r8.w - sample_b_indexable(texture2d)(float,float,float,float) r9.xy, v1.xyxx, t23.xyzw, s1, cb0[108].x -else - mov r9.xy, l(1.000000,1.000000,0,0) -endif -lt r9.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb0[226].xxxy -if_nz r9.z - add r9.z, |r2.y|, |r2.x| - add r9.z, |r2.w|, r9.z - div r9.z, l(1.000000, 1.000000, 1.000000, 1.000000), r9.z - mul r10.xyz, |r2.xywx|, r9.zzzz - mul r11.xyz, r5.xyzx, cb0[229].xxxx - sample_l_indexable(texture3d)(float,float,float,float) r9.z, r11.xyzx, t9.yzxw, s2, l(0.000000) - mul r11.xyzw, r10.xxyy, l(0.000000, 1.000000, 0.707106, 0.000000) - add r10.xyw, r11.zwzz, r11.xxxy - mad r10.xyz, r10.zzzz, l(1.000000, 0.000000, 0.000000, 0.000000), r10.xywx - mad r10.w, r9.z, l(2.000000), l(-1.000000) - mul r10.xyz, r10.wwww, r10.xyzx - mov r10.w, |r2.y| - add r10.w, r10.w, l(-0.700000) - mul_sat r10.w, r10.w, l(4.000000) - mad r11.x, r10.w, l(-2.000000), l(3.000000) - mul r10.w, r10.w, r10.w - mul r10.w, r10.w, r11.x - add r11.x, -cb0[229].z, cb0[229].y - mad r10.w, r10.w, r11.x, cb0[229].z - mul r10.xyz, r10.wwww, r10.xyzx -else - mov r10.xyz, l(0,0,0,0) - mov r9.z, l(0) -endif -mad r10.w, -r3.y, r1.w, l(-0.200000) -if_nz r9.w - mul r11.xyz, r2.xywx, cb0[233].zzzz - mul r12.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[225].yyyy - mad r11.xyz, r11.xyzx, cb0[225].xxxx, r12.xyzx - max r9.w, -r2.y, l(0.000000) - min r9.w, r9.w, l(0.900000) - add r9.w, -r9.w, l(1.000000) - mul_sat r11.w, r10.w, l(-10.000000) - mad r12.x, r11.w, l(-2.000000), l(3.000000) - mul r11.w, r11.w, r11.w - mul r11.w, r11.w, r12.x - max r11.w, r11.w, l(0.100000) - min r11.w, r11.w, l(1.000000) - mul r9.w, r9.w, r11.w - mad r11.xyz, r11.xyzx, r9.wwww, r5.xyzx - add r10.xyz, r10.xyzx, r11.xyzx - mul r11.xyz, r10.yyyy, cb3[1].xyzx - mad r11.xyz, cb3[0].xyzx, r10.xxxx, r11.xyzx - mad r10.xyz, cb3[2].xyzx, r10.zzzz, r11.xyzx - add r10.xyz, r10.xyzx, cb3[3].xyzx - mad r11.x, r10.x, l(0.500000), cb3[4].x - mad r9.w, r10.y, l(0.500000), l(0.500000) - add r11.z, -r9.w, cb3[4].y - add r10.xy, r11.xzxx, l(0.500000, 1.000000, 0.000000, 0.000000) - max r9.w, r10.z, l(0.000488281250) - sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r10.xyxx, t8.xxxx, s4, r9.w -else - mov r9.w, l(1.000000) -endif -mov_sat r10.x, r2.y -add r10.y, l(1.000000), -cb0[230].w -mad r10.x, r10.x, r10.y, cb0[230].w -add r10.yz, r5.xxzx, -cb0[44].xxzx -max r10.y, |r10.z|, |r10.y| -mul r10.z, r9.w, r10.x -mul r11.x, l(0.0500000119), cb0[222].w -mad r11.y, -cb0[222].w, l(0.700000), r10.y -div r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.x -mul_sat r11.x, r11.x, r11.y -mad r11.y, r11.x, l(-2.000000), l(3.000000) -mul r11.x, r11.x, r11.x -mul r11.x, r11.x, r11.y -mad r9.w, -r10.x, r9.w, l(1.000000) -mad r9.w, r11.x, r9.w, r10.z -ge r10.z, r1.z, l(0.045000) -and r10.z, r10.z, l(0x3f800000) -mul r10.z, r9.w, r10.z -deriv_rty_coarse r11.xyz, r5.xyzx -deriv_rtx_coarse r12.xyz, r5.zxyz -mul r13.xyz, r11.xyzx, r12.xyzx -mad r11.xyz, r11.zxyz, r12.yzxy, -r13.xyzx -dp3 r11.w, r11.xyzx, r11.xyzx -max r11.w, r11.w, l(1.175494351E-38) -rsq r11.w, r11.w -mul r12.xyz, r11.wwww, r11.xzyx -mov_sat r11.y, r12.x -add r11.z, r11.y, l(-0.988000) -mul_sat r11.z, r11.z, l(1000.012878) -mad r12.w, r11.z, l(-2.000000), l(3.000000) -mul r11.z, r11.z, r11.z -mul r11.z, r11.z, r12.w -add r12.w, |r3.w|, l(-15.000000) -mul_sat r12.w, r12.w, l(0.015000) -add r12.w, -r12.w, l(1.000000) -lt r13.x, l(0.000488281250), cb0[223].y -mad r13.y, cb0[223].z, l(0.300000), l(0.687000) -add r11.y, r11.y, -r13.y -mul_sat r11.y, r11.y, l(-1000.012878) -mad r13.y, r11.y, l(-2.000000), l(3.000000) -mul r11.y, r11.y, r11.y -mul r11.y, r11.y, r13.y -mad r11.x, r11.x, r11.w, l(0.500000) -mul_sat r11.x, r11.x, l(2.500000) -mad r11.w, r11.x, l(-2.000000), l(3.000000) -mul r11.x, r11.x, r11.x -mul r11.x, r11.x, r11.w -mul r11.x, r11.x, r11.y -lt r11.x, l(0.000488281250), r11.x -and r11.x, r11.x, r13.x -if_nz r11.x - mul r11.xy, |r12.yzyy|, |r12.yzyy| - add r11.w, r11.y, r11.x - div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w - mul r11.xy, r11.wwww, r11.xyxx - mul r13.xyz, r12.xzyx, l(0.000000, 1.000000, 0.000000, 0.000000) - mad r13.xyz, r12.yxzy, l(1.000000, 0.000000, 0.000000, 0.000000), -r13.xyzx - dp2 r11.w, r13.xyxx, r13.xyxx - rsq r11.w, r11.w - mul r13.xyz, r11.wwww, r13.xyzx - mul r14.xyz, r12.xzyx, r13.xyzx - mad r14.xyz, r13.zxyz, r12.zyxz, -r14.xyzx - dp3 r11.w, r14.xyzx, r14.xyzx - rsq r11.w, r11.w - mul r14.xyz, r11.wwww, r14.xyzx - add r15.xyz, r5.xyzx, r5.xyzx - round_ni r15.xyz, r15.xyzx - add r15.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) - add r13.zw, r15.yyyy, r15.xxxz - dp2 r11.w, r13.zwzz, l(12.989800, 78.233002, 0.000000, 0.000000) - sincos r11.w, null, r11.w - mul r11.w, r11.w, l(43758.546875) - frc r11.w, r11.w - lt r13.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.zzzy - lt r15.xy, r12.zyzz, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r13.zw, r13.zzzw, -r15.xxxy - itof r13.zw, r13.zzzw - mul r15.xy, r5.xzxx, r13.zwzz - mul r13.z, r9.z, r11.w - add r13.w, -r11.w, l(1.000000) - mad r13.w, r13.w, l(0.700000), l(0.300000) - mul r16.xy, r13.zzzz, l(3.000000, 6.000000, 0.000000, 0.000000) - mad r13.z, -cb0[223].x, r13.w, r16.x - frc r17.x, r13.z - mad r13.z, cb0[223].x, l(-0.300000), r16.y - frc r17.y, r13.z - mul r11.w, r11.w, l(5.000000) - round_ni r11.w, r11.w - add r16.x, r11.w, l(1.000000) - mul r16.y, r5.y, r16.x - mov r5.w, l(0.100000) - mul r13.zw, r5.yyyw, r16.xxxy - frc r13.zw, r13.zzzw - add r16.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000) - add r16.xy, r13.zwzz, -r16.xyxx - add r16.xy, r16.xyxx, l(-0.800000, -0.800000, 0.000000, 0.000000) - mul_sat r16.xy, r16.xyxx, l(5.00000048, 5.00000048, 0.000000, 0.000000) - mad r16.zw, r16.xxxy, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000) - mul r16.xy, r16.xyxx, r16.xyxx - mul r16.xy, r16.xyxx, r16.zwzz - add r16.zw, -r13.zzzw, r17.xxxy - max r16.xy, r16.zwzz, r16.xyxx - add r17.zw, -r17.xxxy, r13.zzzw - add r17.zw, r17.zzzw, l(0.000000, 0.000000, -0.800000, -0.800000) - mul r17.zw, r17.zzzw, l(0.000000, 0.000000, 5.00000048, 5.00000048) - max r17.zw, r17.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) - mad r18.xy, r17.zwzz, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000) - mul r17.zw, r17.zzzw, r17.zzzw - mul r17.zw, r17.zzzw, r18.xxxy - add r16.zw, r16.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) - max r16.zw, r16.zzzw, r17.zzzw - ge r13.zw, r13.zzzw, r17.xxxy - and r13.zw, r13.zzzw, l(0, 0, 0x3f800000, 0x3f800000) - add r16.zw, -r16.xxxy, r16.zzzw - mad r13.zw, r13.zzzw, r16.zzzw, r16.xxxy - mad r11.w, r13.z, r13.z, l(-0.400000) - mul_sat r11.w, r11.w, l(1.66666663) - mad r13.z, r11.w, l(-2.000000), l(3.000000) - mul r11.w, r11.w, r11.w - mul r11.w, r11.w, r13.z - mad r13.z, r13.w, l(2.000000), l(-1.000000) - mul r16.x, r11.w, l(0.010000) - mul r16.y, r13.z, r16.x - mad r17.x, r9.z, l(0.100000), r16.y - mul r16.x, r11.w, r16.x - mad r16.x, r16.x, r13.z, r9.z - mul r17.y, r9.z, r16.x - mov r15.z, r5.y - mad r16.xy, r15.yzyy, cb0[224].xyxx, r17.xyxx - sample_b_indexable(texture2d)(float,float,float,float) r16.xyzw, r16.xyxx, t10.xyzw, s2, cb0[108].x - mov r15.w, -r15.x - mad r15.xy, r15.wzww, cb0[224].xyxx, r17.xyxx - sample_b_indexable(texture2d)(float,float,float,float) r15.xyzw, r15.xyxx, t10.xyzw, s2, cb0[108].x - mul r15.xyzw, r11.yyyy, r15.xyzw - mad r15.xyzw, r16.xyzw, r11.xxxx, r15.xyzw - mad r11.xy, r15.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) - mad r9.z, r11.w, l(2.000000), l(-1.000000) - mad_sat r9.z, r9.z, l(0.800000), r13.w - mad r13.w, -r15.w, l(0.500000), l(1.000000) - mad r9.z, r9.z, r13.w, l(-0.700000) - mul_sat r9.z, r9.z, l(3.33333325) - mad r13.w, r9.z, l(-2.000000), l(3.000000) - mul r9.z, r9.z, r9.z - mul r9.z, r9.z, r13.w - mul r13.z, r13.z, r15.w - mad_sat r11.w, r13.z, l(0.500000), r11.w - mad r11.w, r11.w, l(0.500000), l(0.100000) - max r9.z, r9.z, r11.w - add r11.w, -r9.z, l(1.000000) - max r11.w, r11.w, l(0.000000) - mul r13.z, r11.w, r11.w - mul r13.z, r13.z, r13.z - mul r11.w, r11.w, r13.z - ge r11.w, r15.z, r11.w - and r11.w, r11.w, l(0x3f800000) - mad r9.z, r9.z, l(0.700000), l(0.200000018) - mad r9.z, r11.w, r9.z, l(0.100000) - mul r9.z, r15.z, r9.z - mul r9.z, r9.z, cb0[223].y - mul r9.z, r9.z, l(0.330000) - mul r11.w, r10.z, cb0[222].x - mul r11.w, r12.w, r11.w - mul r9.z, r9.z, r11.w - dp2 r11.w, r11.xyxx, r11.xyxx - min r11.w, r11.w, l(1.000000) - add r11.w, -r11.w, l(1.000000) - sqrt r11.w, r11.w - max r11.w, r11.w, l(0.000488281250) - mul_sat r13.z, r9.z, l(10.000000) - mad r13.w, r13.z, l(-2.000000), l(3.000000) - mul r13.z, r13.z, r13.z - mul r13.z, r13.z, r13.w - mul r13.z, r13.z, cb0[223].y - mul r15.xy, r11.xyxx, r13.zzzz - add r11.x, l(-1.500000), cb0[223].y - mul_sat r11.x, r11.x, l(0.666666687) - mad r11.y, r11.x, l(-2.000000), l(3.000000) - mul r11.x, r11.x, r11.x - mul r11.x, r11.x, r11.y - mul r11.y, r11.x, l(-0.200000) - mad r11.x, -r11.x, l(-0.200000), r11.w - mad r15.z, r9.z, r11.x, r11.y - dp3 r11.x, r15.xyzx, r15.xyzx - max r11.x, r11.x, l(1.175494351E-38) - rsq r11.x, r11.x - mul r11.xyw, r11.xxxx, r15.xyxz - mov r15.x, r13.y - mov r15.y, r14.x - mov r15.z, r12.y - dp3 r15.x, r15.xyzx, r11.xywx - mov r14.w, r12.x - dp2 r15.y, r14.ywyy, r11.ywyy - mov r12.x, r13.x - mov r12.y, r14.z - dp3 r15.z, r12.xyzx, r11.xywx - mad r11.xyw, -r3.xyxz, r1.wwww, r15.xyxz - mad r13.xyz, r9.zzzz, r11.xywx, r2.xywx - mul r9.z, r9.z, cb0[223].y - mul r9.z, r9.z, l(0.330000) -else - mov r13.xyz, r2.xywx - mov r9.z, l(0) -endif -lt r11.xy, l(0.000488281250, 0.000488281250, 0.000000, 0.000000), cb0[227].ywyy -or r11.x, r11.y, r11.x -lt r11.y, l(0.000488281250), r11.z -and r11.x, r11.y, r11.x -if_nz r11.x - mul r11.xyw, r2.ywyx, l(1.000000, 0.000000, 0.000000, 0.000000) - mad r11.xyw, r2.xyxw, l(0.000000, 0.000000, 0.000000, 1.000000), -r11.xyxw - dp2 r12.x, r11.xwxx, r11.xwxx - rsq r12.x, r12.x - mul r11.xyw, r11.xyxw, r12.xxxx - mul r12.xyz, r2.ywxy, r11.xywx - mad r12.xyz, r11.wxyw, r2.wxyw, -r12.xyzx - dp3 r11.y, r12.xyzx, r12.xyzx - rsq r11.y, r11.y - mul r14.xyz, r11.yyyy, r12.xzyx - mul r12.xy, -r5.xzxx, cb0[228].xyxx - frc r15.xy, r12.xyxx - round_ni r12.xy, r12.xyxx - dp2 r11.y, r12.xyxx, l(12.989800, 78.233002, 0.000000, 0.000000) - sincos r11.y, null, r11.y - mul r11.y, r11.y, l(43758.546875) - frc r11.y, r11.y - add r12.x, r11.y, cb0[227].x - frc r12.x, r12.x - mul r12.y, cb0[228].z, cb0[228].z - mul r12.x, r12.y, r12.x - round_ni r12.x, r12.x - div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[228].z - mad r15.zw, -r5.xxxz, cb0[228].xxxy, cb0[227].zzzz - sample_b_indexable(texture2d)(float,float,float,float) r16.xy, r15.zwzz, t11.zwxy, s2, cb0[108].x - mad r15.zw, -r5.xxxz, cb0[228].xxxy, -cb0[227].zzzz - sample_b_indexable(texture2d)(float,float,float,float) r16.zw, r15.zwzz, t11.xyzw, s2, cb0[108].x - mul r16.xyzw, r16.xyzw, cb0[227].wwww - mad r16.xyzw, r16.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), -cb0[227].wwww - ge r11.y, l(0.500000), r11.y - and r11.y, r11.y, l(0x3f800000) - add r15.zw, -r15.xxxy, r15.yyyx - mad r15.xy, r11.yyyy, r15.zwzz, r15.xyxx - div r11.y, r12.x, cb0[228].z - ge r12.z, r11.y, -r11.y - frc r11.y, |r11.y| - movc r11.y, r12.z, r11.y, -r11.y - mul r11.y, r11.y, cb0[228].z - mul r17.x, r11.y, r12.y - add r15.zw, l(0.000000, 0.000000, -0.050000, -1.000000), cb0[228].wwwz - mul r11.y, r12.y, r12.x - round_ni r11.y, r11.y - add r11.y, -r11.y, r15.w - mul r17.y, r11.y, r12.y - mad r12.xy, r15.xyxx, r12.yyyy, r17.xyxx - frc r12.xy, r12.xyxx - sample_b_indexable(texture2d)(float,float,float,float) r12.xy, r12.xyxx, t11.xyzw, s1, cb0[108].x - mul r12.xy, r12.xyxx, cb0[227].yyyy - mad r12.xy, r12.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), -cb0[227].yyyy - add r15.xy, r16.zwzz, r16.xyxx - add r12.xy, r12.xyxx, r15.xyxx - dp2 r11.y, r12.xyxx, r12.xyxx - min r11.y, r11.y, l(1.000000) - add r11.y, -r11.y, l(1.000000) - sqrt r11.y, r11.y - max r12.z, r11.y, l(0.000488281250) - dp3 r11.y, r12.xyzx, r12.xyzx - rsq r11.y, r11.y - mul r12.xyz, r11.yyyy, r12.xyzx - mov r14.w, r2.x - dp2 r16.x, r14.xwxx, r12.yzyy - mov r17.x, r11.w - mov r17.y, r14.z - mov r17.z, r2.y - dp3 r16.y, r17.xyzx, r12.xyzx - mov r14.x, r11.x - mov r14.z, r2.w - dp3 r16.z, r14.xyzx, r12.xyzx - mul r10.z, r10.z, cb0[222].x - mul r10.z, r11.z, r10.z - max r11.x, l(0.000488281250), cb0[228].w - mov_sat r15.z, r15.z - add r11.y, -r11.x, r15.z - add r11.x, r2.z, -r11.x - div r11.y, l(1.000000, 1.000000, 1.000000, 1.000000), r11.y - mul_sat r11.x, r11.y, r11.x - mad r11.y, r11.x, l(-2.000000), l(3.000000) - mul r11.x, r11.x, r11.x - mul r11.x, r11.x, r11.y - mul r10.z, r10.z, r11.x - mul r10.z, r12.w, r10.z - mad r3.xyz, -r3.xyzx, r1.wwww, r16.xyzx - mad r13.xyz, r10.zzzz, r3.xyzx, r2.xywx -endif -min r1.w, r9.y, r9.x -mul r3.x, r10.x, cb0[230].z -mad r3.y, -cb0[230].z, r10.x, l(1.000000) -mad r3.x, r9.w, r3.y, r3.x -mad r3.y, cb0[230].x, cb0[222].w, -cb0[222].w -add r3.z, r10.y, -cb0[222].w -div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y -mul_sat r3.y, r3.y, r3.z -mad r3.z, r3.y, l(-2.000000), l(3.000000) -mul r3.y, r3.y, r3.y -mul r3.y, r3.y, r3.z -add r3.z, -r3.x, cb0[230].y -mad r3.x, r3.y, r3.z, r3.x -add r3.x, -r3.x, l(1.000000) -mul r3.y, r3.x, r9.x -add r1.z, r1.z, l(-0.050000) -mul_sat r1.z, r1.z, l(1.052600) -add r3.z, -r2.z, l(1.000000) -mad_sat r9.w, r3.z, cb0[222].z, cb0[222].y -mad_sat r9.w, r9.z, cb0[224].z, r9.w -add r10.x, -r9.w, l(1.000000) -mad r9.w, r1.x, r10.x, r9.w -mul_sat r10.x, r10.w, l(3.33333325) -mad r10.y, r10.x, l(-2.000000), l(3.000000) -mul r10.x, r10.x, r10.x -mad r10.x, -r10.y, r10.x, l(1.000000) -mul r10.y, r9.w, cb0[222].x -add r10.z, -r1.x, l(1.000000) -mul r10.y, r10.z, r10.y -mul r10.y, r10.x, r10.y -mad r10.y, r10.y, l(-0.750000), l(1.000000) -mad r9.w, r9.w, l(-0.299999952), l(0.900000) -sqrt r10.z, r3.z -add r9.w, r9.w, r10.z -add_sat r9.w, r9.w, l(-0.600000) -max r9.w, r3.z, r9.w -min r9.w, r9.w, l(0.990000) -add_sat r10.z, l(2.000000), -cb0[222].x -mul r10.z, r10.z, cb0[222].x -mul r10.x, r10.x, r10.z -mad r3.x, -r9.x, r3.x, l(1.000000) -mul r3.x, r3.x, r10.x -add r9.x, -r3.z, r9.w -mad r3.x, r3.x, r9.x, r3.z -add r3.x, -r3.x, l(1.000000) -mul_sat r3.z, r9.z, l(20.000000) -mad r9.x, r3.z, l(-2.000000), l(3.000000) -mul r3.z, r3.z, r3.z -mul r3.z, r3.z, r9.x -mad r3.z, r3.z, l(-0.900000), l(1.000000) -mul r9.x, r3.z, r3.x -add r9.y, r9.y, l(-1.000000) -mad r11.x, r1.z, r9.y, l(1.000000) -add r11.y, -r1.z, l(1.000000) -movc r9.yz, r8.wwww, r11.xxyx, l(0,1.000000,1.000000,0) -min r1.z, r9.x, r9.y -mad r3.x, r3.x, r3.z, -r1.z -mad r1.z, r1.w, r3.x, r1.z -add r2.z, -r1.z, r2.z -mad r11.z, r3.y, r2.z, r1.z -ld_indexable(texture2d)(float,float,float,float) r9.xyw, r0.xyzz, t26.xywz -min r1.z, r10.y, r9.z -add r2.z, -r1.z, r10.y -mad r1.z, r1.w, r2.z, r1.z -add r1.w, -r1.z, l(1.000000) -mad r1.z, r3.y, r1.w, r1.z -mul r3.xyz, r1.zzzz, r9.xywx -mul r10.xyz, r1.xxxx, r3.xyzx -mad r9.xyz, r9.xywx, r1.zzzz, -r10.xyzx -mad r1.z, -r1.x, l(0.040000), l(0.040000) -mad r1.xzw, r3.xxyz, r1.xxxx, r1.zzzz -dp3 r2.z, r13.xyzx, r8.xyzx -max r10.x, r2.z, l(0.000000) -mul r3.y, r11.z, r11.z -mul r12.x, r10.x, r10.x -mul r12.z, r10.x, r12.x -mul r2.z, r3.y, r3.y -mul r3.z, r3.y, r2.z -mov r10.yzw, l(0,0.0365463011,9.063200,0.990440) -dp2 r14.x, l(3.327070, 1.000000, 0.000000, 0.000000), r10.xyxx -dp2 r14.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r10.xzxx -mov r3.x, l(1.000000) -dp2 r8.w, r14.xyxx, r3.xyxx -mov r12.yw, l(0,9.044010,0,1.000000) -dp3 r14.x, l(3.596850, -1.367720, 1.000000, 0.000000), r12.xzwx -dp3 r14.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r12.xyzx -mov r15.x, l(5.565890) -mov r15.yz, r12.xxzx -dp3 r14.z, l(1.000000, 19.788601, -20.212299, 0.000000), r15.xyzx -dp3 r9.w, r14.xyzx, r3.xyzx -div r8.w, r8.w, r9.w -dp2 r14.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r10.xwxx -mov r12.x, l(1.296780) -mov r12.y, r10.x -dp2 r14.y, l(1.000000, -0.755907, 0.000000, 0.000000), r12.xyxx -dp2 r9.w, r14.xyxx, r3.xyxx -dp3 r14.x, l(2.923380, 59.418800, 1.000000, 0.000000), r12.yzwy -mov r12.xw, l(20.322500,0,0,121.563004) -dp3 r14.y, l(1.000000, -27.030199, 222.591995, 0.000000), r12.xyzx -dp3 r14.z, l(626.130005, 316.627014, 1.000000, 0.000000), r12.yzwy -dp3 r3.x, r14.xyzx, r3.xyzx -div r3.x, r9.w, r3.x -mad r10.yzw, r1.xxzw, r8.wwww, r3.xxxx -add r3.x, r3.x, r8.w -ld_indexable(texture2d)(float,float,float,float) r3.y, r0.xyzz, t6.zxyw -lt r0.z, l(0.001000), r3.y -if_nz r0.z - dp3 r0.z, -r8.xyzx, r13.xyzx - add r0.z, r0.z, r0.z - mad r12.xyz, r13.xyzx, -r0.zzzz, -r8.xyzx - dp3 r0.z, -cb2[0].xyzx, r12.xyzx - mad r14.xyz, cb2[0].xyzx, r0.zzzz, r12.xyzx - lt r0.z, r0.z, cb2[4].z - dp3 r8.w, r14.xyzx, r14.xyzx - max r8.w, r8.w, l(0.0000610351562) - rsq r8.w, r8.w - mul r14.xyz, r8.wwww, r14.xyzx - mul r14.xyz, r14.xyzx, cb2[4].yyyy - mad r14.xyz, -cb2[0].xyzx, cb2[4].zzzz, r14.xyzx - dp3 r8.w, r14.xyzx, r14.xyzx - rsq r8.w, r8.w - mul r14.xyz, r8.wwww, r14.xyzx - movc r12.xyz, r0.zzzz, r14.xyzx, r12.xyzx - mad r6.xyz, r6.xyzx, r7.wwww, r12.xyzx - dp3 r0.z, r6.xyzx, r6.xyzx - max r0.z, r0.z, l(0.0000610351562) - rsq r0.z, r0.z - mul r6.xyz, r0.zzzz, r6.xyzx - dp3_sat r11.x, r12.xyzx, r13.xyzx - dp3_sat r0.z, r13.xyzx, r6.xyzx - min r11.y, r10.x, l(1.000000) - mad r7.w, r0.z, r2.z, -r0.z - mad r0.z, r7.w, r0.z, l(1.000000) - dp3_sat r6.x, r8.xyzx, r6.xyzx - add r6.x, -r6.x, l(1.000000) - mul r6.y, r6.x, r6.x - mul r6.y, r6.y, r6.y - mul r6.z, r6.x, r6.y - add r7.w, -r11.z, l(1.000000) - mad r8.w, -r7.w, l(0.383026), l(-0.0761947036) - mad r8.w, r7.w, r8.w, l(1.049970) - mad r7.w, r7.w, r8.w, l(0.409255) - min r7.w, r7.w, l(0.999000) - add r8.w, -r7.w, l(1.000000) - add r14.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) - mad r14.xyz, r14.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r1.xzwx - mad r6.x, -r6.y, r6.x, l(1.000000) - mad r6.xyz, r1.xzwx, r6.xxxx, r6.zzzz - mul r0.z, r0.z, r0.z - div r0.z, r2.z, r0.z - mad r15.xy, -r11.yxyy, r2.zzzz, r11.yxyy - mad r15.xy, r15.xyxx, r11.yxyy, r2.zzzz - sqrt r15.xy, r15.xyxx - mul r15.xy, r11.xyxx, r15.xyxx - add r2.z, r15.y, r15.x - add r2.z, r2.z, l(0.000100) - div r2.z, l(0.500000), r2.z - mul r0.z, r0.z, r2.z - mul r6.xyz, r0.zzzz, r6.xyzx - min r6.xyz, r6.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) - mad r15.xyzw, r11.yzxz, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) - sample_l_indexable(texture2d)(float,float,float,float) r0.z, r15.xyxx, t12.yzxw, s1, l(0.000000) - sample_l_indexable(texture2d)(float,float,float,float) r2.z, r15.zwzz, t12.yzxw, s1, l(0.000000) - mul r0.z, r0.z, r2.z - mul r0.z, r7.w, r0.z - div r0.z, r0.z, r8.w - mul r15.xyz, r14.xyzx, r14.xyzx - mul r15.xyz, r0.zzzz, r15.xyzx - mad r14.xyz, -r14.xyzx, r8.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) - div r14.xyz, r15.xyzx, r14.xyzx - add r6.xyz, r6.xyzx, r14.xyzx - mul r6.xyz, r6.xyzx, cb2[4].xxxx - max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - min r6.xyz, r6.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) - dp3_sat r0.z, r12.xyzx, r2.xywx - mul r12.xyz, r0.zzzz, r9.xyzx - mad r6.xyz, r6.xyzx, r11.xxxx, r12.xyzx - mul r6.xyz, r6.xyzx, cb2[1].xyzx - mov r3.z, l(0.500000) - sample_b_indexable(texture2d)(float,float,float,float) r11.xyw, r3.yzyy, t7.xywz, s1, cb0[108].x - add r0.z, -r3.y, l(1.000000) - mad r11.xyw, r6.xyxz, r11.xyxw, -r6.xyxz - mad r6.xyz, r0.zzzz, r11.xywx, r6.xyzx - sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t13.yzxw, s1, l(0.000000) - min r0.z, r0.z, l(1.000000) - mul r6.xyz, r0.zzzz, r6.xyzx -else - mov r6.xyz, l(0,0,0,0) -endif -ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx -if_nz r3.y - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x - min r0.z, r1.y, r0.z - dp3 r2.z, r2.xywx, r8.xyzx - max r2.z, r2.z, l(0.000000) - add r2.z, r0.z, r2.z - mad r3.y, r11.z, l(-16.000000), l(-1.000000) - exp r3.y, r3.y - log r2.z, |r2.z| - mul r2.z, r2.z, r3.y - exp r2.z, r2.z - add r2.z, r0.z, r2.z - add r2.z, r2.z, l(-1.000000) - mov_sat r11.xyw, r2.zzzz - mad r12.xyz, r9.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000) - mul r12.xyz, r0.zzzz, r12.xyzx - mad r12.xyz, r9.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), r12.xyzx - add r12.xyz, r12.xyzx, l(0.641700, 0.641700, 0.641700, 0.000000) - mul r12.xyz, r0.zzzz, r12.xyzx - mad r12.xyz, r9.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r12.xyzx - add r12.xyz, r12.xyzx, l(0.690300, 0.690300, 0.690300, 0.000000) - mul r12.xyz, r0.zzzz, r12.xyzx - max r12.xyz, r0.zzzz, r12.xyzx -else - mov r11.xyw, r1.yyyy - mov r12.xyz, r1.yyyy -endif -mad r14.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx -round_z r0.z, cb0[212].x -mad r15.xy, r0.zzzz, l(2.083000, 4.867000, 0.000000, 0.000000), r4.xyxx -dp2 r0.z, r15.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) -frc r0.z, r0.z -mul r0.z, r0.z, l(52.982918) -frc r0.z, r0.z -mad r0.z, r0.z, l(2.000000), l(-1.000000) -mad r14.xyz, r0.zzzz, l(0.200000, 0.200000, 0.200000, 0.000000), r14.xyzx -mad r15.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx -add r15.xyz, r14.xzyx, -r15.xyzx -max r0.z, |r15.y|, |r15.x| -add r0.z, r0.z, l(-464.000000) -mul_sat r0.z, r0.z, l(0.031250) -add r1.y, |r15.z|, l(-208.000000) -mul_sat r1.y, r1.y, l(0.031250) -max r0.z, r0.z, r1.y -ne r1.y, l(0.000000), cb0[210].w -lt r2.z, r0.z, l(1.000000) -and r1.y, r1.y, r2.z -if_nz r1.y - mad r15.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx - add r15.xyz, r14.xzyx, -r15.xyzx - max r1.y, |r15.y|, |r15.x| - add r1.y, r1.y, l(-29.000000) - mul_sat r1.y, r1.y, l(0.500000) - add r2.z, |r15.z|, l(-13.000000) - mul_sat r2.z, r2.z, l(0.500000) - max r1.y, r1.y, r2.z - lt r2.z, r1.y, l(1.000000) - if_nz r2.z - mad r15.xyz, r14.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r16.xyz, r15.xyzx, cb0[211].xyzx - round_ni r16.xyz, r16.xyzx - mad r15.xyz, r15.xyzx, cb0[211].xyzx, -r16.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r16.xyw, r15.xyzx, t17.yzwx, s2, l(0.000000) - add r2.z, -r1.y, l(1.000000) - mul r3.y, l(0.500000), cb0[211].y - mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) - max r3.y, r3.y, r15.y - min r3.y, r7.w, r3.y - mul r15.w, r3.y, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t18.xyzw, s1, l(0.000000) - mad r3.y, r17.w, r2.z, r0.z - add r18.xyz, r15.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t18.xyzw, s1, l(0.000000) - mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r18.xyz, r16.yyyy, r18.xyzx - mov r18.w, r16.y - mul r18.xyzw, r2.zzzz, r18.xyzw - add r15.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r15.xyzx, t18.xyzw, s1, l(0.000000) - mad r15.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r15.xyz, r16.xxxx, r15.xyzx - mov r15.w, r16.x - mul r15.xyzw, r2.zzzz, r15.xyzw - mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r16.xyz, r16.wwww, r17.xyzx - mul r16.xyzw, r2.zzzz, r16.xyzw - else - mov r18.xyzw, l(0,0,0,0) - mov r15.xyzw, l(0,0,0,0) - mov r16.xyzw, l(0,0,0,0) - mov r3.y, r0.z - endif - mad r17.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx - add r17.xyz, r14.xzyx, -r17.xyzx - max r2.z, |r17.y|, |r17.x| - add r2.z, r2.z, l(-116.000000) - mul_sat r2.z, r2.z, l(0.125000) - add r7.w, |r17.z|, l(-52.000000) - mul_sat r7.w, r7.w, l(0.125000) - max r2.z, r2.z, r7.w - lt r7.w, r2.z, l(1.000000) - if_nz r7.w - mad r17.xyz, r14.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r19.xyz, r17.xyzx, cb0[211].xyzx - round_ni r19.xyz, r19.xyzx - mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r19.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r17.xyzx, t19.yzwx, s2, l(0.000000) - add r7.w, -r2.z, l(1.000000) - mul r1.y, r1.y, r7.w - mul r7.w, l(0.500000), cb0[211].y - mad r8.w, -cb0[211].y, l(0.500000), l(1.000000) - max r7.w, r7.w, r17.y - min r7.w, r8.w, r7.w - mul r17.w, r7.w, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t20.xyzw, s1, l(0.000000) - mad r3.y, r20.w, r1.y, r3.y - add r21.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t20.xyzw, s1, l(0.000000) - mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r21.xyz, r19.yyyy, r21.xyzx - mov r21.w, r19.y - mad r18.xyzw, r21.xyzw, r1.yyyy, r18.xyzw - add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t20.xyzw, s1, l(0.000000) - mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r17.xyz, r19.xxxx, r17.xyzx - mov r17.w, r19.x - mad r15.xyzw, r17.xyzw, r1.yyyy, r15.xyzw - mad r17.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r19.xyz, r19.wwww, r17.xyzx - mad r16.xyzw, r19.xyzw, r1.yyyy, r16.xyzw - endif - lt r1.y, l(0.000000), r2.z - if_nz r1.y - mad r14.xyz, r14.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) - mul r17.xyz, r14.xyzx, cb0[211].xyzx - mul r19.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx - round_ni r17.xyz, r17.xyzx - mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r17.xyzx - mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) - max r14.xyz, r19.xyzx, r14.xyzx - min r14.xyz, r17.xyzx, r14.xyzx - sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r14.xyzx, t21.yzwx, s2, l(0.000000) - add r1.y, -r0.z, l(1.000000) - mul r1.y, r1.y, r2.z - max r2.z, r19.y, r14.y - min r2.z, r17.y, r2.z - mul r14.w, r2.z, l(0.333333343) - sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t22.xyzw, s1, l(0.000000) - add r19.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t22.xyzw, s1, l(0.000000) - mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r19.xyz, r20.yyyy, r19.xyzx - mov r19.w, r20.y - mad r18.xyzw, r19.xyzw, r1.yyyy, r18.xyzw - add r14.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) - sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t22.xyzw, s1, l(0.000000) - mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r14.xyz, r20.xxxx, r14.xyzx - mov r14.w, r20.x - mad r15.xyzw, r14.xyzw, r1.yyyy, r15.xyzw - mad r14.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) - mul r20.xyz, r20.wwww, r14.xyzx - mad r16.xyzw, r20.xyzw, r1.yyyy, r16.xyzw - mad r3.y, r17.w, r1.y, r3.y - endif - mad_sat r1.y, r3.y, l(2.000000), l(-1.000000) - add r14.x, -r0.z, r1.y - add r0.z, r0.z, r1.y - mul r14.y, r0.z, l(0.500000) -else - mov r18.xyzw, l(0,0,0,0) - mov r15.xyzw, l(0,0,0,0) - mov r16.xyzw, l(0,0,0,0) - mov r14.xy, l(0,1.000000,0,0) -endif -mul r17.xyzw, r14.yxyy, cb0[213].ywzx -mad r17.y, r17.y, l(0.500000), r17.x -mul r14.zw, r14.yyyx, cb0[213].wwwy -mad r17.x, r14.w, l(0.375000), r14.z -add r16.xyzw, r16.xyzw, r17.wyzx -mul r17.xyzw, r14.yxyy, cb0[214].ywzx -mad r17.y, r17.y, l(0.500000), r17.x -mul r14.zw, r14.yyyx, cb0[214].wwwy -mad r17.x, r14.w, l(0.375000), r14.z -add r15.xyzw, r15.xyzw, r17.wyzx -mul r17.xyzw, r14.yxyy, cb0[215].ywzx -mad r17.y, r17.y, l(0.500000), r17.x -mul r14.xy, r14.yxyy, cb0[215].wyww -mad r17.x, r14.y, l(0.375000), r14.x -add r14.xyzw, r17.wyzx, r18.xyzw -ge r17.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) -and r0.z, r17.y, r17.x -if_nz r0.z - sample_l_indexable(texture2d)(float,float,float,float) r17.xyzw, r4.zwzz, t16.xyzw, s1, l(0.000000) - lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| - or r4.zw, r18.zzzw, r18.xxxy - or r0.z, r4.w, r4.z - if_nz r0.z - dp3 r0.z, r17.yzwy, r17.yzwy - sqrt r0.z, r0.z - mov r4.z, l(1.000000) - mov r4.w, r0.z - mov r1.y, l(0) - loop - ge r2.z, l(4.600000), r4.w - breakc_nz r2.z - iadd r2.z, r1.y, l(1) - mul r18.xy, r4.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) - mov r4.zw, r18.xxxy - mov r1.y, r2.z - continue - endloop - mul r17.xyzw, r4.zzzz, r17.xyzw - dp3 r0.z, r17.yzwy, r17.yzwy - sqrt r0.z, r0.z - mad r0.z, r0.z, cb4[3].x, cb4[3].y - mad r0.z, r0.z, l(255.000000), l(0.500000) - mul r18.x, r0.z, l(0.00390625000) - mov r18.y, l(0.500000) - sample_l_indexable(texture2d)(float,float,float,float) r4.zw, r18.xyxx, t15.zwxy, s1, l(0.000000) - mad r4.zw, r4.zzzw, cb4[2].xxxy, cb4[2].zzzw - mul r18.x, r4.z, l(3.54490781) - mul r18.yzw, r4.wwww, r17.yyzw - mul r0.z, r17.x, l(0.406976730) - exp r0.z, r0.z - mul r17.xyzw, r0.zzzz, r18.xyzw - mov r18.xyzw, r17.xyzw - mov r0.z, l(0) - loop - uge r2.z, r0.z, r1.y - breakc_nz r2.z - mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - dp4 r2.z, r19.xyzw, r18.xyzw - dp2 r3.y, r19.yxyy, r18.xyxx - dp2 r4.z, r19.zxzz, r18.xzxx - dp2 r4.w, r19.wxww, r18.xwxx - iadd r7.w, r0.z, l(1) - mov r18.x, r2.z - mov r18.y, r3.y - mov r18.zw, r4.zzzw - mov r0.z, r7.w - continue - endloop - mul r17.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) - mul r18.xyzw, r16.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r0.z, r17.xyzw, r18.xyzw - dp2 r1.y, r17.yxyy, r18.xyxx - dp2 r2.z, r17.zxzz, r18.xzxx - dp2 r3.y, r17.wxww, r18.xwxx - mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r4.z, r17.xyzw, r18.xyzw - dp2 r4.w, r17.yxyy, r18.xyxx - dp2 r7.w, r17.zxzz, r18.xzxx - dp2 r8.w, r17.wxww, r18.xwxx - mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) - dp4 r9.w, r17.xyzw, r18.xyzw - dp2 r10.x, r17.yxyy, r18.xyxx - dp2 r12.w, r17.zxzz, r18.xzxx - dp2 r17.x, r17.wxww, r18.xwxx - mul r16.w, r0.z, l(0.886226952) - mul r16.x, r3.y, l(-1.02332675) - mul r16.y, r1.y, l(-1.02332675) - mul r16.z, r2.z, l(1.02332675) - mul r15.x, r8.w, l(-1.02332675) - mul r15.yw, r4.wwwz, l(0.000000, -1.02332675, 0.000000, 0.886226952) - mul r15.z, r7.w, l(1.02332675) - mul r14.w, r9.w, l(0.886226952) - mul r14.x, r17.x, l(-1.02332675) - mul r14.y, r10.x, l(-1.02332675) - mul r14.z, r12.w, l(1.02332675) - endif -endif -dp3 r0.z, r16.xyzx, r2.xywx -add r0.z, r16.w, r0.z -max r16.x, r0.z, l(0.000000) -dp3 r0.z, r15.xyzx, r2.xywx -add r0.z, r15.w, r0.z -max r16.y, r0.z, l(0.000000) -dp3 r0.z, r14.xyzx, r2.xywx -add r0.z, r14.w, r0.z -max r16.z, r0.z, l(0.000000) -dp3 r0.z, -r8.xyzx, r13.xyzx -add r0.z, r0.z, r0.z -mad r2.xyz, r13.xyzx, -r0.zzzz, -r8.xyzx -add r0.z, l(-1.000000), cb0[113].x -max r1.y, r11.z, l(0.001000) -log r1.y, r1.y -mad r1.y, -r1.y, l(1.200000), l(1.000000) -add r0.z, r0.z, -r1.y -mul r4.zw, r4.xxxy, cb1[0].wwww -round_ni r4.zw, r4.zzzw -add r1.y, |r3.w|, -cb1[2].y -round_ni r1.y, r1.y -add r2.w, l(-1.000000), cb1[1].x -max r3.y, r1.y, l(0.000000) -min r2.w, r2.w, r3.y -ge r1.y, r2.w, r1.y -mad r3.y, r4.w, cb1[0].x, r4.z -ftoi r3.y, r3.y -iadd r3.y, r3.y, cb0[110].z -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r3.y, r3.y, l(0), t0.xxxx -ftoi r2.w, r2.w -iadd r2.w, r2.w, cb0[110].w -ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r2.w, r2.w, l(0), t0.xxxx -and r2.w, r2.w, r3.y -and r1.y, r1.y, r2.w -mul r14.xyz, r16.xyzx, cb0[111].xxxx -dp3 r2.w, r14.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) -mov r5.w, l(1.000000) -mov r13.w, l(1.000000) -mov r14.xyz, l(0,0,0,0) -mov r3.y, l(1.000000) -mov r4.z, r1.y -mov r4.w, l(0) -loop - lt r7.w, l(0.010000), r3.y - ine r8.w, r4.z, l(0) - and r8.w, r7.w, r8.w - if_nz r8.w - firstbit_lo r8.w, r4.z - ishl r9.w, l(1), r8.w - xor r4.z, r4.z, r9.w - ishl r8.w, r8.w, l(3) - dp4 r15.x, cb1[r8.w + 6].xyzw, r5.xyzw - dp4 r15.y, cb1[r8.w + 7].xyzw, r5.xyzw - dp4 r15.z, cb1[r8.w + 8].xyzw, r5.xyzw - ge r17.xyz, cb1[r8.w + 5].xyzx, |r15.xyzx| - and r9.w, r17.y, r17.x - and r9.w, r17.z, r9.w - if_nz r9.w - mul r9.w, l(0.100000), cb1[r8.w + 5].x - mul r17.xyz, |r15.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) - mul r17.xy, r17.xyxx, r17.xyxx - add r18.xyz, -|r15.xyzx|, cb1[r8.w + 5].xyzx - mul r18.xyz, r18.xyzx, cb1[r8.w + 9].xyzx - eq r10.x, l(1.000000), cb1[r8.w + 10].x - if_nz r10.x - dp3 r19.x, cb1[r8.w + 6].xyzx, r2.xyzx - dp3 r19.y, cb1[r8.w + 7].xyzx, r2.xyzx - dp3 r19.z, cb1[r8.w + 8].xyzx, r2.xyzx - add r20.xyz, -r15.xyzx, cb1[r8.w + 5].xyzx - div r20.xyz, r20.xyzx, r19.xyzx - add r21.xyz, -r15.xyzx, -cb1[r8.w + 5].xyzx - div r21.xyz, r21.xyzx, r19.xyzx - lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx - movc r20.xyz, r22.xyzx, r20.xyzx, r21.xyzx - min r10.x, r20.y, r20.x - min r10.x, r20.z, r10.x - mad r15.xyz, r19.xyzx, r10.xxxx, r15.xyzx - else - mov r15.xyz, r2.xyzx - endif - dp3 r10.x, r15.xyzx, r15.xyzx - rsq r10.x, r10.x - mul r15.xyz, r10.xxxx, r15.xyzx - lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xyzx - lt r20.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r19.xyz, -r19.xyzx, r20.xyzx - itof r19.xyz, r19.xyzx - dp3 r10.x, r15.xyzx, r19.xyzx - div r15.xyz, r15.xyzx, r10.xxxx - lt r10.x, r15.z, l(0.000000) - add r15.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r15.zw, r15.zzzw, r19.xxxy - movc r15.xy, r10.xxxx, r15.zwzz, r15.xyxx - dp4 r10.x, cb1[r8.w + 4].xyzw, r13.xyzw - max r10.x, r10.x, l(0.000000) - max r10.x, r10.x, l(0.000100) - min r11.z, r18.z, r18.y - min r11.z, r11.z, r18.x - add r12.w, r17.y, r17.x - mad r12.w, r17.z, r17.z, r12.w - mad r9.w, r9.w, r9.w, -r12.w - mul r9.w, r9.w, cb1[r8.w + 9].x - mul r9.w, r9.w, cb1[r8.w + 9].x - add r12.w, l(1.000000), -cb1[r8.w + 10].y - mul r9.w, r9.w, r12.w - mul r9.w, r9.w, l(100.000000) - mad_sat r9.w, r11.z, cb1[r8.w + 10].y, r9.w - mul r11.z, r9.w, cb1[r8.w + 10].w - mad r15.xy, r15.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) - mad r15.xy, r15.xyxx, cb1[1].wwww, cb1[2].wwww - mov r15.z, cb1[r8.w + 5].w - sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t5.xyzw, s3, r0.z - mul r15.xyz, r15.xyzx, cb1[r8.w + 9].wwww - div r12.w, r2.w, r10.x - min r12.w, |r12.w|, l(1.000000) - mad r12.w, r12.w, l(2.000000), r2.w - add r10.x, r10.x, l(2.000000) - div r10.x, r12.w, r10.x - add r10.x, r10.x, l(-1.000000) - mad r10.x, r10.x, cb0[112].w, l(1.000000) - mul r15.xyz, r10.xxxx, r15.xyzx - mul r15.xyz, r11.zzzz, r15.xyzx - mad r14.xyz, r15.xyzx, r3.yyyy, r14.xyzx - mad r8.w, -r9.w, cb1[r8.w + 10].w, l(1.000000) - mul r3.y, r3.y, r8.w - endif - mov r4.w, l(-1) - continue - else - mov r4.w, r7.w - break - endif - mov r4.w, r7.w -endloop -if_nz r4.w - dp3 r1.y, r2.xyzx, r2.xyzx - rsq r1.y, r1.y - mul r2.xyz, r1.yyyy, r2.xyzx - lt r5.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r2.xxyz - lt r15.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) - iadd r5.xzw, -r5.xxzw, r15.xxyz - itof r5.xzw, r5.xxzw - dp3 r1.y, r2.xyzx, r5.xzwx - div r2.xyz, r2.xyzx, r1.yyyy - lt r1.y, r2.z, l(0.000000) - add r4.zw, -|r2.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) - mul r4.zw, r4.zzzw, r5.xxxz - movc r2.xy, r1.yyyy, r4.zwzz, r2.xyxx - mov r13.w, l(1.000000) - dp4 r1.y, cb1[3].xyzw, r13.xyzw - max r1.y, r1.y, l(0.000000) - max r1.y, r1.y, l(0.000100) - mad r2.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) - mad r2.xy, r2.xyxx, cb1[1].wwww, cb1[2].wwww - mov r2.z, l(0) - sample_l_indexable(texture2darray)(float,float,float,float) r2.xyz, r2.xyzx, t5.xyzw, s3, r0.z - div r0.z, r2.w, r1.y - min r0.z, |r0.z|, l(1.000000) - mad r0.z, r0.z, l(2.000000), r2.w - add r1.y, r1.y, l(2.000000) - div r0.z, r0.z, r1.y - add r0.z, r0.z, l(-1.000000) - mad r0.z, r0.z, cb0[112].w, l(1.000000) - mul r2.xyz, r0.zzzz, r2.xyzx - mad r14.xyz, r2.xyzx, r3.yyyy, r14.xyzx -endif -mul r2.xyz, r14.xyzx, cb0[112].zzzz -mul r2.xyz, r2.xyzx, cb0[111].yyyy -if_nz r3.z - sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t3.yzxw, s1, cb0[108].x - sample_b_indexable(texture2d)(float,float,float,float) r5.xzw, v1.xyxx, t2.xwyz, s1, cb0[108].x - add r1.y, -r0.z, l(1.000000) - mul r13.xyz, r1.yyyy, r2.xyzx - mad r2.xyz, r5.xzwx, r0.zzzz, r13.xyzx -endif -mul r5.xzw, r9.xxyz, r16.xxyz -mul r5.xzw, r5.xxzw, cb0[111].xxxx -add r0.z, -r3.x, l(1.000000) -div r0.z, r0.z, r3.x -mul r1.xyz, r0.zzzz, r1.xzwx -mad r1.xyz, r1.xyzx, r10.yzwy, r10.yzwy -mul r1.xyz, r1.xyzx, r2.xyzx -mul r1.xyz, r11.xywx, r1.xyzx -mad r1.xyz, r5.xzwx, r12.xyzx, r1.xyzx -add r1.xyz, r1.xyzx, r6.xyzx -mad r0.z, r5.y, cb0[156].w, cb0[157].w -max r0.z, r0.z, l(0.010000) -mad r1.w, r6.w, cb0[154].w, -cb0[153].w -max r1.w, r1.w, l(0.000000) -mul r2.x, r0.z, l(-1.442695) -exp r2.x, r2.x -add r2.x, -r2.x, l(1.000000) -div r0.z, r2.x, r0.z -mad r2.x, r5.y, cb0[156].w, cb0[158].w -mul r2.x, r2.x, l(1.442695) -exp r2.x, r2.x -mul r0.z, r0.z, r2.x -mul r0.z, r0.z, -r1.w -mul r2.xyz, r0.zzzz, cb0[155].xyzx -mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) -exp r2.xyz, r2.xyzx -dp3 r0.z, -r8.xyzx, cb0[154].xyzx -mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) -dp2 r2.w, r0.zzzz, cb0[155].wwww -add r1.w, r1.w, -r2.w -lt r2.w, l(0.000000), cb0[163].z -if_nz r2.w - and r0.w, l(7), cb0[108].w - imad r0.xyw, r0.xyxw, l(0x0019660d, 0x0019660d, 0, 0x0019660d), l(0x3c6ef35f, 0x3c6ef35f, 0, 0x3c6ef35f) - imad r0.x, r0.y, r0.w, r0.x - imad r0.y, r0.w, r0.x, r0.y - imad r0.w, r0.x, r0.y, r0.w - imad r3.x, r0.y, r0.w, r0.x - dp3 r0.x, -r8.xyzx, -r7.xyzx - add r2.w, r5.y, -cb0[44].y - lt r3.z, l(5.960464478E-08), r0.x - div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x - and r0.x, r0.x, r3.z - mul r0.x, r0.x, cb0[163].w - div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w - mul r4.z, r0.x, r3.z - mad r4.w, r4.z, r2.w, cb0[44].y - mad r2.w, -r4.z, r2.w, r2.w - mul r4.z, r2.w, cb0[159].z - max r4.z, r4.z, l(-127.000000) - mul r2.w, r2.w, cb0[162].x - max r2.w, r2.w, l(-127.000000) - add r5.x, r4.w, -cb0[159].x - mul r5.x, r5.x, cb0[159].z - max r5.x, r5.x, l(-127.000000) - exp r5.x, -r5.x - mul r5.x, r5.x, cb0[159].y - lt r5.z, l(5.960464478E-08), |r4.z| - exp r5.w, -r4.z - add r5.w, -r5.w, l(1.000000) - div r5.w, r5.w, r4.z - mad r4.z, -r4.z, l(0.240226507), l(0.693147182) - movc r4.z, r5.z, r5.w, r4.z - add r4.w, r4.w, -cb0[162].z - mul r4.w, r4.w, cb0[162].x - max r4.w, r4.w, l(-127.000000) - exp r4.w, -r4.w - mul r4.w, r4.w, cb0[162].y - lt r5.z, l(5.960464478E-08), |r2.w| - exp r5.w, -r2.w - add r5.w, -r5.w, l(1.000000) - div r5.w, r5.w, r2.w - mad r2.w, -r2.w, l(0.240226507), l(0.693147182) - movc r2.w, r5.z, r5.w, r2.w - mul r2.w, r2.w, r4.w - mad r2.w, r5.x, r4.z, r2.w - mad r0.x, -r0.x, r3.z, l(1.000000) - mul r0.x, r6.w, r0.x - mul r0.x, r0.x, r2.w - exp r0.x, -r0.x - min r0.x, r0.x, l(1.000000) - max r0.x, r0.x, cb0[161].w - mad_sat r4.zw, r6.wwww, cb0[160].yyyw, cb0[160].xxxz - add r0.x, r0.x, r4.z - add r0.x, r4.w, r0.x - min r0.x, r0.x, l(1.000000) - imad r3.y, r0.w, r3.x, r0.y - ushr r0.yw, r3.xxxy, l(0, 16, 0, 16) - utof r0.yw, r0.yyyw - mad r0.yw, r0.yyyw, l(0.000000, 0.0000305180438, 0.000000, 0.0000305180438), l(0.000000, -1.000000, 0.000000, -1.000000) - mad r0.yw, r0.yyyw, cb0[167].wwww, r4.xxxy - mul r3.xy, r0.ywyy, cb0[165].xyxx - mad r0.y, |r3.w|, cb0[164].x, cb0[164].y - log r0.y, r0.y - mul r0.y, r0.y, cb0[164].z - div r3.z, r0.y, cb0[163].z - sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r3.xyzx, t14.xyzw, s1, l(0.000000) - add r0.y, |r3.w|, -cb0[166].z - mul_sat r0.y, r0.y, l(1000000.000000) - add r3.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) - mad r3.xyzw, r0.yyyy, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) - add r0.y, -r0.x, l(1.000000) - mul r4.xyz, r0.yyyy, cb0[161].xyzx - mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx - mul r0.x, r0.x, r3.w -else - add r0.y, r5.y, -cb0[44].y - mul r0.w, r0.y, cb0[159].z - mul r0.y, r0.y, cb0[162].x - max r0.yw, r0.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) - add r2.w, cb0[44].y, -cb0[159].x - mul r2.w, r2.w, cb0[159].z - max r2.w, r2.w, l(-127.000000) - exp r2.w, -r2.w - mul r2.w, r2.w, cb0[159].y - lt r3.w, l(5.960464478E-08), |r0.w| - exp r4.x, -r0.w - add r4.x, -r4.x, l(1.000000) - div r4.x, r4.x, r0.w - mad r0.w, -r0.w, l(0.240226507), l(0.693147182) - movc r0.w, r3.w, r4.x, r0.w - add r3.w, cb0[44].y, -cb0[162].z - mul r3.w, r3.w, cb0[162].x - max r3.w, r3.w, l(-127.000000) - exp r3.w, -r3.w - mul r3.w, r3.w, cb0[162].y - lt r4.x, l(5.960464478E-08), |r0.y| - exp r4.y, -r0.y - add r4.y, -r4.y, l(1.000000) - div r4.y, r4.y, r0.y - mad r0.y, -r0.y, l(0.240226507), l(0.693147182) - movc r0.y, r4.x, r4.y, r0.y - mul r0.y, r0.y, r3.w - mad r0.y, r2.w, r0.w, r0.y - mul r0.y, r6.w, r0.y - exp r0.y, -r0.y - min r0.y, r0.y, l(1.000000) - max r0.y, r0.y, cb0[161].w - mad_sat r4.xy, r6.wwww, cb0[160].ywyy, cb0[160].xzxx - add r0.y, r0.y, r4.x - add r0.y, r4.y, r0.y - min r0.x, r0.y, l(1.000000) - add r0.y, -r0.x, l(1.000000) - mul r3.xyz, r0.yyyy, cb0[161].xyzx -endif -mul r4.xyz, r0.xxxx, r2.xyzx -max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) -min r1.xyz, r1.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) -mad r0.y, r0.z, r0.z, l(1.000000) -mul r0.y, r0.y, l(0.0596831031) -mad r0.yzw, cb0[156].xxyz, r0.yyyy, cb0[158].xxyz -mad r2.w, -cb0[155].w, cb0[155].w, l(1.000000) -mul r3.w, r1.w, l(12.566371) -sqrt r1.w, r1.w -mul r1.w, r1.w, r3.w -max r1.w, r1.w, l(0.001000) -div r1.w, r2.w, r1.w -mad_sat r0.yzw, cb0[157].xxyz, r1.wwww, r0.yyzw -mul r0.yzw, r0.yyzw, l(0.000000, 255.000000, 255.000000, 255.000000) -add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) -mul r0.yzw, r0.yyzw, r2.xxyz -mad r0.xyz, r0.yzwy, r0.xxxx, r3.xyzx -mad o0.xyz, r1.xyzx, r4.xyzx, r0.xyzx -dp3 o0.w, r4.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000) -ret -// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.cso b/src/games/endfield/deferred-lighting/0xD88CD7C9.cso index 2b05e4aae3f044b291692604a5cc3566c9ad5384..8222887ace8591107411c08f9708d80c718169ff 100644 GIT binary patch delta 203 zcmdmTmT}8DMk$vFC+AKl=9|CYX~x~EDdD_2Gc=Nsfq}s!eWKJN&XP0+h5#UM?!=?P zjKZ5G87E7snlmtPIWY(@umHua8Wb3KfwT}1GdeIZ{09Opklf~#QrDSefl7Hd0l8d2 z>2LiArEYvcvB?XWMWq|;Ef^Tsi-2m_fNI>Bpfoc`{-KEQ<_WSd47nK?9PB}+GcYu4 XZuWmD$|$rsHPxSyLlkJK9S{QmjvXx7 delta 90 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 u5MOZCNi4a>)_t8559fVSaP%BL>JcxxHtloFJr1 0.5 + lt r37.z, l(0.500000), r37.y + if_nz r37.z + add r37.w, r37.y, l(-0.500000) + mul r37.w, r37.w, l(-0.666667) + exp r37.w, r37.w + add r37.w, -r37.w, l(1.000000) + mad r37.w, r37.w, l(1.500000), l(0.500000) + max r38.x, r37.y, l(0.001000) + div r38.x, r37.w, r38.x + mul r10.xyz, r10.xyzx, r38.xxxx + endif +endif mov o0.xyzw, r10.xyzw mov o1.w, l(0) ret diff --git a/src/games/endfield/glass/0x41AF9F2B.cso b/src/games/endfield/glass/0x41AF9F2B.cso new file mode 100644 index 0000000000000000000000000000000000000000..ff5f914aeaec86ed4cb3bbdafa5af7a94355ceb9 GIT binary patch literal 55588 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/glass/0x41AF9F2B.ps_5_0.asm b/src/games/endfield/glass/0x41AF9F2B.ps_5_0.asm new file mode 100644 index 000000000..c2183dfbf --- /dev/null +++ b/src/games/endfield/glass/0x41AF9F2B.ps_5_0.asm @@ -0,0 +1,1805 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Feb 6 19:58:05 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4085], dynamicIndexed +dcl_constantbuffer CB2[24], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_constantbuffer CB13[15], 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_comparison +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_structured t0, 4 +dcl_resource_texture2d (float,float,float,float) t1 +dcl_resource_texture2darray (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_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 40 +mul r0.xy, v0.xyxx, cb0[82].zwzz +mad r0.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r1.xyzw, -r0.wwww, cb0[25].xyzw +mad r1.xyzw, cb0[24].xyzw, r0.zzzz, r1.xyzw +mad r1.xyzw, cb0[26].xyzw, v0.zzzz, r1.xyzw +add r1.xyzw, r1.xyzw, cb0[27].xyzw +div r1.xyz, r1.xyzx, r1.wwww +mul r0.z, r1.y, cb0[1].z +mad r0.z, cb0[0].z, r1.x, r0.z +mad r0.z, cb0[2].z, r1.z, r0.z +add r0.z, r0.z, cb0[3].z +mov r2.z, |r0.z| +lt r0.z, l(0.000000), v3.w +movc r0.z, r0.z, l(1.000000), l(-1.000000) +eq r0.w, l(0.000000), cb0[86].w +add r3.xyz, -r1.xyzx, cb0[44].xyzx +mov r4.x, cb0[0].z +mov r4.y, cb0[1].z +mov r4.z, cb0[2].z +movc r3.xyz, r0.wwww, r3.xyzx, r4.xyzx +dp3 r0.w, r3.xyzx, r3.xyzx +max r2.w, r0.w, l(9.999999939E-09) +rsq r2.w, r2.w +mul r5.xyz, r2.wwww, r3.xyzx +mul r0.w, r0.w, r2.w +add r6.xy, -v1.xyxx, v1.zwzz +mad r6.zw, cb2[3].xxxx, r6.xxxy, v1.xxxy +mad r6.zw, r6.zzzw, cb2[12].xxxy, cb2[12].zzzw +mad r6.xy, cb2[2].wwww, r6.xyxx, v1.xyxx +mad r6.xy, r6.xyxx, cb2[11].xyxx, cb2[11].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r7.xyzw, r6.xyxx, t3.xyzw, s5, cb0[108].x +add r3.w, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r6.zwzz, t4.xywz, s6, r3.w +mul r8.x, r8.x, r8.z +mad r6.xy, r8.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r8.xy, r6.xyxx, cb2[0].xxxx +sample_b_indexable(texture2d)(float,float,float,float) r9.xyz, r6.zwzz, t5.xyzw, s7, cb0[108].x +mul r7.xyzw, r7.xyzw, cb2[8].xyzw +mul_sat r7.xyz, r7.xyzx, cb2[4].zzzz +add r10.xyz, -r7.xyzx, cb2[8].xyzx +mad r7.xyz, cb2[4].xxxx, r10.xyzx, r7.xyzx +mad r3.w, r7.w, v4.x, -r7.w +mad r10.w, cb2[23].x, r3.w, r7.w +add r3.w, -cb2[0].z, cb2[0].w +mad r11.w, r9.y, r3.w, cb2[0].z +add_sat r3.w, l(-1.000000), cb2[3].w +add r4.w, -r9.x, cb2[4].y +mad r3.w, r3.w, r4.w, r9.x +mul r9.xyw, v2.zxzy, v3.yzyx +mad r9.xyw, v2.yzyx, v3.zxzy, -r9.xyxw +mul r9.xyw, r0.zzzz, r9.xyxw +mul r8.yzw, r8.yyyy, r9.xxyw +mad r8.xyz, v3.xyzx, r8.xxxx, r8.yzwy +dp2 r0.z, r6.xyxx, r6.xyxx +min r0.z, r0.z, l(1.000000) +add r0.z, -r0.z, l(1.000000) +sqrt r0.z, r0.z +max r0.z, r0.z, l(1.000000017E-16) +lt r4.w, l(0.000000), cb2[1].w +movc r4.w, r4.w, l(-1.000000), l(1.000000) +movc r4.w, v8.x, l(1.000000), r4.w +mul r0.z, r0.z, r4.w +mad r6.xyz, v2.xyzx, r0.zzzz, r8.xyzx +dp3 r0.z, r6.xyzx, r6.xyzx +rsq r0.z, r0.z +mul r6.xyz, r0.zzzz, r6.xyzx +dp3 r0.z, r6.xyzx, r5.xyzx +dp3 r4.w, -r5.xyzx, r6.xyzx +mul r5.w, cb2[19].z, cb2[19].z +mad r7.w, -r4.w, r4.w, l(1.000000) +mad r5.w, -r5.w, r7.w, l(1.000000) +sqrt r7.w, r5.w +mad r7.w, cb2[19].z, r4.w, r7.w +ge r5.w, r5.w, l(0.000000) +mul r8.xyz, r6.xyzx, r7.wwww +mad r8.xyz, cb2[19].zzzz, -r5.xyzx, -r8.xyzx +and r8.xyz, r5.wwww, r8.xyzx +mul r5.w, r0.z, v0.z +max r5.w, r5.w, l(0.500000) +div r5.w, cb2[19].w, r5.w +add r5.w, r5.w, -cb2[19].w +mad r5.w, cb2[20].x, r5.w, cb2[19].w +mul r8.xyz, r5.wwww, r8.xyzx +mul r8.yw, r8.yyyy, cb0[1].xxxy +mad r8.xy, cb0[0].xyxx, r8.xxxx, r8.ywyy +mad r8.xy, cb0[2].xyxx, r8.zzzz, r8.xyxx +mad r8.zw, v1.xxxy, cb2[22].xxxy, cb2[22].zzzw +sample_b_indexable(texture2d)(float,float,float,float) r8.zw, r8.zwzz, t7.zwxy, s8, cb0[108].x +mad r8.zw, r8.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mad r8.zw, r8.zzzw, cb2[19].yyyy, -r8.xxxy +mad r8.xy, cb2[19].xxxx, r8.zwzz, r8.xyxx +mad r8.zw, v0.xxxy, cb0[82].zzzw, r8.xxxy +mul r8.xy, r8.xyxx, l(0.250000, 0.250000, 0.000000, 0.000000) +mad r9.xy, v0.xyxx, cb0[82].zwzz, r8.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r5.w, r8.zwzz, t1.yzwx, s0, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r7.w, r9.xyxx, t1.yzwx, s0, cb0[108].x +mad r7.w, cb0[84].z, r7.w, cb0[84].w +div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w +ge r7.w, r7.w, r2.z +and r7.w, r7.w, l(0x3f800000) +mad r0.xy, r7.wwww, r8.xyxx, r0.xyxx +mad r5.w, cb0[84].z, r5.w, cb0[84].w +div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +ge r5.w, r5.w, r2.z +and r5.w, r5.w, l(0x3f800000) +add r8.xy, -r0.xyxx, r8.zwzz +mad r0.xy, r5.wwww, r8.xyxx, r0.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r0.xyxx, t6.xyzw, s9, cb0[108].x +max r0.x, v5.z, l(9.999999939E-09) +div r0.xy, v5.xyxx, r0.xxxx +max r5.w, v6.z, l(9.999999939E-09) +div r9.xy, v6.xyxx, r5.wwww +add r12.xy, r0.xyxx, -r9.xyxx +mul r0.x, l(0.080000), cb2[0].y +mad r9.xyw, -r7.xyxz, r3.wwww, r7.xyxz +mad r0.x, -r0.x, r3.w, r0.x +mad r7.xyz, r7.xyzx, r3.wwww, r0.xxxx +mad r13.xyzw, r11.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r0.x, r13.x, r13.x +max r0.y, r0.z, l(0.000000) +mul r0.z, r0.y, l(-9.280000) +exp r0.z, r0.z +min r0.x, r0.z, r0.x +mad r0.x, r0.x, r13.x, r13.y +mad r0.xz, r0.xxxx, l(-1.040000, 0.000000, 1.040000, 0.000000), r13.zzwz +eq r3.w, l(1.000000), cb0[113].y +mul r13.xyzw, r1.yyyy, cb0[241].xyzw +mad r13.xyzw, cb0[240].xyzw, r1.xxxx, r13.xyzw +mad r13.xyzw, cb0[242].xyzw, r1.zzzz, r13.xyzw +add r13.xyzw, r13.xyzw, cb0[243].xyzw +div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r13.w +mul r13.xyz, r13.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r13.xyz, r5.wwww, r13.xyzx +mad_sat r13.xy, r13.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +mul r13.xy, r13.xyxx, cb0[82].xyxx +ftou r14.xy, r13.xyxx +mad r5.w, cb0[84].z, r13.z, cb0[84].w +div r14.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +ftou r2.xy, v0.xyxx +movc r13.xyz, r3.wwww, r14.xyzx, r2.xyzx +mad r2.xyz, r6.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r1.xyzx +mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r14.xyz, r2.xzyx, -r14.xyzx +max r3.w, |r14.y|, |r14.x| +add r3.w, r3.w, l(-464.000000) +mul_sat r3.w, r3.w, l(0.031250) +add r5.w, |r14.z|, l(-208.000000) +mul_sat r5.w, r5.w, l(0.031250) +max r3.w, r3.w, r5.w +ne r5.w, l(0.000000), cb0[210].w +lt r7.w, r3.w, l(1.000000) +and r5.w, r5.w, r7.w +if_nz r5.w + mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r14.xyz, r2.xzyx, -r14.xyzx + max r5.w, |r14.y|, |r14.x| + add r5.w, r5.w, l(-29.000000) + mul_sat r5.w, r5.w, l(0.500000) + add r7.w, |r14.z|, l(-13.000000) + mul_sat r7.w, r7.w, l(0.500000) + max r5.w, r5.w, r7.w + lt r7.w, r5.w, l(1.000000) + if_nz r7.w + mad r14.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r14.xyzx, t14.xyzw, s2, l(0.000000) + add r7.w, -r5.w, l(1.000000) + mul r8.w, l(0.500000), cb0[211].y + mad r12.w, -cb0[211].y, l(0.500000), l(1.000000) + max r8.w, r8.w, r14.y + min r8.w, r12.w, r8.w + mul r14.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t15.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r15.xxxx, r16.xyzx + add r16.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t15.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r15.yyyy, r16.xyzx + add r14.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t15.xyzw, s1, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r15.zzzz, r14.xyzx + mad r8.w, r16.w, r7.w, r3.w + mov r14.w, r15.z + mul r14.xyzw, r7.wwww, r14.xyzw + mov r18.w, r15.y + mul r16.xyzw, r7.wwww, r18.xyzw + mov r17.w, r15.x + mul r15.xyzw, r7.wwww, r17.xyzw + else + mov r14.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r8.w, r3.w + endif + mad r17.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r17.xyz, r2.xzyx, -r17.xyzx + max r7.w, |r17.y|, |r17.x| + add r7.w, r7.w, l(-116.000000) + mul_sat r7.w, r7.w, l(0.125000) + add r12.w, |r17.z|, l(-52.000000) + mul_sat r12.w, r12.w, l(0.125000) + max r7.w, r7.w, r12.w + lt r12.w, r7.w, l(1.000000) + if_nz r12.w + mad r17.xyz, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r17.xyzx, t16.xyzw, s2, l(0.000000) + add r12.w, -r7.w, l(1.000000) + mul r5.w, r5.w, r12.w + mul r12.w, l(0.500000), cb0[211].y + mad r18.w, -cb0[211].y, l(0.500000), l(1.000000) + max r12.w, r12.w, r17.y + min r12.w, r18.w, r12.w + mul r17.w, r12.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t17.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.xxxx, r19.xyzx + add r19.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t17.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r18.yyyy, r19.xyzx + add r17.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t17.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.zzzz, r17.xyzx + mad r8.w, r19.w, r5.w, r8.w + mov r17.w, r18.z + mad r14.xyzw, r17.xyzw, r5.wwww, r14.xyzw + mov r21.w, r18.y + mad r16.xyzw, r21.xyzw, r5.wwww, r16.xyzw + mov r20.w, r18.x + mad r15.xyzw, r20.xyzw, r5.wwww, r15.xyzw + endif + lt r5.w, l(0.000000), r7.w + if_nz r5.w + mad r2.xyz, r2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r2.xyzx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r2.xyz, r2.xyzx, cb0[211].xyzx, -r17.xyzx + mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r2.xyz, r18.xyzx, r2.xyzx + min r19.xyz, r17.xyzx, r2.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r19.xyzx, t18.yzwx, s2, l(0.000000) + add r2.x, -r3.w, l(1.000000) + mul r2.x, r2.x, r7.w + max r2.y, r18.y, r19.y + min r2.y, r17.y, r2.y + mul r19.w, r2.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r19.xwzx, t19.xyzw, s1, l(0.000000) + add r18.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t19.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.yyyy, r18.xyzx + mov r18.w, r20.y + mad r14.xyzw, r18.xyzw, r2.xxxx, r14.xyzw + add r18.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t19.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r2.xxxx, r16.xyzw + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r17.xyzx + mad r15.xyzw, r20.xyzw, r2.xxxx, r15.xyzw + mad r8.w, r17.w, r2.x, r8.w + endif + mad_sat r2.x, r8.w, l(2.000000), l(-1.000000) + add r17.x, -r3.w, r2.x + add r2.x, r3.w, r2.x + mul r17.y, r2.x, l(0.500000) +else + mov r14.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r17.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r17.yyyx, cb0[213].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r2.xy, r17.yxyy, cb0[213].wyww +mad r18.w, r2.y, l(0.375000), r2.x +add r15.xyzw, r15.xyzw, r18.xyzw +mul r18.xyzw, r17.yyyx, cb0[214].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r2.xy, r17.yxyy, cb0[214].wyww +mad r18.w, r2.y, l(0.375000), r2.x +add r16.xyzw, r16.xyzw, r18.xyzw +mul r18.xyzw, r17.yyyx, cb0[215].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r2.xy, r17.yxyy, cb0[215].wyww +mad r18.w, r2.y, l(0.375000), r2.x +add r14.xyzw, r14.xyzw, r18.xyzw +dp3 r2.x, r15.xyzx, r6.xyzx +add r2.x, r15.w, r2.x +max r2.x, r2.x, l(0.000000) +dp3 r3.w, r16.xyzx, r6.xyzx +add r3.w, r16.w, r3.w +max r2.y, r3.w, l(0.000000) +dp3 r3.w, r14.xyzx, r6.xyzx +add r3.w, r14.w, r3.w +max r2.z, r3.w, l(0.000000) +add r3.w, r4.w, r4.w +mad r14.xyz, r6.xyzx, -r3.wwww, -r5.xyzx +add r3.w, l(-1.000000), cb0[113].x +max r4.w, r11.w, l(0.001000) +log r4.w, r4.w +mad r4.w, -r4.w, l(1.200000), l(1.000000) +add r3.w, r3.w, -r4.w +utof r15.xy, r13.xyxx +mul r15.zw, r15.xxxy, cb3[0].wwww +round_ni r15.zw, r15.zzzw +add r4.w, r13.z, -cb3[2].y +round_ni r4.w, r4.w +add r5.w, l(-1.000000), cb3[1].x +max r7.w, r4.w, l(0.000000) +min r5.w, r5.w, r7.w +ge r4.w, r5.w, r4.w +mad r7.w, r15.w, cb3[0].x, r15.z +ftoi r7.w, r7.w +iadd r7.w, r7.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r7.w, r7.w, l(0), t0.xxxx +ftoi r5.w, r5.w +iadd r5.w, r5.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.w, r5.w, l(0), t0.xxxx +and r5.w, r5.w, r7.w +and r4.w, r4.w, r5.w +mul r16.xyz, r2.xyzx, cb0[111].xxxx +dp3 r5.w, r16.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r1.w, l(1.000000) +mov r6.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r7.w, l(1.000000) +mov r8.w, r4.w +mov r12.w, l(0) +loop + lt r14.w, l(0.010000), r7.w + ine r15.z, r8.w, l(0) + and r15.z, r14.w, r15.z + if_nz r15.z + firstbit_lo r15.z, r8.w + ishl r15.w, l(1), r15.z + xor r8.w, r8.w, r15.w + ishl r15.z, r15.z, l(3) + dp4 r17.x, cb3[r15.z + 6].xyzw, r1.xyzw + dp4 r17.y, cb3[r15.z + 7].xyzw, r1.xyzw + dp4 r17.z, cb3[r15.z + 8].xyzw, r1.xyzw + ge r18.xyz, cb3[r15.z + 5].xyzx, |r17.xyzx| + and r15.w, r18.y, r18.x + and r15.w, r18.z, r15.w + if_nz r15.w + mul r15.w, l(0.100000), cb3[r15.z + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb3[r15.z + 5].xyzx + mul r19.xyz, r19.xyzx, cb3[r15.z + 9].xyzx + eq r16.w, l(1.000000), cb3[r15.z + 10].x + if_nz r16.w + dp3 r20.x, cb3[r15.z + 6].xyzx, r14.xyzx + dp3 r20.y, cb3[r15.z + 7].xyzx, r14.xyzx + dp3 r20.z, cb3[r15.z + 8].xyzx, r14.xyzx + add r21.xyz, -r17.xyzx, cb3[r15.z + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb3[r15.z + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r16.w, r21.y, r21.x + min r16.w, r21.z, r16.w + mad r17.xyz, r20.xyzx, r16.wwww, r17.xyzx + else + mov r17.xyz, r14.xyzx + endif + dp3 r16.w, r17.xyzx, r17.xyzx + rsq r16.w, r16.w + mul r17.xyz, r16.wwww, r17.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r16.w, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r16.wwww + lt r16.w, r17.z, l(0.000000) + add r17.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r17.zw, r17.zzzw, r20.xxxy + movc r17.xy, r16.wwww, r17.zwzz, r17.xyxx + dp4 r16.w, cb3[r15.z + 4].xyzw, r6.xyzw + max r16.w, r16.w, l(0.000000) + max r16.w, r16.w, l(0.000100) + min r17.z, r19.z, r19.y + min r17.z, r17.z, r19.x + add r17.w, r18.y, r18.x + mad r17.w, r18.z, r18.z, r17.w + mad r15.w, r15.w, r15.w, -r17.w + mul r15.w, r15.w, cb3[r15.z + 9].x + mul r15.w, r15.w, cb3[r15.z + 9].x + add r17.w, l(1.000000), -cb3[r15.z + 10].y + mul r15.w, r15.w, r17.w + mul r15.w, r15.w, l(100.000000) + mad_sat r15.w, r17.z, cb3[r15.z + 10].y, r15.w + mul r17.z, r15.w, cb3[r15.z + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r18.xy, r17.xyxx, cb3[1].wwww, cb3[2].wwww + mov r18.z, cb3[r15.z + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyw, r18.xyzx, t2.xywz, s3, r3.w + mul r17.xyw, r17.xyxw, cb3[r15.z + 9].wwww + div r18.x, r5.w, r16.w + min r18.x, |r18.x|, l(1.000000) + mad r18.x, r18.x, l(2.000000), r5.w + add r16.w, r16.w, l(2.000000) + div r16.w, r18.x, r16.w + add r16.w, r16.w, l(-1.000000) + mad r16.w, r16.w, cb0[112].w, l(1.000000) + mul r17.xyw, r16.wwww, r17.xyxw + mul r17.xyz, r17.zzzz, r17.xywx + mad r16.xyz, r17.xyzx, r7.wwww, r16.xyzx + mad r15.z, -r15.w, cb3[r15.z + 10].w, l(1.000000) + mul r7.w, r7.w, r15.z + endif + mov r12.w, l(-1) + continue + else + mov r12.w, r14.w + break + endif + mov r12.w, r14.w +endloop +if_nz r12.w + dp3 r1.w, r14.xyzx, r14.xyzx + rsq r1.w, r1.w + mul r17.xyz, r1.wwww, r14.xyzx + lt r18.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r19.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r18.xyz, -r18.xyzx, r19.xyzx + itof r18.xyz, r18.xyzx + dp3 r1.w, r17.xyzx, r18.xyzx + div r17.xyz, r17.xyzx, r1.wwww + lt r1.w, r17.z, l(0.000000) + add r15.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r18.xxxy + movc r15.zw, r1.wwww, r15.zzzw, r17.xxxy + mov r6.w, l(1.000000) + dp4 r1.w, cb3[3].xyzw, r6.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r15.zw, r15.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r17.xy, r15.zwzz, cb3[1].wwww, cb3[2].wwww + mov r17.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t2.xyzw, s3, r3.w + div r3.w, r5.w, r1.w + min r3.w, |r3.w|, l(1.000000) + mad r3.w, r3.w, l(2.000000), r5.w + add r1.w, r1.w, l(2.000000) + div r1.w, r3.w, r1.w + add r1.w, r1.w, l(-1.000000) + mad r1.w, r1.w, cb0[112].w, l(1.000000) + mul r17.xyz, r1.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r7.wwww, r16.xyzx +endif +mul r2.xyz, r9.xywx, r2.xyzx +add r1.w, r9.z, l(-1.000000) +mad r1.w, cb2[1].x, r1.w, l(1.000000) +mul r2.xyz, r1.wwww, r2.xyzx +mul r16.xyz, r16.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +lt r37.x, l(0.500000), cb13[14].x +if_nz r37.x + mul r16.xyz, r16.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) +endif +mul r16.xyz, r16.xyzx, cb0[111].yyyy +mul_sat r1.w, r7.y, l(50.000000) +mul r0.z, r0.z, r1.w +mad r17.xyz, r7.xyzx, r0.xxxx, r0.zzzz +mul r16.xyz, r16.xyzx, r17.xyzx +mad r2.xyz, r2.xyzx, cb0[111].xxxx, r16.xyzx +lt r0.x, cb6[35].w, l(0.990000) +if_nz r0.x + ftoi r0.x, cb6[35].x + ieq r0.z, r0.x, l(2) + movc r16.xyz, r0.zzzz, cb6[20].xyzx, cb0[44].xyzx + add r16.xyz, r1.xyzx, -r16.xyzx + dp3 r0.z, r16.xyzx, r16.xyzx + add r0.z, -r0.z, cb6[34].w + mul_sat r0.z, r0.z, cb6[34].z + lt r1.w, l(0.000000), r0.z + if_nz r1.w + ilt r0.x, l(0), r0.x + if_nz r0.x + add r16.xyz, r1.xyzx, -cb6[20].xyzx + add r17.xyz, r1.xyzx, -cb6[21].xyzx + add r18.xyz, r1.xyzx, -cb6[22].xyzx + add r19.xyz, r1.xyzx, -cb6[23].xyzx + dp3 r16.x, r16.xyzx, r16.xyzx + dp3 r16.y, r17.xyzx, r17.xyzx + dp3 r16.z, r18.xyzx, r18.xyzx + dp3 r16.w, r19.xyzx, r19.xyzx + lt r17.x, r16.x, cb6[20].w + lt r17.y, r16.y, cb6[21].w + lt r17.z, r16.z, cb6[22].w + lt r17.w, r16.w, cb6[23].w + and r18.xyzw, r17.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r17.xyz, r17.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r17.xyz, r17.xyzx, r18.yzwy + max r18.yzw, r17.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.x, r18.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.x, -r0.x, l(4.000000) + max r0.x, r0.x, l(0.000000) + min r0.x, r0.x, l(3.000000) + add r1.w, r0.x, l(1.000000) + min r1.w, r1.w, l(3.000000) + ftou r1.w, r1.w + dp3 r3.w, r16.yzwy, icb[r1.w + 0].yzwy + div r1.w, r3.w, cb6[r1.w + 20].w + ge r3.w, r1.w, l(0.000000) + ge r1.w, l(1.000000), r1.w + and r1.w, r1.w, r3.w + if_nz r1.w + ftou r1.w, r0.x + add r15.zw, r15.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r3.w, r15.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r3.w, r3.w + mul r3.w, r3.w, l(52.982918) + frc r3.w, r3.w + dp4 r4.w, r16.xyzw, icb[r1.w + 0].xyzw + div r1.w, r4.w, cb6[r1.w + 20].w + sqrt r1.w, r1.w + add r1.w, r1.w, l(-0.900000) + mul r1.w, r1.w, l(12.000000) + ge r1.w, r1.w, r3.w + and r1.w, r1.w, l(0x3f800000) + add r0.x, r0.x, r1.w + endif + dp3 r1.w, r6.xyzx, cb5[0].xyzx + max r1.w, r1.w, l(0.000000) + min r1.w, r1.w, l(0.900000) + add r1.w, -r1.w, l(1.000000) + ftou r3.w, r0.x + ishl r4.w, r3.w, l(2) + mul r15.zw, r1.wwww, cb6[r3.w + 24].xxxy + max r1.w, r15.z, l(0.000000) + mad r16.xyz, -cb5[0].xyzx, r1.wwww, r1.xyzx + mad r16.xyz, r6.xyzx, r15.wwww, r16.xyzx + mul r17.xyz, r16.yyyy, cb6[r4.w + 1].xyzx + mad r16.xyw, cb6[r4.w + 0].xyxz, r16.xxxx, r17.xyxz + mad r16.xyz, cb6[r4.w + 2].xyzx, r16.zzzz, r16.xywx + add r16.xyz, r16.xyzx, cb6[r4.w + 3].xyzx + ge r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + ge r18.xyz, r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r17.xyz, r17.xyzx, r18.xyzx + or r1.w, r17.y, r17.x + or r1.w, r17.z, r1.w + and r3.w, r16.z, l(0x7fffffff) + ult r3.w, l(0x7f800000), r3.w + or r17.z, r1.w, r3.w + ftoi r0.x, r0.x + mad r15.zw, r16.xxxy, cb6[r0.x + 28].zzzw, cb6[r0.x + 28].xxxy + mad r16.xy, r15.zwzz, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r16.xy, r16.xyxx + mad r15.zw, r15.zzzw, cb6[32].zzzw, -r16.xxxy + add r18.xyzw, r15.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r19.xw, r18.xxxz, r18.xxxz + min r18.xz, r15.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r20.xy, r15.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r20.zw, r19.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r15.zzzw + add r15.zw, -r15.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r15.zw, -r18.xxxz, r18.xxxz, r15.zzzw + mad r18.xy, -r20.xyxx, r20.xyxx, r18.ywyy + mov r21.x, r20.z + mov r21.y, r15.z + mov r21.z, r18.x + mov r21.w, r19.x + mul r21.xyzw, r21.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r19.x, r20.w + mov r19.y, r15.w + mov r19.z, r18.y + mul r18.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r19.xyzw, r21.ywyw, r21.xzxz + add r20.xyzw, r18.yyww, r18.xxzz + div r15.zw, r21.yyyw, r19.zzzw + add r15.zw, r15.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r21.xy, r15.zwzz, cb6[32].xxxx + div r15.zw, r18.yyyw, r20.yyyw + add r15.zw, r15.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r21.zw, r15.zzzw, cb6[32].yyyy + mul r18.xyzw, r19.xyzw, r20.xyzw + mad r19.xyzw, r16.xyxy, cb6[32].xyxy, r21.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r19.xyxx, t8.xxxx, s4, r16.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t8.xxxx, s4, r16.z + mul r1.w, r1.w, r18.y + mad r0.x, r18.x, r0.x, r1.w + mad r19.xyzw, r16.xyxy, cb6[32].xyxy, r21.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.xyxx, t8.xxxx, s4, r16.z + mad r0.x, r18.z, r1.w, r0.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t8.xxxx, s4, r16.z + mad r0.x, r18.w, r1.w, r0.x + movc r17.x, r17.z, l(1.000000), r0.x + else + mov r17.xz, l(1.000000,0,0,0) + endif + else + mov r17.xz, l(1.000000,0,0,0) + endif + lt r0.x, r0.z, l(1.000000) + if_nz r0.x + dp3 r0.x, r6.xyzx, cb5[0].xyzx + max r0.x, r0.x, l(0.000000) + min r0.x, r0.x, l(0.900000) + add r0.x, -r0.x, l(1.000000) + mul r15.zw, r0.xxxx, cb6[584].xxxy + mad r16.xyz, -cb5[0].xyzx, r15.zzzz, r1.xyzx + mad r16.xyz, r6.xyzx, r15.wwww, r16.xyzx + mul r15.zw, r16.yyyy, cb6[581].xxxy + mad r15.zw, cb6[580].xxxy, r16.xxxx, r15.zzzw + mad r15.zw, cb6[582].xxxy, r16.zzzz, r15.zzzw + add r15.zw, r15.zzzw, cb6[583].xxxy + lt r18.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r15.zwzz + and r0.x, r18.y, r18.x + lt r18.xy, r15.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r1.w, r18.y, r18.x + and r0.x, r0.x, r1.w + if_nz r0.x + mul r0.x, r15.w, cb6[585].z + round_ni r0.x, r0.x + add r0.x, r15.z, r0.x + mul r0.x, r0.x, cb6[585].y + ftou r0.x, r0.x + umin r0.x, r0.x, l(127) + and r1.w, l(0x0000ffff), cb6[r0.x + 587].x + f16tof32 r18.x, r1.w + ge r1.w, r18.x, l(0.000000) + if_nz r1.w + mov r19.x, cb6[576].x + mov r19.y, cb6[577].x + mov r19.z, cb6[578].x + mov r19.w, cb6[r0.x + 587].y + mov r16.w, l(1.000000) + dp4 r19.x, r19.xyzw, r16.xyzw + mov r20.x, cb6[576].y + mov r20.y, cb6[577].y + mov r20.z, cb6[578].y + mov r20.w, cb6[r0.x + 587].z + dp4 r19.y, r20.xyzw, r16.xyzw + mov r20.x, cb6[576].z + mov r20.y, cb6[577].z + mov r20.z, cb6[578].z + mov r20.w, cb6[r0.x + 587].w + dp4 r1.w, r20.xyzw, r16.xyzw + lt r15.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxxy + lt r3.w, l(0.000000), r1.w + and r4.w, r15.w, r15.z + and r3.w, r3.w, r4.w + lt r15.zw, r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + lt r4.w, r1.w, l(1.000000) + and r5.w, r15.w, r15.z + and r4.w, r4.w, r5.w + and r3.w, r3.w, r4.w + if_nz r3.w + ushr r0.x, cb6[r0.x + 587].x, l(16) + f16tof32 r18.y, r0.x + mad r15.zw, r19.xxxy, cb6[584].zzzw, r18.xxxy + mad r16.xy, r15.zwzz, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r16.xy, r16.xyxx + mad r15.zw, r15.zzzw, cb6[586].zzzw, -r16.xxxy + add r18.xyzw, r15.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r19.xw, r18.xxxz, r18.xxxz + min r16.zw, r15.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + max r18.xz, r15.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r20.xy, r19.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r15.zwzz + add r15.zw, -r15.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r15.zw, -r16.zzzw, r16.zzzw, r15.zzzw + mad r16.zw, -r18.xxxz, r18.xxxz, r18.yyyw + mov r18.x, r20.x + mov r18.y, r15.z + mov r18.z, r16.z + mov r18.w, r19.x + mul r18.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r19.x, r20.y + mov r19.y, r15.w + mov r19.z, r16.w + mul r19.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r20.xyzw, r18.ywyw, r18.xzxz + add r21.xyzw, r19.yyww, r19.xxzz + div r15.zw, r18.yyyw, r20.zzzw + add r15.zw, r15.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r18.xy, r15.zwzz, cb6[586].xxxx + div r15.zw, r19.yyyw, r21.yyyw + add r15.zw, r15.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r18.zw, r15.zzzw, cb6[586].yyyy + mul r19.xyzw, r20.xyzw, r21.xyzw + mad r20.xyzw, r16.xyxy, cb6[586].xyxy, r18.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r20.xyxx, t11.xxxx, s4, r1.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r20.zwzz, t11.xxxx, s4, r1.w + mul r3.w, r3.w, r19.y + mad r0.x, r19.x, r0.x, r3.w + mad r16.xyzw, r16.xyxy, cb6[586].xyxy, r18.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r16.xyxx, t11.xxxx, s4, r1.w + mad r0.x, r19.z, r3.w, r0.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r16.zwzz, t11.xxxx, s4, r1.w + mad r17.y, r19.w, r1.w, r0.x + else + mov r17.y, l(1.000000) + endif + else + mov r17.y, l(1.000000) + endif + else + mov r17.y, l(1.000000) + endif + movc r17.x, r17.z, r17.y, r17.x + else + mov r17.y, l(1.000000) + endif + add r0.x, -r17.y, r17.x + mad r0.x, r0.z, r0.x, r17.y + lt r0.z, l(0.001000), r0.x + if_nz r0.z + add r16.xyz, r1.xyzx, -cb0[173].xyzx + mad r15.zw, cb0[176].xxxz, r16.yyyy, r16.xxxz + mul r16.yw, r15.zzzw, cb0[174].zzzz + mul r17.xy, cb0[175].xyxx, cb0[183].wwww + mad r15.zw, r15.zzzw, cb0[174].zzzz, r17.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r15.zwzz, t10.yzxw, s2, l(0.000000) + mad r15.zw, r16.yyyw, cb0[175].wwww, r17.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r15.zwzz, t10.yzwx, s2, l(0.000000) + dp2 r3.w, r16.xzxx, r16.xzxx + sqrt r3.w, r3.w + add r4.w, -cb0[174].x, cb0[174].y + add r3.w, r3.w, -cb0[174].x + div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w + mul_sat r3.w, r3.w, r4.w + mad r4.w, r3.w, l(-2.000000), l(3.000000) + mul r3.w, r3.w, r3.w + mul r3.w, r3.w, r4.w + add r1.w, -r0.z, r1.w + mad r0.z, r3.w, r1.w, r0.z + add r0.z, r0.z, l(-1.000000) + mad r0.z, cb0[175].z, r0.z, l(1.000000) + mul r0.x, r0.z, r0.x + endif + add r0.z, -r0.x, cb6[35].z + mad r0.x, cb6[35].w, r0.z, r0.x +else + mov r0.x, cb6[35].z +endif +min r0.x, r0.x, l(1.000000) +add r0.x, r0.x, l(-1.000000) +mad r16.x, cb6[34].x, r0.x, l(1.000000) +lt r0.x, l(0.001000), r16.x +if_nz r0.x + dp3 r0.x, -cb5[0].xyzx, r14.xyzx + mad r17.xyz, cb5[0].xyzx, r0.xxxx, r14.xyzx + lt r0.x, r0.x, cb5[4].z + dp3 r0.z, r17.xyzx, r17.xyzx + max r0.z, r0.z, l(0.0000610351562) + rsq r0.z, r0.z + mul r17.xyz, r0.zzzz, r17.xyzx + mul r17.xyz, r17.xyzx, cb5[4].yyyy + mad r17.xyz, -cb5[0].xyzx, cb5[4].zzzz, r17.xyzx + dp3 r0.z, r17.xyzx, r17.xyzx + rsq r0.z, r0.z + mul r17.xyz, r0.zzzz, r17.xyzx + movc r17.xyz, r0.xxxx, r17.xyzx, r14.xyzx + mad r18.xyz, r3.xyzx, r2.wwww, r17.xyzx + dp3 r0.x, r18.xyzx, r18.xyzx + max r0.x, r0.x, l(0.0000610351562) + rsq r0.x, r0.x + mul r18.xyz, r0.xxxx, r18.xyzx + dp3_sat r11.y, r17.xyzx, r6.xyzx + dp3_sat r0.x, r6.xyzx, r18.xyzx + min r11.z, r0.y, l(1.000000) + mul r0.z, r11.w, r11.w + mul r0.z, r0.z, r0.z + mad r1.w, r0.x, r0.z, -r0.x + mad r0.x, r1.w, r0.x, l(1.000000) + dp3_sat r1.w, r5.xyzx, r18.xyzx + add r1.w, -r1.w, l(1.000000) + mul r3.w, r1.w, r1.w + mul r3.w, r3.w, r3.w + mul r4.w, r1.w, r3.w + add r5.w, -r11.w, l(1.000000) + mad r6.w, -r5.w, l(0.383026), l(-0.0761947036) + mad r6.w, r5.w, r6.w, l(1.049970) + mad r5.w, r5.w, r6.w, l(0.409255) + min r5.w, r5.w, l(0.999000) + add r6.w, -r5.w, l(1.000000) + add r17.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r17.xyz, r17.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r7.xyzx + mad r1.w, -r3.w, r1.w, l(1.000000) + mad r18.xyz, r7.xyzx, r1.wwww, r4.wwww + mul r0.x, r0.x, r0.x + div r0.x, r0.z, r0.x + mad r15.zw, -r11.zzzy, r0.zzzz, r11.zzzy + mad r15.zw, r15.zzzw, r11.zzzy, r0.zzzz + sqrt r15.zw, r15.zzzw + mul r15.zw, r11.yyyz, r15.zzzw + add r0.z, r15.w, r15.z + add r0.z, r0.z, l(0.000100) + div r0.z, l(0.500000), r0.z + mul r0.x, r0.z, r0.x + mul r18.xyz, r0.xxxx, r18.xyzx + min r18.xyz, r18.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r19.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.x, r19.xyxx, t13.xyzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r19.zwzz, t13.yzxw, s1, l(0.000000) + mul r0.x, r0.z, r0.x + mul r0.x, r5.w, r0.x + div r0.x, r0.x, r6.w + mul r19.xyz, r17.xyzx, r17.xyzx + mul r19.xyz, r0.xxxx, r19.xyzx + mad r17.xyz, -r17.xyzx, r6.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r17.xyz, r19.xyzx, r17.xyzx + add r17.xyz, r17.xyzx, r18.xyzx + mul r17.xyz, r17.xyzx, cb5[4].xxxx + // === Glass Fix: Reduce sun specular intensity === + lt r37.x, l(0.500000), cb13[14].x + if_nz r37.x + mul r17.xyz, r17.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + endif + max r17.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r17.xyz, r17.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + max r0.x, r10.w, l(0.010000) + div r17.xyz, r17.xyzx, r0.xxxx + min r17.xyz, r17.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r18.xyz, r9.xywx, r11.yyyy + mad r17.xyz, r17.xyzx, r11.yyyy, r18.xyzx + mul r17.xyz, r17.xyzx, cb5[1].xyzx + mov r16.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r16.yzw, r16.xyxx, t12.wxyz, s1, cb0[108].x + add r0.x, -r16.x, l(1.000000) + mad r16.xyz, r17.xyzx, r16.yzwy, -r17.xyzx + mad r16.xyz, r0.xxxx, r16.xyzx, r17.xyzx +else + mov r16.xyz, l(0,0,0,0) +endif +mul r0.xz, r15.xxyx, l(0.031250, 0.000000, 0.031250, 0.000000) +round_ni r0.xz, r0.xxzx +mad r0.x, r0.z, cb4[1].y, r0.x +mul r0.x, r0.x, l(8.000000) +ftoi r0.x, r0.x +mad r0.z, -cb0[85].y, cb4[2].w, r13.z +round_ni r0.z, r0.z +add r1.w, l(-1.000000), cb4[1].w +max r3.w, r0.z, l(0.000000) +min r1.w, r1.w, r3.w +mul r3.w, r1.w, l(8.000000) +ftoi r3.w, r3.w +ge r0.z, r1.w, r0.z +iadd r1.w, r3.w, cb0[110].y +mul r3.w, r11.w, r11.w +min r11.x, r0.y, l(1.000000) +add r0.y, -r11.w, l(1.000000) +mad r4.w, -r0.y, l(0.383026), l(-0.0761947036) +mad r4.w, r0.y, r4.w, l(1.049970) +mad r0.y, r0.y, r4.w, l(0.409255) +min r0.y, r0.y, l(0.999000) +add r4.w, -r0.y, l(1.000000) +add r17.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r17.xyz, r17.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r7.xyzx +mad r11.yz, r11.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r5.w, r11.yzyy, t13.yzwx, s1, l(0.000000) +mad r18.xyz, -r17.xyzx, r4.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r17.xyz, r17.xyzx, r17.xyzx +mov r19.w, l(1.000000) +mov r20.y, l(1.000000) +mov r21.z, r11.w +mov r22.xyz, l(0,0,0,0) +mov r6.w, l(1.000000) +mov r7.w, l(0) +loop + ilt r8.w, l(7), r7.w + breakc_nz r8.w + iadd r8.w, r0.x, r7.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.w, r8.w, l(0), t0.xxxx + iadd r9.z, r1.w, r7.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.z, r9.z, l(0), t0.xxxx + and r8.w, r8.w, r9.z + and r8.w, r0.z, r8.w + ishl r9.z, r7.w, l(5) + mov r23.xyz, l(0,0,0,0) + mov r11.y, r6.w + mov r11.z, r8.w + loop + breakc_z r11.z + firstbit_lo r12.w, r11.z + ishl r14.w, l(1), r12.w + xor r14.w, r11.z, r14.w + iadd r12.w, r9.z, r12.w + bfi r24.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r12.wwww, l(1, 3, 5, 6) + bfi r15.z, l(29), l(3), r12.w, l(7) + ftou r15.w, cb5[r24.z + 6].w + ieq r15.w, r15.w, l(1) + if_nz r15.w + add r19.xyz, r1.xyzx, -cb5[r24.x + 6].xyzx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r24.z + 6].xzyx + and r26.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r24.w + 6].yxzy + ushr r27.xyz, cb5[r24.z + 6].xzyx, l(16, 16, 16, 0) + ushr r28.xyz, cb5[r24.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyz, r27.xyzx + f16tof32 r28.xyw, r28.yxyz + mov r29.xz, r25.xxzx + mov r29.yw, r27.xxxz + dp4 r15.w, r19.xyzw, r29.xyzw + mov r27.x, r25.y + mov r27.z, r26.y + mov r27.w, r28.x + dp4 r16.w, r19.xyzw, r27.xyzw + mov r28.xz, r26.xxzx + dp4 r17.w, r19.xyzw, r28.xyzw + max r15.w, |r15.w|, |r16.w| + max r15.w, |r17.w|, r15.w + mad r16.w, cb5[r15.z + 6].x, l(0.500000), l(0.500000) + add r15.w, r15.w, -r16.w + mad r16.w, -cb5[r15.z + 6].x, l(0.500000), l(0.500000) + div_sat r15.w, r15.w, r16.w + add r15.w, -r15.w, l(1.000000) + mul r15.w, r15.w, r15.w + else + mov r15.w, l(1.000000) + endif + lt r16.w, l(0.500000), cb5[r24.y + 6].z + lt r17.w, r15.w, l(0.001000) + or r17.w, r16.w, r17.w + if_nz r17.w + mov r11.z, r14.w + continue + endif + ishl r17.w, r12.w, l(3) + bfi r12.w, l(29), l(3), r12.w, l(2) + lt r18.w, cb5[r17.w + 6].w, l(1.500000) + if_nz r18.w + mad r18.w, cb5[r12.w + 6].y, l(0.500000), l(0.500000) + add r19.x, r18.w, -|cb5[r12.w + 6].x| + add r19.y, -r19.x, cb5[r12.w + 6].y + add r18.w, -|r19.x|, l(1.000000) + add r18.w, -|r19.y|, r18.w + max r18.w, r18.w, l(0.000488281250) + ge r20.z, cb5[r12.w + 6].x, l(0.000000) + movc r19.z, r20.z, r18.w, -r18.w + dp3 r18.w, r19.xyzx, r19.xyzx + rsq r18.w, r18.w + mul r19.xyz, r18.wwww, r19.xyzx + add r25.xyz, -r1.xyzx, cb5[r24.x + 6].xyzx + dp3 r18.w, r25.xyzx, r25.xyzx + rsq r20.z, r18.w + mul r26.xyz, r20.zzzz, r25.xyzx + ftoi r20.w, cb5[r15.z + 6].w + mul r27.xyz, r19.xyzx, cb5[r12.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r21.w, cb5[r17.w + 6].w + and r21.w, r21.w, l(1) + ieq r22.w, r21.w, l(0) + not r22.w, r22.w + lt r23.w, l(0.000000), cb5[r12.w + 6].z + and r22.w, r22.w, r23.w + dp3 r23.w, r28.xyzx, r28.xyzx + sqrt r23.w, r23.w + dp3 r24.z, r29.xyzx, r29.xyzx + sqrt r24.z, r24.z + dp3 r25.w, r6.xyzx, r28.xyzx + div r25.w, r25.w, r23.w + dp3 r26.w, r6.xyzx, r29.xyzx + div r26.w, r26.w, r24.z + add r25.w, r25.w, r26.w + mul_sat r30.x, r25.w, l(0.500000) + dp3 r25.w, r28.xyzx, r29.xyzx + mad r23.w, r23.w, r24.z, r25.w + mad r23.w, r23.w, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r23.w + dp3_sat r20.x, r6.xyzx, r26.xyzx + movc r21.xy, r22.wwww, r30.xyxx, r20.xyxx + lt r20.x, cb5[r24.w + 6].w, l(0.000000) + if_nz r20.x + mul r20.x, cb5[r24.x + 6].w, cb5[r24.x + 6].w + mul r20.x, r18.w, r20.x + mad r20.x, -r20.x, r20.x, l(1.000000) + max r20.x, r20.x, l(0.000000) + add r18.w, r18.w, l(1.000000) + div r18.w, l(1.000000, 1.000000, 1.000000, 1.000000), r18.w + and r23.w, r22.w, l(0x3f800000) + add r24.z, -r18.w, r21.y + mad r18.w, r23.w, r24.z, r18.w + mul r20.x, r20.x, r20.x + mul r18.w, r18.w, r20.x + else + mul r29.xyz, r25.xyzx, cb5[r24.x + 6].wwww + dp3 r20.x, r29.xyzx, r29.xyzx + min r20.x, r20.x, l(1.000000) + add r20.x, -r20.x, l(1.000000) + log r20.x, r20.x + mul r20.x, r20.x, cb5[r24.w + 6].w + exp r20.x, r20.x + mul r18.w, r20.x, r21.y + endif + dp3 r19.x, r26.xyzx, -r19.xyzx + add r19.x, r19.x, -cb5[r12.w + 6].z + mul_sat r19.x, r19.x, cb5[r12.w + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r21.w, l(1.000000), r19.x + mul r18.w, r18.w, r19.x + not r19.x, r22.w + ige r19.y, r20.w, l(0) + and r19.x, r19.y, r19.x + if_nz r19.x + if_z r21.w + ishl r19.x, r20.w, l(2) + mul r29.xyz, r1.yyyy, cb7[r19.x + 33].xywx + mad r29.xyz, cb7[r19.x + 32].xywx, r1.xxxx, r29.xyzx + mad r29.xyz, cb7[r19.x + 34].xywx, r1.zzzz, r29.xyzx + add r19.xyz, r29.xyzx, cb7[r19.x + 35].xywx + div_sat r19.xy, r19.xyxx, r19.zzzz + mad r19.xy, r19.xyxx, cb7[r20.w + 0].zwzz, cb7[r20.w + 0].xyxx + else + ishl r19.z, r20.w, l(2) + dp3 r29.x, -r25.xyzx, cb7[r19.z + 32].xyzx + dp3 r29.y, -r25.xyzx, cb7[r19.z + 33].xyzx + dp3 r29.z, -r25.xyzx, cb7[r19.z + 34].xyzx + lt r19.z, |r29.x|, |r29.y| + and r19.z, r19.z, l(1) + dp2 r20.x, |r29.xyxx|, icb[r19.z + 0].xyxx + lt r20.x, r20.x, |r29.z| + movc r19.z, r20.x, l(2), r19.z + dp3 r20.x, r29.xyzx, icb[r19.z + 0].xyzx + lt r20.x, r20.x, l(0.000000) + bfi r19.z, l(31), l(1), r19.z, r20.x + ushr r20.x, r19.z, l(1) + dp3 r20.x, r29.xyzx, icb[r20.x + 0].xyzx + div r21.y, l(0.000244140625), cb7[r20.w + 0].w + add r21.y, -r21.y, l(0.500000) + utof r23.w, r19.z + ult r24.z, r19.z, l(2) + and r24.z, r24.z, l(2) + dp2 r24.z, r29.xzxx, icb[r24.z + 0].xzxx + mul r24.z, r24.z, icb[r19.z + 4].z + div r24.z, r24.z, |r20.x| + mad r23.w, r24.z, r21.y, r23.w + add r23.w, r23.w, l(0.500000) + mul_sat r25.x, r23.w, l(0.166666672) + iadd r23.w, l(-1), icb[r19.z + 4].y + dp2 r23.w, r29.yzyy, icb[r23.w + 0].xyxx + mul r19.z, r23.w, icb[r19.z + 4].w + div r19.z, r19.z, |r20.x| + mad_sat r25.y, -r19.z, r21.y, l(0.500000) + mad r19.xy, r25.xyxx, cb7[r20.w + 0].zwzz, cb7[r20.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.x, r19.xyxx, t21.xyzw, s1, l(0.000000) + mul r18.w, r18.w, r19.x + endif + lt r19.x, l(0.000000), r18.w + if_nz r19.x + if_z r21.w + ftoi r19.y, cb5[r24.y + 6].x + else + add r25.xyz, r1.xyzx, -cb5[r24.x + 6].xyzx + lt r29.xyz, |r25.yzzy|, |r25.xxyx| + and r19.z, r29.y, r29.x + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ushr r20.x, cb5[r12.w + 6].w, l(24) + ubfe r21.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb5[r12.w + 6].wwww + movc r20.x, r25.x, r20.x, r21.y + and r20.w, l(255), cb5[r12.w + 6].w + movc r20.w, r25.y, r21.w, r20.w + ubfe r21.y, l(8), l(8), cb5[r24.y + 6].x + and r21.w, l(255), cb5[r24.y + 6].x + movc r21.y, r25.z, r21.y, r21.w + movc r20.w, r29.z, r20.w, r21.y + movc r19.z, r19.z, r20.x, r20.w + ilt r20.x, r19.z, l(80) + movc r19.y, r20.x, r19.z, l(-1) + endif + mad r25.xyz, r26.xyzx, cb6[r19.y + 288].xxxx, r1.xyzx + mul r19.z, l(5.000000), cb6[r19.y + 288].y + mad r25.xyz, r6.xyzx, r19.zzzz, r25.xyzx + ishl r19.z, r19.y, l(2) + mul r29.xyzw, r25.yyyy, cb6[r19.z + 65].xyzw + mad r29.xyzw, cb6[r19.z + 64].xyzw, r25.xxxx, r29.xyzw + mad r25.xyzw, cb6[r19.z + 66].xyzw, r25.zzzz, r29.xyzw + add r25.xyzw, r25.xyzw, cb6[r19.z + 67].xyzw + div r25.xyz, r25.xyzx, r25.wwww + ge r29.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ge r30.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r20.xw, -cb6[r19.y + 344].xxxy, cb6[r19.y + 344].zzzw + mad r20.xw, r25.xxxy, r20.xxxw, cb6[r19.y + 344].xxxy + mad r21.yw, r20.xxxw, cb6[400].zzzw, l(0.000000, 0.500000, 0.000000, 0.500000) + round_ni r21.yw, r21.yyyw + mad r20.xw, r20.xxxw, cb6[400].zzzw, -r21.yyyw + add r31.xyzw, r20.xxww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r25.xy, -r20.xwxx, l(1.000000, 1.000000, 0.000000, 0.000000) + min r31.xz, r20.xxwx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r20.xwxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r20.xw, r32.yyyw, l(0.500000, 0.000000, 0.000000, 0.500000), -r20.xxxw + mul r35.xy, r20.xwxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r20.xw, -r31.xxxz, r31.xxxz, r25.xxxy + add r20.xw, r20.xxxw, l(1.000000, 0.000000, 0.000000, 1.000000) + mul r36.xy, r20.xwxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r20.xw, r31.yyyw, l(0.160000, 0.000000, 0.000000, 0.160000) + mov r35.z, r36.x + mov r35.w, r20.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r20.w + mov r33.z, r34.y + mov r33.w, r32.z + add r25.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.xyzx, cb6[400].xxxx + div r33.xyz, r33.zywz, r25.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyw, r33.xyxz, cb6[400].yyyy + mul r34.xyzw, r25.xxxy, r31.zwyz + mov r32.w, r33.x + mad r35.xyzw, r21.ywyw, cb6[400].xyxy, r32.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.z, r35.xyxx, t9.xxxx, s4, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r35.zwzz, t9.xxxx, s4, r25.z + mul r20.x, r20.x, r34.y + mad r19.z, r34.x, r19.z, r20.x + mad r20.xw, r21.yyyw, cb6[400].xxxy, r32.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r20.xwxx, t9.xxxx, s4, r25.z + mad r19.z, r34.z, r20.x, r19.z + mov r33.z, r32.x + mad r35.xyzw, r21.ywyw, cb6[400].xyxy, r33.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r35.xyxx, t9.xxxx, s4, r25.z + mad r19.z, r34.w, r20.x, r19.z + mul r34.xyzw, r25.yyww, r31.xyzw + mov r33.xz, r32.yyzy + mad r32.xyzw, r21.ywyw, cb6[400].xyxy, r33.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r32.xyxx, t9.xxxx, s4, r25.z + mad r19.z, r34.x, r20.x, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r32.zwzz, t9.xxxx, s4, r25.z + mad r19.z, r34.y, r20.x, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r35.zwzz, t9.xxxx, s4, r25.z + mad r19.z, r34.z, r20.x, r19.z + ige r20.x, r19.y, l(0) + or r29.xyz, r29.xyzx, r30.xyzx + or r20.w, r29.y, r29.x + or r20.w, r29.z, r20.w + and r23.w, r25.z, l(0x7fffffff) + ult r23.w, l(0x7f800000), r23.w + or r20.w, r20.w, r23.w + mad r29.xyzw, r21.ywyw, cb6[400].xyxy, r33.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.y, r29.xyxx, t9.xxxx, s4, r25.z + mad r19.z, r34.w, r21.y, r19.z + mul r21.y, r25.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r29.zwzz, t9.xxxx, s4, r25.z + mad r19.z, r21.y, r21.w, r19.z + add r19.z, r19.z, l(-1.000000) + mad r19.y, cb6[r19.y + 288].w, r19.z, l(1.000000) + movc r19.y, r20.w, l(1.000000), r19.y + movc r19.y, r20.x, r19.y, l(1.000000) + else + mov r19.y, l(1.000000) + endif + if_nz r22.w + dp3 r19.z, r14.xyzx, r27.xyzx + mul_sat r20.x, r20.z, cb5[r12.w + 6].z + mad r20.x, r20.x, l(0.500000), r3.w + min r20.x, r20.x, l(1.000000) + div r20.x, r3.w, r20.x + mad r25.xyz, r14.xyzx, r19.zzzz, -r27.xyzx + dp3 r20.w, r28.xyzx, r25.xyzx + mul r19.z, r19.z, r19.z + mad r19.z, cb5[r12.w + 6].z, cb5[r12.w + 6].z, -r19.z + div_sat r19.z, r20.w, r19.z + mad r25.xyz, r27.xyzx, r19.zzzz, r28.xyzx + dp3 r19.z, r25.xyzx, r25.xyzx + rsq r19.z, r19.z + mul r26.xyz, r19.zzzz, r25.xyzx + else + mov r20.x, l(1.000000) + endif + if_nz r19.x + mul_sat r19.x, r20.z, cb5[r15.z + 6].y + mad r25.xyz, r3.xyzx, r2.wwww, r26.xyzx + dp3 r19.z, r25.xyzx, r25.xyzx + max r19.z, r19.z, l(0.0000610351562) + rsq r19.z, r19.z + mul r25.xyz, r19.zzzz, r25.xyzx + dp3_sat r19.z, r6.xyzx, r25.xyzx + dp3_sat r20.z, r5.xyzx, r25.xyzx + lt r20.w, l(0.000000), r19.x + mul r19.x, r19.x, r19.x + mad r21.y, r20.z, l(3.600000), l(0.400000) + div r19.x, r19.x, r21.y + mad r19.x, r11.w, r11.w, r19.x + min r19.x, r19.x, l(1.000000) + movc r19.x, r20.w, r19.x, r3.w + mul r19.x, r19.x, r19.x + mad r20.w, r19.z, r19.x, -r19.z + mad r19.z, r20.w, r19.z, l(1.000000) + add r20.z, -r20.z, l(1.000000) + mul r20.w, r20.z, r20.z + mul r20.w, r20.w, r20.w + mul r21.y, r20.z, r20.w + mad r20.z, -r20.w, r20.z, l(1.000000) + mad r25.xyz, r7.xyzx, r20.zzzz, r21.yyyy + mul r19.z, r19.z, r19.z + div r19.z, r19.x, r19.z + mul r19.z, r20.x, r19.z + mad r20.x, -r11.x, r19.x, r11.x + mad r20.x, r20.x, r11.x, r19.x + sqrt r20.x, r20.x + mad r20.z, -r21.x, r19.x, r21.x + mad r19.x, r20.z, r21.x, r19.x + sqrt r19.x, r19.x + mul r19.x, r11.x, r19.x + mad r19.x, r21.x, r20.x, r19.x + add r19.x, r19.x, l(0.000100) + div r19.x, l(0.500000), r19.x + mul r19.x, r19.x, r19.z + mul r20.xzw, r19.xxxx, r25.xxyz + min r20.xzw, r20.xxzw, l(2048.000000, 0.000000, 2048.000000, 2048.000000) + mad r19.xz, r21.xxzx, l(0.968750, 0.000000, 0.968750, 0.000000), l(0.015625, 0.000000, 0.015625, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r19.x, r19.xzxx, t13.xyzw, s1, l(0.000000) + mul r19.x, r5.w, r19.x + mul r19.x, r0.y, r19.x + div r19.x, r19.x, r4.w + mul r25.xyz, r17.xyzx, r19.xxxx + div r25.xyz, r25.xyzx, r18.xyzx + add r20.xzw, r20.xxzw, r25.xxyz + mul r20.xzw, r20.xxzw, cb5[r15.z + 6].zzzz + max r20.xzw, r20.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r20.xzw, r20.xxzw, l(1000.000000, 0.000000, 1000.000000, 1000.000000) + mul r25.xyz, r9.xywx, r21.xxxx + mad r20.xzw, r20.xxzw, r21.xxxx, r25.xxyz + mul r21.xyw, r18.wwww, cb5[r17.w + 6].xyxz + mul r19.xyz, r19.yyyy, r21.xywx + mul r19.xyz, r15.wwww, r19.xyzx + mul r19.xyz, r19.xyzx, r20.xzwx + else + mov r19.xyz, l(0,0,0,0) + endif + else + if_z r16.w + mad r15.w, cb5[r12.w + 6].y, l(0.500000), l(0.500000) + add r25.x, r15.w, -|cb5[r12.w + 6].x| + add r25.y, -r25.x, cb5[r12.w + 6].y + add r15.w, -|r25.x|, l(1.000000) + add r15.w, -|r25.y|, r15.w + max r15.w, r15.w, l(0.000488281250) + ge r16.w, cb5[r12.w + 6].x, l(0.000000) + movc r25.z, r16.w, r15.w, -r15.w + dp3 r15.w, r25.xyzx, r25.xyzx + rsq r15.w, r15.w + mul r20.xzw, r15.wwww, r25.xxyz + add r21.xyw, -r1.xyxz, cb5[r24.x + 6].xyxz + dp3 r15.w, r21.xywx, r21.xywx + rsq r16.w, r15.w + mul r25.xyz, r16.wwww, r21.xywx + ftoi r15.z, cb5[r15.z + 6].w + mul r26.xyz, r20.xzwx, cb5[r12.w + 6].zzzz + mad r27.xyz, -r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r21.xywx + mad r26.xyz, r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r21.xywx + ftou r16.w, cb5[r17.w + 6].w + and r16.w, r16.w, l(1) + ieq r17.w, r16.w, l(0) + not r17.w, r17.w + lt r18.w, l(0.000000), cb5[r12.w + 6].z + and r17.w, r17.w, r18.w + dp3 r18.w, r27.xyzx, r27.xyzx + sqrt r18.w, r18.w + dp3 r22.w, r26.xyzx, r26.xyzx + sqrt r22.w, r22.w + dp3 r23.w, r27.xyzx, r26.xyzx + mad r18.w, r18.w, r22.w, r23.w + mad r18.w, r18.w, l(0.500000), l(1.000000) + div r18.w, l(1.000000, 1.000000, 1.000000, 1.000000), r18.w + movc r18.w, r17.w, r18.w, l(1.000000) + lt r22.w, cb5[r24.w + 6].w, l(0.000000) + if_nz r22.w + mul r22.w, cb5[r24.x + 6].w, cb5[r24.x + 6].w + mul r22.w, r15.w, r22.w + mad r22.w, -r22.w, r22.w, l(1.000000) + max r22.w, r22.w, l(0.000000) + add r15.w, r15.w, l(1.000000) + div r15.w, l(1.000000, 1.000000, 1.000000, 1.000000), r15.w + and r23.w, r17.w, l(0x3f800000) + add r24.z, -r15.w, r18.w + mad r15.w, r23.w, r24.z, r15.w + mul r22.w, r22.w, r22.w + mul r15.w, r15.w, r22.w + else + mul r26.xyz, r21.xywx, cb5[r24.x + 6].wwww + dp3 r22.w, r26.xyzx, r26.xyzx + min r22.w, r22.w, l(1.000000) + add r22.w, -r22.w, l(1.000000) + log r22.w, r22.w + mul r22.w, r22.w, cb5[r24.w + 6].w + exp r22.w, r22.w + mul r15.w, r18.w, r22.w + endif + dp3 r18.w, r25.xyzx, -r20.xzwx + add r18.w, r18.w, -cb5[r12.w + 6].z + mul_sat r18.w, r18.w, cb5[r12.w + 6].w + mul r18.w, r18.w, r18.w + movc r18.w, r16.w, l(1.000000), r18.w + mul r15.w, r15.w, r18.w + not r17.w, r17.w + ige r18.w, r15.z, l(0) + and r17.w, r17.w, r18.w + if_nz r17.w + if_z r16.w + ishl r17.w, r15.z, l(2) + mul r20.xzw, r1.yyyy, cb7[r17.w + 33].xxyw + mad r20.xzw, cb7[r17.w + 32].xxyw, r1.xxxx, r20.xxzw + mad r20.xzw, cb7[r17.w + 34].xxyw, r1.zzzz, r20.xxzw + add r20.xzw, r20.xxzw, cb7[r17.w + 35].xxyw + div_sat r20.xz, r20.xxzx, r20.wwww + mad r20.xz, r20.xxzx, cb7[r15.z + 0].zzwz, cb7[r15.z + 0].xxyx + else + ishl r17.w, r15.z, l(2) + dp3 r26.x, -r21.xywx, cb7[r17.w + 32].xyzx + dp3 r26.y, -r21.xywx, cb7[r17.w + 33].xyzx + dp3 r26.z, -r21.xywx, cb7[r17.w + 34].xyzx + lt r17.w, |r26.x|, |r26.y| + and r17.w, r17.w, l(1) + dp2 r18.w, |r26.xyxx|, icb[r17.w + 0].xyxx + lt r18.w, r18.w, |r26.z| + movc r17.w, r18.w, l(2), r17.w + dp3 r18.w, r26.xyzx, icb[r17.w + 0].xyzx + lt r18.w, r18.w, l(0.000000) + bfi r17.w, l(31), l(1), r17.w, r18.w + ushr r18.w, r17.w, l(1) + dp3 r18.w, r26.xyzx, icb[r18.w + 0].xyzx + div r20.w, l(0.000244140625), cb7[r15.z + 0].w + add r20.w, -r20.w, l(0.500000) + utof r21.x, r17.w + ult r21.y, r17.w, l(2) + and r21.y, r21.y, l(2) + dp2 r21.y, r26.xzxx, icb[r21.y + 0].xzxx + mul r21.y, r21.y, icb[r17.w + 4].z + div r21.y, r21.y, |r18.w| + mad r21.x, r21.y, r20.w, r21.x + add r21.x, r21.x, l(0.500000) + mul_sat r21.x, r21.x, l(0.166666672) + iadd r21.w, l(-1), icb[r17.w + 4].y + dp2 r21.w, r26.yzyy, icb[r21.w + 0].xyxx + mul r17.w, r21.w, icb[r17.w + 4].w + div r17.w, r17.w, |r18.w| + mad_sat r21.y, -r17.w, r20.w, l(0.500000) + mad r20.xz, r21.xxyx, cb7[r15.z + 0].zzwz, cb7[r15.z + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r15.z, r20.xzxx, t21.yzxw, s1, l(0.000000) + mul r15.w, r15.z, r15.w + endif + lt r15.z, l(0.000000), r15.w + if_nz r15.z + if_z r16.w + ftoi r15.z, cb5[r24.y + 6].x + else + add r20.xzw, r1.xxyz, -cb5[r24.x + 6].xxyz + lt r21.xyw, |r20.zwzw|, |r20.xxxz| + and r15.w, r21.y, r21.x + lt r20.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xxzw + ushr r16.w, cb5[r12.w + 6].w, l(24) + ubfe r21.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r12.w + 6].wwww + movc r16.w, r20.x, r16.w, r21.x + and r12.w, l(255), cb5[r12.w + 6].w + movc r12.w, r20.z, r21.y, r12.w + ubfe r17.w, l(8), l(8), cb5[r24.y + 6].x + and r18.w, l(255), cb5[r24.y + 6].x + movc r17.w, r20.w, r17.w, r18.w + movc r12.w, r21.w, r12.w, r17.w + movc r12.w, r15.w, r16.w, r12.w + ilt r15.w, r12.w, l(80) + movc r15.z, r15.w, r12.w, l(-1) + endif + mad r20.xzw, r25.xxyz, cb6[r15.z + 288].xxxx, r1.xxyz + mul r12.w, l(5.000000), cb6[r15.z + 288].y + mad r20.xzw, r6.xxyz, r12.wwww, r20.xxzw + ishl r12.w, r15.z, l(2) + mul r24.xyzw, r20.zzzz, cb6[r12.w + 65].xyzw + mad r24.xyzw, cb6[r12.w + 64].xyzw, r20.xxxx, r24.xyzw + mad r24.xyzw, cb6[r12.w + 66].xyzw, r20.wwww, r24.xyzw + add r24.xyzw, r24.xyzw, cb6[r12.w + 67].xyzw + div r20.xzw, r24.xxyz, r24.wwww + ge r21.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xzxw + ge r24.xyz, r20.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r25.xy, -cb6[r15.z + 344].xyxx, cb6[r15.z + 344].zwzz + mad r20.xz, r20.xxzx, r25.xxyx, cb6[r15.z + 344].xxyx + mad r25.xy, r20.xzxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r20.xz, r20.xxzx, cb6[400].zzwz, -r25.xxyx + add r26.xyzw, r20.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r20.xxxz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r20.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r20.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r20.xz, r27.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r20.xxzx + mul r30.xy, r20.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r20.xz, -r26.xxzx, r26.xxzx, r25.zzwz + add r20.xz, r20.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r31.xy, r20.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r20.xz, r26.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r30.z, r31.x + mov r30.w, r20.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r20.z + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.xyzx, cb6[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyw, r28.xyxz, cb6[400].yyyy + mul r30.xyzw, r26.zwyz, r27.xxxy + mov r29.w, r28.x + mad r31.xyzw, r25.xyxy, cb6[400].xyxy, r29.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r12.w, r31.xyxx, t9.xxxx, s4, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r31.zwzz, t9.xxxx, s4, r20.w + mul r15.w, r15.w, r30.y + mad r12.w, r30.x, r12.w, r15.w + mad r20.xz, r25.xxyx, cb6[400].xxyx, r29.zzwz + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r20.xzxx, t9.xxxx, s4, r20.w + mad r12.w, r30.z, r15.w, r12.w + mov r28.z, r29.x + mad r31.xyzw, r25.xyxy, cb6[400].xyxy, r28.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r31.xyxx, t9.xxxx, s4, r20.w + mad r12.w, r30.w, r15.w, r12.w + mul r30.xyzw, r26.xyzw, r27.yyzz + mov r28.xz, r29.yyzy + mad r29.xyzw, r25.xyxy, cb6[400].xyxy, r28.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r29.xyxx, t9.xxxx, s4, r20.w + mad r12.w, r30.x, r15.w, r12.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r29.zwzz, t9.xxxx, s4, r20.w + mad r12.w, r30.y, r15.w, r12.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r15.w, r31.zwzz, t9.xxxx, s4, r20.w + mad r12.w, r30.z, r15.w, r12.w + ige r15.w, r15.z, l(0) + or r21.xyw, r21.xyxw, r24.xyxz + or r16.w, r21.y, r21.x + or r16.w, r21.w, r16.w + and r17.w, r20.w, l(0x7fffffff) + ult r17.w, l(0x7f800000), r17.w + or r16.w, r16.w, r17.w + mad r24.xyzw, r25.xyxy, cb6[400].xyxy, r28.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r24.xyxx, t9.xxxx, s4, r20.w + mad r12.w, r30.w, r17.w, r12.w + mul r17.w, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r24.zwzz, t9.xxxx, s4, r20.w + mad r12.w, r17.w, r18.w, r12.w + add r12.w, r12.w, l(-1.000000) + mad r12.w, cb6[r15.z + 288].w, r12.w, l(1.000000) + movc r12.w, r16.w, l(1.000000), r12.w + movc r12.w, r15.w, r12.w, l(1.000000) + else + mov r12.w, l(1.000000) + endif + else + mov r12.w, l(1.000000) + endif + mul r11.y, r11.y, r12.w + mov r19.xyz, l(0,0,0,0) + endif + add r23.xyz, r19.xyzx, r23.xyzx + mov r11.z, r14.w + endloop + mov r6.w, r11.y + add r22.xyz, r22.xyzx, r23.xyzx + iadd r7.w, r7.w, l(1) +endloop +// === Glass Fix: Reduce clustered lights and overall brightness === +lt r37.x, l(0.500000), cb13[14].x +if_nz r37.x + mul r22.xyz, r22.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r2.xyz, r2.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) +endif +dp3 r0.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xzw, -r0.xxxx, r2.xxyz +mad r0.xyz, cb0[184].wwww, r1.xzwx, r0.xxxx +mad r1.xzw, r22.xxyz, r6.wwww, r16.xxyz +mul r2.xyz, cb2[20].zzzz, cb2[21].xyzx +add r2.w, -r10.w, l(1.000000) +add r3.x, l(1.000000), -cb2[20].y +max r3.x, r3.x, l(0.010000) +div_sat r2.w, r2.w, r3.x +mad r2.xyz, r8.xyzx, r2.xyzx, -r1.xzwx +mad r1.xzw, r2.wwww, r2.xxyz, r1.xxzw +mad r0.xyz, r0.xyzx, cb0[184].xyzx, r1.xzwx +mad r1.x, r1.y, cb0[156].w, cb0[157].w +mad r1.z, r0.w, cb0[154].w, -cb0[153].w +max r1.xz, r1.xxzx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.w, r1.x, l(-1.442695) +exp r1.w, r1.w +add r1.w, -r1.w, l(1.000000) +div r1.x, r1.w, r1.x +mad r1.w, r1.y, cb0[156].w, cb0[158].w +mul r1.w, r1.w, l(1.442695) +exp r1.w, r1.w +mul r1.x, r1.w, r1.x +mul r1.x, r1.x, -r1.z +mul r1.xzw, r1.xxxx, cb0[155].xxyz +mul r1.xzw, r1.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r1.xzw, r1.xxzw +dp3 r2.x, -r5.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r2.xxxx, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r13.w, l(7), cb0[108].w + imad r3.xyz, r13.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.z, r3.y, r3.z, r3.x + imad r2.w, r3.z, r2.z, r3.y + imad r3.x, r2.z, r2.w, r3.z + imad r6.x, r2.w, r3.x, r2.z + dp3 r2.z, -r5.xyzx, -r4.xyzx + add r3.y, r1.y, -cb0[44].y + lt r3.z, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.z + mul r2.z, r2.z, cb0[163].w + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r3.w, r2.z, r3.z + mad r4.x, r3.w, r3.y, cb0[44].y + mad r3.y, -r3.w, r3.y, r3.y + mul r3.w, r3.y, cb0[159].z + mul r3.y, r3.y, cb0[162].x + max r3.yw, r3.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + add r4.y, r4.x, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r3.w| + exp r4.w, -r3.w + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r4.z, r4.w, r3.w + add r4.x, r4.x, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.z, l(5.960464478E-08), |r3.y| + exp r4.w, -r3.y + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r3.y + mad r3.y, -r3.y, l(0.240226507), l(0.693147182) + movc r3.y, r4.z, r4.w, r3.y + mul r3.y, r3.y, r4.x + mad r3.y, r4.y, r3.w, r3.y + mad r2.z, -r2.z, r3.z, l(1.000000) + mul r2.z, r0.w, r2.z + mul r2.z, r2.z, r3.y + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.yz, r0.wwww, cb0[160].yywy, cb0[160].xxzx + add r2.z, r2.z, r3.y + add r2.z, r3.z, r2.z + min r2.z, r2.z, l(1.000000) + imad r6.y, r3.x, r6.x, r2.w + ushr r3.xy, r6.xyxx, l(16, 16, 0, 0) + utof r3.xy, r3.xyxx + mad r3.xy, r3.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb0[167].wwww, r15.xyxx + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r2.w, r13.z, cb0[164].x, cb0[164].y + log r2.w, r2.w + mul r2.w, r2.w, cb0[164].z + div r3.z, r2.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t20.xyzw, s1, l(0.000000) + add r2.w, r13.z, -cb0[166].z + mul_sat r2.w, r2.w, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r2.wwww, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r2.w, -r2.z, l(1.000000) + mul r4.xyz, r2.wwww, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.z, r2.z, r3.w +else + add r1.y, r1.y, -cb0[44].y + mul r2.w, r1.y, cb0[159].z + max r2.w, r2.w, l(-127.000000) + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r3.w, cb0[44].y, -cb0[159].x + mul r3.w, r3.w, cb0[159].z + max r3.w, r3.w, l(-127.000000) + exp r3.w, -r3.w + mul r3.w, r3.w, cb0[159].y + lt r4.x, l(5.960464478E-08), |r2.w| + exp r4.y, -r2.w + add r4.y, -r4.y, l(1.000000) + div r4.y, r4.y, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r4.x, r4.y, r2.w + add r4.x, cb0[44].y, -cb0[162].z + mul r4.x, r4.x, cb0[162].x + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[162].y + lt r4.y, l(5.960464478E-08), |r1.y| + exp r4.z, -r1.y + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.y, r4.z, r1.y + mul r1.y, r1.y, r4.x + mad r1.y, r3.w, r2.w, r1.y + mul r1.y, r0.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r1.y, r4.x + add r0.w, r4.y, r0.w + min r2.z, r0.w, l(1.000000) + add r0.w, -r2.z, l(1.000000) + mul r3.xyz, r0.wwww, cb0[161].xyzx +endif +mul r4.xyz, r1.xzwx, r2.zzzz +mad r0.w, r2.x, r2.x, l(1.000000) +mul r0.w, r0.w, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.wwww, cb0[158].xyzx +mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r1.y, r2.y, l(12.566371) +sqrt r2.x, r2.y +mul r1.y, r1.y, r2.x +max r1.y, r1.y, l(0.001000) +div r0.w, r0.w, r1.y +mad_sat r2.xyw, cb0[157].xyxz, r0.wwww, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx +// === Glass Transparency Fix === +lt r37.x, l(0.500000), cb13[14].x +if_nz r37.x + add r37.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r37.xyz, r37.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r4.xyzx + mul r38.xyz, r1.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + mad r10.xyz, r0.xyzx, r37.xyzx, r38.xyzx +else + mad r10.xyz, r0.xyzx, r4.xyzx, r1.xyzx +endif +mul r0.xy, r12.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r0.xy, |r0.xyxx| +sqrt r0.xy, r0.xyxx +mov r12.z, -r12.y +lt r0.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xxxz +lt r1.xy, r12.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r0.zw, -r0.zzzw, r1.xxxy +itof r0.zw, r0.zzzw +mul r0.xy, r0.zwzz, r0.xyxx +mad r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +ishl r0.z, v7.x, l(4) +max r0.z, cb1[r0.z + 4].z, cb1[r0.z + 4].y +add r0.z, r0.z, l(-0.100000024) +lt r0.w, l(0.000000), r0.z +lt r0.z, r0.z, l(0.000000) +iadd r0.z, -r0.w, r0.z +itof r0.z, r0.z +mov_sat r0.z, r0.z +add r1.xy, -r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.zzzz, r1.xyxx, r0.xyxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r10.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r10.w, r0.x +max r0.x, r10.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +// === Glass Highlight Compression === +lt r37.x, l(0.500000), cb13[14].x +if_nz r37.x + dp3 r37.y, r10.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) + lt r37.z, l(0.500000), r37.y + if_nz r37.z + add r37.w, r37.y, l(-0.500000) + mul r37.w, r37.w, l(-0.666667) + exp r37.w, r37.w + add r37.w, -r37.w, l(1.000000) + mad r37.w, r37.w, l(1.500000), l(0.500000) + max r38.x, r37.y, l(0.001000) + div r38.x, r37.w, r38.x + mul r10.xyz, r10.xyzx, r38.xxxx + endif +endif +mov o0.xyzw, r10.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0x424F9536.cso b/src/games/endfield/glass/0x424F9536.cso new file mode 100644 index 0000000000000000000000000000000000000000..bca560f4143d46a01f802d71fa27cc0a91df06ff GIT binary patch literal 56364 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 literal 0 HcmV?d00001 diff --git a/src/games/endfield/glass/0x69B6459F.ps_5_0.asm b/src/games/endfield/glass/0x69B6459F.ps_5_0.asm new file mode 100644 index 000000000..b5e25d39e --- /dev/null +++ b/src/games/endfield/glass/0x69B6459F.ps_5_0.asm @@ -0,0 +1,1812 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Feb 6 19:58:05 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4096], dynamicIndexed +dcl_constantbuffer CB2[24], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_constantbuffer CB13[15], immediateIndexed +dcl_sampler s0, mode_default +dcl_sampler s1, mode_default +dcl_sampler s2, mode_default +dcl_sampler s3, mode_comparison +dcl_sampler s4, mode_default +dcl_sampler s5, mode_default +dcl_sampler s6, mode_default +dcl_resource_structured t0, 4 +dcl_resource_texture2darray (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_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture3d (float,float,float,float) t11 +dcl_resource_texture3d (float,float,float,float) t12 +dcl_resource_texture3d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture2d (float,float,float,float) t18 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 43 +ishl r0.x, v7.x, l(4) +max r0.y, cb1[r0.x + 4].z, cb1[r0.x + 4].y +dp2 r0.z, v0.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +ge r0.w, cb1[r0.x + 4].x, l(0.000000) +movc r0.w, r0.w, r0.z, -r0.z +add r0.w, -r0.w, cb1[r0.x + 4].x +add r0.z, -r0.y, -r0.z +add r0.z, r0.z, l(1.000000) +min r0.z, r0.z, r0.w +lt r0.z, r0.z, l(0.000000) +discard_nz r0.z +mul r0.zw, v0.xxxy, cb0[82].zzzw +mad r1.xy, r0.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r2.xyzw, -r1.yyyy, cb0[25].xyzw +mad r1.xyzw, cb0[24].xyzw, r1.xxxx, r2.xyzw +mad r1.xyzw, cb0[26].xyzw, v0.zzzz, r1.xyzw +add r1.xyzw, r1.xyzw, cb0[27].xyzw +div r1.xyz, r1.xyzx, r1.wwww +lt r2.x, l(0.000000), v3.w +movc r2.x, r2.x, l(1.000000), l(-1.000000) +eq r2.y, l(0.000000), cb0[86].w +add r3.xyz, -r1.xyzx, cb0[44].xyzx +mov r4.x, cb0[0].z +mov r4.y, cb0[1].z +mov r4.z, cb0[2].z +movc r2.yzw, r2.yyyy, r3.xxyz, r4.xxyz +dp3 r3.x, r2.yzwy, r2.yzwy +max r3.y, r3.x, l(9.999999939E-09) +rsq r3.y, r3.y +mul r5.xyz, r2.yzwy, r3.yyyy +mul r3.x, r3.y, r3.x +add r3.zw, -v1.xxxy, v1.zzzw +mad r6.xy, cb2[2].wwww, r3.zwzz, v1.xyxx +mad r6.xy, r6.xyxx, cb2[11].xyxx, cb2[11].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r6.xyzw, r6.xyxx, t2.xyzw, s4, cb0[108].x +mad r3.zw, cb2[3].xxxx, r3.zzzw, v1.xxxy +mad r3.zw, r3.zzzw, cb2[12].xxxy, cb2[12].zzzw +add r4.w, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r7.xyzw, r3.zwzz, t3.xyzw, s5, r4.w +mad r3.zw, r7.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +lt r7.xy, |r3.zwzz|, l(0.012000, 0.012000, 0.000000, 0.000000) +movc r3.zw, r7.xxxy, l(0,0,0,0), r3.zzzw +mul r7.xy, r3.zwzz, cb2[0].xxxx +add r8.xy, -r6.wwww, r7.wzww +mad r4.w, cb2[1].z, r8.x, r6.w +mul r4.w, r4.w, cb2[8].w +mad r5.w, r4.w, v4.x, -r4.w +mad r9.w, cb2[23].x, r5.w, r4.w +add r4.w, -cb2[0].z, cb2[0].w +mad r10.w, r7.z, r4.w, cb2[0].z +add_sat r4.w, l(-1.000000), cb2[3].w +add r5.w, -r6.w, cb2[4].y +mad r4.w, r4.w, r5.w, r6.w +mov_sat r5.w, cb2[21].y +add_sat r8.xz, l(-1.000000, 0.000000, -2.000000, 0.000000), cb2[21].yyyy +mad r6.w, r8.x, r8.y, r6.w +add r7.z, -r6.w, r7.w +mad r6.w, r8.z, r7.z, r6.w +add r6.w, r6.w, l(-1.000000) +mad r6.w, r5.w, r6.w, l(1.000000) +mad_sat r6.w, r6.w, l(1.11111116), l(-0.0555555597) +ge r7.z, r6.w, l(0.100000) +and r7.z, r7.z, l(0x3f800000) +mul r8.x, r7.z, cb1[r0.x + 15].w +mul r6.xyz, r6.xyzx, cb2[8].xyzx +mul_sat r6.xyz, r6.xyzx, cb2[4].zzzz +add r8.yzw, -r6.xxyz, cb2[8].xxyz +mad r6.xyz, cb2[4].xxxx, r8.yzwy, r6.xyzx +mad r7.z, -cb1[r0.x + 15].w, r7.z, l(1.000000) +mad r8.xyz, cb1[r0.x + 15].xyzx, r8.xxxx, r7.zzzz +mul r11.xyz, r6.xyzx, r8.xyzx +mul r12.xyz, v2.zxyz, v3.yzxy +mad r12.xyz, v2.yzxy, v3.zxyz, -r12.xyzx +mul r12.xyz, r2.xxxx, r12.xyzx +mul r12.xyz, r7.yyyy, r12.xyzx +mad r7.xyz, v3.xyzx, r7.xxxx, r12.xyzx +dp2 r2.x, r3.zwzz, r3.zwzz +add r2.x, -r2.x, l(1.000000) +max r2.x, r2.x, l(0.000000) +sqrt r2.x, r2.x +lt r3.z, l(0.000000), cb2[1].w +movc r3.z, r3.z, l(-1.000000), l(1.000000) +movc r3.z, v8.x, l(1.000000), r3.z +mul r2.x, r2.x, r3.z +mad r7.xyz, v2.xyzx, r2.xxxx, r7.xyzx +dp3 r2.x, r7.xyzx, r7.xyzx +rsq r2.x, r2.x +mul r12.xyz, r2.xxxx, r7.xyzx +dp3 r2.x, -r5.xyzx, r12.xyzx +mul r3.z, cb2[22].x, cb2[22].x +mad r3.w, -r2.x, r2.x, l(1.000000) +mad r3.z, -r3.z, r3.w, l(1.000000) +sqrt r3.w, r3.z +mad r3.w, cb2[22].x, r2.x, r3.w +ge r3.z, r3.z, l(0.000000) +mul r7.xyz, r12.xyzx, r3.wwww +mad r7.xyz, cb2[22].xxxx, -r5.xyzx, -r7.xyzx +and r7.xyz, r3.zzzz, r7.xyzx +mul r3.zw, r7.yyyy, cb0[1].xxxy +mad r3.zw, cb0[0].xxxy, r7.xxxx, r3.zzzw +mad r3.zw, cb0[2].xxxy, r7.zzzz, r3.zzzw +mul r3.zw, r3.zzzw, cb2[22].yyyy +mad r0.zw, r3.zzzw, r9.wwww, r0.zzzw +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, r0.zwzz, t4.xyzw, s6, cb0[108].x +max r0.z, v5.z, l(9.999999939E-09) +div r0.zw, v5.xxxy, r0.zzzz +max r3.z, v6.z, l(9.999999939E-09) +div r3.zw, v6.xxxy, r3.zzzz +add r13.xy, r0.zwzz, -r3.zwzz +mul r0.z, l(0.080000), cb2[0].y +mul r14.xyz, r4.wwww, r11.xyzx +mad r14.xyz, r6.xyzx, r8.xyzx, -r14.xyzx +mad r0.z, -r0.z, r4.w, r0.z +mad r15.xyz, r11.xyzx, r4.wwww, r0.zzzz +dp3 r0.z, r12.xyzx, r5.xyzx +mad r16.xyzw, r10.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r0.w, r16.x, r16.x +max r0.z, r0.z, l(0.000000) +mul r3.z, r0.z, l(-9.280000) +exp r3.z, r3.z +min r0.w, r0.w, r3.z +mad r0.w, r0.w, r16.x, r16.y +mad r3.zw, r0.wwww, l(0.000000, 0.000000, -1.040000, 1.040000), r16.zzzw +eq r0.w, l(1.000000), cb0[113].y +mul r16.xyzw, r1.yyyy, cb0[241].xyzw +mad r16.xyzw, cb0[240].xyzw, r1.xxxx, r16.xyzw +mad r16.xyzw, cb0[242].xyzw, r1.zzzz, r16.xyzw +add r16.xyzw, r16.xyzw, cb0[243].xyzw +div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r16.w +mul r16.xyz, r16.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r16.xyz, r4.wwww, r16.xyzx +mad_sat r16.xy, r16.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +mul r16.xy, r16.xyxx, cb0[82].xyxx +ftou r17.xy, r16.xyxx +mad r4.w, cb0[84].z, r16.z, cb0[84].w +div r17.z, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w +ftou r16.xy, v0.xyxx +mul r4.w, r1.y, cb0[1].z +mad r4.w, cb0[0].z, r1.x, r4.w +mad r4.w, cb0[2].z, r1.z, r4.w +add r4.w, r4.w, cb0[3].z +mov r16.z, |r4.w| +movc r16.xyz, r0.wwww, r17.xyzx, r16.xyzx +mad r17.xyz, r12.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r1.xyzx +mad r18.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r18.xyz, r17.xzyx, -r18.xyzx +max r0.w, |r18.y|, |r18.x| +add r0.w, r0.w, l(-464.000000) +mul_sat r0.w, r0.w, l(0.031250) +add r4.w, |r18.z|, l(-208.000000) +mul_sat r4.w, r4.w, l(0.031250) +max r0.w, r0.w, r4.w +ne r4.w, l(0.000000), cb0[210].w +lt r8.w, r0.w, l(1.000000) +and r4.w, r4.w, r8.w +if_nz r4.w + mad r18.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r18.xyz, r17.xzyx, -r18.xyzx + max r4.w, |r18.y|, |r18.x| + add r4.w, r4.w, l(-29.000000) + mul_sat r4.w, r4.w, l(0.500000) + add r8.w, |r18.z|, l(-13.000000) + mul_sat r8.w, r8.w, l(0.500000) + max r4.w, r4.w, r8.w + lt r8.w, r4.w, l(1.000000) + if_nz r8.w + mad r18.xyz, r17.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r18.xyzx, cb0[211].xyzx + round_ni r19.xyz, r19.xyzx + mad r18.xyz, r18.xyzx, cb0[211].xyzx, -r19.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r18.xyzx, t11.yzwx, s1, l(0.000000) + add r8.w, -r4.w, l(1.000000) + mul r11.w, l(0.500000), cb0[211].y + mad r13.w, -cb0[211].y, l(0.500000), l(1.000000) + max r11.w, r11.w, r18.y + min r11.w, r13.w, r11.w + mul r18.w, r11.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xwzx, t12.xyzw, s0, l(0.000000) + mad r11.w, r20.w, r8.w, r0.w + add r21.xyz, r18.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r21.xyz, r21.xyzx, t12.xyzw, s0, l(0.000000) + mad r21.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r19.yyyy, r21.xyzx + mov r21.w, r19.y + mul r21.xyzw, r8.wwww, r21.xyzw + add r18.xyz, r18.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t12.xyzw, s0, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r19.xxxx, r18.xyzx + mov r18.w, r19.x + mul r18.xyzw, r8.wwww, r18.xyzw + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r19.xyz, r19.wwww, r20.xyzx + mul r19.xyzw, r8.wwww, r19.xyzw + else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r11.w, r0.w + endif + mad r20.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r20.xyz, r17.xzyx, -r20.xyzx + max r8.w, |r20.y|, |r20.x| + add r8.w, r8.w, l(-116.000000) + mul_sat r8.w, r8.w, l(0.125000) + add r13.w, |r20.z|, l(-52.000000) + mul_sat r13.w, r13.w, l(0.125000) + max r8.w, r8.w, r13.w + lt r13.w, r8.w, l(1.000000) + if_nz r13.w + mad r20.xyz, r17.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r22.xyz, r20.xyzx, cb0[211].xyzx + round_ni r22.xyz, r22.xyzx + mad r20.xyz, r20.xyzx, cb0[211].xyzx, -r22.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r22.xyw, r20.xyzx, t13.yzwx, s1, l(0.000000) + add r13.w, -r8.w, l(1.000000) + mul r4.w, r4.w, r13.w + mul r13.w, l(0.500000), cb0[211].y + mad r14.w, -cb0[211].y, l(0.500000), l(1.000000) + max r13.w, r13.w, r20.y + min r13.w, r14.w, r13.w + mul r20.w, r13.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r23.xyzw, r20.xwzx, t14.xyzw, s0, l(0.000000) + mad r11.w, r23.w, r4.w, r11.w + add r24.xyz, r20.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r24.xyz, r24.xyzx, t14.xyzw, s0, l(0.000000) + mad r24.xyz, r24.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r24.xyz, r22.yyyy, r24.xyzx + mov r24.w, r22.y + mad r21.xyzw, r24.xyzw, r4.wwww, r21.xyzw + add r20.xyz, r20.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t14.xyzw, s0, l(0.000000) + mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r22.xxxx, r20.xyzx + mov r20.w, r22.x + mad r18.xyzw, r20.xyzw, r4.wwww, r18.xyzw + mad r20.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r22.wwww, r20.xyzx + mad r19.xyzw, r22.xyzw, r4.wwww, r19.xyzw + endif + lt r4.w, l(0.000000), r8.w + if_nz r4.w + mad r17.xyz, r17.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r20.xyz, r17.xyzx, cb0[211].xyzx + mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r20.xyz, r20.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r20.xyzx + mad r20.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r17.xyz, r22.xyzx, r17.xyzx + min r17.xyz, r20.xyzx, r17.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r17.xyzx, t15.yzwx, s1, l(0.000000) + add r4.w, -r0.w, l(1.000000) + mul r4.w, r4.w, r8.w + max r8.w, r22.y, r17.y + min r8.w, r20.y, r8.w + mul r17.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t16.xyzw, s0, l(0.000000) + add r22.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t16.xyzw, s0, l(0.000000) + mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r22.xyz, r23.yyyy, r22.xyzx + mov r22.w, r23.y + mad r21.xyzw, r22.xyzw, r4.wwww, r21.xyzw + add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t16.xyzw, s0, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r23.xxxx, r17.xyzx + mov r17.w, r23.x + mad r18.xyzw, r17.xyzw, r4.wwww, r18.xyzw + mad r17.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r23.xyz, r23.wwww, r17.xyzx + mad r19.xyzw, r23.xyzw, r4.wwww, r19.xyzw + mad r11.w, r20.w, r4.w, r11.w + endif + mad_sat r4.w, r11.w, l(2.000000), l(-1.000000) + add r17.x, -r0.w, r4.w + add r0.w, r0.w, r4.w + mul r17.y, r0.w, l(0.500000) +else + mov r21.xyzw, l(0,0,0,0) + mov r18.xyzw, l(0,0,0,0) + mov r19.xyzw, l(0,0,0,0) + mov r17.xy, l(0,1.000000,0,0) +endif +mul r20.xyzw, r17.yyyx, cb0[213].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.zw, r17.yyyx, cb0[213].wwwy +mad r20.w, r17.w, l(0.375000), r17.z +add r19.xyzw, r19.xyzw, r20.xyzw +mul r20.xyzw, r17.yyyx, cb0[214].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.zw, r17.yyyx, cb0[214].wwwy +mad r20.w, r17.w, l(0.375000), r17.z +add r18.xyzw, r18.xyzw, r20.xyzw +mul r20.xyzw, r17.yyyx, cb0[215].xyzw +mad r20.y, r20.w, l(0.500000), r20.y +mul r17.xy, r17.yxyy, cb0[215].wyww +mad r20.w, r17.y, l(0.375000), r17.x +add r17.xyzw, r20.xyzw, r21.xyzw +dp3 r0.w, r19.xyzx, r12.xyzx +add r0.w, r19.w, r0.w +max r19.x, r0.w, l(0.000000) +dp3 r0.w, r18.xyzx, r12.xyzx +add r0.w, r18.w, r0.w +max r19.y, r0.w, l(0.000000) +dp3 r0.w, r17.xyzx, r12.xyzx +add r0.w, r17.w, r0.w +max r19.z, r0.w, l(0.000000) +add r0.w, r2.x, r2.x +mad r17.xyz, r12.xyzx, -r0.wwww, -r5.xyzx +add r0.w, l(-1.000000), cb0[113].x +max r2.x, r10.w, l(0.001000) +log r2.x, r2.x +mad r2.x, -r2.x, l(1.200000), l(1.000000) +add r0.w, r0.w, -r2.x +utof r18.xy, r16.xyxx +mul r18.zw, r18.xxxy, cb3[0].wwww +round_ni r18.zw, r18.zzzw +add r2.x, r16.z, -cb3[2].y +round_ni r2.x, r2.x +add r4.w, l(-1.000000), cb3[1].x +max r8.w, r2.x, l(0.000000) +min r4.w, r4.w, r8.w +ge r2.x, r4.w, r2.x +mad r8.w, r18.w, cb3[0].x, r18.z +ftoi r8.w, r8.w +iadd r8.w, r8.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.w, r8.w, l(0), t0.xxxx +ftoi r4.w, r4.w +iadd r4.w, r4.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r4.w, r4.w, l(0), t0.xxxx +and r4.w, r4.w, r8.w +and r2.x, r2.x, r4.w +mul r20.xyz, r19.xyzx, cb0[111].xxxx +dp3 r4.w, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r1.w, l(1.000000) +mov r12.w, l(1.000000) +mov r20.xyz, l(0,0,0,0) +mov r8.w, l(1.000000) +mov r11.w, r2.x +mov r13.w, l(0) +loop + lt r14.w, l(0.010000), r8.w + ine r15.w, r11.w, l(0) + and r15.w, r14.w, r15.w + if_nz r15.w + firstbit_lo r15.w, r11.w + ishl r17.w, l(1), r15.w + xor r11.w, r11.w, r17.w + ishl r15.w, r15.w, l(3) + dp4 r21.x, cb3[r15.w + 6].xyzw, r1.xyzw + dp4 r21.y, cb3[r15.w + 7].xyzw, r1.xyzw + dp4 r21.z, cb3[r15.w + 8].xyzw, r1.xyzw + ge r22.xyz, cb3[r15.w + 5].xyzx, |r21.xyzx| + and r17.w, r22.y, r22.x + and r17.w, r22.z, r17.w + if_nz r17.w + mul r17.w, l(0.100000), cb3[r15.w + 5].x + mul r22.xyz, |r21.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.zw, r22.xxxy, r22.xxxy + add r22.xyw, -|r21.xyxz|, cb3[r15.w + 5].xyxz + mul r22.xyw, r22.xyxw, cb3[r15.w + 9].xyxz + eq r19.w, l(1.000000), cb3[r15.w + 10].x + if_nz r19.w + dp3 r23.x, cb3[r15.w + 6].xyzx, r17.xyzx + dp3 r23.y, cb3[r15.w + 7].xyzx, r17.xyzx + dp3 r23.z, cb3[r15.w + 8].xyzx, r17.xyzx + add r24.xyz, -r21.xyzx, cb3[r15.w + 5].xyzx + div r24.xyz, r24.xyzx, r23.xyzx + add r25.xyz, -r21.xyzx, -cb3[r15.w + 5].xyzx + div r25.xyz, r25.xyzx, r23.xyzx + lt r26.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + movc r24.xyz, r26.xyzx, r24.xyzx, r25.xyzx + min r19.w, r24.y, r24.x + min r19.w, r24.z, r19.w + mad r21.xyz, r23.xyzx, r19.wwww, r21.xyzx + else + mov r21.xyz, r17.xyzx + endif + dp3 r19.w, r21.xyzx, r21.xyzx + rsq r19.w, r19.w + mul r21.xyz, r19.wwww, r21.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + lt r24.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r23.xyz, -r23.xyzx, r24.xyzx + itof r23.xyz, r23.xyzx + dp3 r19.w, r21.xyzx, r23.xyzx + div r21.xyz, r21.xyzx, r19.wwww + lt r19.w, r21.z, l(0.000000) + add r21.zw, -|r21.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r21.zw, r21.zzzw, r23.xxxy + movc r21.xy, r19.wwww, r21.zwzz, r21.xyxx + dp4 r19.w, cb3[r15.w + 4].xyzw, r12.xyzw + max r19.w, r19.w, l(0.000000) + max r19.w, r19.w, l(0.000100) + min r20.w, r22.w, r22.y + min r20.w, r20.w, r22.x + add r18.z, r18.w, r18.z + mad r18.z, r22.z, r22.z, r18.z + mad r17.w, r17.w, r17.w, -r18.z + mul r17.w, r17.w, cb3[r15.w + 9].x + mul r17.w, r17.w, cb3[r15.w + 9].x + add r18.z, l(1.000000), -cb3[r15.w + 10].y + mul r17.w, r17.w, r18.z + mul r17.w, r17.w, l(100.000000) + mad_sat r17.w, r20.w, cb3[r15.w + 10].y, r17.w + mul r18.z, r17.w, cb3[r15.w + 10].w + mad r21.xy, r21.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r21.xy, r21.xyxx, cb3[1].wwww, cb3[2].wwww + mov r21.z, cb3[r15.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r21.xyz, r21.xyzx, t1.xyzw, s2, r0.w + mul r21.xyz, r21.xyzx, cb3[r15.w + 9].wwww + div r18.w, r4.w, r19.w + min r18.w, |r18.w|, l(1.000000) + mad r18.w, r18.w, l(2.000000), r4.w + add r19.w, r19.w, l(2.000000) + div r18.w, r18.w, r19.w + add r18.w, r18.w, l(-1.000000) + mad r18.w, r18.w, cb0[112].w, l(1.000000) + mul r21.xyz, r18.wwww, r21.xyzx + mul r21.xyz, r18.zzzz, r21.xyzx + mad r20.xyz, r21.xyzx, r8.wwww, r20.xyzx + mad r15.w, -r17.w, cb3[r15.w + 10].w, l(1.000000) + mul r8.w, r8.w, r15.w + endif + mov r13.w, l(-1) + continue + else + mov r13.w, r14.w + break + endif + mov r13.w, r14.w +endloop +if_nz r13.w + dp3 r1.w, r17.xyzx, r17.xyzx + rsq r1.w, r1.w + mul r21.xyz, r1.wwww, r17.xyzx + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + lt r23.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r22.xyz, -r22.xyzx, r23.xyzx + itof r22.xyz, r22.xyzx + dp3 r1.w, r21.xyzx, r22.xyzx + div r21.xyz, r21.xyzx, r1.wwww + lt r1.w, r21.z, l(0.000000) + add r18.zw, -|r21.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r18.zw, r18.zzzw, r22.xxxy + movc r18.zw, r1.wwww, r18.zzzw, r21.xxxy + mov r12.w, l(1.000000) + dp4 r1.w, cb3[3].xyzw, r12.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r18.zw, r18.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r21.xy, r18.zwzz, cb3[1].wwww, cb3[2].wwww + mov r21.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r21.xyz, r21.xyzx, t1.xyzw, s2, r0.w + div r0.w, r4.w, r1.w + min r0.w, |r0.w|, l(1.000000) + mad r0.w, r0.w, l(2.000000), r4.w + add r1.w, r1.w, l(2.000000) + div r0.w, r0.w, r1.w + add r0.w, r0.w, l(-1.000000) + mad r0.w, r0.w, cb0[112].w, l(1.000000) + mul r21.xyz, r0.wwww, r21.xyzx + mad r20.xyz, r21.xyzx, r8.wwww, r20.xyzx +endif +mul r19.xyz, r14.xyzx, r19.xyzx +add r0.w, r7.w, l(-1.000000) +mad r0.w, cb2[1].x, r0.w, l(1.000000) +mul r19.xyz, r0.wwww, r19.xyzx +mul r20.xyz, r20.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +lt r40.x, l(0.500000), cb13[14].x +if_nz r40.x + mul r20.xyz, r20.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) +endif +mul r20.xyz, r20.xyzx, cb0[111].yyyy +mul_sat r0.w, r15.y, l(50.000000) +mul r0.w, r3.w, r0.w +mad r21.xyz, r15.xyzx, r3.zzzz, r0.wwww +mul r20.xyz, r20.xyzx, r21.xyzx +mad r19.xyz, r19.xyzx, cb0[111].xxxx, r20.xyzx +lt r0.w, cb6[35].w, l(0.990000) +if_nz r0.w + ftoi r0.w, cb6[35].x + ieq r1.w, r0.w, l(2) + movc r20.xyz, r1.wwww, cb6[20].xyzx, cb0[44].xyzx + add r20.xyz, r1.xyzx, -r20.xyzx + dp3 r1.w, r20.xyzx, r20.xyzx + add r1.w, -r1.w, cb6[34].w + mul_sat r1.w, r1.w, cb6[34].z + lt r2.x, l(0.000000), r1.w + if_nz r2.x + ilt r0.w, l(0), r0.w + if_nz r0.w + add r20.xyz, r1.xyzx, -cb6[20].xyzx + add r21.xyz, r1.xyzx, -cb6[21].xyzx + add r22.xyz, r1.xyzx, -cb6[22].xyzx + add r23.xyz, r1.xyzx, -cb6[23].xyzx + dp3 r20.x, r20.xyzx, r20.xyzx + dp3 r20.y, r21.xyzx, r21.xyzx + dp3 r20.z, r22.xyzx, r22.xyzx + dp3 r20.w, r23.xyzx, r23.xyzx + lt r21.x, r20.x, cb6[20].w + lt r21.y, r20.y, cb6[21].w + lt r21.z, r20.z, cb6[22].w + lt r21.w, r20.w, cb6[23].w + and r22.xyzw, r21.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r21.xyz, r21.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r21.xyz, r21.xyzx, r22.yzwy + max r22.yzw, r21.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.w, r22.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.w, -r0.w, l(4.000000) + max r0.w, r0.w, l(0.000000) + min r0.w, r0.w, l(3.000000) + add r2.x, r0.w, l(1.000000) + min r2.x, r2.x, l(3.000000) + ftou r2.x, r2.x + dp3 r3.z, r20.yzwy, icb[r2.x + 0].yzwy + div r2.x, r3.z, cb6[r2.x + 20].w + ge r3.z, r2.x, l(0.000000) + ge r2.x, l(1.000000), r2.x + and r2.x, r2.x, r3.z + if_nz r2.x + ftou r2.x, r0.w + add r3.zw, r18.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r3.z, r3.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r3.z, r3.z + mul r3.z, r3.z, l(52.982918) + frc r3.z, r3.z + dp4 r3.w, r20.xyzw, icb[r2.x + 0].xyzw + div r2.x, r3.w, cb6[r2.x + 20].w + sqrt r2.x, r2.x + add r2.x, r2.x, l(-0.900000) + mul r2.x, r2.x, l(12.000000) + ge r2.x, r2.x, r3.z + and r2.x, r2.x, l(0x3f800000) + add r0.w, r0.w, r2.x + endif + dp3 r2.x, r12.xyzx, cb5[0].xyzx + max r2.x, r2.x, l(0.000000) + min r2.x, r2.x, l(0.900000) + add r2.x, -r2.x, l(1.000000) + ftou r3.z, r0.w + ishl r3.w, r3.z, l(2) + mul r18.zw, r2.xxxx, cb6[r3.z + 24].xxxy + max r2.x, r18.z, l(0.000000) + mad r20.xyz, -cb5[0].xyzx, r2.xxxx, r1.xyzx + mad r20.xyz, r12.xyzx, r18.wwww, r20.xyzx + mul r21.xyz, r20.yyyy, cb6[r3.w + 1].xyzx + mad r20.xyw, cb6[r3.w + 0].xyxz, r20.xxxx, r21.xyxz + mad r20.xyz, cb6[r3.w + 2].xyzx, r20.zzzz, r20.xywx + add r20.xyz, r20.xyzx, cb6[r3.w + 3].xyzx + ge r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + ge r22.xyz, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r21.xyz, r21.xyzx, r22.xyzx + or r2.x, r21.y, r21.x + or r2.x, r21.z, r2.x + and r3.z, r20.z, l(0x7fffffff) + ult r3.z, l(0x7f800000), r3.z + or r21.z, r2.x, r3.z + ftoi r0.w, r0.w + mad r3.zw, r20.xxxy, cb6[r0.w + 28].zzzw, cb6[r0.w + 28].xxxy + mad r18.zw, r3.zzzw, cb6[32].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) + round_ni r18.zw, r18.zzzw + mad r3.zw, r3.zzzw, cb6[32].zzzw, -r18.zzzw + add r22.xyzw, r3.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r23.xw, r22.xxxz, r22.xxxz + min r20.xy, r3.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r22.xz, r3.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r24.xy, r23.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r3.zwzz + add r3.zw, -r3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r3.zw, -r20.xxxy, r20.xxxy, r3.zzzw + mad r20.xy, -r22.xzxx, r22.xzxx, r22.ywyy + mov r22.x, r24.x + mov r22.y, r3.z + mov r22.z, r20.x + mov r22.w, r23.x + mul r22.xyzw, r22.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r23.x, r24.y + mov r23.y, r3.w + mov r23.z, r20.y + mul r23.xyzw, r23.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r24.xyzw, r22.ywyw, r22.xzxz + add r25.xyzw, r23.yyww, r23.xxzz + div r3.zw, r22.yyyw, r24.zzzw + add r3.zw, r3.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r22.xy, r3.zwzz, cb6[32].xxxx + div r3.zw, r23.yyyw, r25.yyyw + add r3.zw, r3.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r22.zw, r3.zzzw, cb6[32].yyyy + mul r23.xyzw, r24.xyzw, r25.xyzw + mad r24.xyzw, r18.zwzw, cb6[32].xyxy, r22.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r24.xyxx, t5.xxxx, s3, r20.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r24.zwzz, t5.xxxx, s3, r20.z + mul r2.x, r2.x, r23.y + mad r0.w, r23.x, r0.w, r2.x + mad r22.xyzw, r18.zwzw, cb6[32].xyxy, r22.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r22.xyxx, t5.xxxx, s3, r20.z + mad r0.w, r23.z, r2.x, r0.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r22.zwzz, t5.xxxx, s3, r20.z + mad r0.w, r23.w, r2.x, r0.w + movc r21.x, r21.z, l(1.000000), r0.w + else + mov r21.xz, l(1.000000,0,0,0) + endif + else + mov r21.xz, l(1.000000,0,0,0) + endif + lt r0.w, r1.w, l(1.000000) + if_nz r0.w + dp3 r0.w, r12.xyzx, cb5[0].xyzx + max r0.w, r0.w, l(0.000000) + min r0.w, r0.w, l(0.900000) + add r0.w, -r0.w, l(1.000000) + mul r3.zw, r0.wwww, cb6[584].xxxy + mad r20.xyz, -cb5[0].xyzx, r3.zzzz, r1.xyzx + mad r20.xyz, r12.xyzx, r3.wwww, r20.xyzx + mul r3.zw, r20.yyyy, cb6[581].xxxy + mad r3.zw, cb6[580].xxxy, r20.xxxx, r3.zzzw + mad r3.zw, cb6[582].xxxy, r20.zzzz, r3.zzzw + add r3.zw, r3.zzzw, cb6[583].xxxy + lt r18.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r3.zzzw + and r0.w, r18.w, r18.z + lt r18.zw, r3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + and r2.x, r18.w, r18.z + and r0.w, r0.w, r2.x + if_nz r0.w + mul r0.w, r3.w, cb6[585].z + round_ni r0.w, r0.w + add r0.w, r3.z, r0.w + mul r0.w, r0.w, cb6[585].y + ftou r0.w, r0.w + umin r0.w, r0.w, l(127) + and r2.x, l(0x0000ffff), cb6[r0.w + 587].x + f16tof32 r22.x, r2.x + ge r2.x, r22.x, l(0.000000) + if_nz r2.x + mov r23.x, cb6[576].x + mov r23.y, cb6[577].x + mov r23.z, cb6[578].x + mov r23.w, cb6[r0.w + 587].y + mov r20.w, l(1.000000) + dp4 r23.x, r23.xyzw, r20.xyzw + mov r24.x, cb6[576].y + mov r24.y, cb6[577].y + mov r24.z, cb6[578].y + mov r24.w, cb6[r0.w + 587].z + dp4 r23.y, r24.xyzw, r20.xyzw + mov r24.x, cb6[576].z + mov r24.y, cb6[577].z + mov r24.z, cb6[578].z + mov r24.w, cb6[r0.w + 587].w + dp4 r2.x, r24.xyzw, r20.xyzw + lt r3.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xxxy + lt r4.w, l(0.000000), r2.x + and r3.z, r3.w, r3.z + and r3.z, r4.w, r3.z + lt r18.zw, r23.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + lt r3.w, r2.x, l(1.000000) + and r4.w, r18.w, r18.z + and r3.w, r3.w, r4.w + and r3.z, r3.w, r3.z + if_nz r3.z + ushr r0.w, cb6[r0.w + 587].x, l(16) + f16tof32 r22.y, r0.w + mad r3.zw, r23.xxxy, cb6[584].zzzw, r22.xxxy + mad r18.zw, r3.zzzw, cb6[586].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) + round_ni r18.zw, r18.zzzw + mad r3.zw, r3.zzzw, cb6[586].zzzw, -r18.zzzw + add r20.xyzw, r3.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r22.xw, r20.xxxz, r20.xxxz + min r20.xz, r3.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r23.xy, r3.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r23.zw, r22.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r3.zzzw + add r3.zw, -r3.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r3.zw, -r20.xxxz, r20.xxxz, r3.zzzw + mad r20.xy, -r23.xyxx, r23.xyxx, r20.ywyy + mov r24.x, r23.z + mov r24.y, r3.z + mov r24.z, r20.x + mov r24.w, r22.x + mul r24.xyzw, r24.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r22.x, r23.w + mov r22.y, r3.w + mov r22.z, r20.y + mul r20.xyzw, r22.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r22.xyzw, r24.ywyw, r24.xzxz + add r23.xyzw, r20.yyww, r20.xxzz + div r3.zw, r24.yyyw, r22.zzzw + add r3.zw, r3.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r24.xy, r3.zwzz, cb6[586].xxxx + div r3.zw, r20.yyyw, r23.yyyw + add r3.zw, r3.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r24.zw, r3.zzzw, cb6[586].yyyy + mad r20.xyzw, r18.zwzw, cb6[586].xyxy, r24.xzyz + mad r24.xyzw, r18.zwzw, cb6[586].xyxy, r24.xwyw + mul r22.xyzw, r22.xyzw, r23.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r20.xyxx, t8.xxxx, s3, r2.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.z, r20.zwzz, t8.xxxx, s3, r2.x + mul r3.z, r3.z, r22.y + mad r0.w, r22.x, r0.w, r3.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.z, r24.xyxx, t8.xxxx, s3, r2.x + mad r0.w, r22.z, r3.z, r0.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r24.zwzz, t8.xxxx, s3, r2.x + mad r21.y, r22.w, r2.x, r0.w + else + mov r21.y, l(1.000000) + endif + else + mov r21.y, l(1.000000) + endif + else + mov r21.y, l(1.000000) + endif + movc r21.x, r21.z, r21.y, r21.x + else + mov r21.y, l(1.000000) + endif + add r0.w, -r21.y, r21.x + mad r0.w, r1.w, r0.w, r21.y + lt r1.w, l(0.001000), r0.w + if_nz r1.w + add r20.xyz, r1.xyzx, -cb0[173].xyzx + mad r3.zw, cb0[176].xxxz, r20.yyyy, r20.xxxz + mul r18.zw, r3.zzzw, cb0[174].zzzz + mul r20.yw, cb0[175].xxxy, cb0[183].wwww + mad r3.zw, r3.zzzw, cb0[174].zzzz, r20.yyyw + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r3.zwzz, t7.yzwx, s1, l(0.000000) + mad r3.zw, r18.zzzw, cb0[175].wwww, r20.yyyw + sample_l_indexable(texture2d)(float,float,float,float) r2.x, r3.zwzz, t7.xyzw, s1, l(0.000000) + dp2 r3.z, r20.xzxx, r20.xzxx + sqrt r3.z, r3.z + add r3.w, -cb0[174].x, cb0[174].y + add r3.z, r3.z, -cb0[174].x + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w + mul_sat r3.z, r3.w, r3.z + mad r3.w, r3.z, l(-2.000000), l(3.000000) + mul r3.z, r3.z, r3.z + mul r3.z, r3.z, r3.w + add r2.x, -r1.w, r2.x + mad r1.w, r3.z, r2.x, r1.w + add r1.w, r1.w, l(-1.000000) + mad r1.w, cb0[175].z, r1.w, l(1.000000) + mul r0.w, r0.w, r1.w + endif + add r1.w, -r0.w, cb6[35].z + mad r0.w, cb6[35].w, r1.w, r0.w +else + mov r0.w, cb6[35].z +endif +min r0.w, r0.w, l(1.000000) +add r0.w, r0.w, l(-1.000000) +mad r20.x, cb6[34].x, r0.w, l(1.000000) +lt r0.w, l(0.001000), r20.x +if_nz r0.w + dp3 r0.w, -cb5[0].xyzx, r17.xyzx + mad r21.xyz, cb5[0].xyzx, r0.wwww, r17.xyzx + lt r0.w, r0.w, cb5[4].z + dp3 r1.w, r21.xyzx, r21.xyzx + max r1.w, r1.w, l(0.0000610351562) + rsq r1.w, r1.w + mul r21.xyz, r1.wwww, r21.xyzx + mul r21.xyz, r21.xyzx, cb5[4].yyyy + mad r21.xyz, -cb5[0].xyzx, cb5[4].zzzz, r21.xyzx + dp3 r1.w, r21.xyzx, r21.xyzx + rsq r1.w, r1.w + mul r21.xyz, r1.wwww, r21.xyzx + movc r21.xyz, r0.wwww, r21.xyzx, r17.xyzx + mad r22.xyz, r2.yzwy, r3.yyyy, r21.xyzx + dp3 r0.w, r22.xyzx, r22.xyzx + max r0.w, r0.w, l(0.0000610351562) + rsq r0.w, r0.w + mul r22.xyz, r0.wwww, r22.xyzx + dp3_sat r10.y, r21.xyzx, r12.xyzx + dp3_sat r0.w, r12.xyzx, r22.xyzx + min r10.z, r0.z, l(1.000000) + mul r1.w, r10.w, r10.w + mul r1.w, r1.w, r1.w + mad r2.x, r0.w, r1.w, -r0.w + mad r0.w, r2.x, r0.w, l(1.000000) + dp3_sat r2.x, r5.xyzx, r22.xyzx + add r2.x, -r2.x, l(1.000000) + mul r3.z, r2.x, r2.x + mul r3.z, r3.z, r3.z + mul r3.w, r2.x, r3.z + add r4.w, -r10.w, l(1.000000) + mad r7.w, -r4.w, l(0.383026), l(-0.0761947036) + mad r7.w, r4.w, r7.w, l(1.049970) + mad r4.w, r4.w, r7.w, l(0.409255) + min r4.w, r4.w, l(0.999000) + add r7.w, -r4.w, l(1.000000) + add r21.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r21.xyz, r21.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r15.xyzx + mad r2.x, -r3.z, r2.x, l(1.000000) + mad r22.xyz, r15.xyzx, r2.xxxx, r3.wwww + mul r0.w, r0.w, r0.w + div r0.w, r1.w, r0.w + mad r3.zw, -r10.zzzy, r1.wwww, r10.zzzy + mad r3.zw, r3.zzzw, r10.zzzy, r1.wwww + sqrt r3.zw, r3.zzzw + mul r3.zw, r3.zzzw, r10.yyyz + add r1.w, r3.w, r3.z + add r1.w, r1.w, l(0.000100) + div r1.w, l(0.500000), r1.w + mul r0.w, r0.w, r1.w + mul r22.xyz, r0.wwww, r22.xyzx + min r22.xyz, r22.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r23.xyzw, r10.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.w, r23.xyxx, t10.yzwx, s0, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r23.zwzz, t10.yzwx, s0, l(0.000000) + mul r0.w, r0.w, r1.w + mul r0.w, r4.w, r0.w + div r0.w, r0.w, r7.w + mul r23.xyz, r21.xyzx, r21.xyzx + mul r23.xyz, r0.wwww, r23.xyzx + mad r21.xyz, -r21.xyzx, r7.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r21.xyz, r23.xyzx, r21.xyzx + add r21.xyz, r21.xyzx, r22.xyzx + mul r21.xyz, r21.xyzx, cb5[4].xxxx + // === Glass Fix: Reduce sun specular intensity === + lt r40.x, l(0.500000), cb13[14].x + if_nz r40.x + mul r21.xyz, r21.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + endif + max r21.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r21.xyz, r21.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r22.xyz, r10.yyyy, r14.xyzx + mad r21.xyz, r21.xyzx, r10.yyyy, r22.xyzx + mul r21.xyz, r21.xyzx, cb5[1].xyzx + mov r20.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r20.yzw, r20.xyxx, t9.wxyz, s0, cb0[108].x + add r0.w, -r20.x, l(1.000000) + mad r20.xyz, r21.xyzx, r20.yzwy, -r21.xyzx + mad r20.xyz, r0.wwww, r20.xyzx, r21.xyzx +else + mov r20.xyz, l(0,0,0,0) +endif +mul r3.zw, r18.xxxy, l(0.000000, 0.000000, 0.031250, 0.031250) +round_ni r3.zw, r3.zzzw +mad r0.w, r3.w, cb4[1].y, r3.z +mul r0.w, r0.w, l(8.000000) +ftoi r0.w, r0.w +mad r1.w, -cb0[85].y, cb4[2].w, r16.z +round_ni r1.w, r1.w +add r2.x, l(-1.000000), cb4[1].w +max r3.z, r1.w, l(0.000000) +min r2.x, r2.x, r3.z +mul r3.z, r2.x, l(8.000000) +ftoi r3.z, r3.z +ge r1.w, r2.x, r1.w +iadd r2.x, r3.z, cb0[110].y +mul r3.z, r10.w, r10.w +min r10.x, r0.z, l(1.000000) +add r0.z, -r10.w, l(1.000000) +mad r3.w, -r0.z, l(0.383026), l(-0.0761947036) +mad r3.w, r0.z, r3.w, l(1.049970) +mad r0.z, r0.z, r3.w, l(0.409255) +min r0.z, r0.z, l(0.999000) +add r3.w, -r0.z, l(1.000000) +add r21.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r21.xyz, r21.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r15.xyzx +mad r10.yz, r10.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r4.w, r10.yzyy, t10.yzwx, s0, l(0.000000) +mad r22.xyz, -r21.xyzx, r3.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r21.xyz, r21.xyzx, r21.xyzx +mov r23.w, l(1.000000) +mov r24.y, l(1.000000) +mov r25.z, r10.w +mov r26.xyz, l(0,0,0,0) +mov r7.w, l(1.000000) +mov r8.w, l(0) +loop + ilt r10.y, l(7), r8.w + breakc_nz r10.y + iadd r10.y, r0.w, r8.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.y, r10.y, l(0), t0.xxxx + iadd r10.z, r2.x, r8.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.z, r10.z, l(0), t0.xxxx + and r10.y, r10.z, r10.y + and r10.y, r1.w, r10.y + ishl r10.z, r8.w, l(5) + mov r27.xyz, l(0,0,0,0) + mov r11.w, r7.w + mov r12.w, r10.y + loop + breakc_z r12.w + firstbit_lo r13.w, r12.w + ishl r14.w, l(1), r13.w + xor r14.w, r12.w, r14.w + iadd r13.w, r10.z, r13.w + bfi r28.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r13.wwww, l(1, 3, 5, 6) + bfi r15.w, l(29), l(3), r13.w, l(7) + ftou r17.w, cb5[r28.z + 6].w + ieq r17.w, r17.w, l(1) + if_nz r17.w + add r23.xyz, r1.xyzx, -cb5[r28.x + 6].xyzx + and r29.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r28.z + 6].xzyx + and r30.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r28.w + 6].yxzy + ushr r31.xyz, cb5[r28.z + 6].xzyx, l(16, 16, 16, 0) + ushr r32.xyz, cb5[r28.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r29.xyz, r29.xyzx + f16tof32 r30.xyz, r30.xyzx + f16tof32 r31.xyz, r31.xyzx + f16tof32 r32.xyw, r32.yxyz + mov r33.xz, r29.xxzx + mov r33.yw, r31.xxxz + dp4 r17.w, r23.xyzw, r33.xyzw + mov r31.x, r29.y + mov r31.z, r30.y + mov r31.w, r32.x + dp4 r18.z, r23.xyzw, r31.xyzw + mov r32.xz, r30.xxzx + dp4 r18.w, r23.xyzw, r32.xyzw + max r17.w, |r17.w|, |r18.z| + max r17.w, |r18.w|, r17.w + mad r18.z, cb5[r15.w + 6].x, l(0.500000), l(0.500000) + add r17.w, r17.w, -r18.z + mad r18.z, -cb5[r15.w + 6].x, l(0.500000), l(0.500000) + div_sat r17.w, r17.w, r18.z + add r17.w, -r17.w, l(1.000000) + mul r17.w, r17.w, r17.w + else + mov r17.w, l(1.000000) + endif + lt r18.z, l(0.500000), cb5[r28.y + 6].z + lt r18.w, r17.w, l(0.001000) + or r18.w, r18.z, r18.w + if_nz r18.w + mov r12.w, r14.w + continue + endif + ishl r18.w, r13.w, l(3) + bfi r13.w, l(29), l(3), r13.w, l(2) + lt r19.w, cb5[r18.w + 6].w, l(1.500000) + if_nz r19.w + mad r19.w, cb5[r13.w + 6].y, l(0.500000), l(0.500000) + add r23.x, r19.w, -|cb5[r13.w + 6].x| + add r23.y, -r23.x, cb5[r13.w + 6].y + add r19.w, -|r23.x|, l(1.000000) + add r19.w, -|r23.y|, r19.w + max r19.w, r19.w, l(0.000488281250) + ge r20.w, cb5[r13.w + 6].x, l(0.000000) + movc r23.z, r20.w, r19.w, -r19.w + dp3 r19.w, r23.xyzx, r23.xyzx + rsq r19.w, r19.w + mul r23.xyz, r19.wwww, r23.xyzx + add r29.xyz, -r1.xyzx, cb5[r28.x + 6].xyzx + dp3 r19.w, r29.xyzx, r29.xyzx + rsq r20.w, r19.w + mul r30.xyz, r20.wwww, r29.xyzx + ftoi r21.w, cb5[r15.w + 6].w + mul r31.xyz, r23.xyzx, cb5[r13.w + 6].zzzz + mad r32.xyz, -r31.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r29.xyzx + mad r33.xyz, r31.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r29.xyzx + ftou r22.w, cb5[r18.w + 6].w + and r22.w, r22.w, l(1) + ieq r24.z, r22.w, l(0) + not r24.z, r24.z + lt r24.w, l(0.000000), cb5[r13.w + 6].z + and r24.z, r24.w, r24.z + dp3 r24.w, r32.xyzx, r32.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r33.xyzx, r33.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r12.xyzx, r32.xyzx + div r26.w, r26.w, r24.w + dp3 r27.w, r12.xyzx, r33.xyzx + div r27.w, r27.w, r25.w + add r26.w, r26.w, r27.w + mul_sat r34.x, r26.w, l(0.500000) + dp3 r26.w, r32.xyzx, r33.xyzx + mad r24.w, r24.w, r25.w, r26.w + mad r24.w, r24.w, l(0.500000), l(1.000000) + div r34.y, l(1.000000, 1.000000, 1.000000, 1.000000), r24.w + dp3_sat r24.x, r12.xyzx, r30.xyzx + movc r25.xy, r24.zzzz, r34.xyxx, r24.xyxx + lt r24.x, cb5[r28.w + 6].w, l(0.000000) + if_nz r24.x + mul r24.x, cb5[r28.x + 6].w, cb5[r28.x + 6].w + mul r24.x, r19.w, r24.x + mad r24.x, -r24.x, r24.x, l(1.000000) + max r24.x, r24.x, l(0.000000) + add r19.w, r19.w, l(1.000000) + div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w + and r24.w, r24.z, l(0x3f800000) + add r25.w, -r19.w, r25.y + mad r19.w, r24.w, r25.w, r19.w + mul r24.x, r24.x, r24.x + mul r19.w, r19.w, r24.x + else + mul r33.xyz, r29.xyzx, cb5[r28.x + 6].wwww + dp3 r24.x, r33.xyzx, r33.xyzx + min r24.x, r24.x, l(1.000000) + add r24.x, -r24.x, l(1.000000) + log r24.x, r24.x + mul r24.x, r24.x, cb5[r28.w + 6].w + exp r24.x, r24.x + mul r19.w, r24.x, r25.y + endif + dp3 r23.x, r30.xyzx, -r23.xyzx + add r23.x, r23.x, -cb5[r13.w + 6].z + mul_sat r23.x, r23.x, cb5[r13.w + 6].w + mul r23.x, r23.x, r23.x + movc r23.x, r22.w, l(1.000000), r23.x + mul r19.w, r19.w, r23.x + not r23.x, r24.z + ige r23.y, r21.w, l(0) + and r23.x, r23.y, r23.x + if_nz r23.x + if_z r22.w + ishl r23.x, r21.w, l(2) + mul r33.xyz, r1.yyyy, cb7[r23.x + 33].xywx + mad r33.xyz, cb7[r23.x + 32].xywx, r1.xxxx, r33.xyzx + mad r33.xyz, cb7[r23.x + 34].xywx, r1.zzzz, r33.xyzx + add r23.xyz, r33.xyzx, cb7[r23.x + 35].xywx + div_sat r23.xy, r23.xyxx, r23.zzzz + mad r23.xy, r23.xyxx, cb7[r21.w + 0].zwzz, cb7[r21.w + 0].xyxx + else + ishl r23.z, r21.w, l(2) + dp3 r33.x, -r29.xyzx, cb7[r23.z + 32].xyzx + dp3 r33.y, -r29.xyzx, cb7[r23.z + 33].xyzx + dp3 r33.z, -r29.xyzx, cb7[r23.z + 34].xyzx + lt r23.z, |r33.x|, |r33.y| + and r23.z, r23.z, l(1) + dp2 r24.x, |r33.xyxx|, icb[r23.z + 0].xyxx + lt r24.x, r24.x, |r33.z| + movc r23.z, r24.x, l(2), r23.z + dp3 r24.x, r33.xyzx, icb[r23.z + 0].xyzx + lt r24.x, r24.x, l(0.000000) + bfi r23.z, l(31), l(1), r23.z, r24.x + ushr r24.x, r23.z, l(1) + dp3 r24.x, r33.xyzx, icb[r24.x + 0].xyzx + div r24.w, l(0.000244140625), cb7[r21.w + 0].w + add r24.w, -r24.w, l(0.500000) + utof r25.y, r23.z + ult r25.w, r23.z, l(2) + and r25.w, r25.w, l(2) + dp2 r25.w, r33.xzxx, icb[r25.w + 0].xzxx + mul r25.w, r25.w, icb[r23.z + 4].z + div r25.w, r25.w, |r24.x| + mad r25.y, r25.w, r24.w, r25.y + add r25.y, r25.y, l(0.500000) + mul_sat r29.x, r25.y, l(0.166666672) + iadd r25.y, l(-1), icb[r23.z + 4].y + dp2 r25.y, r33.yzyy, icb[r25.y + 0].xyxx + mul r23.z, r25.y, icb[r23.z + 4].w + div r23.z, r23.z, |r24.x| + mad_sat r29.y, -r23.z, r24.w, l(0.500000) + mad r23.xy, r29.xyxx, cb7[r21.w + 0].zwzz, cb7[r21.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r21.w, r23.xyxx, t18.yzwx, s0, l(0.000000) + mul r19.w, r19.w, r21.w + endif + lt r21.w, l(0.000000), r19.w + if_nz r21.w + if_z r22.w + ftoi r22.w, cb5[r28.y + 6].x + else + add r23.xyz, r1.xyzx, -cb5[r28.x + 6].xyzx + lt r29.xyz, |r23.yzzy|, |r23.xxyx| + and r24.x, r29.y, r29.x + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + ushr r24.w, cb5[r13.w + 6].w, l(24) + ubfe r25.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb5[r13.w + 6].wwww + movc r23.x, r23.x, r24.w, r25.y + and r24.w, l(255), cb5[r13.w + 6].w + movc r23.y, r23.y, r25.w, r24.w + ubfe r24.w, l(8), l(8), cb5[r28.y + 6].x + and r25.y, l(255), cb5[r28.y + 6].x + movc r23.z, r23.z, r24.w, r25.y + movc r23.y, r29.z, r23.y, r23.z + movc r23.x, r24.x, r23.x, r23.y + ilt r23.y, r23.x, l(80) + movc r22.w, r23.y, r23.x, l(-1) + endif + ishl r23.x, r22.w, l(2) + mad r29.xyz, r30.xyzx, cb6[r22.w + 288].xxxx, r1.xyzx + mul r23.y, l(5.000000), cb6[r22.w + 288].y + mad r29.xyz, r12.xyzx, r23.yyyy, r29.xyzx + mul r33.xyzw, r29.yyyy, cb6[r23.x + 65].xyzw + mad r33.xyzw, cb6[r23.x + 64].xyzw, r29.xxxx, r33.xyzw + mad r29.xyzw, cb6[r23.x + 66].xyzw, r29.zzzz, r33.xyzw + add r29.xyzw, r29.xyzw, cb6[r23.x + 67].xyzw + div r23.xyz, r29.xyzx, r29.wwww + ge r29.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + ge r33.xyz, r23.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r24.xw, -cb6[r22.w + 344].xxxy, cb6[r22.w + 344].zzzw + mad r23.xy, r23.xyxx, r24.xwxx, cb6[r22.w + 344].xyxx + mad r24.xw, r23.xxxy, cb6[400].zzzw, l(0.500000, 0.000000, 0.000000, 0.500000) + round_ni r24.xw, r24.xxxw + mad r23.xy, r23.xyxx, cb6[400].zwzz, -r24.xwxx + add r34.xyzw, r23.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r35.xyzw, r34.xxzz, r34.xxzz + add r25.yw, -r23.xxxy, l(0.000000, 1.000000, 0.000000, 1.000000) + min r34.xz, r23.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r36.xy, r23.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r37.xy, r25.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r36.xy, -r36.xyxx, r36.xyxx, r34.ywyy + add r36.xy, r36.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r36.xy, r36.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r35.xz, r35.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r23.xy, r35.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r23.xyxx + mul r38.xy, r23.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r23.xy, -r34.xzxx, r34.xzxx, r25.ywyy + add r23.xy, r23.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r39.xy, r23.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r23.xy, r34.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r38.z, r39.x + mov r38.w, r23.x + mov r37.z, r36.x + mov r37.w, r35.x + add r34.xyzw, r37.zwxz, r38.zwxz + mov r39.z, r38.y + mov r39.w, r23.y + mov r36.z, r37.y + mov r36.w, r35.z + add r35.xyz, r36.zywz, r39.zywz + div r37.xyz, r37.xzwx, r34.zwyz + add r37.xyz, r37.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r37.xyz, r37.xyzx, cb6[400].xxxx + div r36.xyz, r36.zywz, r35.xyzx + add r36.xyz, r36.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r36.xyw, r36.xyxz, cb6[400].yyyy + mul r38.xyzw, r34.zwyz, r35.xxxy + mov r37.w, r36.x + mad r39.xyzw, r24.xwxw, cb6[400].xyxy, r37.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r39.xyxx, t6.xxxx, s3, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r39.zwzz, t6.xxxx, s3, r23.z + mul r23.y, r23.y, r38.y + mad r23.x, r38.x, r23.x, r23.y + mad r25.yw, r24.xxxw, cb6[400].xxxy, r37.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r25.ywyy, t6.xxxx, s3, r23.z + mad r23.x, r38.z, r23.y, r23.x + mov r36.z, r37.x + mad r39.xyzw, r24.xwxw, cb6[400].xyxy, r36.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r39.xyxx, t6.xxxx, s3, r23.z + mad r23.x, r38.w, r23.y, r23.x + mul r38.xyzw, r34.xyzw, r35.yyzz + mov r36.xz, r37.yyzy + mad r37.xyzw, r24.xwxw, cb6[400].xyxy, r36.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r37.xyxx, t6.xxxx, s3, r23.z + mad r23.x, r38.x, r23.y, r23.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r37.zwzz, t6.xxxx, s3, r23.z + mad r23.x, r38.y, r23.y, r23.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r39.zwzz, t6.xxxx, s3, r23.z + mad r23.x, r38.z, r23.y, r23.x + ige r23.y, r22.w, l(0) + or r29.xyz, r29.xyzx, r33.xyzx + or r25.y, r29.y, r29.x + or r25.y, r29.z, r25.y + and r25.w, r23.z, l(0x7fffffff) + ult r25.w, l(0x7f800000), r25.w + or r25.y, r25.w, r25.y + mad r29.xyzw, r24.xwxw, cb6[400].xyxy, r36.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.x, r29.xyxx, t6.xxxx, s3, r23.z + mad r23.x, r38.w, r24.x, r23.x + mul r24.x, r34.y, r35.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.z, r29.zwzz, t6.xxxx, s3, r23.z + mad r23.x, r24.x, r23.z, r23.x + add r23.x, r23.x, l(-1.000000) + mad r22.w, cb6[r22.w + 288].w, r23.x, l(1.000000) + movc r22.w, r25.y, l(1.000000), r22.w + movc r22.w, r23.y, r22.w, l(1.000000) + else + mov r22.w, l(1.000000) + endif + if_nz r24.z + dp3 r23.x, r17.xyzx, r31.xyzx + mul_sat r23.y, r20.w, cb5[r13.w + 6].z + mad r23.y, r23.y, l(0.500000), r3.z + min r23.y, r23.y, l(1.000000) + div r23.y, r3.z, r23.y + mad r24.xzw, r17.xxyz, r23.xxxx, -r31.xxyz + dp3 r23.z, r32.xyzx, r24.xzwx + mul r23.x, r23.x, r23.x + mad r23.x, cb5[r13.w + 6].z, cb5[r13.w + 6].z, -r23.x + div_sat r23.x, r23.z, r23.x + mad r24.xzw, r31.xxyz, r23.xxxx, r32.xxyz + dp3 r23.x, r24.xzwx, r24.xzwx + rsq r23.x, r23.x + mul r30.xyz, r23.xxxx, r24.xzwx + else + mov r23.y, l(1.000000) + endif + if_nz r21.w + mul_sat r20.w, r20.w, cb5[r15.w + 6].y + mad r24.xzw, r2.yyzw, r3.yyyy, r30.xxyz + dp3 r21.w, r24.xzwx, r24.xzwx + max r21.w, r21.w, l(0.0000610351562) + rsq r21.w, r21.w + mul r24.xzw, r21.wwww, r24.xxzw + dp3_sat r21.w, r12.xyzx, r24.xzwx + dp3_sat r23.x, r5.xyzx, r24.xzwx + lt r23.z, l(0.000000), r20.w + mul r20.w, r20.w, r20.w + mad r24.x, r23.x, l(3.600000), l(0.400000) + div r20.w, r20.w, r24.x + mad r20.w, r10.w, r10.w, r20.w + min r20.w, r20.w, l(1.000000) + movc r20.w, r23.z, r20.w, r3.z + mul r20.w, r20.w, r20.w + mad r23.z, r21.w, r20.w, -r21.w + mad r21.w, r23.z, r21.w, l(1.000000) + add r23.x, -r23.x, l(1.000000) + mul r23.z, r23.x, r23.x + mul r23.z, r23.z, r23.z + mul r24.x, r23.x, r23.z + mad r23.x, -r23.z, r23.x, l(1.000000) + mad r24.xzw, r15.xxyz, r23.xxxx, r24.xxxx + mul r21.w, r21.w, r21.w + div r21.w, r20.w, r21.w + mul r21.w, r23.y, r21.w + mad r23.x, -r10.x, r20.w, r10.x + mad r23.x, r23.x, r10.x, r20.w + sqrt r23.x, r23.x + mad r23.y, -r25.x, r20.w, r25.x + mad r20.w, r23.y, r25.x, r20.w + sqrt r20.w, r20.w + mul r20.w, r10.x, r20.w + mad r20.w, r25.x, r23.x, r20.w + add r20.w, r20.w, l(0.000100) + div r20.w, l(0.500000), r20.w + mul r20.w, r20.w, r21.w + mul r23.xyz, r20.wwww, r24.xzwx + min r23.xyz, r23.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r24.xz, r25.xxzx, l(0.968750, 0.000000, 0.968750, 0.000000), l(0.015625, 0.000000, 0.015625, 0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r20.w, r24.xzxx, t10.yzwx, s0, l(0.000000) + mul r20.w, r4.w, r20.w + mul r20.w, r0.z, r20.w + div r20.w, r20.w, r3.w + mul r24.xzw, r20.wwww, r21.xxyz + div r24.xzw, r24.xxzw, r22.xxyz + add r23.xyz, r23.xyzx, r24.xzwx + mul r23.xyz, r23.xyzx, cb5[r15.w + 6].zzzz + max r23.xyz, r23.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r23.xyz, r23.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r24.xzw, r14.xxyz, r25.xxxx + mad r23.xyz, r23.xyzx, r25.xxxx, r24.xzwx + mul r24.xzw, r19.wwww, cb5[r18.w + 6].xxyz + mul r24.xzw, r22.wwww, r24.xxzw + mul r24.xzw, r17.wwww, r24.xxzw + mul r23.xyz, r23.xyzx, r24.xzwx + else + mov r23.xyz, l(0,0,0,0) + endif + else + if_z r18.z + mad r17.w, cb5[r13.w + 6].y, l(0.500000), l(0.500000) + add r29.x, r17.w, -|cb5[r13.w + 6].x| + add r29.y, -r29.x, cb5[r13.w + 6].y + add r17.w, -|r29.x|, l(1.000000) + add r17.w, -|r29.y|, r17.w + max r17.w, r17.w, l(0.000488281250) + ge r18.z, cb5[r13.w + 6].x, l(0.000000) + movc r29.z, r18.z, r17.w, -r17.w + dp3 r17.w, r29.xyzx, r29.xyzx + rsq r17.w, r17.w + mul r24.xzw, r17.wwww, r29.xxyz + add r25.xyw, -r1.xyxz, cb5[r28.x + 6].xyxz + dp3 r17.w, r25.xywx, r25.xywx + rsq r18.z, r17.w + mul r29.xyz, r18.zzzz, r25.xywx + ftoi r15.w, cb5[r15.w + 6].w + mul r30.xyz, r24.xzwx, cb5[r13.w + 6].zzzz + mad r31.xyz, -r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xywx + mad r30.xyz, r30.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xywx + ftou r18.z, cb5[r18.w + 6].w + and r18.z, r18.z, l(1) + ieq r18.w, r18.z, l(0) + not r18.w, r18.w + lt r19.w, l(0.000000), cb5[r13.w + 6].z + and r18.w, r18.w, r19.w + dp3 r19.w, r31.xyzx, r31.xyzx + sqrt r19.w, r19.w + dp3 r20.w, r30.xyzx, r30.xyzx + sqrt r20.w, r20.w + dp3 r21.w, r31.xyzx, r30.xyzx + mad r19.w, r19.w, r20.w, r21.w + mad r19.w, r19.w, l(0.500000), l(1.000000) + div r19.w, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w + movc r19.w, r18.w, r19.w, l(1.000000) + lt r20.w, cb5[r28.w + 6].w, l(0.000000) + if_nz r20.w + mul r20.w, cb5[r28.x + 6].w, cb5[r28.x + 6].w + mul r20.w, r17.w, r20.w + mad r20.w, -r20.w, r20.w, l(1.000000) + max r20.w, r20.w, l(0.000000) + add r17.w, r17.w, l(1.000000) + div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), r17.w + and r21.w, r18.w, l(0x3f800000) + add r22.w, -r17.w, r19.w + mad r17.w, r21.w, r22.w, r17.w + mul r20.w, r20.w, r20.w + mul r17.w, r17.w, r20.w + else + mul r30.xyz, r25.xywx, cb5[r28.x + 6].wwww + dp3 r20.w, r30.xyzx, r30.xyzx + min r20.w, r20.w, l(1.000000) + add r20.w, -r20.w, l(1.000000) + log r20.w, r20.w + mul r20.w, r20.w, cb5[r28.w + 6].w + exp r20.w, r20.w + mul r17.w, r19.w, r20.w + endif + dp3 r19.w, r29.xyzx, -r24.xzwx + add r19.w, r19.w, -cb5[r13.w + 6].z + mul_sat r19.w, r19.w, cb5[r13.w + 6].w + mul r19.w, r19.w, r19.w + movc r19.w, r18.z, l(1.000000), r19.w + mul r17.w, r17.w, r19.w + not r18.w, r18.w + ige r19.w, r15.w, l(0) + and r18.w, r18.w, r19.w + if_nz r18.w + if_z r18.z + ishl r18.w, r15.w, l(2) + mul r24.xzw, r1.yyyy, cb7[r18.w + 33].xxyw + mad r24.xzw, cb7[r18.w + 32].xxyw, r1.xxxx, r24.xxzw + mad r24.xzw, cb7[r18.w + 34].xxyw, r1.zzzz, r24.xxzw + add r24.xzw, r24.xxzw, cb7[r18.w + 35].xxyw + div_sat r24.xz, r24.xxzx, r24.wwww + mad r24.xz, r24.xxzx, cb7[r15.w + 0].zzwz, cb7[r15.w + 0].xxyx + else + ishl r18.w, r15.w, l(2) + dp3 r30.x, -r25.xywx, cb7[r18.w + 32].xyzx + dp3 r30.y, -r25.xywx, cb7[r18.w + 33].xyzx + dp3 r30.z, -r25.xywx, cb7[r18.w + 34].xyzx + lt r18.w, |r30.x|, |r30.y| + and r18.w, r18.w, l(1) + dp2 r19.w, |r30.xyxx|, icb[r18.w + 0].xyxx + lt r19.w, r19.w, |r30.z| + movc r18.w, r19.w, l(2), r18.w + dp3 r19.w, r30.xyzx, icb[r18.w + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r18.w, l(31), l(1), r18.w, r19.w + ushr r19.w, r18.w, l(1) + dp3 r19.w, r30.xyzx, icb[r19.w + 0].xyzx + div r20.w, l(0.000244140625), cb7[r15.w + 0].w + add r20.w, -r20.w, l(0.500000) + utof r21.w, r18.w + ult r22.w, r18.w, l(2) + and r22.w, r22.w, l(2) + dp2 r22.w, r30.xzxx, icb[r22.w + 0].xzxx + mul r22.w, r22.w, icb[r18.w + 4].z + div r22.w, r22.w, |r19.w| + mad r21.w, r22.w, r20.w, r21.w + add r21.w, r21.w, l(0.500000) + mul_sat r25.x, r21.w, l(0.166666672) + iadd r21.w, l(-1), icb[r18.w + 4].y + dp2 r21.w, r30.yzyy, icb[r21.w + 0].xyxx + mul r18.w, r21.w, icb[r18.w + 4].w + div r18.w, r18.w, |r19.w| + mad_sat r25.y, -r18.w, r20.w, l(0.500000) + mad r24.xz, r25.xxyx, cb7[r15.w + 0].zzwz, cb7[r15.w + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r15.w, r24.xzxx, t18.yzwx, s0, l(0.000000) + mul r17.w, r15.w, r17.w + endif + lt r15.w, l(0.000000), r17.w + if_nz r15.w + if_z r18.z + ftoi r15.w, cb5[r28.y + 6].x + else + add r24.xzw, r1.xxyz, -cb5[r28.x + 6].xxyz + lt r25.xyw, |r24.zwzw|, |r24.xxxz| + and r17.w, r25.y, r25.x + lt r24.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xxzw + ushr r18.z, cb5[r13.w + 6].w, l(24) + ubfe r25.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r13.w + 6].wwww + movc r18.z, r24.x, r18.z, r25.x + and r13.w, l(255), cb5[r13.w + 6].w + movc r13.w, r24.z, r25.y, r13.w + ubfe r18.w, l(8), l(8), cb5[r28.y + 6].x + and r19.w, l(255), cb5[r28.y + 6].x + movc r18.w, r24.w, r18.w, r19.w + movc r13.w, r25.w, r13.w, r18.w + movc r13.w, r17.w, r18.z, r13.w + ilt r17.w, r13.w, l(80) + movc r15.w, r17.w, r13.w, l(-1) + endif + ishl r13.w, r15.w, l(2) + mad r24.xzw, r29.xxyz, cb6[r15.w + 288].xxxx, r1.xxyz + mul r17.w, l(5.000000), cb6[r15.w + 288].y + mad r24.xzw, r12.xxyz, r17.wwww, r24.xxzw + mul r28.xyzw, r24.zzzz, cb6[r13.w + 65].xyzw + mad r28.xyzw, cb6[r13.w + 64].xyzw, r24.xxxx, r28.xyzw + mad r28.xyzw, cb6[r13.w + 66].xyzw, r24.wwww, r28.xyzw + add r28.xyzw, r28.xyzw, cb6[r13.w + 67].xyzw + div r24.xzw, r28.xxyz, r28.wwww + ge r25.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xzxw + ge r28.xyz, r24.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r18.zw, -cb6[r15.w + 344].xxxy, cb6[r15.w + 344].zzzw + mad r18.zw, r24.xxxz, r18.zzzw, cb6[r15.w + 344].xxxy + mad r24.xz, r18.zzwz, cb6[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) + round_ni r24.xz, r24.xxzx + mad r18.zw, r18.zzzw, cb6[400].zzzw, -r24.xxxz + add r29.xyzw, r18.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r30.xyzw, r29.xxzz, r29.xxzz + add r29.xz, -r18.zzwz, l(1.000000, 0.000000, 1.000000, 0.000000) + min r31.xy, r18.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r31.zw, r18.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r32.xy, r29.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r31.zw, -r31.zzzw, r31.zzzw, r29.yyyw + add r31.zw, r31.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r33.xy, r31.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r30.xz, r30.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r18.zw, r30.yyyw, l(0.000000, 0.000000, 0.500000, 0.500000), -r18.zzzw + mul r34.xy, r18.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r18.zw, -r31.xxxy, r31.xxxy, r29.xxxz + add r18.zw, r18.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r31.xy, r18.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r18.zw, r29.yyyw, l(0.000000, 0.000000, 0.160000, 0.160000) + mov r34.z, r31.x + mov r34.w, r18.z + mov r32.z, r33.x + mov r32.w, r30.x + add r29.xyzw, r32.zwxz, r34.zwxz + mov r31.z, r34.y + mov r31.w, r18.w + mov r33.z, r32.y + mov r33.w, r30.z + add r30.xyz, r31.zywz, r33.zywz + div r31.xyz, r32.xzwx, r29.zwyz + add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r31.xyz, r31.xyzx, cb6[400].xxxx + div r32.xyz, r33.zywz, r30.xyzx + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyw, r32.xyxz, cb6[400].yyyy + mul r33.xyzw, r29.zwyz, r30.xxxy + mov r31.w, r32.x + mad r34.xyzw, r24.xzxz, cb6[400].xyxy, r31.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r13.w, r34.xyxx, t6.xxxx, s3, r24.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r34.zwzz, t6.xxxx, s3, r24.w + mul r17.w, r17.w, r33.y + mad r13.w, r33.x, r13.w, r17.w + mad r18.zw, r24.xxxz, cb6[400].xxxy, r31.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r18.zwzz, t6.xxxx, s3, r24.w + mad r13.w, r33.z, r17.w, r13.w + mov r32.z, r31.x + mad r34.xyzw, r24.xzxz, cb6[400].xyxy, r32.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r34.xyxx, t6.xxxx, s3, r24.w + mad r13.w, r33.w, r17.w, r13.w + mul r33.xyzw, r29.xyzw, r30.yyzz + mov r32.xz, r31.yyzy + mad r31.xyzw, r24.xzxz, cb6[400].xyxy, r32.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r31.xyxx, t6.xxxx, s3, r24.w + mad r13.w, r33.x, r17.w, r13.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r31.zwzz, t6.xxxx, s3, r24.w + mad r13.w, r33.y, r17.w, r13.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r34.zwzz, t6.xxxx, s3, r24.w + mad r13.w, r33.z, r17.w, r13.w + ige r17.w, r15.w, l(0) + or r25.xyw, r25.xyxw, r28.xyxz + or r18.z, r25.y, r25.x + or r18.z, r25.w, r18.z + and r18.w, r24.w, l(0x7fffffff) + ult r18.w, l(0x7f800000), r18.w + or r18.z, r18.w, r18.z + mad r28.xyzw, r24.xzxz, cb6[400].xyxy, r32.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r28.xyxx, t6.xxxx, s3, r24.w + mad r13.w, r33.w, r18.w, r13.w + mul r18.w, r29.y, r30.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.w, r28.zwzz, t6.xxxx, s3, r24.w + mad r13.w, r18.w, r19.w, r13.w + add r13.w, r13.w, l(-1.000000) + mad r13.w, cb6[r15.w + 288].w, r13.w, l(1.000000) + movc r13.w, r18.z, l(1.000000), r13.w + movc r13.w, r17.w, r13.w, l(1.000000) + else + mov r13.w, l(1.000000) + endif + else + mov r13.w, l(1.000000) + endif + mul r11.w, r11.w, r13.w + mov r23.xyz, l(0,0,0,0) + endif + add r27.xyz, r23.xyzx, r27.xyzx + mov r12.w, r14.w + endloop + mov r7.w, r11.w + add r26.xyz, r26.xyzx, r27.xyzx + iadd r8.w, r8.w, l(1) +endloop +// === Glass Fix: Reduce clustered lights and overall brightness === +lt r40.x, l(0.500000), cb13[14].x +if_nz r40.x + mul r26.xyz, r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r19.xyz, r19.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) +endif +dp3 r0.z, r19.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xzw, -r0.zzzz, r19.xxyz +mad r1.xzw, cb0[184].wwww, r1.xxzw, r0.zzzz +add r2.xyz, -cb2[20].xyzx, cb1[r0.x + 13].xyzx +mad r2.xyz, cb1[r0.x + 13].wwww, r2.xyzx, cb2[20].xyzx +mul r2.xyz, r6.wwww, r2.xyzx +mul r2.xyz, r2.xyzx, cb2[21].xxxx +mul r2.xyz, r2.xyzx, r5.wwww +mad r3.yzw, -r6.xxyz, r8.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000) +mad r3.yzw, cb2[19].yyyy, r3.yyzw, r11.xxyz +mul r2.xyz, r2.xyzx, r3.yzwy +add r0.x, l(1.000000), -cb1[r0.x + 11].x +mul r0.xzw, r0.xxxx, r2.xxyz +add r2.x, l(1.000000), -cb2[19].x +mad r2.x, cb0[109].x, cb2[19].x, r2.x +div r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x +mul r0.xzw, r0.xxzw, r2.xxxx +mad r0.xzw, r1.xxzw, cb0[184].xxyz, r0.xxzw +mad r1.xzw, r26.xxyz, r7.wwww, r20.xxyz +add r0.xzw, r0.xxzw, r1.xxzw +mad r1.x, r1.y, cb0[156].w, cb0[157].w +mad r1.z, r3.x, cb0[154].w, -cb0[153].w +max r1.xz, r1.xxzx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.w, r1.x, l(-1.442695) +exp r1.w, r1.w +add r1.w, -r1.w, l(1.000000) +div r1.x, r1.w, r1.x +mad r1.w, r1.y, cb0[156].w, cb0[158].w +mul r1.w, r1.w, l(1.442695) +exp r1.w, r1.w +mul r1.x, r1.w, r1.x +mul r1.x, r1.x, -r1.z +mul r1.xzw, r1.xxxx, cb0[155].xxyz +mul r1.xzw, r1.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r1.xzw, r1.xxzw +dp3 r2.x, -r5.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r2.xxxx, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r16.w, l(7), cb0[108].w + imad r3.yzw, r16.xxyw, l(0, 0x0019660d, 0x0019660d, 0x0019660d), l(0, 0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f) + imad r2.z, r3.z, r3.w, r3.y + imad r2.w, r3.w, r2.z, r3.z + imad r3.y, r2.z, r2.w, r3.w + imad r6.x, r2.w, r3.y, r2.z + dp3 r2.z, -r5.xyzx, -r4.xyzx + add r3.z, r1.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.w + mul r2.z, r2.z, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x + mul r4.x, r2.z, r3.w + mad r4.y, r4.x, r3.z, cb0[44].y + mad r3.z, -r4.x, r3.z, r3.z + mul r4.x, r3.z, cb0[159].z + mul r3.z, r3.z, cb0[162].x + max r3.z, r3.z, l(-127.000000) + add r4.z, r4.y, -cb0[159].x + mul r4.z, r4.z, cb0[159].z + max r4.xz, r4.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r4.z, -r4.z + mul r4.z, r4.z, cb0[159].y + lt r4.w, l(5.960464478E-08), |r4.x| + exp r5.x, -r4.x + add r5.x, -r5.x, l(1.000000) + div r5.x, r5.x, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r4.w, r5.x, r4.x + add r4.y, r4.y, -cb0[162].z + mul r4.y, r4.y, cb0[162].x + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[162].y + lt r4.w, l(5.960464478E-08), |r3.z| + exp r5.x, -r3.z + add r5.x, -r5.x, l(1.000000) + div r5.x, r5.x, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r4.w, r5.x, r3.z + mul r3.z, r3.z, r4.y + mad r3.z, r4.z, r4.x, r3.z + mad r2.z, -r2.z, r3.w, l(1.000000) + mul r2.z, r3.x, r2.z + mul r2.z, r2.z, r3.z + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.zw, r3.xxxx, cb0[160].yyyw, cb0[160].xxxz + add r2.z, r2.z, r3.z + add r2.z, r3.w, r2.z + min r2.z, r2.z, l(1.000000) + imad r6.y, r3.y, r6.x, r2.w + ushr r3.yz, r6.xxyx, l(0, 16, 16, 0) + utof r3.yz, r3.yyzy + mad r3.yz, r3.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) + mad r3.yz, r3.yyzy, cb0[167].wwww, r18.xxyx + mul r4.xy, r3.yzyy, cb0[165].xyxx + mad r2.w, r16.z, cb0[164].x, cb0[164].y + log r2.w, r2.w + mul r2.w, r2.w, cb0[164].z + div r4.z, r2.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t17.xyzw, s0, l(0.000000) + add r2.w, r16.z, -cb0[166].z + mul_sat r2.w, r2.w, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r2.wwww, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r2.w, -r2.z, l(1.000000) + mul r3.yzw, r2.wwww, cb0[161].xxyz + mad r3.yzw, r3.yyzw, r4.wwww, r4.xxyz + mul r2.z, r2.z, r4.w +else + add r1.y, r1.y, -cb0[44].y + mul r2.w, r1.y, cb0[159].z + max r2.w, r2.w, l(-127.000000) + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r4.x, cb0[44].y, -cb0[159].x + mul r4.x, r4.x, cb0[159].z + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[159].y + lt r4.y, l(5.960464478E-08), |r2.w| + exp r4.z, -r2.w + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r2.w + mad r2.w, -r2.w, l(0.240226507), l(0.693147182) + movc r2.w, r4.y, r4.z, r2.w + add r4.y, cb0[44].y, -cb0[162].z + mul r4.y, r4.y, cb0[162].x + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[162].y + lt r4.z, l(5.960464478E-08), |r1.y| + exp r4.w, -r1.y + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.z, r4.w, r1.y + mul r1.y, r1.y, r4.y + mad r1.y, r4.x, r2.w, r1.y + mul r1.y, r3.x, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r3.xxxx, cb0[160].ywyy, cb0[160].xzxx + add r1.y, r1.y, r4.x + add r1.y, r4.y, r1.y + min r2.z, r1.y, l(1.000000) + add r1.y, -r2.z, l(1.000000) + mul r3.yzw, r1.yyyy, cb0[161].xxyz +endif +mul r4.xyz, r1.xzwx, r2.zzzz +mad r1.y, r2.x, r2.x, l(1.000000) +mul r1.y, r1.y, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r1.yyyy, cb0[158].xyzx +mad r1.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r2.x, r2.y, l(12.566371) +sqrt r2.y, r2.y +mul r2.x, r2.y, r2.x +max r2.x, r2.x, l(0.001000) +div r1.y, r1.y, r2.x +mad_sat r2.xyw, cb0[157].xyxz, r1.yyyy, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.yzwy +// === Glass Transparency Fix === +lt r40.x, l(0.500000), cb13[14].x +if_nz r40.x + // Boost transmittance: lerp(r4, 1, 0.5) + add r40.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r40.xyz, r40.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r4.xyzx + // Reduce inscatter intensity + mul r41.xyz, r1.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + // Modified fog blend + mad r0.xzw, r0.xxzw, r40.xxyz, r41.xxyz +else + // Original fog blend + mad r0.xzw, r0.xxzw, r4.xxyz, r1.xxyz +endif +add r0.xzw, -r7.xxyz, r0.xxzw +mad r9.xyz, r9.wwww, r0.xzwx, r7.xyzx +mul r0.xz, r13.xxyx, l(0.500000, 0.000000, -0.500000, 0.000000) +sqrt r0.xz, |r0.xxzx| +sqrt r0.xz, r0.xxzx +mov r13.z, -r13.y +lt r1.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xzxx +lt r1.zw, r13.xxxz, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r1.xy, -r1.xyxx, r1.zwzz +itof r1.xy, r1.xyxx +mul r0.xz, r0.xxzx, r1.xxyx +mad r0.xz, r0.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) +add r0.y, r0.y, l(-0.100000024) +lt r0.w, l(0.000000), r0.y +lt r0.y, r0.y, l(0.000000) +iadd r0.y, -r0.w, r0.y +itof r0.y, r0.y +mov_sat r0.y, r0.y +add r1.xy, -r0.xzxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.yyyy, r1.xyxx, r0.xzxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r9.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r9.w, r0.x +max r0.x, r9.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +// === Glass Highlight Compression === +lt r40.x, l(0.500000), cb13[14].x +if_nz r40.x + dp3 r40.y, r9.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) + lt r40.z, l(0.500000), r40.y + if_nz r40.z + add r40.w, r40.y, l(-0.500000) + mul r40.w, r40.w, l(-0.666667) + exp r40.w, r40.w + add r40.w, -r40.w, l(1.000000) + mad r40.w, r40.w, l(1.500000), l(0.500000) + max r41.x, r40.y, l(0.001000) + div r41.x, r40.w, r41.x + mul r9.xyz, r9.xyzx, r41.xxxx + endif +endif +mov o0.xyzw, r9.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0x843686F6.cso b/src/games/endfield/glass/0x843686F6.cso new file mode 100644 index 0000000000000000000000000000000000000000..43374ca4248350739f6f926e11ab7eeff8e3b90a GIT binary patch literal 57100 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 z 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 l;IPIS~ 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 PbNiYjPm2!CISv0G5Vn>n literal 0 HcmV?d00001 diff --git a/src/games/endfield/glass/0xD2EC68A2.ps_5_0.asm b/src/games/endfield/glass/0xD2EC68A2.ps_5_0.asm new file mode 100644 index 000000000..532b24388 --- /dev/null +++ b/src/games/endfield/glass/0xD2EC68A2.ps_5_0.asm @@ -0,0 +1,1817 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Feb 6 19:58:05 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xy 1 NONE float xy +// TEXCOORD 1 zw 1 NONE float zw +// TEXCOORD 2 xyz 2 NONE float xyz +// TEXCOORD 3 xyzw 3 NONE float xyzw +// TEXCOORD 4 xyzw 4 NONE float x +// TEXCOORD 5 xyz 5 NONE float xyz +// TEXCOORD 6 xyz 6 NONE float xyz +// TEXCOORD 7 x 7 NONE uint x +// SV_IsFrontFace 0 x 8 FFACE uint x +// +// +// Output signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Target 0 xyzw 0 TARGET float xyzw +// SV_Target 1 xyzw 1 TARGET float xyzw +// +ps_5_0 +dcl_globalFlags refactoringAllowed +dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0}, + { 0, 1.000000, 0, 0}, + { 0, 0, 1.000000, 0}, + { 0, 0, 0, 1.000000}, + { 2, 1, -1.000000, 1.000000}, + { 2, 1, 1.000000, 1.000000}, + { 0, 2, 1.000000, -1.000000}, + { 0, 2, 1.000000, 1.000000}, + { 0, 1, 1.000000, 1.000000}, + { 0, 1, -1.000000, 1.000000} } +dcl_constantbuffer CB0[244], immediateIndexed +dcl_constantbuffer CB1[4085], dynamicIndexed +dcl_constantbuffer CB2[24], immediateIndexed +dcl_constantbuffer CB3[259], dynamicIndexed +dcl_constantbuffer CB4[3], immediateIndexed +dcl_constantbuffer CB5[2054], dynamicIndexed +dcl_constantbuffer CB6[715], dynamicIndexed +dcl_constantbuffer CB7[160], dynamicIndexed +dcl_constantbuffer CB13[15], 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_comparison +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_structured t0, 4 +dcl_resource_texture2d (float,float,float,float) t1 +dcl_resource_texture2darray (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_texture2d (float,float,float,float) t6 +dcl_resource_texture2d (float,float,float,float) t7 +dcl_resource_texture2d (float,float,float,float) t8 +dcl_resource_texture2d (float,float,float,float) t9 +dcl_resource_texture2d (float,float,float,float) t10 +dcl_resource_texture2d (float,float,float,float) t11 +dcl_resource_texture2d (float,float,float,float) t12 +dcl_resource_texture2d (float,float,float,float) t13 +dcl_resource_texture3d (float,float,float,float) t14 +dcl_resource_texture3d (float,float,float,float) t15 +dcl_resource_texture3d (float,float,float,float) t16 +dcl_resource_texture3d (float,float,float,float) t17 +dcl_resource_texture3d (float,float,float,float) t18 +dcl_resource_texture3d (float,float,float,float) t19 +dcl_resource_texture3d (float,float,float,float) t20 +dcl_resource_texture2d (float,float,float,float) t21 +dcl_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xy +dcl_input_ps linear v1.zw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyzw +dcl_input_ps linear v4.x +dcl_input_ps linear v5.xyz +dcl_input_ps linear v6.xyz +dcl_input_ps constant v7.x +dcl_input_ps_sgv constant v8.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 40 +ishl r0.x, v7.x, l(4) +max r0.y, cb1[r0.x + 4].z, cb1[r0.x + 4].y +dp2 r0.z, v0.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) +frc r0.z, r0.z +mul r0.z, r0.z, l(52.982918) +frc r0.z, r0.z +ge r0.w, cb1[r0.x + 4].x, l(0.000000) +movc r0.w, r0.w, r0.z, -r0.z +add r0.x, -r0.w, cb1[r0.x + 4].x +add r0.z, -r0.y, -r0.z +add r0.z, r0.z, l(1.000000) +min r0.x, r0.z, r0.x +lt r0.x, r0.x, l(0.000000) +discard_nz r0.x +mul r0.xz, v0.xxyx, cb0[82].zzwz +mad r1.xy, r0.xzxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r2.xyzw, -r1.yyyy, cb0[25].xyzw +mad r1.xyzw, cb0[24].xyzw, r1.xxxx, r2.xyzw +mad r1.xyzw, cb0[26].xyzw, v0.zzzz, r1.xyzw +add r1.xyzw, r1.xyzw, cb0[27].xyzw +div r1.xyz, r1.xyzx, r1.wwww +mul r0.w, r1.y, cb0[1].z +mad r0.w, cb0[0].z, r1.x, r0.w +mad r0.w, cb0[2].z, r1.z, r0.w +add r0.w, r0.w, cb0[3].z +mov r2.z, |r0.w| +lt r0.w, l(0.000000), v3.w +movc r0.w, r0.w, l(1.000000), l(-1.000000) +eq r2.w, l(0.000000), cb0[86].w +add r3.xyz, -r1.xyzx, cb0[44].xyzx +mov r4.x, cb0[0].z +mov r4.y, cb0[1].z +mov r4.z, cb0[2].z +movc r3.xyz, r2.wwww, r3.xyzx, r4.xyzx +dp3 r2.w, r3.xyzx, r3.xyzx +max r3.w, r2.w, l(9.999999939E-09) +rsq r3.w, r3.w +mul r5.xyz, r3.wwww, r3.xyzx +mul r2.w, r2.w, r3.w +add r6.xy, -v1.xyxx, v1.zwzz +mad r6.zw, cb2[3].xxxx, r6.xxxy, v1.xxxy +mad r6.zw, r6.zzzw, cb2[12].xxxy, cb2[12].zzzw +mad r6.xy, cb2[2].wwww, r6.xyxx, v1.xyxx +mad r6.xy, r6.xyxx, cb2[11].xyxx, cb2[11].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r7.xyzw, r6.xyxx, t3.xyzw, s5, cb0[108].x +add r4.w, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r6.zwzz, t4.xywz, s6, r4.w +mul r8.x, r8.x, r8.z +mad r6.xy, r8.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r8.xy, r6.xyxx, cb2[0].xxxx +sample_b_indexable(texture2d)(float,float,float,float) r9.xyz, r6.zwzz, t5.xyzw, s7, cb0[108].x +mul r7.xyzw, r7.xyzw, cb2[8].xyzw +mul_sat r7.xyz, r7.xyzx, cb2[4].zzzz +add r10.xyz, -r7.xyzx, cb2[8].xyzx +mad r7.xyz, cb2[4].xxxx, r10.xyzx, r7.xyzx +mad r4.w, r7.w, v4.x, -r7.w +mad r10.w, cb2[23].x, r4.w, r7.w +add r4.w, -cb2[0].z, cb2[0].w +mad r11.w, r9.y, r4.w, cb2[0].z +add_sat r4.w, l(-1.000000), cb2[3].w +add r5.w, -r9.x, cb2[4].y +mad r4.w, r4.w, r5.w, r9.x +mul r9.xyw, v2.zxzy, v3.yzyx +mad r9.xyw, v2.yzyx, v3.zxzy, -r9.xyxw +mul r9.xyw, r0.wwww, r9.xyxw +mul r8.yzw, r8.yyyy, r9.xxyw +mad r8.xyz, v3.xyzx, r8.xxxx, r8.yzwy +dp2 r0.w, r6.xyxx, r6.xyxx +min r0.w, r0.w, l(1.000000) +add r0.w, -r0.w, l(1.000000) +sqrt r0.w, r0.w +max r0.w, r0.w, l(1.000000017E-16) +lt r5.w, l(0.000000), cb2[1].w +movc r5.w, r5.w, l(-1.000000), l(1.000000) +movc r5.w, v8.x, l(1.000000), r5.w +mul r0.w, r0.w, r5.w +mad r6.xyz, v2.xyzx, r0.wwww, r8.xyzx +dp3 r0.w, r6.xyzx, r6.xyzx +rsq r0.w, r0.w +mul r6.xyz, r0.wwww, r6.xyzx +dp3 r0.w, r6.xyzx, r5.xyzx +dp3 r5.w, -r5.xyzx, r6.xyzx +mul r7.w, cb2[19].z, cb2[19].z +mad r8.x, -r5.w, r5.w, l(1.000000) +mad r7.w, -r7.w, r8.x, l(1.000000) +sqrt r8.x, r7.w +mad r8.x, cb2[19].z, r5.w, r8.x +ge r7.w, r7.w, l(0.000000) +mul r8.xyz, r6.xyzx, r8.xxxx +mad r8.xyz, cb2[19].zzzz, -r5.xyzx, -r8.xyzx +and r8.xyz, r7.wwww, r8.xyzx +mul r7.w, r0.w, v0.z +max r7.w, r7.w, l(0.500000) +div r7.w, cb2[19].w, r7.w +add r7.w, r7.w, -cb2[19].w +mad r7.w, cb2[20].x, r7.w, cb2[19].w +mul r8.xyz, r7.wwww, r8.xyzx +mul r8.yw, r8.yyyy, cb0[1].xxxy +mad r8.xy, cb0[0].xyxx, r8.xxxx, r8.ywyy +mad r8.xy, cb0[2].xyxx, r8.zzzz, r8.xyxx +mad r8.zw, v1.xxxy, cb2[22].xxxy, cb2[22].zzzw +sample_b_indexable(texture2d)(float,float,float,float) r8.zw, r8.zwzz, t7.zwxy, s8, cb0[108].x +mad r8.zw, r8.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mad r8.zw, r8.zzzw, cb2[19].yyyy, -r8.xxxy +mad r8.xy, cb2[19].xxxx, r8.zwzz, r8.xyxx +mad r8.zw, v0.xxxy, cb0[82].zzzw, r8.xxxy +mul r8.xy, r8.xyxx, l(0.250000, 0.250000, 0.000000, 0.000000) +mad r9.xy, v0.xyxx, cb0[82].zwzz, r8.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r7.w, r8.zwzz, t1.yzwx, s0, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r9.x, r9.xyxx, t1.xyzw, s0, cb0[108].x +mad r9.x, cb0[84].z, r9.x, cb0[84].w +div r9.x, l(1.000000, 1.000000, 1.000000, 1.000000), r9.x +ge r9.x, r9.x, r2.z +and r9.x, r9.x, l(0x3f800000) +mad r0.xz, r9.xxxx, r8.xxyx, r0.xxzx +mad r7.w, cb0[84].z, r7.w, cb0[84].w +div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w +ge r7.w, r7.w, r2.z +and r7.w, r7.w, l(0x3f800000) +add r8.xy, -r0.xzxx, r8.zwzz +mad r0.xz, r7.wwww, r8.xxyx, r0.xxzx +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r0.xzxx, t6.xyzw, s9, cb0[108].x +max r0.x, v5.z, l(9.999999939E-09) +div r0.xz, v5.xxyx, r0.xxxx +max r7.w, v6.z, l(9.999999939E-09) +div r9.xy, v6.xyxx, r7.wwww +add r12.xy, r0.xzxx, -r9.xyxx +mul r0.x, l(0.080000), cb2[0].y +mad r9.xyw, -r7.xyxz, r4.wwww, r7.xyxz +mad r0.x, -r0.x, r4.w, r0.x +mad r7.xyz, r7.xyzx, r4.wwww, r0.xxxx +mad r13.xyzw, r11.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r0.x, r13.x, r13.x +max r0.z, r0.w, l(0.000000) +mul r0.w, r0.z, l(-9.280000) +exp r0.w, r0.w +min r0.x, r0.w, r0.x +mad r0.x, r0.x, r13.x, r13.y +mad r0.xw, r0.xxxx, l(-1.040000, 0.000000, 0.000000, 1.040000), r13.zzzw +eq r4.w, l(1.000000), cb0[113].y +mul r13.xyzw, r1.yyyy, cb0[241].xyzw +mad r13.xyzw, cb0[240].xyzw, r1.xxxx, r13.xyzw +mad r13.xyzw, cb0[242].xyzw, r1.zzzz, r13.xyzw +add r13.xyzw, r13.xyzw, cb0[243].xyzw +div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r13.w +mul r13.xyz, r13.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r13.xyz, r7.wwww, r13.xyzx +mad_sat r13.xy, r13.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +mul r13.xy, r13.xyxx, cb0[82].xyxx +ftou r14.xy, r13.xyxx +mad r7.w, cb0[84].z, r13.z, cb0[84].w +div r14.z, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w +ftou r2.xy, v0.xyxx +movc r13.xyz, r4.wwww, r14.xyzx, r2.xyzx +mad r2.xyz, r6.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r1.xyzx +mad r14.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r14.xyz, r2.xzyx, -r14.xyzx +max r4.w, |r14.y|, |r14.x| +add r4.w, r4.w, l(-464.000000) +mul_sat r4.w, r4.w, l(0.031250) +add r7.w, |r14.z|, l(-208.000000) +mul_sat r7.w, r7.w, l(0.031250) +max r4.w, r4.w, r7.w +ne r7.w, l(0.000000), cb0[210].w +lt r8.w, r4.w, l(1.000000) +and r7.w, r7.w, r8.w +if_nz r7.w + mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r14.xyz, r2.xzyx, -r14.xyzx + max r7.w, |r14.y|, |r14.x| + add r7.w, r7.w, l(-29.000000) + mul_sat r7.w, r7.w, l(0.500000) + add r8.w, |r14.z|, l(-13.000000) + mul_sat r8.w, r8.w, l(0.500000) + max r7.w, r7.w, r8.w + lt r8.w, r7.w, l(1.000000) + if_nz r8.w + mad r14.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r14.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r14.xyz, r14.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r14.xyzx, t14.xyzw, s2, l(0.000000) + add r8.w, -r7.w, l(1.000000) + mul r12.w, l(0.500000), cb0[211].y + mad r15.w, -cb0[211].y, l(0.500000), l(1.000000) + max r12.w, r12.w, r14.y + min r12.w, r15.w, r12.w + mul r14.w, r12.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t15.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r15.xxxx, r16.xyzx + add r16.xyz, r14.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t15.xyzw, s1, l(0.000000) + mad r16.xyz, r16.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r15.yyyy, r16.xyzx + add r14.xyz, r14.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t15.xyzw, s1, l(0.000000) + mad r14.xyz, r14.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r14.xyz, r15.zzzz, r14.xyzx + mad r12.w, r16.w, r8.w, r4.w + mov r14.w, r15.z + mul r14.xyzw, r8.wwww, r14.xyzw + mov r18.w, r15.y + mul r16.xyzw, r8.wwww, r18.xyzw + mov r17.w, r15.x + mul r15.xyzw, r8.wwww, r17.xyzw + else + mov r14.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r12.w, r4.w + endif + mad r17.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r17.xyz, r2.xzyx, -r17.xyzx + max r8.w, |r17.y|, |r17.x| + add r8.w, r8.w, l(-116.000000) + mul_sat r8.w, r8.w, l(0.125000) + add r17.x, |r17.z|, l(-52.000000) + mul_sat r17.x, r17.x, l(0.125000) + max r8.w, r8.w, r17.x + lt r17.x, r8.w, l(1.000000) + if_nz r17.x + mad r17.xyz, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r18.xyz, r17.xyzx, cb0[211].xyzx + round_ni r18.xyz, r18.xyzx + mad r17.xyz, r17.xyzx, cb0[211].xyzx, -r18.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r17.xyzx, t16.xyzw, s2, l(0.000000) + add r18.w, -r8.w, l(1.000000) + mul r7.w, r7.w, r18.w + mul r18.w, l(0.500000), cb0[211].y + mad r19.x, -cb0[211].y, l(0.500000), l(1.000000) + max r17.y, r17.y, r18.w + min r17.y, r19.x, r17.y + mul r17.w, r17.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t17.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r18.xxxx, r19.xyzx + add r19.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t17.xyzw, s1, l(0.000000) + mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r21.xyz, r18.yyyy, r19.xyzx + add r17.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t17.xyzw, s1, l(0.000000) + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r18.zzzz, r17.xyzx + mad r12.w, r19.w, r7.w, r12.w + mov r17.w, r18.z + mad r14.xyzw, r17.xyzw, r7.wwww, r14.xyzw + mov r21.w, r18.y + mad r16.xyzw, r21.xyzw, r7.wwww, r16.xyzw + mov r20.w, r18.x + mad r15.xyzw, r20.xyzw, r7.wwww, r15.xyzw + endif + lt r7.w, l(0.000000), r8.w + if_nz r7.w + mad r2.xyz, r2.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r2.xyzx, cb0[211].xyzx + mul r18.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r17.xyz, r17.xyzx + mad r2.xyz, r2.xyzx, cb0[211].xyzx, -r17.xyzx + mad r17.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r2.xyz, r18.xyzx, r2.xyzx + min r19.xyz, r17.xyzx, r2.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r20.xyw, r19.xyzx, t18.yzwx, s2, l(0.000000) + add r2.x, -r4.w, l(1.000000) + mul r2.x, r2.x, r8.w + max r2.y, r18.y, r19.y + min r2.y, r17.y, r2.y + mul r19.w, r2.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r19.xwzx, t19.xyzw, s1, l(0.000000) + add r18.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t19.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.yyyy, r18.xyzx + mov r18.w, r20.y + mad r14.xyzw, r18.xyzw, r2.xxxx, r14.xyzw + add r18.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t19.xyzw, s1, l(0.000000) + mad r18.xyz, r18.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r18.xyz, r20.xxxx, r18.xyzx + mov r18.w, r20.x + mad r16.xyzw, r18.xyzw, r2.xxxx, r16.xyzw + mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r20.xyz, r20.wwww, r17.xyzx + mad r15.xyzw, r20.xyzw, r2.xxxx, r15.xyzw + mad r12.w, r17.w, r2.x, r12.w + endif + mad_sat r2.x, r12.w, l(2.000000), l(-1.000000) + add r17.x, -r4.w, r2.x + add r2.x, r4.w, r2.x + mul r17.y, r2.x, l(0.500000) +else + mov r14.xyzw, l(0,0,0,0) + mov r16.xyzw, l(0,0,0,0) + mov r15.xyzw, l(0,0,0,0) + mov r17.xy, l(0,1.000000,0,0) +endif +mul r18.xyzw, r17.yyyx, cb0[213].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r2.xy, r17.yxyy, cb0[213].wyww +mad r18.w, r2.y, l(0.375000), r2.x +add r15.xyzw, r15.xyzw, r18.xyzw +mul r18.xyzw, r17.yyyx, cb0[214].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r2.xy, r17.yxyy, cb0[214].wyww +mad r18.w, r2.y, l(0.375000), r2.x +add r16.xyzw, r16.xyzw, r18.xyzw +mul r18.xyzw, r17.yyyx, cb0[215].xyzw +mad r18.y, r18.w, l(0.500000), r18.y +mul r2.xy, r17.yxyy, cb0[215].wyww +mad r18.w, r2.y, l(0.375000), r2.x +add r14.xyzw, r14.xyzw, r18.xyzw +dp3 r2.x, r15.xyzx, r6.xyzx +add r2.x, r15.w, r2.x +max r2.x, r2.x, l(0.000000) +dp3 r4.w, r16.xyzx, r6.xyzx +add r4.w, r16.w, r4.w +max r2.y, r4.w, l(0.000000) +dp3 r4.w, r14.xyzx, r6.xyzx +add r4.w, r14.w, r4.w +max r2.z, r4.w, l(0.000000) +add r4.w, r5.w, r5.w +mad r14.xyz, r6.xyzx, -r4.wwww, -r5.xyzx +add r4.w, l(-1.000000), cb0[113].x +max r5.w, r11.w, l(0.001000) +log r5.w, r5.w +mad r5.w, -r5.w, l(1.200000), l(1.000000) +add r4.w, r4.w, -r5.w +utof r15.xy, r13.xyxx +mul r15.zw, r15.xxxy, cb3[0].wwww +round_ni r15.zw, r15.zzzw +add r5.w, r13.z, -cb3[2].y +round_ni r5.w, r5.w +add r7.w, l(-1.000000), cb3[1].x +max r8.w, r5.w, l(0.000000) +min r7.w, r7.w, r8.w +ge r5.w, r7.w, r5.w +mad r8.w, r15.w, cb3[0].x, r15.z +ftoi r8.w, r8.w +iadd r8.w, r8.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.w, r8.w, l(0), t0.xxxx +ftoi r7.w, r7.w +iadd r7.w, r7.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r7.w, r7.w, l(0), t0.xxxx +and r7.w, r7.w, r8.w +and r5.w, r5.w, r7.w +mul r16.xyz, r2.xyzx, cb0[111].xxxx +dp3 r7.w, r16.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r1.w, l(1.000000) +mov r6.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r8.w, l(1.000000) +mov r12.w, r5.w +mov r14.w, l(0) +loop + lt r15.z, l(0.010000), r8.w + ine r15.w, r12.w, l(0) + and r15.w, r15.z, r15.w + if_nz r15.w + firstbit_lo r15.w, r12.w + ishl r16.w, l(1), r15.w + xor r12.w, r12.w, r16.w + ishl r15.w, r15.w, l(3) + dp4 r17.x, cb3[r15.w + 6].xyzw, r1.xyzw + dp4 r17.y, cb3[r15.w + 7].xyzw, r1.xyzw + dp4 r17.z, cb3[r15.w + 8].xyzw, r1.xyzw + ge r18.xyz, cb3[r15.w + 5].xyzx, |r17.xyzx| + and r16.w, r18.y, r18.x + and r16.w, r18.z, r16.w + if_nz r16.w + mul r16.w, l(0.100000), cb3[r15.w + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r18.xy, r18.xyxx, r18.xyxx + add r19.xyz, -|r17.xyzx|, cb3[r15.w + 5].xyzx + mul r19.xyz, r19.xyzx, cb3[r15.w + 9].xyzx + eq r17.w, l(1.000000), cb3[r15.w + 10].x + if_nz r17.w + dp3 r20.x, cb3[r15.w + 6].xyzx, r14.xyzx + dp3 r20.y, cb3[r15.w + 7].xyzx, r14.xyzx + dp3 r20.z, cb3[r15.w + 8].xyzx, r14.xyzx + add r21.xyz, -r17.xyzx, cb3[r15.w + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r17.xyzx, -cb3[r15.w + 5].xyzx + div r22.xyz, r22.xyzx, r20.xyzx + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xyzx + movc r21.xyz, r23.xyzx, r21.xyzx, r22.xyzx + min r17.w, r21.y, r21.x + min r17.w, r21.z, r17.w + mad r17.xyz, r20.xyzx, r17.wwww, r17.xyzx + else + mov r17.xyz, r14.xyzx + endif + dp3 r17.w, r17.xyzx, r17.xyzx + rsq r17.w, r17.w + mul r17.xyz, r17.wwww, r17.xyzx + lt r20.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r21.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r20.xyz, -r20.xyzx, r21.xyzx + itof r20.xyz, r20.xyzx + dp3 r17.w, r17.xyzx, r20.xyzx + div r17.xyz, r17.xyzx, r17.wwww + lt r17.z, r17.z, l(0.000000) + add r20.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.xy, r20.zwzz, r20.xyxx + movc r17.xy, r17.zzzz, r20.xyxx, r17.xyxx + dp4 r17.z, cb3[r15.w + 4].xyzw, r6.xyzw + max r17.z, r17.z, l(0.000000) + max r17.z, r17.z, l(0.000100) + min r17.w, r19.z, r19.y + min r17.w, r17.w, r19.x + add r18.x, r18.y, r18.x + mad r18.x, r18.z, r18.z, r18.x + mad r16.w, r16.w, r16.w, -r18.x + mul r16.w, r16.w, cb3[r15.w + 9].x + mul r16.w, r16.w, cb3[r15.w + 9].x + add r18.x, l(1.000000), -cb3[r15.w + 10].y + mul r16.w, r16.w, r18.x + mul r16.w, r16.w, l(100.000000) + mad_sat r16.w, r17.w, cb3[r15.w + 10].y, r16.w + mul r17.w, r16.w, cb3[r15.w + 10].w + mad r17.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) + mad r18.xy, r17.xyxx, cb3[1].wwww, cb3[2].wwww + mov r18.z, cb3[r15.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r18.xyz, r18.xyzx, t2.xyzw, s3, r4.w + mul r18.xyz, r18.xyzx, cb3[r15.w + 9].wwww + div r17.x, r7.w, r17.z + min r17.x, |r17.x|, l(1.000000) + mad r17.x, r17.x, l(2.000000), r7.w + add r17.y, r17.z, l(2.000000) + div r17.x, r17.x, r17.y + add r17.x, r17.x, l(-1.000000) + mad r17.x, r17.x, cb0[112].w, l(1.000000) + mul r17.xyz, r17.xxxx, r18.xyzx + mul r17.xyz, r17.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r8.wwww, r16.xyzx + mad r15.w, -r16.w, cb3[r15.w + 10].w, l(1.000000) + mul r8.w, r8.w, r15.w + endif + mov r14.w, l(-1) + continue + else + mov r14.w, r15.z + break + endif + mov r14.w, r15.z +endloop +if_nz r14.w + dp3 r1.w, r14.xyzx, r14.xyzx + rsq r1.w, r1.w + mul r17.xyz, r1.wwww, r14.xyzx + lt r18.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + lt r19.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r18.xyz, -r18.xyzx, r19.xyzx + itof r18.xyz, r18.xyzx + dp3 r1.w, r17.xyzx, r18.xyzx + div r17.xyz, r17.xyzx, r1.wwww + lt r1.w, r17.z, l(0.000000) + add r15.zw, -|r17.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r15.zw, r15.zzzw, r18.xxxy + movc r15.zw, r1.wwww, r15.zzzw, r17.xxxy + mov r6.w, l(1.000000) + dp4 r1.w, cb3[3].xyzw, r6.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + mad r15.zw, r15.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) + mad r17.xy, r15.zwzz, cb3[1].wwww, cb3[2].wwww + mov r17.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t2.xyzw, s3, r4.w + div r4.w, r7.w, r1.w + min r4.w, |r4.w|, l(1.000000) + mad r4.w, r4.w, l(2.000000), r7.w + add r1.w, r1.w, l(2.000000) + div r1.w, r4.w, r1.w + add r1.w, r1.w, l(-1.000000) + mad r1.w, r1.w, cb0[112].w, l(1.000000) + mul r17.xyz, r1.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r8.wwww, r16.xyzx +endif +mul r2.xyz, r9.xywx, r2.xyzx +add r1.w, r9.z, l(-1.000000) +mad r1.w, cb2[1].x, r1.w, l(1.000000) +mul r2.xyz, r1.wwww, r2.xyzx +mul r16.xyz, r16.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +lt r37.x, l(0.500000), cb13[14].x +if_nz r37.x + mul r16.xyz, r16.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) +endif +mul r16.xyz, r16.xyzx, cb0[111].yyyy +mul_sat r1.w, r7.y, l(50.000000) +mul r0.w, r0.w, r1.w +mad r17.xyz, r7.xyzx, r0.xxxx, r0.wwww +mul r16.xyz, r16.xyzx, r17.xyzx +mad r2.xyz, r2.xyzx, cb0[111].xxxx, r16.xyzx +lt r0.x, cb6[35].w, l(0.990000) +if_nz r0.x + ftoi r0.x, cb6[35].x + ieq r0.w, r0.x, l(2) + movc r16.xyz, r0.wwww, cb6[20].xyzx, cb0[44].xyzx + add r16.xyz, r1.xyzx, -r16.xyzx + dp3 r0.w, r16.xyzx, r16.xyzx + add r0.w, -r0.w, cb6[34].w + mul_sat r0.w, r0.w, cb6[34].z + lt r1.w, l(0.000000), r0.w + if_nz r1.w + ilt r0.x, l(0), r0.x + if_nz r0.x + add r16.xyz, r1.xyzx, -cb6[20].xyzx + add r17.xyz, r1.xyzx, -cb6[21].xyzx + add r18.xyz, r1.xyzx, -cb6[22].xyzx + add r19.xyz, r1.xyzx, -cb6[23].xyzx + dp3 r16.x, r16.xyzx, r16.xyzx + dp3 r16.y, r17.xyzx, r17.xyzx + dp3 r16.z, r18.xyzx, r18.xyzx + dp3 r16.w, r19.xyzx, r19.xyzx + lt r17.x, r16.x, cb6[20].w + lt r17.y, r16.y, cb6[21].w + lt r17.z, r16.z, cb6[22].w + lt r17.w, r16.w, cb6[23].w + and r18.xyzw, r17.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r17.xyz, r17.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r17.xyz, r17.xyzx, r18.yzwy + max r18.yzw, r17.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r0.x, r18.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r0.x, -r0.x, l(4.000000) + max r0.x, r0.x, l(0.000000) + min r0.x, r0.x, l(3.000000) + add r1.w, r0.x, l(1.000000) + min r1.w, r1.w, l(3.000000) + ftou r1.w, r1.w + dp3 r4.w, r16.yzwy, icb[r1.w + 0].yzwy + div r1.w, r4.w, cb6[r1.w + 20].w + ge r4.w, r1.w, l(0.000000) + ge r1.w, l(1.000000), r1.w + and r1.w, r1.w, r4.w + if_nz r1.w + ftou r1.w, r0.x + add r15.zw, r15.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r4.w, r15.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r4.w, r4.w + mul r4.w, r4.w, l(52.982918) + frc r4.w, r4.w + dp4 r5.w, r16.xyzw, icb[r1.w + 0].xyzw + div r1.w, r5.w, cb6[r1.w + 20].w + sqrt r1.w, r1.w + add r1.w, r1.w, l(-0.900000) + mul r1.w, r1.w, l(12.000000) + ge r1.w, r1.w, r4.w + and r1.w, r1.w, l(0x3f800000) + add r0.x, r0.x, r1.w + endif + dp3 r1.w, r6.xyzx, cb5[0].xyzx + max r1.w, r1.w, l(0.000000) + min r1.w, r1.w, l(0.900000) + add r1.w, -r1.w, l(1.000000) + ftou r4.w, r0.x + ishl r5.w, r4.w, l(2) + mul r15.zw, r1.wwww, cb6[r4.w + 24].xxxy + max r1.w, r15.z, l(0.000000) + mad r16.xyz, -cb5[0].xyzx, r1.wwww, r1.xyzx + mad r16.xyz, r6.xyzx, r15.wwww, r16.xyzx + mul r17.xyz, r16.yyyy, cb6[r5.w + 1].xyzx + mad r16.xyw, cb6[r5.w + 0].xyxz, r16.xxxx, r17.xyxz + mad r16.xyz, cb6[r5.w + 2].xyzx, r16.zzzz, r16.xywx + add r16.xyz, r16.xyzx, cb6[r5.w + 3].xyzx + ge r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + ge r18.xyz, r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r17.xyz, r17.xyzx, r18.xyzx + or r1.w, r17.y, r17.x + or r1.w, r17.z, r1.w + and r4.w, r16.z, l(0x7fffffff) + ult r4.w, l(0x7f800000), r4.w + or r17.z, r1.w, r4.w + ftoi r0.x, r0.x + mad r15.zw, r16.xxxy, cb6[r0.x + 28].zzzw, cb6[r0.x + 28].xxxy + mad r16.xy, r15.zwzz, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r16.xy, r16.xyxx + mad r15.zw, r15.zzzw, cb6[32].zzzw, -r16.xxxy + add r18.xyzw, r15.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r19.xw, r18.xxxz, r18.xxxz + min r18.xz, r15.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r20.xy, r15.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r20.zw, r19.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r15.zzzw + add r15.zw, -r15.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r15.zw, -r18.xxxz, r18.xxxz, r15.zzzw + mad r18.xy, -r20.xyxx, r20.xyxx, r18.ywyy + mov r21.x, r20.z + mov r21.y, r15.z + mov r21.z, r18.x + mov r21.w, r19.x + mul r21.xyzw, r21.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r19.x, r20.w + mov r19.y, r15.w + mov r19.z, r18.y + mul r18.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r19.xyzw, r21.ywyw, r21.xzxz + add r20.xyzw, r18.yyww, r18.xxzz + div r15.zw, r21.yyyw, r19.zzzw + add r15.zw, r15.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r21.xy, r15.zwzz, cb6[32].xxxx + div r15.zw, r18.yyyw, r20.yyyw + add r15.zw, r15.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r21.zw, r15.zzzw, cb6[32].yyyy + mul r18.xyzw, r19.xyzw, r20.xyzw + mad r19.xyzw, r16.xyxy, cb6[32].xyxy, r21.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r19.xyxx, t8.xxxx, s4, r16.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t8.xxxx, s4, r16.z + mul r1.w, r1.w, r18.y + mad r0.x, r18.x, r0.x, r1.w + mad r19.xyzw, r16.xyxy, cb6[32].xyxy, r21.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.xyxx, t8.xxxx, s4, r16.z + mad r0.x, r18.z, r1.w, r0.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r19.zwzz, t8.xxxx, s4, r16.z + mad r0.x, r18.w, r1.w, r0.x + movc r17.x, r17.z, l(1.000000), r0.x + else + mov r17.xz, l(1.000000,0,0,0) + endif + else + mov r17.xz, l(1.000000,0,0,0) + endif + lt r0.x, r0.w, l(1.000000) + if_nz r0.x + dp3 r0.x, r6.xyzx, cb5[0].xyzx + max r0.x, r0.x, l(0.000000) + min r0.x, r0.x, l(0.900000) + add r0.x, -r0.x, l(1.000000) + mul r15.zw, r0.xxxx, cb6[584].xxxy + mad r16.xyz, -cb5[0].xyzx, r15.zzzz, r1.xyzx + mad r16.xyz, r6.xyzx, r15.wwww, r16.xyzx + mul r15.zw, r16.yyyy, cb6[581].xxxy + mad r15.zw, cb6[580].xxxy, r16.xxxx, r15.zzzw + mad r15.zw, cb6[582].xxxy, r16.zzzz, r15.zzzw + add r15.zw, r15.zzzw, cb6[583].xxxy + lt r18.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r15.zwzz + and r0.x, r18.y, r18.x + lt r18.xy, r15.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r1.w, r18.y, r18.x + and r0.x, r0.x, r1.w + if_nz r0.x + mul r0.x, r15.w, cb6[585].z + round_ni r0.x, r0.x + add r0.x, r15.z, r0.x + mul r0.x, r0.x, cb6[585].y + ftou r0.x, r0.x + umin r0.x, r0.x, l(127) + and r1.w, l(0x0000ffff), cb6[r0.x + 587].x + f16tof32 r18.x, r1.w + ge r1.w, r18.x, l(0.000000) + if_nz r1.w + mov r19.x, cb6[576].x + mov r19.y, cb6[577].x + mov r19.z, cb6[578].x + mov r19.w, cb6[r0.x + 587].y + mov r16.w, l(1.000000) + dp4 r19.x, r19.xyzw, r16.xyzw + mov r20.x, cb6[576].y + mov r20.y, cb6[577].y + mov r20.z, cb6[578].y + mov r20.w, cb6[r0.x + 587].z + dp4 r19.y, r20.xyzw, r16.xyzw + mov r20.x, cb6[576].z + mov r20.y, cb6[577].z + mov r20.z, cb6[578].z + mov r20.w, cb6[r0.x + 587].w + dp4 r1.w, r20.xyzw, r16.xyzw + lt r15.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xxxy + lt r4.w, l(0.000000), r1.w + and r5.w, r15.w, r15.z + and r4.w, r4.w, r5.w + lt r15.zw, r19.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + lt r5.w, r1.w, l(1.000000) + and r6.w, r15.w, r15.z + and r5.w, r5.w, r6.w + and r4.w, r4.w, r5.w + if_nz r4.w + ushr r0.x, cb6[r0.x + 587].x, l(16) + f16tof32 r18.y, r0.x + mad r15.zw, r19.xxxy, cb6[584].zzzw, r18.xxxy + mad r16.xy, r15.zwzz, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r16.xy, r16.xyxx + mad r15.zw, r15.zzzw, cb6[586].zzzw, -r16.xxxy + add r18.xyzw, r15.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r19.xw, r18.xxxz, r18.xxxz + min r16.zw, r15.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000) + max r18.xz, r15.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r20.xy, r19.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r15.zwzz + add r15.zw, -r15.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r15.zw, -r16.zzzw, r16.zzzw, r15.zzzw + mad r16.zw, -r18.xxxz, r18.xxxz, r18.yyyw + mov r18.x, r20.x + mov r18.y, r15.z + mov r18.z, r16.z + mov r18.w, r19.x + mul r18.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r19.x, r20.y + mov r19.y, r15.w + mov r19.z, r16.w + mul r19.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r20.xyzw, r18.ywyw, r18.xzxz + add r21.xyzw, r19.yyww, r19.xxzz + div r15.zw, r18.yyyw, r20.zzzw + add r15.zw, r15.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r18.xy, r15.zwzz, cb6[586].xxxx + div r15.zw, r19.yyyw, r21.yyyw + add r15.zw, r15.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r18.zw, r15.zzzw, cb6[586].yyyy + mul r19.xyzw, r20.xyzw, r21.xyzw + mad r20.xyzw, r16.xyxy, cb6[586].xyxy, r18.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r20.xyxx, t11.xxxx, s4, r1.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r20.zwzz, t11.xxxx, s4, r1.w + mul r4.w, r4.w, r19.y + mad r0.x, r19.x, r0.x, r4.w + mad r16.xyzw, r16.xyxy, cb6[586].xyxy, r18.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r16.xyxx, t11.xxxx, s4, r1.w + mad r0.x, r19.z, r4.w, r0.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r1.w, r16.zwzz, t11.xxxx, s4, r1.w + mad r17.y, r19.w, r1.w, r0.x + else + mov r17.y, l(1.000000) + endif + else + mov r17.y, l(1.000000) + endif + else + mov r17.y, l(1.000000) + endif + movc r17.x, r17.z, r17.y, r17.x + else + mov r17.y, l(1.000000) + endif + add r0.x, -r17.y, r17.x + mad r0.x, r0.w, r0.x, r17.y + lt r0.w, l(0.001000), r0.x + if_nz r0.w + add r16.xyz, r1.xyzx, -cb0[173].xyzx + mad r15.zw, cb0[176].xxxz, r16.yyyy, r16.xxxz + mul r16.yw, r15.zzzw, cb0[174].zzzz + mul r17.xy, cb0[175].xyxx, cb0[183].wwww + mad r15.zw, r15.zzzw, cb0[174].zzzz, r17.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r0.w, r15.zwzz, t10.yzwx, s2, l(0.000000) + mad r15.zw, r16.yyyw, cb0[175].wwww, r17.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r1.w, r15.zwzz, t10.yzwx, s2, l(0.000000) + dp2 r4.w, r16.xzxx, r16.xzxx + sqrt r4.w, r4.w + add r5.w, -cb0[174].x, cb0[174].y + add r4.w, r4.w, -cb0[174].x + div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w + mul_sat r4.w, r4.w, r5.w + mad r5.w, r4.w, l(-2.000000), l(3.000000) + mul r4.w, r4.w, r4.w + mul r4.w, r4.w, r5.w + add r1.w, -r0.w, r1.w + mad r0.w, r4.w, r1.w, r0.w + add r0.w, r0.w, l(-1.000000) + mad r0.w, cb0[175].z, r0.w, l(1.000000) + mul r0.x, r0.w, r0.x + endif + add r0.w, -r0.x, cb6[35].z + mad r0.x, cb6[35].w, r0.w, r0.x +else + mov r0.x, cb6[35].z +endif +min r0.x, r0.x, l(1.000000) +add r0.x, r0.x, l(-1.000000) +mad r16.x, cb6[34].x, r0.x, l(1.000000) +lt r0.x, l(0.001000), r16.x +if_nz r0.x + dp3 r0.x, -cb5[0].xyzx, r14.xyzx + mad r17.xyz, cb5[0].xyzx, r0.xxxx, r14.xyzx + lt r0.x, r0.x, cb5[4].z + dp3 r0.w, r17.xyzx, r17.xyzx + max r0.w, r0.w, l(0.0000610351562) + rsq r0.w, r0.w + mul r17.xyz, r0.wwww, r17.xyzx + mul r17.xyz, r17.xyzx, cb5[4].yyyy + mad r17.xyz, -cb5[0].xyzx, cb5[4].zzzz, r17.xyzx + dp3 r0.w, r17.xyzx, r17.xyzx + rsq r0.w, r0.w + mul r17.xyz, r0.wwww, r17.xyzx + movc r17.xyz, r0.xxxx, r17.xyzx, r14.xyzx + mad r18.xyz, r3.xyzx, r3.wwww, r17.xyzx + dp3 r0.x, r18.xyzx, r18.xyzx + max r0.x, r0.x, l(0.0000610351562) + rsq r0.x, r0.x + mul r18.xyz, r0.xxxx, r18.xyzx + dp3_sat r11.y, r17.xyzx, r6.xyzx + dp3_sat r0.x, r6.xyzx, r18.xyzx + min r11.z, r0.z, l(1.000000) + mul r0.w, r11.w, r11.w + mul r0.w, r0.w, r0.w + mad r1.w, r0.x, r0.w, -r0.x + mad r0.x, r1.w, r0.x, l(1.000000) + dp3_sat r1.w, r5.xyzx, r18.xyzx + add r1.w, -r1.w, l(1.000000) + mul r4.w, r1.w, r1.w + mul r4.w, r4.w, r4.w + mul r5.w, r1.w, r4.w + add r6.w, -r11.w, l(1.000000) + mad r7.w, -r6.w, l(0.383026), l(-0.0761947036) + mad r7.w, r6.w, r7.w, l(1.049970) + mad r6.w, r6.w, r7.w, l(0.409255) + min r6.w, r6.w, l(0.999000) + add r7.w, -r6.w, l(1.000000) + add r17.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r17.xyz, r17.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r7.xyzx + mad r1.w, -r4.w, r1.w, l(1.000000) + mad r18.xyz, r7.xyzx, r1.wwww, r5.wwww + mul r0.x, r0.x, r0.x + div r0.x, r0.w, r0.x + mad r15.zw, -r11.zzzy, r0.wwww, r11.zzzy + mad r15.zw, r15.zzzw, r11.zzzy, r0.wwww + sqrt r15.zw, r15.zzzw + mul r15.zw, r11.yyyz, r15.zzzw + add r0.w, r15.w, r15.z + add r0.w, r0.w, l(0.000100) + div r0.w, l(0.500000), r0.w + mul r0.x, r0.w, r0.x + mul r18.xyz, r0.xxxx, r18.xyzx + min r18.xyz, r18.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r19.xyzw, r11.zwyw, l(0.968750, 0.968750, 0.968750, 0.968750), l(0.015625, 0.015625, 0.015625, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r0.x, r19.xyxx, t13.xyzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r0.w, r19.zwzz, t13.yzwx, s1, l(0.000000) + mul r0.x, r0.w, r0.x + mul r0.x, r6.w, r0.x + div r0.x, r0.x, r7.w + mul r19.xyz, r17.xyzx, r17.xyzx + mul r19.xyz, r0.xxxx, r19.xyzx + mad r17.xyz, -r17.xyzx, r7.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) + div r17.xyz, r19.xyzx, r17.xyzx + add r17.xyz, r17.xyzx, r18.xyzx + mul r17.xyz, r17.xyzx, cb5[4].xxxx + // === Glass Fix: Reduce sun specular intensity === + lt r37.x, l(0.500000), cb13[14].x + if_nz r37.x + mul r17.xyz, r17.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + endif + max r17.xyz, r17.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r17.xyz, r17.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + max r0.x, r10.w, l(0.010000) + div r17.xyz, r17.xyzx, r0.xxxx + min r17.xyz, r17.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r18.xyz, r9.xywx, r11.yyyy + mad r17.xyz, r17.xyzx, r11.yyyy, r18.xyzx + mul r17.xyz, r17.xyzx, cb5[1].xyzx + mov r16.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r16.yzw, r16.xyxx, t12.wxyz, s1, cb0[108].x + add r0.x, -r16.x, l(1.000000) + mad r16.xyz, r17.xyzx, r16.yzwy, -r17.xyzx + mad r16.xyz, r0.xxxx, r16.xyzx, r17.xyzx +else + mov r16.xyz, l(0,0,0,0) +endif +mul r0.xw, r15.xxxy, l(0.031250, 0.000000, 0.000000, 0.031250) +round_ni r0.xw, r0.xxxw +mad r0.x, r0.w, cb4[1].y, r0.x +mul r0.x, r0.x, l(8.000000) +ftoi r0.x, r0.x +mad r0.w, -cb0[85].y, cb4[2].w, r13.z +round_ni r0.w, r0.w +add r1.w, l(-1.000000), cb4[1].w +max r4.w, r0.w, l(0.000000) +min r1.w, r1.w, r4.w +mul r4.w, r1.w, l(8.000000) +ftoi r4.w, r4.w +ge r0.w, r1.w, r0.w +iadd r1.w, r4.w, cb0[110].y +min r11.x, r0.z, l(1.000000) +mul r0.z, r11.w, r11.w +add r4.w, -r11.w, l(1.000000) +mad r5.w, -r4.w, l(0.383026), l(-0.0761947036) +mad r5.w, r4.w, r5.w, l(1.049970) +mad r4.w, r4.w, r5.w, l(0.409255) +min r4.w, r4.w, l(0.999000) +add r5.w, -r4.w, l(1.000000) +add r17.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r17.xyz, r17.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r7.xyzx +mad r11.yz, r11.xxwx, l(0.000000, 0.968750, 0.968750, 0.000000), l(0.000000, 0.015625, 0.015625, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r6.w, r11.yzyy, t13.yzwx, s1, l(0.000000) +mad r18.xyz, -r17.xyzx, r5.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r17.xyz, r17.xyzx, r17.xyzx +mov r19.w, l(1.000000) +mov r20.y, l(1.000000) +mov r21.z, r11.w +mov r22.xyz, l(0,0,0,0) +mov r7.w, l(1.000000) +mov r8.w, l(0) +loop + ilt r9.z, l(7), r8.w + breakc_nz r9.z + iadd r9.z, r0.x, r8.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.z, r9.z, l(0), t0.xxxx + iadd r11.y, r1.w, r8.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.y, r11.y, l(0), t0.xxxx + and r9.z, r9.z, r11.y + and r9.z, r0.w, r9.z + ishl r11.y, r8.w, l(5) + mov r23.xyz, l(0,0,0,0) + mov r11.z, r7.w + mov r12.w, r9.z + loop + breakc_z r12.w + firstbit_lo r14.w, r12.w + ishl r15.z, l(1), r14.w + xor r15.z, r12.w, r15.z + iadd r14.w, r11.y, r14.w + bfi r24.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r14.wwww, l(1, 3, 5, 6) + bfi r15.w, l(29), l(3), r14.w, l(7) + ftou r16.w, cb5[r24.z + 6].w + ieq r16.w, r16.w, l(1) + if_nz r16.w + add r19.xyz, r1.xyzx, -cb5[r24.x + 6].xyzx + and r25.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r24.z + 6].xzyx + and r26.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r24.w + 6].yxzy + ushr r27.xyz, cb5[r24.z + 6].xzyx, l(16, 16, 16, 0) + ushr r28.xyz, cb5[r24.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r25.xyz, r25.xyzx + f16tof32 r26.xyz, r26.xyzx + f16tof32 r27.xyz, r27.xyzx + f16tof32 r28.xyw, r28.yxyz + mov r29.xz, r25.xxzx + mov r29.yw, r27.xxxz + dp4 r16.w, r19.xyzw, r29.xyzw + mov r27.x, r25.y + mov r27.z, r26.y + mov r27.w, r28.x + dp4 r17.w, r19.xyzw, r27.xyzw + mov r28.xz, r26.xxzx + dp4 r18.w, r19.xyzw, r28.xyzw + max r16.w, |r16.w|, |r17.w| + max r16.w, |r18.w|, r16.w + mad r17.w, cb5[r15.w + 6].x, l(0.500000), l(0.500000) + add r16.w, r16.w, -r17.w + mad r17.w, -cb5[r15.w + 6].x, l(0.500000), l(0.500000) + div_sat r16.w, r16.w, r17.w + add r16.w, -r16.w, l(1.000000) + mul r16.w, r16.w, r16.w + else + mov r16.w, l(1.000000) + endif + lt r17.w, l(0.500000), cb5[r24.y + 6].z + lt r18.w, r16.w, l(0.001000) + or r18.w, r17.w, r18.w + if_nz r18.w + mov r12.w, r15.z + continue + endif + ishl r18.w, r14.w, l(3) + bfi r14.w, l(29), l(3), r14.w, l(2) + lt r19.x, cb5[r18.w + 6].w, l(1.500000) + if_nz r19.x + mad r19.x, cb5[r14.w + 6].y, l(0.500000), l(0.500000) + add r19.x, r19.x, -|cb5[r14.w + 6].x| + add r19.y, -r19.x, cb5[r14.w + 6].y + add r20.z, -|r19.x|, l(1.000000) + add r20.z, -|r19.y|, r20.z + max r20.z, r20.z, l(0.000488281250) + ge r20.w, cb5[r14.w + 6].x, l(0.000000) + movc r19.z, r20.w, r20.z, -r20.z + dp3 r20.z, r19.xyzx, r19.xyzx + rsq r20.z, r20.z + mul r19.xyz, r19.xyzx, r20.zzzz + add r25.xyz, -r1.xyzx, cb5[r24.x + 6].xyzx + dp3 r20.z, r25.xyzx, r25.xyzx + rsq r20.w, r20.z + mul r26.xyz, r20.wwww, r25.xyzx + ftoi r21.w, cb5[r15.w + 6].w + mul r27.xyz, r19.xyzx, cb5[r14.w + 6].zzzz + mad r28.xyz, -r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + mad r29.xyz, r27.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r25.xyzx + ftou r22.w, cb5[r18.w + 6].w + and r22.w, r22.w, l(1) + ieq r23.w, r22.w, l(0) + not r23.w, r23.w + lt r24.z, l(0.000000), cb5[r14.w + 6].z + and r23.w, r23.w, r24.z + dp3 r24.z, r28.xyzx, r28.xyzx + sqrt r24.z, r24.z + dp3 r25.w, r29.xyzx, r29.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r6.xyzx, r28.xyzx + div r26.w, r26.w, r24.z + dp3 r27.w, r6.xyzx, r29.xyzx + div r27.w, r27.w, r25.w + add r26.w, r26.w, r27.w + mul_sat r30.x, r26.w, l(0.500000) + dp3 r26.w, r28.xyzx, r29.xyzx + mad r24.z, r24.z, r25.w, r26.w + mad r24.z, r24.z, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r24.z + dp3_sat r20.x, r6.xyzx, r26.xyzx + movc r21.xy, r23.wwww, r30.xyxx, r20.xyxx + lt r20.x, cb5[r24.w + 6].w, l(0.000000) + if_nz r20.x + mul r20.x, cb5[r24.x + 6].w, cb5[r24.x + 6].w + mul r20.x, r20.x, r20.z + mad r20.x, -r20.x, r20.x, l(1.000000) + max r20.x, r20.x, l(0.000000) + add r20.z, r20.z, l(1.000000) + div r20.z, l(1.000000, 1.000000, 1.000000, 1.000000), r20.z + and r24.z, r23.w, l(0x3f800000) + add r25.w, -r20.z, r21.y + mad r20.z, r24.z, r25.w, r20.z + mul r20.x, r20.x, r20.x + mul r20.x, r20.x, r20.z + else + mul r29.xyz, r25.xyzx, cb5[r24.x + 6].wwww + dp3 r20.z, r29.xyzx, r29.xyzx + min r20.z, r20.z, l(1.000000) + add r20.z, -r20.z, l(1.000000) + log r20.z, r20.z + mul r20.z, r20.z, cb5[r24.w + 6].w + exp r20.z, r20.z + mul r20.x, r20.z, r21.y + endif + dp3 r19.x, r26.xyzx, -r19.xyzx + add r19.x, r19.x, -cb5[r14.w + 6].z + mul_sat r19.x, r19.x, cb5[r14.w + 6].w + mul r19.x, r19.x, r19.x + movc r19.x, r22.w, l(1.000000), r19.x + mul r19.x, r19.x, r20.x + not r19.y, r23.w + ige r19.z, r21.w, l(0) + and r19.y, r19.z, r19.y + if_nz r19.y + if_z r22.w + ishl r19.y, r21.w, l(2) + mul r29.xyz, r1.yyyy, cb7[r19.y + 33].xywx + mad r29.xyz, cb7[r19.y + 32].xywx, r1.xxxx, r29.xyzx + mad r29.xyz, cb7[r19.y + 34].xywx, r1.zzzz, r29.xyzx + add r29.xyz, r29.xyzx, cb7[r19.y + 35].xywx + div_sat r19.yz, r29.xxyx, r29.zzzz + mad r19.yz, r19.yyzy, cb7[r21.w + 0].zzwz, cb7[r21.w + 0].xxyx + else + ishl r20.x, r21.w, l(2) + dp3 r29.x, -r25.xyzx, cb7[r20.x + 32].xyzx + dp3 r29.y, -r25.xyzx, cb7[r20.x + 33].xyzx + dp3 r29.z, -r25.xyzx, cb7[r20.x + 34].xyzx + lt r20.x, |r29.x|, |r29.y| + and r20.x, r20.x, l(1) + dp2 r20.z, |r29.xyxx|, icb[r20.x + 0].xyxx + lt r20.z, r20.z, |r29.z| + movc r20.x, r20.z, l(2), r20.x + dp3 r20.z, r29.xyzx, icb[r20.x + 0].xyzx + lt r20.z, r20.z, l(0.000000) + bfi r20.x, l(31), l(1), r20.x, r20.z + ushr r20.z, r20.x, l(1) + dp3 r20.z, r29.xyzx, icb[r20.z + 0].xyzx + div r21.y, l(0.000244140625), cb7[r21.w + 0].w + add r21.y, -r21.y, l(0.500000) + utof r24.z, r20.x + ult r25.x, r20.x, l(2) + and r25.x, r25.x, l(2) + dp2 r25.x, r29.xzxx, icb[r25.x + 0].xzxx + mul r25.x, r25.x, icb[r20.x + 4].z + div r25.x, r25.x, |r20.z| + mad r24.z, r25.x, r21.y, r24.z + add r24.z, r24.z, l(0.500000) + mul_sat r25.x, r24.z, l(0.166666672) + iadd r24.z, l(-1), icb[r20.x + 4].y + dp2 r24.z, r29.yzyy, icb[r24.z + 0].xyxx + mul r20.x, r24.z, icb[r20.x + 4].w + div r20.x, r20.x, |r20.z| + mad_sat r25.y, -r20.x, r21.y, l(0.500000) + mad r19.yz, r25.xxyx, cb7[r21.w + 0].zzwz, cb7[r21.w + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r19.yzyy, t21.yxzw, s1, l(0.000000) + mul r19.x, r19.y, r19.x + endif + lt r19.y, l(0.000000), r19.x + if_nz r19.y + if_z r22.w + ftoi r19.z, cb5[r24.y + 6].x + else + add r25.xyz, r1.xyzx, -cb5[r24.x + 6].xyzx + lt r29.xyz, |r25.yzzy|, |r25.xxyx| + and r20.x, r29.y, r29.x + lt r25.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ushr r20.z, cb5[r14.w + 6].w, l(24) + ubfe r21.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb5[r14.w + 6].wwww + movc r20.z, r25.x, r20.z, r21.y + and r21.y, l(255), cb5[r14.w + 6].w + movc r21.y, r25.y, r21.w, r21.y + ubfe r21.w, l(8), l(8), cb5[r24.y + 6].x + and r22.w, l(255), cb5[r24.y + 6].x + movc r21.w, r25.z, r21.w, r22.w + movc r21.y, r29.z, r21.y, r21.w + movc r20.x, r20.x, r20.z, r21.y + ilt r20.z, r20.x, l(80) + movc r19.z, r20.z, r20.x, l(-1) + endif + mad r25.xyz, r26.xyzx, cb6[r19.z + 288].xxxx, r1.xyzx + mul r20.x, l(5.000000), cb6[r19.z + 288].y + mad r25.xyz, r6.xyzx, r20.xxxx, r25.xyzx + ishl r20.x, r19.z, l(2) + mul r29.xyzw, r25.yyyy, cb6[r20.x + 65].xyzw + mad r29.xyzw, cb6[r20.x + 64].xyzw, r25.xxxx, r29.xyzw + mad r25.xyzw, cb6[r20.x + 66].xyzw, r25.zzzz, r29.xyzw + add r25.xyzw, r25.xyzw, cb6[r20.x + 67].xyzw + div r25.xyz, r25.xyzx, r25.wwww + ge r29.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r25.xyzx + ge r30.xyz, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r20.xz, -cb6[r19.z + 344].xxyx, cb6[r19.z + 344].zzwz + mad r20.xz, r25.xxyx, r20.xxzx, cb6[r19.z + 344].xxyx + mad r21.yw, r20.xxxz, cb6[400].zzzw, l(0.000000, 0.500000, 0.000000, 0.500000) + round_ni r21.yw, r21.yyyw + mad r20.xz, r20.xxzx, cb6[400].zzwz, -r21.yywy + add r31.xyzw, r20.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r32.xyzw, r31.xxzz, r31.xxzz + add r25.xy, -r20.xzxx, l(1.000000, 1.000000, 0.000000, 0.000000) + min r31.xz, r20.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r33.xy, r20.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r34.xy, r25.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r33.xy, -r33.xyxx, r33.xyxx, r31.ywyy + add r33.xy, r33.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r33.xy, r33.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r32.xz, r32.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r20.xz, r32.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r20.xxzx + mul r35.xy, r20.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r20.xz, -r31.xxzx, r31.xxzx, r25.xxyx + add r20.xz, r20.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r36.xy, r20.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r20.xz, r31.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r35.z, r36.x + mov r35.w, r20.x + mov r34.z, r33.x + mov r34.w, r32.x + add r31.xyzw, r34.zwxz, r35.zwxz + mov r36.z, r35.y + mov r36.w, r20.z + mov r33.z, r34.y + mov r33.w, r32.z + add r25.xyw, r33.zyzw, r36.zyzw + div r32.xyz, r34.xzwx, r31.zwyz + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyz, r32.xyzx, cb6[400].xxxx + div r33.xyz, r33.zywz, r25.xywx + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyw, r33.xyxz, cb6[400].yyyy + mul r34.xyzw, r25.xxxy, r31.zwyz + mov r32.w, r33.x + mad r35.xyzw, r21.ywyw, cb6[400].xyxy, r32.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r35.xyxx, t9.xxxx, s4, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r35.zwzz, t9.xxxx, s4, r25.z + mul r20.z, r20.z, r34.y + mad r20.x, r34.x, r20.x, r20.z + mad r34.xy, r21.ywyy, cb6[400].xyxx, r32.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r34.xyxx, t9.xxxx, s4, r25.z + mad r20.x, r34.z, r20.z, r20.x + mov r33.z, r32.x + mad r35.xyzw, r21.ywyw, cb6[400].xyxy, r33.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r35.xyxx, t9.xxxx, s4, r25.z + mad r20.x, r34.w, r20.z, r20.x + mul r34.xyzw, r25.yyww, r31.xyzw + mov r33.xz, r32.yyzy + mad r32.xyzw, r21.ywyw, cb6[400].xyxy, r33.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r32.xyxx, t9.xxxx, s4, r25.z + mad r20.x, r34.x, r20.z, r20.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r32.zwzz, t9.xxxx, s4, r25.z + mad r20.x, r34.y, r20.z, r20.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.z, r35.zwzz, t9.xxxx, s4, r25.z + mad r20.x, r34.z, r20.z, r20.x + ige r20.z, r19.z, l(0) + or r29.xyz, r29.xyzx, r30.xyzx + or r22.w, r29.y, r29.x + or r22.w, r29.z, r22.w + and r24.z, r25.z, l(0x7fffffff) + ult r24.z, l(0x7f800000), r24.z + or r22.w, r22.w, r24.z + mad r29.xyzw, r21.ywyw, cb6[400].xyxy, r33.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.y, r29.xyxx, t9.xxxx, s4, r25.z + mad r20.x, r34.w, r21.y, r20.x + mul r21.y, r25.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r29.zwzz, t9.xxxx, s4, r25.z + mad r20.x, r21.y, r21.w, r20.x + add r20.x, r20.x, l(-1.000000) + mad r19.z, cb6[r19.z + 288].w, r20.x, l(1.000000) + movc r19.z, r22.w, l(1.000000), r19.z + movc r19.z, r20.z, r19.z, l(1.000000) + else + mov r19.z, l(1.000000) + endif + if_nz r23.w + dp3 r20.x, r14.xyzx, r27.xyzx + mul_sat r20.z, r20.w, cb5[r14.w + 6].z + mad r20.z, r20.z, l(0.500000), r0.z + min r20.z, r20.z, l(1.000000) + div r20.z, r0.z, r20.z + mad r25.xyz, r14.xyzx, r20.xxxx, -r27.xyzx + dp3 r21.y, r28.xyzx, r25.xyzx + mul r20.x, r20.x, r20.x + mad r20.x, cb5[r14.w + 6].z, cb5[r14.w + 6].z, -r20.x + div_sat r20.x, r21.y, r20.x + mad r25.xyz, r27.xyzx, r20.xxxx, r28.xyzx + dp3 r20.x, r25.xyzx, r25.xyzx + rsq r20.x, r20.x + mul r26.xyz, r20.xxxx, r25.xyzx + else + mov r20.z, l(1.000000) + endif + if_nz r19.y + mul_sat r19.y, r20.w, cb5[r15.w + 6].y + mad r25.xyz, r3.xyzx, r3.wwww, r26.xyzx + dp3 r20.x, r25.xyzx, r25.xyzx + max r20.x, r20.x, l(0.0000610351562) + rsq r20.x, r20.x + mul r25.xyz, r20.xxxx, r25.xyzx + dp3_sat r20.x, r6.xyzx, r25.xyzx + dp3_sat r20.w, r5.xyzx, r25.xyzx + lt r21.y, l(0.000000), r19.y + mul r19.y, r19.y, r19.y + mad r21.w, r20.w, l(3.600000), l(0.400000) + div r19.y, r19.y, r21.w + mad r19.y, r11.w, r11.w, r19.y + min r19.y, r19.y, l(1.000000) + movc r19.y, r21.y, r19.y, r0.z + mul r19.y, r19.y, r19.y + mad r21.y, r20.x, r19.y, -r20.x + mad r20.x, r21.y, r20.x, l(1.000000) + add r20.w, -r20.w, l(1.000000) + mul r21.y, r20.w, r20.w + mul r21.y, r21.y, r21.y + mul r21.w, r20.w, r21.y + mad r20.w, -r21.y, r20.w, l(1.000000) + mad r25.xyz, r7.xyzx, r20.wwww, r21.wwww + mul r20.x, r20.x, r20.x + div r20.x, r19.y, r20.x + mul r20.x, r20.z, r20.x + mad r20.z, -r11.x, r19.y, r11.x + mad r20.z, r20.z, r11.x, r19.y + sqrt r20.z, r20.z + mad r20.w, -r21.x, r19.y, r21.x + mad r19.y, r20.w, r21.x, r19.y + sqrt r19.y, r19.y + mul r19.y, r11.x, r19.y + mad r19.y, r21.x, r20.z, r19.y + add r19.y, r19.y, l(0.000100) + div r19.y, l(0.500000), r19.y + mul r19.y, r19.y, r20.x + mul r20.xzw, r19.yyyy, r25.xxyz + min r20.xzw, r20.xxzw, l(2048.000000, 0.000000, 2048.000000, 2048.000000) + mad r21.yw, r21.xxxz, l(0.000000, 0.968750, 0.000000, 0.968750), l(0.000000, 0.015625, 0.000000, 0.015625) + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r21.ywyy, t13.yxzw, s1, l(0.000000) + mul r19.y, r6.w, r19.y + mul r19.y, r4.w, r19.y + div r19.y, r19.y, r5.w + mul r25.xyz, r17.xyzx, r19.yyyy + div r25.xyz, r25.xyzx, r18.xyzx + add r20.xzw, r20.xxzw, r25.xxyz + mul r20.xzw, r20.xxzw, cb5[r15.w + 6].zzzz + max r20.xzw, r20.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r20.xzw, r20.xxzw, l(1000.000000, 0.000000, 1000.000000, 1000.000000) + mul r25.xyz, r9.xywx, r21.xxxx + mad r20.xzw, r20.xxzw, r21.xxxx, r25.xxyz + mul r21.xyw, r19.xxxx, cb5[r18.w + 6].xyxz + mul r19.xyz, r19.zzzz, r21.xywx + mul r19.xyz, r16.wwww, r19.xyzx + mul r19.xyz, r19.xyzx, r20.xzwx + else + mov r19.xyz, l(0,0,0,0) + endif + else + if_z r17.w + mad r16.w, cb5[r14.w + 6].y, l(0.500000), l(0.500000) + add r25.x, r16.w, -|cb5[r14.w + 6].x| + add r25.y, -r25.x, cb5[r14.w + 6].y + add r16.w, -|r25.x|, l(1.000000) + add r16.w, -|r25.y|, r16.w + max r16.w, r16.w, l(0.000488281250) + ge r17.w, cb5[r14.w + 6].x, l(0.000000) + movc r25.z, r17.w, r16.w, -r16.w + dp3 r16.w, r25.xyzx, r25.xyzx + rsq r16.w, r16.w + mul r20.xzw, r16.wwww, r25.xxyz + add r21.xyw, -r1.xyxz, cb5[r24.x + 6].xyxz + dp3 r16.w, r21.xywx, r21.xywx + rsq r17.w, r16.w + mul r25.xyz, r17.wwww, r21.xywx + ftoi r15.w, cb5[r15.w + 6].w + mul r26.xyz, r20.xzwx, cb5[r14.w + 6].zzzz + mad r27.xyz, -r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r21.xywx + mad r26.xyz, r26.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r21.xywx + ftou r17.w, cb5[r18.w + 6].w + and r17.w, r17.w, l(1) + ieq r18.w, r17.w, l(0) + not r18.w, r18.w + lt r22.w, l(0.000000), cb5[r14.w + 6].z + and r18.w, r18.w, r22.w + dp3 r22.w, r27.xyzx, r27.xyzx + sqrt r22.w, r22.w + dp3 r23.w, r26.xyzx, r26.xyzx + sqrt r23.w, r23.w + dp3 r24.z, r27.xyzx, r26.xyzx + mad r22.w, r22.w, r23.w, r24.z + mad r22.w, r22.w, l(0.500000), l(1.000000) + div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w + movc r22.w, r18.w, r22.w, l(1.000000) + lt r23.w, cb5[r24.w + 6].w, l(0.000000) + if_nz r23.w + mul r23.w, cb5[r24.x + 6].w, cb5[r24.x + 6].w + mul r23.w, r16.w, r23.w + mad r23.w, -r23.w, r23.w, l(1.000000) + max r23.w, r23.w, l(0.000000) + add r16.w, r16.w, l(1.000000) + div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), r16.w + and r24.z, r18.w, l(0x3f800000) + add r25.w, -r16.w, r22.w + mad r16.w, r24.z, r25.w, r16.w + mul r23.w, r23.w, r23.w + mul r16.w, r16.w, r23.w + else + mul r26.xyz, r21.xywx, cb5[r24.x + 6].wwww + dp3 r23.w, r26.xyzx, r26.xyzx + min r23.w, r23.w, l(1.000000) + add r23.w, -r23.w, l(1.000000) + log r23.w, r23.w + mul r23.w, r23.w, cb5[r24.w + 6].w + exp r23.w, r23.w + mul r16.w, r22.w, r23.w + endif + dp3 r20.x, r25.xyzx, -r20.xzwx + add r20.x, r20.x, -cb5[r14.w + 6].z + mul_sat r20.x, r20.x, cb5[r14.w + 6].w + mul r20.x, r20.x, r20.x + movc r20.x, r17.w, l(1.000000), r20.x + mul r16.w, r16.w, r20.x + not r18.w, r18.w + ige r20.x, r15.w, l(0) + and r18.w, r18.w, r20.x + if_nz r18.w + if_z r17.w + ishl r18.w, r15.w, l(2) + mul r20.xzw, r1.yyyy, cb7[r18.w + 33].xxyw + mad r20.xzw, cb7[r18.w + 32].xxyw, r1.xxxx, r20.xxzw + mad r20.xzw, cb7[r18.w + 34].xxyw, r1.zzzz, r20.xxzw + add r20.xzw, r20.xxzw, cb7[r18.w + 35].xxyw + div_sat r20.xz, r20.xxzx, r20.wwww + mad r20.xz, r20.xxzx, cb7[r15.w + 0].zzwz, cb7[r15.w + 0].xxyx + else + ishl r18.w, r15.w, l(2) + dp3 r26.x, -r21.xywx, cb7[r18.w + 32].xyzx + dp3 r26.y, -r21.xywx, cb7[r18.w + 33].xyzx + dp3 r26.z, -r21.xywx, cb7[r18.w + 34].xyzx + lt r18.w, |r26.x|, |r26.y| + and r18.w, r18.w, l(1) + dp2 r20.w, |r26.xyxx|, icb[r18.w + 0].xyxx + lt r20.w, r20.w, |r26.z| + movc r18.w, r20.w, l(2), r18.w + dp3 r20.w, r26.xyzx, icb[r18.w + 0].xyzx + lt r20.w, r20.w, l(0.000000) + bfi r18.w, l(31), l(1), r18.w, r20.w + ushr r20.w, r18.w, l(1) + dp3 r20.w, r26.xyzx, icb[r20.w + 0].xyzx + div r21.x, l(0.000244140625), cb7[r15.w + 0].w + add r21.x, -r21.x, l(0.500000) + utof r21.y, r18.w + ult r21.w, r18.w, l(2) + and r21.w, r21.w, l(2) + dp2 r21.w, r26.xzxx, icb[r21.w + 0].xzxx + mul r21.w, r21.w, icb[r18.w + 4].z + div r21.w, r21.w, |r20.w| + mad r21.y, r21.w, r21.x, r21.y + add r21.y, r21.y, l(0.500000) + mul_sat r27.x, r21.y, l(0.166666672) + iadd r21.y, l(-1), icb[r18.w + 4].y + dp2 r21.y, r26.yzyy, icb[r21.y + 0].xyxx + mul r18.w, r21.y, icb[r18.w + 4].w + div r18.w, r18.w, |r20.w| + mad_sat r27.y, -r18.w, r21.x, l(0.500000) + mad r20.xz, r27.xxyx, cb7[r15.w + 0].zzwz, cb7[r15.w + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r15.w, r20.xzxx, t21.yzwx, s1, l(0.000000) + mul r16.w, r15.w, r16.w + endif + lt r15.w, l(0.000000), r16.w + if_nz r15.w + if_z r17.w + ftoi r15.w, cb5[r24.y + 6].x + else + add r20.xzw, r1.xxyz, -cb5[r24.x + 6].xxyz + lt r21.xyw, |r20.zwzw|, |r20.xxxz| + and r16.w, r21.y, r21.x + lt r20.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xxzw + ushr r17.w, cb5[r14.w + 6].w, l(24) + ubfe r21.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r14.w + 6].wwww + movc r17.w, r20.x, r17.w, r21.x + and r14.w, l(255), cb5[r14.w + 6].w + movc r14.w, r20.z, r21.y, r14.w + ubfe r18.w, l(8), l(8), cb5[r24.y + 6].x + and r20.x, l(255), cb5[r24.y + 6].x + movc r18.w, r20.w, r18.w, r20.x + movc r14.w, r21.w, r14.w, r18.w + movc r14.w, r16.w, r17.w, r14.w + ilt r16.w, r14.w, l(80) + movc r15.w, r16.w, r14.w, l(-1) + endif + mad r20.xzw, r25.xxyz, cb6[r15.w + 288].xxxx, r1.xxyz + mul r14.w, l(5.000000), cb6[r15.w + 288].y + mad r20.xzw, r6.xxyz, r14.wwww, r20.xxzw + ishl r14.w, r15.w, l(2) + mul r24.xyzw, r20.zzzz, cb6[r14.w + 65].xyzw + mad r24.xyzw, cb6[r14.w + 64].xyzw, r20.xxxx, r24.xyzw + mad r24.xyzw, cb6[r14.w + 66].xyzw, r20.wwww, r24.xyzw + add r24.xyzw, r24.xyzw, cb6[r14.w + 67].xyzw + div r20.xzw, r24.xxyz, r24.wwww + ge r21.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xzxw + ge r24.xyz, r20.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r25.xy, -cb6[r15.w + 344].xyxx, cb6[r15.w + 344].zwzz + mad r20.xz, r20.xxzx, r25.xxyx, cb6[r15.w + 344].xxyx + mad r25.xy, r20.xzxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r25.xy, r25.xyxx + mad r20.xz, r20.xxzx, cb6[400].zzwz, -r25.xxyx + add r26.xyzw, r20.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r27.xyzw, r26.xxzz, r26.xxzz + add r25.zw, -r20.xxxz, l(0.000000, 0.000000, 1.000000, 1.000000) + min r26.xz, r20.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r28.xy, r20.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r29.xy, r25.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r28.xy, -r28.xyxx, r28.xyxx, r26.ywyy + add r28.xy, r28.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r28.xy, r28.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r27.xz, r27.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r20.xz, r27.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r20.xxzx + mul r30.xy, r20.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r20.xz, -r26.xxzx, r26.xxzx, r25.zzwz + add r20.xz, r20.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r31.xy, r20.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r20.xz, r26.yywy, l(0.160000, 0.000000, 0.160000, 0.000000) + mov r30.z, r31.x + mov r30.w, r20.x + mov r29.z, r28.x + mov r29.w, r27.x + add r26.xyzw, r29.zwxz, r30.zwxz + mov r31.z, r30.y + mov r31.w, r20.z + mov r28.z, r29.y + mov r28.w, r27.z + add r27.xyz, r28.zywz, r31.zywz + div r29.xyz, r29.xzwx, r26.zwyz + add r29.xyz, r29.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r29.xyz, r29.xyzx, cb6[400].xxxx + div r28.xyz, r28.zywz, r27.xyzx + add r28.xyz, r28.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r28.xyw, r28.xyxz, cb6[400].yyyy + mul r30.xyzw, r26.zwyz, r27.xxxy + mov r29.w, r28.x + mad r31.xyzw, r25.xyxy, cb6[400].xyxy, r29.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r14.w, r31.xyxx, t9.xxxx, s4, r20.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.zwzz, t9.xxxx, s4, r20.w + mul r16.w, r16.w, r30.y + mad r14.w, r30.x, r14.w, r16.w + mad r20.xz, r25.xxyx, cb6[400].xxyx, r29.zzwz + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r20.xzxx, t9.xxxx, s4, r20.w + mad r14.w, r30.z, r16.w, r14.w + mov r28.z, r29.x + mad r31.xyzw, r25.xyxy, cb6[400].xyxy, r28.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.xyxx, t9.xxxx, s4, r20.w + mad r14.w, r30.w, r16.w, r14.w + mul r30.xyzw, r26.xyzw, r27.yyzz + mov r28.xz, r29.yyzy + mad r29.xyzw, r25.xyxy, cb6[400].xyxy, r28.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r29.xyxx, t9.xxxx, s4, r20.w + mad r14.w, r30.x, r16.w, r14.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r29.zwzz, t9.xxxx, s4, r20.w + mad r14.w, r30.y, r16.w, r14.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r31.zwzz, t9.xxxx, s4, r20.w + mad r14.w, r30.z, r16.w, r14.w + ige r16.w, r15.w, l(0) + or r21.xyw, r21.xyxw, r24.xyxz + or r17.w, r21.y, r21.x + or r17.w, r21.w, r17.w + and r18.w, r20.w, l(0x7fffffff) + ult r18.w, l(0x7f800000), r18.w + or r17.w, r17.w, r18.w + mad r24.xyzw, r25.xyxy, cb6[400].xyxy, r28.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.w, r24.xyxx, t9.xxxx, s4, r20.w + mad r14.w, r30.w, r18.w, r14.w + mul r18.w, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.x, r24.zwzz, t9.xxxx, s4, r20.w + mad r14.w, r18.w, r20.x, r14.w + add r14.w, r14.w, l(-1.000000) + mad r14.w, cb6[r15.w + 288].w, r14.w, l(1.000000) + movc r14.w, r17.w, l(1.000000), r14.w + movc r14.w, r16.w, r14.w, l(1.000000) + else + mov r14.w, l(1.000000) + endif + else + mov r14.w, l(1.000000) + endif + mul r11.z, r11.z, r14.w + mov r19.xyz, l(0,0,0,0) + endif + add r23.xyz, r19.xyzx, r23.xyzx + mov r12.w, r15.z + endloop + mov r7.w, r11.z + add r22.xyz, r22.xyzx, r23.xyzx + iadd r8.w, r8.w, l(1) +endloop +// === Glass Fix: Reduce clustered lights and overall brightness === +lt r37.x, l(0.500000), cb13[14].x +if_nz r37.x + mul r22.xyz, r22.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) + mul r2.xyz, r2.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) +endif +dp3 r0.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xzw, -r0.xxxx, r2.xxyz +mad r0.xzw, cb0[184].wwww, r1.xxzw, r0.xxxx +mad r1.xzw, r22.xxyz, r7.wwww, r16.xxyz +mul r2.xyz, cb2[20].zzzz, cb2[21].xyzx +add r3.x, -r10.w, l(1.000000) +add r3.y, l(1.000000), -cb2[20].y +max r3.y, r3.y, l(0.010000) +div_sat r3.x, r3.x, r3.y +mad r2.xyz, r8.xyzx, r2.xyzx, -r1.xzwx +mad r1.xzw, r3.xxxx, r2.xxyz, r1.xxzw +mad r0.xzw, r0.xxzw, cb0[184].xxyz, r1.xxzw +mad r1.x, r1.y, cb0[156].w, cb0[157].w +mad r1.z, r2.w, cb0[154].w, -cb0[153].w +max r1.xz, r1.xxzx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r1.w, r1.x, l(-1.442695) +exp r1.w, r1.w +add r1.w, -r1.w, l(1.000000) +div r1.x, r1.w, r1.x +mad r1.w, r1.y, cb0[156].w, cb0[158].w +mul r1.w, r1.w, l(1.442695) +exp r1.w, r1.w +mul r1.x, r1.w, r1.x +mul r1.x, r1.x, -r1.z +mul r1.xzw, r1.xxxx, cb0[155].xxyz +mul r1.xzw, r1.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r1.xzw, r1.xxzw +dp3 r2.x, -r5.xyzx, cb0[154].xyzx +mad r2.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.z, r2.xxxx, cb0[155].wwww +add r2.y, -r2.z, r2.y +lt r2.z, l(0.000000), cb0[163].z +if_nz r2.z + and r13.w, l(7), cb0[108].w + imad r3.xyz, r13.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.z, r3.y, r3.z, r3.x + imad r3.x, r3.z, r2.z, r3.y + imad r3.y, r2.z, r3.x, r3.z + imad r6.x, r3.x, r3.y, r2.z + dp3 r2.z, -r5.xyzx, -r4.xyzx + add r3.z, r1.y, -cb0[44].y + lt r3.w, l(5.960464478E-08), r2.z + div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z + and r2.z, r2.z, r3.w + mul r2.z, r2.z, cb0[163].w + div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w + mul r4.x, r2.z, r3.w + mad r4.y, r4.x, r3.z, cb0[44].y + mad r3.z, -r4.x, r3.z, r3.z + mul r4.x, r3.z, cb0[159].z + mul r3.z, r3.z, cb0[162].x + max r3.z, r3.z, l(-127.000000) + add r4.z, r4.y, -cb0[159].x + mul r4.z, r4.z, cb0[159].z + max r4.xz, r4.xxzx, l(-127.000000, 0.000000, -127.000000, 0.000000) + exp r4.z, -r4.z + mul r4.z, r4.z, cb0[159].y + lt r4.w, l(5.960464478E-08), |r4.x| + exp r5.x, -r4.x + add r5.x, -r5.x, l(1.000000) + div r5.x, r5.x, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r4.w, r5.x, r4.x + add r4.y, r4.y, -cb0[162].z + mul r4.y, r4.y, cb0[162].x + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[162].y + lt r4.w, l(5.960464478E-08), |r3.z| + exp r5.x, -r3.z + add r5.x, -r5.x, l(1.000000) + div r5.x, r5.x, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r4.w, r5.x, r3.z + mul r3.z, r3.z, r4.y + mad r3.z, r4.z, r4.x, r3.z + mad r2.z, -r2.z, r3.w, l(1.000000) + mul r2.z, r2.w, r2.z + mul r2.z, r2.z, r3.z + exp r2.z, -r2.z + min r2.z, r2.z, l(1.000000) + max r2.z, r2.z, cb0[161].w + mad_sat r3.zw, r2.wwww, cb0[160].yyyw, cb0[160].xxxz + add r2.z, r2.z, r3.z + add r2.z, r3.w, r2.z + min r2.z, r2.z, l(1.000000) + imad r6.y, r3.y, r6.x, r3.x + ushr r3.xy, r6.xyxx, l(16, 16, 0, 0) + utof r3.xy, r3.xyxx + mad r3.xy, r3.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r3.xy, r3.xyxx, cb0[167].wwww, r15.xyxx + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r3.w, r13.z, cb0[164].x, cb0[164].y + log r3.w, r3.w + mul r3.w, r3.w, cb0[164].z + div r3.z, r3.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r3.xyzw, r3.xyzx, t20.xyzw, s1, l(0.000000) + add r4.x, r13.z, -cb0[166].z + mul_sat r4.x, r4.x, l(1000000.000000) + add r3.xyzw, r3.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r3.xyzw, r4.xxxx, r3.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r4.x, -r2.z, l(1.000000) + mul r4.xyz, r4.xxxx, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.z, r2.z, r3.w +else + add r1.y, r1.y, -cb0[44].y + mul r3.w, r1.y, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r1.y, r1.y, cb0[162].x + max r1.y, r1.y, l(-127.000000) + add r4.x, cb0[44].y, -cb0[159].x + mul r4.x, r4.x, cb0[159].z + max r4.x, r4.x, l(-127.000000) + exp r4.x, -r4.x + mul r4.x, r4.x, cb0[159].y + lt r4.y, l(5.960464478E-08), |r3.w| + exp r4.z, -r3.w + add r4.z, -r4.z, l(1.000000) + div r4.z, r4.z, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r4.y, r4.z, r3.w + add r4.y, cb0[44].y, -cb0[162].z + mul r4.y, r4.y, cb0[162].x + max r4.y, r4.y, l(-127.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[162].y + lt r4.z, l(5.960464478E-08), |r1.y| + exp r4.w, -r1.y + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r1.y + mad r1.y, -r1.y, l(0.240226507), l(0.693147182) + movc r1.y, r4.z, r4.w, r1.y + mul r1.y, r1.y, r4.y + mad r1.y, r4.x, r3.w, r1.y + mul r1.y, r2.w, r1.y + exp r1.y, -r1.y + min r1.y, r1.y, l(1.000000) + max r1.y, r1.y, cb0[161].w + mad_sat r4.xy, r2.wwww, cb0[160].ywyy, cb0[160].xzxx + add r1.y, r1.y, r4.x + add r1.y, r4.y, r1.y + min r2.z, r1.y, l(1.000000) + add r1.y, -r2.z, l(1.000000) + mul r3.xyz, r1.yyyy, cb0[161].xyzx +endif +mul r4.xyz, r1.xzwx, r2.zzzz +mad r1.y, r2.x, r2.x, l(1.000000) +mul r1.y, r1.y, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r1.yyyy, cb0[158].xyzx +mad r1.y, -cb0[155].w, cb0[155].w, l(1.000000) +mul r2.x, r2.y, l(12.566371) +sqrt r2.y, r2.y +mul r2.x, r2.y, r2.x +max r2.x, r2.x, l(0.001000) +div r1.y, r1.y, r2.x +mad_sat r2.xyw, cb0[157].xyxz, r1.yyyy, r5.xyxz +mul r2.xyw, r2.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r1.xyz, -r1.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r1.xyz, r1.xyzx, r2.xywx +mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx +// === Glass Transparency Fix === +lt r37.x, l(0.500000), cb13[14].x +if_nz r37.x + add r37.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r37.xyz, r37.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r4.xyzx + mul r38.xyz, r1.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + mad r10.xyz, r0.xzwx, r37.xyzx, r38.xyzx +else + mad r10.xyz, r0.xzwx, r4.xyzx, r1.xyzx +endif +mul r0.xz, r12.xxyx, l(0.500000, 0.000000, -0.500000, 0.000000) +sqrt r0.xz, |r0.xxzx| +sqrt r0.xz, r0.xxzx +mov r12.z, -r12.y +lt r1.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xzxx +lt r1.zw, r12.xxxz, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r1.xy, -r1.xyxx, r1.zwzz +itof r1.xy, r1.xyxx +mul r0.xz, r0.xxzx, r1.xxyx +mad r0.xz, r0.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000) +add r0.y, r0.y, l(-0.100000024) +lt r0.w, l(0.000000), r0.y +lt r0.y, r0.y, l(0.000000) +iadd r0.y, -r0.w, r0.y +itof r0.y, r0.y +mov_sat r0.y, r0.y +add r1.xy, -r0.xzxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r0.xy, r0.yyyy, r1.xyxx, r0.xzxx +min o1.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r10.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r10.w, r0.x +max r0.x, r10.w, r0.x +mul_sat r0.x, r0.x, l(10.000000) +lt r0.x, l(0.500000), r0.x +and o1.z, r0.x, l(0x3f800000) +// === Glass Highlight Compression === +lt r37.x, l(0.500000), cb13[14].x +if_nz r37.x + dp3 r37.y, r10.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) + lt r37.z, l(0.500000), r37.y + if_nz r37.z + add r37.w, r37.y, l(-0.500000) + mul r37.w, r37.w, l(-0.666667) + exp r37.w, r37.w + add r37.w, -r37.w, l(1.000000) + mad r37.w, r37.w, l(1.500000), l(0.500000) + max r38.x, r37.y, l(0.001000) + div r38.x, r37.w, r38.x + mul r10.xyz, r10.xyzx, r38.xxxx + endif +endif +mov o0.xyzw, r10.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0xF831814B.cso b/src/games/endfield/glass/0xF831814B.cso new file mode 100644 index 0000000000000000000000000000000000000000..a3ab094752610f9857a4151b214c8306284b4592 GIT binary patch literal 53924 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 1.0f) { r0.xyz = ApplyRCAS(r0.xyz, v1.xy, t0, s0_s); } + + // Apply color calibration (temp 6750K + magenta 0.03) — Tech Test Look + if (TECH_TEST_LOOK > 0.5f) { + r0.xyz = ApplyColorCalibration(r0.xyz); + } o0.xyz = r0.xyz; o0.w = 0; diff --git a/src/games/endfield/others/skybox2_0xEC809E79.ps_5_0.hlsl b/src/games/endfield/others/skybox2_0xEC809E79.ps_5_0.hlsl index 6b9daf3e1..eadcc7b9a 100644 --- a/src/games/endfield/others/skybox2_0xEC809E79.ps_5_0.hlsl +++ b/src/games/endfield/others/skybox2_0xEC809E79.ps_5_0.hlsl @@ -902,6 +902,15 @@ void main( r2.xyz = r4.xyz * r2.xyz; r2.xyz = r2.xyz * r1.yyy + r3.yzw; o0.xyz = r0.xyz * r1.xzw + r2.xyz; + + // ========================================================================== + // SKYBOX DESATURATION (50%) — Tech Test Look + // ========================================================================== + if (TECH_TEST_LOOK > 0.5f) { + float skyboxLuma = dot(o0.xyz, float3(0.2126f, 0.7152f, 0.0722f)); + o0.xyz = lerp(o0.xyz, float3(skyboxLuma, skyboxLuma, skyboxLuma), 0.5f); + } + r0.x = max(9.99999994e-09, v3.z); r0.xy = v3.xy / r0.xx; r0.z = max(9.99999994e-09, v4.z); diff --git a/src/games/endfield/others/skybox_0x9E0DE464.ps_5_0.hlsl b/src/games/endfield/others/skybox_0x9E0DE464.ps_5_0.hlsl index ddf5d9aec..6f51cf4b3 100644 --- a/src/games/endfield/others/skybox_0x9E0DE464.ps_5_0.hlsl +++ b/src/games/endfield/others/skybox_0x9E0DE464.ps_5_0.hlsl @@ -567,6 +567,14 @@ void main( r2.xyz = r4.xyz * r2.xyz; r2.xyz = r2.xyz * r1.yyy + r3.yzw; o0.xyz = r0.xyz * r1.xzw + r2.xyz; + + // ========================================================================== + // SKYBOX DESATURATION (50%) — Tech Test Look + // ========================================================================== + if (TECH_TEST_LOOK > 0.5f) { + float skyboxLuma = dot(o0.xyz, float3(0.2126f, 0.7152f, 0.0722f)); + o0.xyz = lerp(o0.xyz, float3(skyboxLuma, skyboxLuma, skyboxLuma), 0.5f); + } // ========================================================================== // VELOCITY BUFFER OUTPUT (for motion blur / TAA) diff --git a/src/games/endfield/others/sun-lens-dirt_0xC3217979.ps_5_0.hlsl b/src/games/endfield/others/sun-lens-dirt_0xC3217979.ps_5_0.hlsl index b1dfa9ad5..a642ee934 100644 --- a/src/games/endfield/others/sun-lens-dirt_0xC3217979.ps_5_0.hlsl +++ b/src/games/endfield/others/sun-lens-dirt_0xC3217979.ps_5_0.hlsl @@ -32,6 +32,6 @@ void main( r0.xyzw = t0.SampleBias(s0_s, v1.xy, cb0[108].x).xyzw; r0.xyzw = cb1[6].xyzw * r0.xyzw; - o0.xyzw = w1 * r0.xyzw; + o0.xyzw = w1 * r0.xyzw * 0.25f; return; } \ No newline at end of file diff --git a/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl b/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl index 1225476fe..f73947141 100644 --- a/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl +++ b/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl @@ -1,4 +1,4 @@ -// ---- Created with 3Dmigoto v1.4.1 on Sat Jan 24 04:33:32 2026 + #include "../shared.h" Texture2D t5 : register(t5); diff --git a/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl b/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl index 674518ae9..42788250a 100644 --- a/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl +++ b/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl @@ -1,5 +1,4 @@ -// ---- Created with 3Dmigoto v1.4.1 on Sat Jan 24 06:14:41 2026 -// Fixed for compilation + #include "../shared.h" groupshared struct { float val[1]; } g0[128]; @@ -26,14 +25,9 @@ cbuffer cb0 : register(b0) [numthreads(64, 1, 1)] void main(uint3 vThreadIDInGroup : SV_GroupThreadID, uint3 vThreadGroupID : SV_GroupID) { -// Needs manual fix for instruction: -// unknown dcl_: dcl_uav_typed_texture2d (unorm,unorm,unorm,unorm) u0 float4 r0,r1,r2,r3,r4,r5,r6,r7,r8; uint4 bitmask, uiDest; float4 fDest; - -// Needs manual fix for instruction: -// unknown dcl_: dcl_thread_group 64, 1, 1 r0.x = cmp(0 < cb1[2].w); r0.x = r0.x ? 0 : 63; r0.x = (int)r0.x ^ (int)vThreadIDInGroup.x; diff --git a/src/games/endfield/shared.h b/src/games/endfield/shared.h index 8e301166c..ef22ab020 100644 --- a/src/games/endfield/shared.h +++ b/src/games/endfield/shared.h @@ -96,7 +96,26 @@ struct ShaderInjectData { float ssr_gi_intensity; float metallic_ibl_intensity; float cubemap_ambient_link; - float glass_transparency; + float glass_transparency; + float improved_ssr; + float tech_test_look; + float ui_aspect_ratio; + float ao_radius; + float ao_radius_scale; + float ao_falloff_range; + float ao_distribution_power; + float ao_thin_occluder; + float ao_gamma; + float ao_temporal_frame; + float ao_mip_bias; + float ao_direction_count; + float ao_step_count; + float ao_normal_attenuation; + float ao_thickness; + float ao_denoiser_blur_beta; + float ao_debug_view; + float ao_bitmask; + float improved_gtao; }; #ifndef __cplusplus @@ -157,6 +176,24 @@ cbuffer shader_injection : register(b13) { #define CHROMATIC_ABERRATION_STRENGTH shader_injection.chromatic_aberration_strength #define FOG_MODIFICATION shader_injection.fog_modification #define GLASS_TRANSPARENCY shader_injection.glass_transparency +#define TECH_TEST_LOOK shader_injection.tech_test_look +#define UI_ASPECT_RATIO shader_injection.ui_aspect_ratio +#define AO_RADIUS shader_injection.ao_radius +#define AO_RADIUS_SCALE shader_injection.ao_radius_scale +#define AO_FALLOFF_RANGE shader_injection.ao_falloff_range +#define AO_DISTRIBUTION_POWER shader_injection.ao_distribution_power +#define AO_THIN_OCCLUDER shader_injection.ao_thin_occluder +#define AO_GAMMA shader_injection.ao_gamma +#define AO_TEMPORAL_FRAME shader_injection.ao_temporal_frame +#define AO_MIP_BIAS shader_injection.ao_mip_bias +#define AO_DIRECTION_COUNT shader_injection.ao_direction_count +#define AO_STEP_COUNT shader_injection.ao_step_count +#define AO_NORMAL_ATTENUATION shader_injection.ao_normal_attenuation +#define AO_THICKNESS shader_injection.ao_thickness +#define AO_DENOISER_BLUR_BETA shader_injection.ao_denoiser_blur_beta +#define AO_DEBUG_VIEW shader_injection.ao_debug_view +#define AO_BITMASK shader_injection.ao_bitmask +#define IMPROVED_GTAO shader_injection.improved_gtao #include "../../shaders/renodx.hlsl" diff --git a/src/games/endfield/ssr/ssr-denoiser_0xF99BCA96.cs_5_0.hlsl b/src/games/endfield/ssr/ssr-denoiser_0xF99BCA96.cs_5_0.hlsl new file mode 100644 index 000000000..35be5fc90 --- /dev/null +++ b/src/games/endfield/ssr/ssr-denoiser_0xF99BCA96.cs_5_0.hlsl @@ -0,0 +1,203 @@ + +#include "../shared.h" + +Texture2D t3 : register(t3); +Texture2D t2 : register(t2); +Texture2D t1 : register(t1); +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb0 : register(b0) +{ + float4 cb0[83]; +} + +RWTexture2D u0 : register(u0); + +#define cmp - + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) +{ + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13; + uint4 bitmask, uiDest; + float4 fDest; + + // === ORIGINAL DENOISER === + r0.xyzw = (int4)vThreadID.xyxy + int4(0,1,1,1); + r0.xyzw = (int4)r0.xyzw; + r0.xyzw = float4(0.5,0.5,0.5,0.5) + r0.xyzw; + r0.xyzw = cb0[82].zwzw * r0.xyzw; + r1.xyz = t1.SampleLevel(s0_s, r0.zw, 0).xyz; + r0.xyz = t1.SampleLevel(s0_s, r0.xy, 0).xyz; + r0.w = dot(r1.xz, float2(0.5,-0.5)); + r2.y = 0.501960814 + r0.w; + r0.w = dot(r1.xzy, float3(-0.25,-0.25,0.5)); + r2.x = dot(r1.xzy, float3(0.25,0.25,0.5)); + r2.z = 0.501960814 + r0.w; + r0.w = dot(r0.xz, float2(0.5,-0.5)); + r1.y = 0.501960814 + r0.w; + r0.w = dot(r0.xzy, float3(-0.25,-0.25,0.5)); + r1.x = dot(r0.xzy, float3(0.25,0.25,0.5)); + r1.z = 0.501960814 + r0.w; + r0.xyzw = (int4)vThreadID.xyxy + int4(1,0,-1,1); + r0.xyzw = (int4)r0.xyzw; + r0.xyzw = float4(0.5,0.5,0.5,0.5) + r0.xyzw; + r0.xyzw = cb0[82].zwzw * r0.xyzw; + r3.xyz = t1.SampleLevel(s0_s, r0.zw, 0).xyz; + r0.xyz = t1.SampleLevel(s0_s, r0.xy, 0).xyz; + r0.w = dot(r3.xz, float2(0.5,-0.5)); + r4.y = 0.501960814 + r0.w; + r0.w = dot(r3.xzy, float3(-0.25,-0.25,0.5)); + r4.x = dot(r3.xzy, float3(0.25,0.25,0.5)); + r4.z = 0.501960814 + r0.w; + r0.w = dot(r0.xz, float2(0.5,-0.5)); + r3.y = 0.501960814 + r0.w; + r0.w = dot(r0.xzy, float3(-0.25,-0.25,0.5)); + r3.x = dot(r0.xzy, float3(0.25,0.25,0.5)); + r3.z = 0.501960814 + r0.w; + r0.xyzw = (int4)vThreadID.xyxy + int4(1,-1,-1,0); + r0.xyzw = (int4)r0.xyzw; + r0.xyzw = float4(0.5,0.5,0.5,0.5) + r0.xyzw; + r0.xyzw = cb0[82].zwzw * r0.xyzw; + r5.xyz = t1.SampleLevel(s0_s, r0.zw, 0).xyz; + r0.xyz = t1.SampleLevel(s0_s, r0.xy, 0).xyz; + r0.w = dot(r5.xz, float2(0.5,-0.5)); + r6.y = 0.501960814 + r0.w; + r0.w = dot(r5.xzy, float3(-0.25,-0.25,0.5)); + r6.x = dot(r5.xzy, float3(0.25,0.25,0.5)); + r6.z = 0.501960814 + r0.w; + r0.w = dot(r0.xz, float2(0.5,-0.5)); + r5.y = 0.501960814 + r0.w; + r0.w = dot(r0.xzy, float3(-0.25,-0.25,0.5)); + r5.x = dot(r0.xzy, float3(0.25,0.25,0.5)); + r5.z = 0.501960814 + r0.w; + r0.xyzw = (int4)vThreadID.xyxy + int4(-1,-1,0,-1); + r0.xyzw = (int4)r0.xyzw; + r0.xyzw = float4(0.5,0.5,0.5,0.5) + r0.xyzw; + r0.xyzw = cb0[82].zwzw * r0.xyzw; + r7.xyz = t1.SampleLevel(s0_s, r0.xy, 0).xyz; + r0.xyz = t1.SampleLevel(s0_s, r0.zw, 0).xyz; + r0.w = dot(r7.xz, float2(0.5,-0.5)); + r8.y = 0.501960814 + r0.w; + r0.w = dot(r7.xzy, float3(-0.25,-0.25,0.5)); + r8.x = dot(r7.xzy, float3(0.25,0.25,0.5)); + r8.z = 0.501960814 + r0.w; + r0.w = dot(r0.xz, float2(0.5,-0.5)); + r7.y = 0.501960814 + r0.w; + r0.w = dot(r0.xzy, float3(-0.25,-0.25,0.5)); + r7.x = dot(r0.xzy, float3(0.25,0.25,0.5)); + r7.z = 0.501960814 + r0.w; + r0.xyz = r7.xyz * r7.xyz; + r0.xyz = r8.xyz * r8.xyz + r0.xyz; + r0.xyz = r5.xyz * r5.xyz + r0.xyz; + r0.xyz = r6.xyz * r6.xyz + r0.xyz; + r9.xy = (int2)vThreadID.xy; + r9.xy = float2(0.5,0.5) + r9.xy; + r9.xy = cb0[82].zw * r9.xy; + r10.xyz = t1.SampleLevel(s0_s, r9.xy, 0).xyz; + r0.w = dot(r10.xz, float2(0.5,-0.5)); + r11.y = 0.501960814 + r0.w; + r0.w = dot(r10.xzy, float3(-0.25,-0.25,0.5)); + r11.z = 0.501960814 + r0.w; + r11.x = dot(r10.xzy, float3(0.25,0.25,0.5)); + r0.xyz = r11.xyz * r11.xyz + r0.xyz; + r0.xyz = r3.xyz * r3.xyz + r0.xyz; + r0.xyz = r4.xyz * r4.xyz + r0.xyz; + r0.xyz = r1.xyz * r1.xyz + r0.xyz; + r0.xyz = r2.xyz * r2.xyz + r0.xyz; + r12.xyz = r8.xyz + r7.xyz; + r12.xyz = r12.xyz + r5.xyz; + r12.xyz = r12.xyz + r6.xyz; + r12.xyz = r12.xyz + r11.xyz; + r12.xyz = r12.xyz + r3.xyz; + r12.xyz = r12.xyz + r4.xyz; + r12.xyz = r12.xyz + r1.xyz; + r12.xyz = r12.xyz + r2.xyz; + r13.xyz = float3(0.111111112,0.111111112,0.111111112) * r12.xyz; + r13.xyz = r13.xyz * r13.xyz; + r0.xyz = r0.xyz * float3(0.111111112,0.111111112,0.111111112) + -r13.xyz; + r0.xyz = sqrt(r0.xyz); + + // Variance multiplier: wider = more history survives the clamp = less shimmer + // Vanilla is 1.25. In Reduced mode, widen to 2.0 for stability. + + float variance_mult = (shader_injection.improved_ssr >= 0.5f) ? 2.0f : 1.25f; + r0.xyz = variance_mult * r0.xyz; + r13.xyz = r12.xyz * float3(0.111111112,0.111111112,0.111111112) + -r0.xyz; + r0.xyz = r12.xyz * float3(0.111111112,0.111111112,0.111111112) + r0.xyz; + r12.xyz = min(r8.xyz, r5.xyz); + r5.xyz = max(r8.xyz, r5.xyz); + r8.xyz = min(r4.xyz, r2.xyz); + r2.xyz = max(r4.xyz, r2.xyz); + r2.xyz = max(r5.xyz, r2.xyz); + r4.xyz = min(r12.xyz, r8.xyz); + r5.xyz = min(r3.xyz, r1.xyz); + r1.xyz = max(r3.xyz, r1.xyz); + r3.xyz = min(r11.xyz, r6.xyz); + r6.xyz = max(r11.xyz, r6.xyz); + r1.xyz = max(r6.xyz, r1.xyz); + r1.xyz = max(r7.xyz, r1.xyz); + r3.xyz = min(r3.xyz, r5.xyz); + r3.xyz = min(r7.xyz, r3.xyz); + r4.xyz = min(r3.xyz, r4.xyz); + r3.xyz = r4.xyz + r3.xyz; + r3.xyz = float3(0.5,0.5,0.5) * r3.xyz; + r3.xyz = min(r3.xyz, r13.xyz); + r2.xyz = max(r1.xyz, r2.xyz); + r1.xyz = r2.xyz + r1.xyz; + r1.xyz = float3(0.5,0.5,0.5) * r1.xyz; + r0.xyz = max(r1.xyz, r0.xyz); + r1.xyz = r0.xyz + -r3.xyz; + r0.xyz = r0.xyz + r3.xyz; + r1.xyz = float3(0.5,0.5,0.5) * r1.xyz; + r2.xy = t0.SampleLevel(s0_s, r9.xy, 0).xy; + r2.zw = float2(-0.5,-0.5) + r2.xy; + r2.xy = abs(r2.xy) * float2(2,2) + float2(-1,-1); + r2.xy = r2.xy * r2.xy; + r2.xy = r2.xy * r2.xy; + r3.xy = cmp(float2(0,0) < r2.zw); + r2.zw = cmp(r2.zw < float2(0,0)); + r2.zw = (int2)-r3.xy + (int2)r2.zw; + r2.zw = (int2)r2.zw; + r2.xy = -r2.xy * r2.zw + r9.xy; + r0.w = t2.SampleLevel(s0_s, r9.xy, 0).x; + r0.w = 0.899999976 * r0.w; + if (shader_injection.improved_ssr >= 0.5f) { + // Manual bilinear interpolation for history color + float2 texelPos = r2.xy * cb0[82].xy - 0.5; + float2 f = frac(texelPos); + float2 base = (floor(texelPos) + 0.5) * cb0[82].zw; + float3 h00 = t3.SampleLevel(s0_s, base, 0).xyz; + float3 h10 = t3.SampleLevel(s0_s, base + float2(cb0[82].z, 0), 0).xyz; + float3 h01 = t3.SampleLevel(s0_s, base + float2(0, cb0[82].w), 0).xyz; + float3 h11 = t3.SampleLevel(s0_s, base + cb0[82].zw, 0).xyz; + r2.xyz = lerp(lerp(h00, h10, f.x), lerp(h01, h11, f.x), f.y); + } else { + r2.xyz = t3.SampleLevel(s0_s, r2.xy, 0).xyz; + } + r1.w = dot(r2.xz, float2(0.5,-0.5)); + r3.y = 0.501960814 + r1.w; + r1.w = dot(r2.xzy, float3(-0.25,-0.25,0.5)); + r3.x = dot(r2.xzy, float3(0.25,0.25,0.5)); + r3.z = 0.501960814 + r1.w; + r2.xyz = -r0.xyz * float3(0.5,0.5,0.5) + r3.xyz; + r1.xyz = r2.xyz / r1.xyz; + r1.y = max(abs(r1.y), abs(r1.z)); + r1.x = max(abs(r1.x), r1.y); + r1.yzw = r2.xyz / r1.xxx; + r1.x = cmp(1 < r1.x); + r0.xyz = r0.xyz * float3(0.5,0.5,0.5) + r1.yzw; + r0.xyz = r1.xxx ? r0.xyz : r3.xyz; + r0.yz = float2(-0.501960814,-0.501960814) + r0.yz; + r1.xy = r0.xx + r0.yz; + r1.xw = r1.xx + -r0.zz; + r0.y = r0.x + -r0.y; + r1.z = r0.y + -r0.z; + r1.xyzw = r1.xyzw + -r10.xyzx; + r0.xyzw = r0.wwww * r1.xyzw + r10.xyzx; + r0.xyzw = max(float4(0.00100000005,0.00100000005,0.00100000005,0.00100000005), r0.xyzw); + u0[vThreadID.xy] = r0.xyzw; + return; +} \ No newline at end of file diff --git a/src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl b/src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl new file mode 100644 index 000000000..6910ab578 --- /dev/null +++ b/src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl @@ -0,0 +1,348 @@ + +#include "../shared.h" + +Texture2D t2 : register(t2); +Texture2D t1 : register(t1); +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb1 : register(b1) +{ + float4 cb1[6]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[85]; +} + +RWTexture2D u0 : register(u0); +RWTexture2D u1 : register(u1); +RWTexture2D u2 : register(u2); + +#define cmp - + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) +{ + float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12; + uint4 bitmask, uiDest; + float4 fDest; + r0.xy = (int2)vThreadID.xy; + r0.xy = float2(0.5,0.5) + r0.xy; + r0.zw = cb1[0].zw * r0.xy; + r1.z = t0.SampleLevel(s0_s, r0.zw, 0).x; + r2.x = cb0[84].z * r1.z + cb0[84].w; + r1.xy = r0.zw * float2(2,2) + float2(-1,-1); + r3.xyzw = cb0[13].xyzw * r1.yyyy; + r3.xyzw = cb0[12].xyzw * r1.xxxx + r3.xyzw; + r3.xyzw = cb0[14].xyzw * r1.zzzz + r3.xyzw; + r3.xyzw = cb0[15].xyzw + r3.xyzw; + r3.xyz = r3.xyz / r3.www; + r2.yzw = t1.SampleLevel(s0_s, r0.zw, 0).xyz; + r2.yz = r2.yz * float2(2,2) + float2(-1,-1); + r4.x = dot(float2(1,1), abs(r2.yz)); + r4.y = 1 + -r4.x; + r4.w = cmp(r4.y < 0); + r5.xy = cmp(r2.yz >= float2(0,0)); + r5.zw = float2(1,1) + -abs(r2.zy); + r5.xy = r5.xy ? float2(1,1) : float2(-1,-1); + r5.xy = r5.zw * r5.xy; + r4.xz = r4.ww ? r5.xy : r2.yz; + r2.y = dot(r4.xyz, r4.xyz); + r2.y = rsqrt(r2.y); + r4.xyz = r4.xyz * r2.yyy; + r2.y = r2.w * r2.w; + r2.y = r2.y * r2.y; + r5.xyz = cb0[1].xyz * r4.yyy; + r5.xyz = cb0[0].xyz * r4.xxx + r5.xyz; + r5.xyz = cb0[2].xyz * r4.zzz + r5.xyz; + r6.xy = float2(-0.0700000003,0.0199999996) / r2.xx; + r2.z = 1.44269502 * r6.x; + r2.z = exp2(r2.z); + r2.z = r2.z + r2.z; + r2.z = max(0.125, r2.z); + r2.z = min(1, r2.z); + r2.z = cb1[3].x * r2.z; + r2.z = ceil(r2.z); + r2.z = max((shader_injection.improved_ssr >= 0.5f) ? 256 : 32, r2.z); + r4.w = cmp(r2.w >= 0.300000012); + r5.w = 0.125 * r2.z; + r2.z = r4.w ? r5.w : r2.z; + r3.w = -r3.y; + r3.y = dot(r3.xzw, r3.xzw); + r3.y = rsqrt(r3.y); + r3.xyz = r3.xwz * r3.yyy; + r3.w = dot(r3.xyz, r5.xyz); + r4.w = r3.w + r3.w; + r3.xyz = r5.xyz * -r4.www + r3.xyz; + r5.xyzw = cb0[9].xyzw * r3.yyyy; + r5.xyzw = cb0[8].xyzw * r3.xxxx + r5.xyzw; + r5.xyzw = cb0[10].xyzw * r3.zzzz + r5.xyzw; + r1.w = 1; + r5.xyzw = r5.xyzw * float4(1,-1,1,1) + r1.xyzw; + r3.xyz = r5.xyz / r5.www; + r3.xyz = r3.xyz + -r1.xyz; + r1.w = dot(r3.xy, r3.xy); + r1.w = sqrt(r1.w); + r4.w = 0.5 * r1.w; + r5.xy = r1.xy * r4.ww + r3.xy; + r5.xy = -r1.ww * float2(0.5,0.5) + abs(r5.xy); + r5.xy = max(float2(0,0), r5.xy); + r5.xy = r5.xy / abs(r3.xy); + r5.xy = float2(1,1) + -r5.xy; + r1.w = min(r5.x, r5.y); + r1.w = r1.w / r4.w; + r3.xyz = r3.xyz * r1.www; + r1.w = abs(r3.z) / r2.z; + r1.w = max(9.99999975e-05, r1.w); + r4.w = 1 / r2.z; + r3.xyz = float3(0.5,0.5,1) * r3.xyz; + r3.xyz = r3.xyz * r4.www; + r5.xy = cb1[0].xy * r3.xy; + r4.w = max(abs(r5.x), abs(r5.y)); + r5.x = cmp(r4.w < 1); + r4.w = 0.00100000005 + r4.w; + r4.w = 1 / r4.w; + r5.y = trunc(cb1[1].x); + r0.xy = r5.yy * float2(2.08299994,4.8670001) + r0.xy; + r0.x = dot(r0.xy, float2(0.0671105608,0.00583714992)); + r0.x = frac(r0.x); + r0.x = 52.9829178 * r0.x; + r0.x = frac(r0.x); + r0.x = r5.x ? r4.w : r0.x; + r5.xyz = r1.xyz * float3(0.5,0.5,1) + float3(0.5,0.5,0); + r5.xyz = r3.xyz * r0.xxx + r5.xyz; + r0.x = t0.SampleLevel(s0_s, r5.xy, 0).x; + r0.x = r5.z + -r0.x; + r6.xzw = float3(0,0,0); + r7.xyz = float3(0,0,0); + r8.xyz = r5.xyz; + r0.y = 0; + r4.w = 0; + r5.w = r0.x; + while (true) { + r7.w = cmp(r4.w < r2.z); + if (r7.w != 0) { + r9.xyzw = r3.xyxy * float4(1,1,2,2) + r8.xyxy; + r10.xyzw = r3.xyxy * float4(3,3,4,4) + r8.xyxy; + r11.xyzw = r3.zzzz * float4(1,2,3,4) + r8.zzzz; + r12.x = t0.SampleLevel(s0_s, r9.xy, 0).x; + r12.y = t0.SampleLevel(s0_s, r9.zw, 0).x; + r12.z = t0.SampleLevel(s0_s, r10.xy, 0).x; + r12.w = t0.SampleLevel(s0_s, r10.zw, 0).x; + r9.xyzw = -r12.xyzw + r11.xyzw; + r10.xyzw = r9.xyzw + r1.wwww; + r10.xyzw = cmp(abs(r10.xyzw) < r1.wwww); + r11.xy = (int2)r10.zw | (int2)r10.xy; + r7.w = (int)r11.y | (int)r11.x; + if (r7.w != 0) { + r11.xy = r10.zz ? r9.zy : r9.wz; + r9.yz = r10.yy ? r9.yx : r11.xy; + r7.w = r10.x ? r9.x : r9.y; + r8.w = r10.x ? r5.w : r9.z; + r9.x = r10.z ? 2 : 3; + r9.x = r10.y ? 1 : r9.x; + r9.x = r10.x ? 0 : r9.x; + r7.w = r8.w + -r7.w; + r7.w = saturate(r8.w / r7.w); + r7.w = r9.x + r7.w; + r9.xyz = r3.xyz * r7.www + r8.xyz; + r0.y = -1; + r7.xyz = r9.xyz; + break; + } + r8.xyz = r3.xyz * float3(4,4,4) + r8.xyz; + r4.w = 4 + r4.w; + r6.xzw = r8.xyz; + r0.y = 0; + r5.w = r9.w; + continue; + } else { + r7.xyz = r6.xzw; + r0.y = 0; + break; + } + r0.y = 0; + } + if (r0.y != 0) { + r0.x = max(r7.x, r7.y); + r0.x = 1 + -r0.x; + r0.y = min(r7.x, r7.y); + r0.x = min(r0.x, r0.y); + r3.xy = t2.SampleLevel(s0_s, r7.xy, 0).xy; + r5.xy = abs(r3.xy) * float2(2,2) + float2(-1,-1); + r5.xy = r5.xy * r5.xy; + r5.xy = r5.xy * r5.xy; + r3.xy = float2(-0.5,-0.5) + r3.xy; + r5.zw = cmp(float2(0,0) < r3.xy); + r3.xy = cmp(r3.xy < float2(0,0)); + r3.xy = (int2)-r5.zw + (int2)r3.xy; + r3.xy = (int2)r3.xy; + r3.xy = r5.xy * r3.xy; + r0.y = -cb1[2].z + 1; + r5.xy = r3.xy * r0.yy; + r1.w = cmp(cb1[1].y < r0.x); + r0.x = saturate(r0.x / cb1[1].y); + r0.x = r1.w ? 1 : r0.x; + r1.w = saturate(abs(r3.w) * cb1[1].z + cb1[1].w); + r1.w = 1 + -r1.w; + r0.x = r1.w * r0.x; + r1.w = cmp(r2.w < 0.100000001); + r2.x = 1 / r2.x; + r2.x = 100 + -r2.x; + r2.x = saturate(0.100000001 * r2.x); + r1.w = r1.w ? 1 : r2.x; + r0.x = r1.w * r0.x; + r0.zw = -r3.xy * r0.yy + r7.xy; + } else { + r5.xy = float2(0,0); + r0.x = 0; + } + r2.xz = t2.SampleLevel(s0_s, r0.zw, 0).xy; + r3.xy = abs(r2.xz) * float2(2,2) + float2(-1,-1); + r3.xy = r3.xy * r3.xy; + r0.y = 2 / r2.y; + r0.y = -1 + r0.y; + r0.y = 1 / r0.y; + r0.y = -2.03504682 * r0.y; + r0.y = exp2(r0.y); + r1.w = 1 + -r0.y; + r1.w = sqrt(r1.w); + r2.w = r0.y * -0.0187292993 + 0.0742610022; + r2.w = r2.w * r0.y + -0.212114394; + r0.y = r2.w * r0.y + 1.57072878; + r0.y = r0.y * r1.w; + r8.xyzw = cb0[25].xyzw * r1.yyyy; + r8.xyzw = cb0[24].xyzw * r1.xxxx + r8.xyzw; + r1.xyzw = cb0[26].xyzw * r1.zzzz + r8.xyzw; + r1.xyzw = cb0[27].xyzw + r1.xyzw; + r1.xyzw = r1.xyzw / r1.wwww; + r3.zw = r7.xy * float2(2,2) + float2(-1,-1); + r8.xyzw = cb0[25].xyzw * r3.wwww; + r8.xyzw = cb0[24].xyzw * r3.zzzz + r8.xyzw; + r7.xyzw = cb0[26].xyzw * r7.zzzz + r8.xyzw; + r7.xyzw = cb0[27].xyzw + r7.xyzw; + r6.xzw = cb0[44].xyz + -r1.xyz; + r2.w = dot(r6.xzw, r6.xzw); + r3.z = rsqrt(r2.w); + r8.xyz = r6.xzw * r3.zzz; + r2.w = sqrt(r2.w); + r3.w = cmp(abs(r4.z) < 0.999000013); + r9.z = r3.w ? 0 : 1; + r9.y = r3.w ? 1.000000 : 0; + r9.x = 0; + r10.xyz = r9.xyz * r4.xyz; + r9.xyz = r9.zxy * r4.yzx + -r10.xyz; + r3.w = dot(r9.xyz, r9.xyz); + r3.w = rsqrt(r3.w); + r9.xyz = r9.xyz * r3.www; + r7.xyzw = r7.xyzw / r7.wwww; + r1.xyzw = r7.xyzw + -r1.xyzw; + r1.x = dot(r1.xyzw, r1.xyzw); + r1.x = sqrt(r1.x); + r1.yzw = r9.zxy * r8.xyz; + r1.yzw = r9.yzx * r8.yzx + -r1.yzw; + sincos(r0.y, r7.x, r10.x); + r7.yzw = -r8.xyz * r2.www + cb0[44].xyz; + r10.yzw = r9.xyz * r4.xyz; + r4.xyz = r4.zxy * r9.yzx + -r10.yzw; + r9.xyz = r4.xyz * r8.xyz; + r4.xyz = r4.zxy * r8.yzx + -r9.xyz; + r0.y = r1.x + r2.w; + r9.xyz = r8.xyz * r0.yyy; + r10.yzw = cb0[21].xyw * -r9.yyy; + r9.xyw = cb0[20].xyw * -r9.xxx + r10.yzw; + r9.xyz = cb0[22].xyw * -r9.zzz + r9.xyw; + r9.xyz = cb0[23].xyw + r9.xyz; + r5.zw = r9.xy / r9.zz; + r5.zw = r5.zw * float2(0.5,0.5) + float2(0.5,0.5); + r5.zw = cb1[0].xy * r5.zw; + r0.y = dot(r1.zwy, -r8.xyz); + r9.xyz = r1.zwy * r0.yyy; + r10.yzw = -r6.xzw * r3.zzz + -r9.xyz; + r9.xyz = r10.xxx * r10.yzw + r9.xyz; + r10.yzw = r1.yzw * -r8.yzx; + r1.yzw = r1.wyz * -r8.zxy + -r10.yzw; + r1.yzw = r1.yzw * r7.xxx + r9.xyz; + r1.yzw = r1.yzw * r1.xxx + r7.yzw; + r1.yzw = -cb0[44].xyz + r1.yzw; + r9.xyz = cb0[21].xyw * r1.zzz; + r9.xyz = cb0[20].xyw * r1.yyy + r9.xyz; + r1.yzw = cb0[22].xyw * r1.www + r9.xyz; + r1.yzw = cb0[23].xyw + r1.yzw; + r0.y = dot(r4.yzx, -r8.xyz); + r9.xyz = r4.yzx * r0.yyy; + r6.xzw = -r6.xzw * r3.zzz + -r9.xyz; + r6.xzw = r10.xxx * r6.xzw + r9.xyz; + r9.xyz = r4.xyz * -r8.yzx; + r4.xyz = r4.zxy * -r8.zxy + -r9.xyz; + r4.xyz = r4.xyz * r7.xxx + r6.xzw; + r4.xyz = r4.xyz * r1.xxx + r7.yzw; + r4.xyz = -cb0[44].xyz + r4.xyz; + r6.xzw = cb0[21].xyw * r4.yyy; + r4.xyw = cb0[20].xyw * r4.xxx + r6.xzw; + r4.xyz = cb0[22].xyw * r4.zzz + r4.xyw; + r4.xyz = cb0[23].xyw + r4.xyz; + // Write UV coords to u0 + u0[vThreadID.xy] = r0.zwzz; + + r0.yz = r3.xy * r3.xy; + r2.xz = float2(-0.5,-0.5) + r2.xz; + r3.xy = cmp(float2(0,0) < r2.xz); + r2.xz = cmp(r2.xz < float2(0,0)); + r2.xz = (int2)-r3.xy + (int2)r2.xz; + r2.xz = (int2)r2.xz; + r0.yz = r0.yz * r2.xz + r5.xy; + r0.yz = cb0[82].xy * r0.yz; + r0.y = dot(r0.yz, r0.yz); + r0.y = sqrt(r0.y); + r0.z = log2(r6.y); + r0.z = saturate(r0.z * 0.693147182 + 0.00999999978); + r0.y = -r0.y * r0.z; + r0.y = 1.44269502 * r0.y; + r3.xzw = exp2(r0.yyy); + r0.y = cmp(9.99999975e-05 >= r2.y); + r0.zw = r1.yz / r1.ww; + r0.zw = r0.zw * float2(0.5,0.5) + float2(0.5,0.5); + r0.zw = -r0.zw * cb1[0].xy + r5.zw; + r0.z = dot(r0.zw, r0.zw); + r1.xy = r4.xy / r4.zz; + r1.xy = r1.xy * float2(0.5,0.5) + float2(0.5,0.5); + r1.xy = -r1.xy * cb1[0].xy + r5.zw; + r0.w = dot(r1.xy, r1.xy); + r0.z = r0.z + r0.w; + r0.z = sqrt(r0.z); + r0.z = 0.5 * r0.z; + r0.z = log2(r0.z); + r0.z = max(0, r0.z); + r0.z = min(cb1[5].y, r0.z); + r0.z = r0.z / cb1[5].y; + r3.y = r0.y ? 0 : r0.z; + + // Write blend weights to u1 + // r3.x, r3.z = temporal confidence (how much history to blend in) + // r3.y = mip/blur level (controls spatial denoiser blur radius) + // r3.w = same as r3.x + // + // Vanilla: unchanged + // Improved: keep temporal confidence for anti-firefly, disable spatial blur + // on smooth surfaces but retain it for rough ones (wood, stone) + + if (shader_injection.improved_ssr >= 0.5f) { + float mip_threshold = 0.25f; + float adjusted_mip = saturate((r3.y - mip_threshold) / (1.0f - mip_threshold)); + u1[vThreadID.xy] = float4(r3.x, adjusted_mip, r3.z, r3.x); + } else { + u1[vThreadID.xy] = r3.xyzw; + } + + // Metallic IBL intensity control + float ssr_blend = r0.x; + if (shader_injection.metallic_ibl_intensity == 1.f) { + ssr_blend = max(ssr_blend, 0.75); + } + u2[vThreadID.xy] = ssr_blend.xxxx; + return; +} \ No newline at end of file diff --git a/src/games/endfield/ssr/0xE92EE541.cs_5_0.hlsl b/src/games/endfield/ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl similarity index 95% rename from src/games/endfield/ssr/0xE92EE541.cs_5_0.hlsl rename to src/games/endfield/ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl index 92c81bd91..4bc2bc01d 100644 --- a/src/games/endfield/ssr/0xE92EE541.cs_5_0.hlsl +++ b/src/games/endfield/ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl @@ -1,4 +1,4 @@ -// ---- Created with 3Dmigoto v1.4.1 on Tue Feb 3 19:30:39 2026 + #include "../shared.h" RWTexture2D u0 : register(u0); @@ -191,7 +191,7 @@ void main(uint3 vThreadID : SV_DispatchThreadID) r4.y = min(1, r4.y); r4.y = cb1[3].x * r4.y; r4.y = ceil(r4.y); - r4.y = max(32, r4.y); + r4.y = max((shader_injection.improved_ssr >= 0.5f) ? 256 : 32, r4.y); r2.w = cmp(r2.w >= 0.300000012); r5.w = 0.125 * r4.y; r2.w = r2.w ? r5.w : r4.y; @@ -446,20 +446,29 @@ void main(uint3 vThreadID : SV_DispatchThreadID) r0.z = min(cb1[5].y, r0.z); r0.z = r0.z / cb1[5].y; r3.y = r0.y ? 0 : r0.z; - + // Write blend weights to u1 - u1[vThreadID.xy] = r3.xyzw; + // r3.x, r3.z = temporal confidence (how much history to blend in) + // r3.y = mip/blur level (controls spatial denoiser blur radius) + // r3.w = same as r3.x + // + // Vanilla: unchanged + // Improved: keep temporal confidence for anti-firefly, disable spatial blur + // on smooth surfaces but retain it for rough ones (wood, stone) + + if (shader_injection.improved_ssr >= 0.5f) { + float mip_threshold = 0.25f; + float adjusted_mip = saturate((r3.y - mip_threshold) / (1.0f - mip_threshold)); + u1[vThreadID.xy] = float4(r3.x, adjusted_mip, r3.z, r3.x); + } else { + u1[vThreadID.xy] = r3.xyzw; + } // Metallic IBL intensity control - // r0.x is the vanilla SSR blend factor (0 = full IBL, 1 = full SSR/no IBL) - // To reduce IBL intensity, we increase this value float ssr_blend = r0.x; - if (shader_injection.metallic_ibl_intensity == 1.f) { - // set minimum blend of 0.75 ssr_blend = max(ssr_blend, 0.75); } - // else: metallic_ibl_intensity == 0.f = Vanilla (no change) u2[vThreadID.xy] = ssr_blend.xxxx; } \ No newline at end of file diff --git a/src/games/endfield/ssr/ssr-upsample_0xE714AB7B.cs_5_0.hlsl b/src/games/endfield/ssr/ssr-upsample_0xE714AB7B.cs_5_0.hlsl new file mode 100644 index 000000000..90b99d05d --- /dev/null +++ b/src/games/endfield/ssr/ssr-upsample_0xE714AB7B.cs_5_0.hlsl @@ -0,0 +1,76 @@ + +#include "../shared.h" + +Texture2D t2 : register(t2); +Texture2D t1 : register(t1); +Texture2D t0 : register(t0); + +SamplerState s1_s : register(s1); +SamplerState s0_s : register(s0); + +cbuffer cb1 : register(b1) +{ + float4 cb1[6]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[83]; +} + +RWTexture2D u0 : register(u0); + +#define cmp - + +[numthreads(8, 8, 1)] +void main(uint3 vThreadID : SV_DispatchThreadID) +{ + float4 r0, r1; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xy = (uint2)vThreadID.xy; + r0.xy = float2(0.5, 0.5) + r0.xy; + r0.xy = cb0[82].zw * r0.xy; + + // Sample sharp temporal color and apply inverse Reinhard + r1.xyz = t1.SampleLevel(s1_s, r0.xy, 0).xyz; + r0.z = max(r1.x, r1.y); + r0.z = max(r0.z, r1.z); + r0.z = 1 + -r0.z; + r0.z = 1 / r0.z; + r1.xyzw = r1.xyzx * r0.zzzz; + + // Read mip from filter weight texture + r0.z = t0.SampleLevel(s0_s, r0.xy, 0).y; + r0.z = cb1[5].y * r0.z; + + if (shader_injection.improved_ssr >= 0.5f) { + // Improved mode: fractional mip blending (ported from Miru's Vulkan mod) + if (r0.z < 0.25) { + // Low mip — use sharp temporal color directly + r0.xyzw = r1.xyzw; + } else { + // Blend between sharp and blurred based on fractional mip + float mip0 = floor(r0.z); + float fraction = saturate(r0.z - mip0); + float4 color_blurred = t2.SampleLevel(s1_s, r0.xy, 0).xyzx; + + if (mip0 == 0.0) { + // Fractional blend between sharp and blurred + r0.xyzw = lerp(r1.xyzw, color_blurred, fraction); + } else { + // High mip — use blurred resolve entirely + r0.xyzw = color_blurred; + } + } + } else { + // Vanilla mode: hard cutoff at mip 0.25 + r0.xyw = t2.SampleLevel(s1_s, r0.xy, 0).xyz; + r0.z = cmp(r0.z < 0.25); + r0.xyzw = r0.zzzz ? r1.xyzw : r0.xywx; + } + + u0[vThreadID.xy] = r0.xyzw; + return; +} diff --git a/src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl b/src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl index c8e819337..3ab5ea531 100644 --- a/src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl +++ b/src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl @@ -1,5 +1,3 @@ -// Latency bar icon vertex shader - selective hiding based on vertex positions -// Original shader: 0x9BDC181F #include "../shared.h" @@ -34,21 +32,33 @@ cbuffer cb0 : register(b0) } // Latency bar icon vertex positions (12 vertices = 3 bars) -// These are the same coordinates from Vulkan implementation -static const float2 latency_bar_verts[12] = { - float2(-1167.0001220703, -653.4990234375), - float2(-1167.0001220703, -644.4990234375), - float2(-1162.0001220703, -644.4990234375), - float2(-1162.0001220703, -653.4990234375), - float2(-1160.5, -653.4990234375), - float2(-1160.5, -640.4990234375), - float2(-1155.5, -640.4990234375), - float2(-1155.5, -653.4990234375), - float2(-1154.0, -653.4990234375), - float2(-1154.0, -636.4990234375), - float2(-1149.0, -636.4990234375), - float2(-1149.0, -653.4990234375) -}; +// Y coordinates are computed dynamically based on aspect ratio +// Formula: Y = offset - 1200.0 * (height/width) +// This ensures correct detection on both 16:9 and 21:9 (ultrawide) displays +float2 GetLatencyBarVert(int index) +{ + float aspect = UI_ASPECT_RATIO; + float base_y = 21.5 - 1200.0 * aspect; + + // X positions and Y offsets for each vertex + // Vertices form 3 bars: short (9px), medium (13px), tall (17px) + switch (index) + { + case 0: return float2(-1167.0, base_y); // bar1 bottom-left + case 1: return float2(-1167.0, 30.5 - 1200.0 * aspect); // bar1 top-left + case 2: return float2(-1162.0, 30.5 - 1200.0 * aspect); // bar1 top-right + case 3: return float2(-1162.0, base_y); // bar1 bottom-right + case 4: return float2(-1160.5, base_y); // bar2 bottom-left + case 5: return float2(-1160.5, 34.5 - 1200.0 * aspect); // bar2 top-left + case 6: return float2(-1155.5, 34.5 - 1200.0 * aspect); // bar2 top-right + case 7: return float2(-1155.5, base_y); // bar2 bottom-right + case 8: return float2(-1154.0, base_y); // bar3 bottom-left + case 9: return float2(-1154.0, 38.5 - 1200.0 * aspect); // bar3 top-left + case 10: return float2(-1149.0, 38.5 - 1200.0 * aspect); // bar3 top-right + case 11: return float2(-1149.0, base_y); // bar3 bottom-right + default: return float2(0, 0); + } +} // Check if this vertex is part of the latency bar icon bool IsLatencyBarVertex(float2 pos) @@ -56,8 +66,8 @@ bool IsLatencyBarVertex(float2 pos) [unroll] for (int i = 0; i < 12; i++) { - float2 diff = abs(latency_bar_verts[i] - pos); - if (dot(diff, diff) < 0.001) + float2 diff = abs(GetLatencyBarVert(i) - pos); + if (dot(diff, diff) < 1.0) { return true; } diff --git a/src/games/endfield/ui/ui14_0xB084133A.ps_5_0.hlsl b/src/games/endfield/ui/ui14_0xB084133A.ps_5_0.hlsl new file mode 100644 index 000000000..695d43f44 --- /dev/null +++ b/src/games/endfield/ui/ui14_0xB084133A.ps_5_0.hlsl @@ -0,0 +1,95 @@ +// ---- Created with 3Dmigoto v1.4.1 on Sun Feb 8 01:22:43 2026 +#include "../shared.h" + +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + +cbuffer cb1 : register(b1) +{ + float4 cb1[4]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[1]; +} + + + + +// 3Dmigoto declarations +#define cmp - + + +void main( + float4 v0 : SV_Position0, + float2 v1 : TEXCOORD0, + out float4 o0 : SV_Target0) +{ + float4 r0,r1; + uint4 bitmask, uiDest; + float4 fDest; + + r0.x = cb0[0].x * 40; + r0.x = floor(r0.x); + r0.x = 25 * r0.x; + r0.y = 8 * v1.y; + r0.y = floor(r0.y); + r0.x = r0.y * 0.125 + r0.x; + r0.x = dot(r0.xx, float2(12.9898005,78.2330017)); + r0.x = sin(r0.x); + r0.x = 43758.5469 * r0.x; + r0.x = frac(r0.x); + r0.x = 24 * r0.x; + r0.y = cb0[0].x * r0.x; + r0.y = 10 * r0.y; + r0.y = floor(r0.y); + r0.x = r0.y / r0.x; + r0.x = r0.x * 6 + v1.y; + r0.y = cb1[2].x * 8; + r0.z = r0.x * r0.y; + r0.x = 7 * r0.x; + r0.xz = floor(r0.xz); + r0.x = 0.142857149 * r0.x; + r0.x = dot(r0.xx, float2(12.9898005,78.2330017)); + r0.x = sin(r0.x); + r0.y = r0.z / r0.y; + r0.y = dot(r0.yy, float2(12.9898005,78.2330017)); + r0.y = sin(r0.y); + r0.xy = float2(43758.5469,43758.5469) * r0.xy; + r0.xy = frac(r0.xy); + r0.x = r0.y + r0.x; + r0.x = -1 + r0.x; + r0.y = cmp(0 < r0.x); + r0.z = cmp(r0.x < 0); + r0.x = -cb1[2].y + abs(r0.x); + r0.x = saturate(2.5 * r0.x); + r0.y = (int)-r0.y + (int)r0.z; + r0.y = (int)r0.y; + r0.x = r0.y * r0.x; + r0.x = cb1[2].z * r0.x; + r0.y = ceil(r0.x); + r1.x = 0.100000001 * r0.x; + r0.x = 1 + -r0.y; + r1.yw = float2(0,0); + r0.yz = saturate(v1.xy + r1.xy); + r1.x = v1.y; + r1.y = cb0[0].x; + r0.w = dot(r1.xy, float2(12.9898005,78.2330017)); + r0.w = sin(r0.w); + r0.w = 43758.5469 * r0.w; + r0.w = frac(r0.w); + r0.w = r0.w * 2 + -1; + r1.x = cmp(abs(r0.w) >= cb1[2].w); + r1.x = r1.x ? 1.000000 : 0; + r1.x = cb1[3].x * r1.x; + r1.z = r1.x * r0.w; + r0.yz = r0.yz + r1.zw; + r0.yz = frac(r0.yz); + r1.xy = v1.xy + -r0.yz; + r0.xy = r0.xx * r1.xy + r0.yz; + o0.xyzw = t0.Sample(s0_s, r0.xy).xyzw; + if (UI_VISIBILITY < 0.5f) o0 = 0; + return; +} \ No newline at end of file diff --git a/src/games/endfield/ui/ui15_0x25054A9A.ps_5_0.hlsl b/src/games/endfield/ui/ui15_0x25054A9A.ps_5_0.hlsl new file mode 100644 index 000000000..0dcc02d51 --- /dev/null +++ b/src/games/endfield/ui/ui15_0x25054A9A.ps_5_0.hlsl @@ -0,0 +1,97 @@ +// ---- Created with 3Dmigoto v1.4.1 on Sun Feb 8 01:22:43 2026 +#include "../shared.h" + +Texture2D t3 : register(t3); + +Texture2D t2 : register(t2); + +Texture2D t1 : register(t1); + +Texture2D t0 : register(t0); + +SamplerState s3_s : register(s3); + +SamplerState s2_s : register(s2); + +SamplerState s1_s : register(s1); + +SamplerState s0_s : register(s0); + +cbuffer cb1 : register(b1) +{ + float4 cb1[31]; +} + +cbuffer cb0 : register(b0) +{ + float4 cb0[1]; +} + + + + +// 3Dmigoto declarations +#define cmp - + + +void main( + float4 v0 : SV_Position0, + float4 v1 : TEXCOORD0, + float2 v2 : TEXCOORD1, + float2 w2 : TEXCOORD7, + float4 v3 : TEXCOORD2, + float4 v4 : TEXCOORD3, + float4 v5 : TEXCOORD4, + float4 v6 : TEXCOORD5, + float4 v7 : TEXCOORD6, + out float4 o0 : SV_Target0) +{ + float4 r0,r1,r2,r3; + uint4 bitmask, uiDest; + float4 fDest; + + r0.x = t2.Sample(s2_s, v2.xy).w; + r0.y = -v3.x + r0.x; + r0.y = cmp(r0.y < 0); + if (r0.y != 0) discard; + r0.x = v3.z + -r0.x; + r0.y = cb1[22].w * cb1[6].x; + r0.z = cb1[22].w * cb1[4].y; + r0.yw = v3.yy * r0.yz; + r1.xyz = cb1[3].xyz * v1.xyz; + r2.xy = cb1[2].xy * cb0[0].yy + v6.xy; + r2.xyzw = t0.Sample(s0_s, r2.xy).xyzw; + r1.xyz = r2.xyz * r1.xyz; + r2.w = cb1[3].w * r2.w; + r3.xy = cb1[4].zw * cb0[0].yy + v6.zw; + r3.xyzw = t1.Sample(s1_s, r3.xy).xyzw; + r3.xyzw = cb1[5].xyzw * r3.xyzw; + r1.w = 0.5 * r0.y; + r2.xyz = r2.www * r1.xyz; + r3.xyz = r3.xyz * r3.www; + r1.x = saturate(r0.x * v3.y + r1.w); + r0.y = min(1, r0.y); + r0.y = sqrt(r0.y); + r0.y = r1.x * r0.y; + r3.xyzw = r3.xyzw + -r2.xyzw; + r2.xyzw = r0.yyyy * r3.xyzw + r2.xyzw; + r0.x = r0.x * v3.y + -r1.w; + r0.x = r0.w * 0.5 + r0.x; + r0.y = r0.z * v3.y + 1; + r0.x = saturate(r0.x / r0.y); + r0.x = 1 + -r0.x; + r0.xyzw = r2.xyzw * r0.xxxx; + r1.xy = w2.xy * cb1[30].xy + cb1[30].zw; + r1.x = t3.Sample(s3_s, r1.xy).w; + r1.yz = cmp(float2(1,1) >= w2.xy); + r1.yz = r1.yz ? float2(1,1) : 0; + r2.xy = cmp(float2(0,0) >= -w2.xy); + r2.xy = r2.xy ? float2(1,1) : 0; + r1.yz = r2.xy * r1.yz; + r1.x = r1.x * r1.y; + r1.x = saturate(r1.x * r1.z); + r1.x = v1.w * r1.x; + o0.xyzw = r1.xxxx * r0.xyzw; + if (UI_VISIBILITY < 0.5f) o0 = 0; + return; +} \ No newline at end of file diff --git a/src/games/endfield/waterfalls/0xF5AB0A61.cso b/src/games/endfield/waterfalls/0xF5AB0A61.cso new file mode 100644 index 0000000000000000000000000000000000000000..c76cbb5e467799c778daff652b3c253f8e7aba91 GIT binary patch literal 59728 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 Date: Sun, 15 Feb 2026 11:56:00 -0700 Subject: [PATCH 16/19] feat(endfield): add mcleod boynton hlsl (need to remove when added officially) --- src/shaders/color/macleod_boynton.hlsl | 463 +++++++++++++++++++++++++ 1 file changed, 463 insertions(+) create mode 100644 src/shaders/color/macleod_boynton.hlsl diff --git a/src/shaders/color/macleod_boynton.hlsl b/src/shaders/color/macleod_boynton.hlsl new file mode 100644 index 000000000..635f8993c --- /dev/null +++ b/src/shaders/color/macleod_boynton.hlsl @@ -0,0 +1,463 @@ +#ifndef SRC_SHADERS_COLOR_MACLEOD_BOYNTON_HLSL_ +#define SRC_SHADERS_COLOR_MACLEOD_BOYNTON_HLSL_ + +#include "../math.hlsl" +#include "./rgb.hlsl" + +namespace renodx { +namespace color { +namespace macleod_boynton { + +// MacLeod-Boynton purity model in RGB gamut space. +// +// Core idea: +// 1) Convert RGB -> XYZ -> LMS. +// 2) Represent hue as MB ratios at fixed T = L + M. +// 3) Move along the MB ray from adapted white toward the input hue. +// 4) Solve exactly where that ray intersects the selected RGB gamut boundary. +// +// This gives a saturation/purity control that is geometrically bounded by gamut, +// instead of scaling perceptual coordinates and clipping later. +// +// Reference material: +// - MacLeod & Boynton (1979), MB chromaticity: +// https://pubmed.ncbi.nlm.nih.gov/490231/ +// - Derrington, Krauskopf, Lennie (1984), DKL axes: +// https://pubmed.ncbi.nlm.nih.gov/6512691/ +// - Stockman & Sharpe (2000), cone fundamentals: +// https://pubmed.ncbi.nlm.nih.gov/10814758/ +// - CIE 170-1:2006 (physiological axes / LMS standardization context): +// https://cie.co.at/publications/fundamental-chromaticity-diagram-physiological-axes-part-1 +// - ITU-R BT.709-6 (HDTV primaries / transfer context): +// https://www.itu.int/rec/R-REC-BT.709-6-201506-I +// - ITU-R BT.2020-2 (UHDTV wide-gamut primaries): +// https://www.itu.int/rec/R-REC-BT.2020-2-201510-I/en +// +// Comparison context from discussion: +// - Oklab (Ottosson): https://bottosson.github.io/posts/oklab/ +// - Oklab critique (Levien): https://raphlinus.github.io/color/2021/01/18/oklab-critique.html +static const float3x3 XYZ_TO_LMS_2006 = float3x3( + 0.185082982238733f, 0.584081279463687f, -0.0240722415044404f, + -0.134433056469973f, 0.405752392775348f, 0.0358252602217631f, + 0.000789456671966863f, -0.000912281325916184f, 0.0198490812339463f); + +static const float3x3 LMS_TO_XYZ_2006 = renodx::math::Invert3x3(XYZ_TO_LMS_2006); + +static const float EPSILON = 1e-20f; +static const float INTERVAL_MAX = 1e30f; +static const float MB_NEAR_WHITE_EPSILON = 1e-14f; + +static const int MB_PURITY_MODE_DISTANCE = 0; +static const int MB_PURITY_MODE_NORMALIZED = 1; +static const int MB_PURITY_MODE_SCALE_NEUTWO = 2; +static const int MB_PURITY_ADJUST_NONE = 0; +static const int MB_PURITY_ADJUST_CLIP_MAX = 1; +static const float ONE_MINUS_EPSILON = 1.f - 1e-6f; + +// Neutwo (x / sqrt(x^2 + 1)) and its inverse. +// Used to shape purity scaling with a smooth shoulder near gamut edge. +float Neutwo(float x) { + float denominator_squared = mad(x, x, 1.f); + return x * rsqrt(denominator_squared); +} + +float InverseNeutwo(float x) { + float clamped = min(max(x, 0.f), ONE_MINUS_EPSILON); + float denominator_squared = mad(-clamped, clamped, 1.f); + return clamped * rsqrt(denominator_squared); +} + +// MB coordinate from LMS. +// r = L / (L + M), b = S / (L + M) +// T = (L + M) is intensity anchor and is preserved while changing purity. +float2 MB_From_LMS(float3 lms) { + float t = lms.x + lms.y; + + if (t <= 0.f) { + return float2(0.f, 0.f); + } + + return float2( + renodx::math::DivideSafe(lms.x, t, 0.f), + renodx::math::DivideSafe(lms.z, t, 0.f)); +} + +// Reconstruct LMS from MB coordinates while holding T = L + M fixed. +float3 LMS_From_MB_T(float2 mb, float t) { + float r = mb.x; + float b = mb.y; + return float3(r * t, (1.f - r) * t, b * t); +} + +// Default adaptation white in MB space. +float2 MB_White_D65() { + float3 d65_xyz = renodx::color::xyz::from::xyY(float3(renodx::color::WHITE_POINT_D65, 1.f)); + float3 d65_lms = mul(XYZ_TO_LMS_2006, d65_xyz); + return MB_From_LMS(d65_lms); +} + +// Half-space constraint for one channel in affine form: +// rgb(t) = a * t + b, and we require rgb(t) >= 0. +// Returns interval [lo, hi] where that channel is valid. +void IntervalLower0(float a, float b, out float lo, out float hi) { + if (abs(a) < EPSILON) { + if (b >= 0.f) { + lo = -INTERVAL_MAX; + hi = INTERVAL_MAX; + } else { + lo = 1.f; + hi = 0.f; + } + return; + } + + float t0 = renodx::math::DivideSafe(-b, a, 0.f); + + if (a > 0.f) { + lo = t0; + hi = INTERVAL_MAX; + } else { + lo = -INTERVAL_MAX; + hi = t0; + } +} + +struct MBPurityDebug { + float3 rgbOut; + float3 rgbT0; + float3 rgbEdgeGamut; + + // Max reachable t before first channel becomes negative. + float tMaxGamut; + // Applied t after user control mapping. + float tFinal; + + // Purity for input color in normalized 0..1 form (1 / tMax for input at t=1). + float purityCur01; + // Requested normalized purity (user input). + float purity01_in; + // Effective normalized purity after shaping curve. + float purity01_used; +}; + +// Main solver. +// +// There are three control modes: +// - purity_input_mode == MB_PURITY_MODE_NORMALIZED: +// purity_value is 0..1 "fraction of available purity headroom". +// - purity_input_mode == MB_PURITY_MODE_DISTANCE: +// purity_value is direct MB ray distance t. +// - purity_input_mode == MB_PURITY_MODE_SCALE_NEUTWO: +// purity_value is a scale multiplier in Neutwo inverse space (1 = unchanged). +// +// Optional adjust mode: +// - MB_PURITY_ADJUST_NONE: +// use selected input mode as-is. +// - MB_PURITY_ADJUST_CLIP_MAX: +// force max purity for this hue/gamut (tFinal = tMaxGamut). +// +// Important behavior: +// - Constraint is gamut-only (RGB >= 0), no arbitrary <= 1 clamp. +// - This allows scene-linear HDR values above 1.0 to pass through naturally. +MBPurityDebug ApplyInternal(float3 rgb_linear, float purity_value, int purity_input_mode, + float curve_gamma, float2 mb_white_override, float t_min, + int purity_adjust_mode, float3x3 rgb_to_xyz_mat, float3x3 xyz_to_rgb_mat) { + MBPurityDebug output; + + output.purity01_in = 0.f; + + // 1) RGB -> XYZ -> LMS + float3 xyz = mul(rgb_to_xyz_mat, rgb_linear); + float3 lms = mul(XYZ_TO_LMS_2006, xyz); + + // T = L + M is the intensity anchor for MB purity moves. + float t = lms.x + lms.y; + + if (t <= t_min) { + output.rgbOut = rgb_linear; + output.rgbT0 = rgb_linear; + output.rgbEdgeGamut = rgb_linear; + output.tMaxGamut = 0.f; + output.purityCur01 = 0.f; + output.purity01_used = 0.f; + return output; + } + + float2 white = + (mb_white_override.x >= 0.f && mb_white_override.y >= 0.f) ? mb_white_override : MB_White_D65(); + + // 2) MB ray from adapted white to input hue. + float2 mb0 = MB_From_LMS(lms); + float2 direction = mb0 - white; + + if (dot(direction, direction) < MB_NEAR_WHITE_EPSILON) { + output.rgbOut = rgb_linear; + output.rgbT0 = rgb_linear; + output.rgbEdgeGamut = rgb_linear; + output.tMaxGamut = 0.f; + output.tFinal = 0.f; + output.purityCur01 = 0.f; + output.purity01_used = 0.f; + return output; + } + + float3 lms_t0 = LMS_From_MB_T(white, t); + float3 xyz_t0 = mul(LMS_TO_XYZ_2006, lms_t0); + float3 rgb_t0 = mul(xyz_to_rgb_mat, xyz_t0); + output.rgbT0 = rgb_t0; + + // 4) Affine form of RGB along the MB ray at fixed T. + // t = 0 -> white in MB space, t = 1 -> original input. + float3 a = rgb_linear - rgb_t0; + + // 5) Intersect channel constraints RGB(t) >= 0 across R,G,B. + float t_lo = 0.f; + float t_hi = INTERVAL_MAX; + + float lo; + float hi; + + IntervalLower0(a.x, rgb_t0.x, lo, hi); + t_lo = max(t_lo, lo); + t_hi = min(t_hi, hi); + + IntervalLower0(a.y, rgb_t0.y, lo, hi); + t_lo = max(t_lo, lo); + t_hi = min(t_hi, hi); + + IntervalLower0(a.z, rgb_t0.z, lo, hi); + t_lo = max(t_lo, lo); + t_hi = min(t_hi, hi); + + if (t_hi < t_lo) { + output.rgbOut = max(rgb_linear, 0.f); + output.rgbEdgeGamut = rgb_t0; + output.tMaxGamut = 0.f; + output.tFinal = 0.f; + output.purityCur01 = 0.f; + output.purity01_used = 0.f; + return output; + } + + float t_max = max(0.f, t_hi); + output.tMaxGamut = t_max; + + // Current normalized purity for the input (which is at t = 1). + float p_cur = (t_max > EPSILON) ? renodx::math::DivideSafe(1.f, t_max, 0.f) : 0.f; + output.purityCur01 = saturate(p_cur); + + // Useful validation output: point on the gamut edge for this MB ray. + float3 rgb_edge = a * t_max + rgb_t0; + output.rgbEdgeGamut = rgb_edge; + + float t_final = 0.f; + + if (purity_adjust_mode == MB_PURITY_ADJUST_CLIP_MAX) { + output.purity01_used = 1.f; + output.purity01_in = 1.f; + t_final = t_max; + } else { + if (purity_input_mode == MB_PURITY_MODE_NORMALIZED) { + // Normalized mode: user operates in [0,1] of available gamut headroom. + output.purity01_in = saturate(purity_value); + float gamma = max(curve_gamma, 1e-6f); + float purity01 = pow(output.purity01_in, gamma); + output.purity01_used = purity01; + t_final = purity01 * t_max; + } else if (purity_input_mode == MB_PURITY_MODE_SCALE_NEUTWO) { + // Scale mode: user controls a saturation multiplier around current purity. + // 1 = no change, >1 increases, <1 decreases, with a smooth shoulder near edge. + float saturation_scale = max(purity_value, 0.f); + float purity01_target; + if (output.purityCur01 >= ONE_MINUS_EPSILON && saturation_scale >= 1.f) { + purity01_target = 1.f; + } else { + float z = InverseNeutwo(output.purityCur01); + float z_scaled = z * saturation_scale; + purity01_target = saturate(Neutwo(z_scaled)); + } + output.purity01_in = output.purityCur01; + output.purity01_used = purity01_target; + t_final = purity01_target * t_max; + } else { + // Distance mode: user value is interpreted as MB ray distance t. + float t_user = max(purity_value, 0.f); + t_final = min(t_user, t_max); + output.purity01_used = + (t_max > EPSILON) ? saturate(renodx::math::DivideSafe(t_final, t_max, 0.f)) : 0.f; + output.purity01_in = output.purity01_used; + } + } + + output.tFinal = t_final; + + float2 mb_final = white + t_final * direction; + + float3 lms_final = LMS_From_MB_T(mb_final, t); + float3 xyz_final = mul(LMS_TO_XYZ_2006, lms_final); + float3 rgb_final = mul(xyz_to_rgb_mat, xyz_final); + + // Clean up float math + output.rgbOut = max(rgb_final, 0.f); + + return output; +} + +MBPurityDebug ApplyBT709(float3 rgb709_linear, float purity01, float curve_gamma = 1.f, + float2 mb_white_override = float2(-1.f, -1.f), float t_min = 1e-6f, + int purity_adjust_mode = MB_PURITY_ADJUST_NONE) { + return ApplyInternal(rgb709_linear, purity01, MB_PURITY_MODE_NORMALIZED, curve_gamma, + mb_white_override, t_min, purity_adjust_mode, BT709_TO_XYZ_MAT, + XYZ_TO_BT709_MAT); +} + +MBPurityDebug ApplyBT2020(float3 rgb2020_linear, float purity01, float curve_gamma = 1.f, + float2 mb_white_override = float2(-1.f, -1.f), float t_min = 1e-6f, + int purity_adjust_mode = MB_PURITY_ADJUST_NONE) { + return ApplyInternal(rgb2020_linear, purity01, MB_PURITY_MODE_NORMALIZED, curve_gamma, + mb_white_override, t_min, purity_adjust_mode, BT2020_TO_XYZ_MAT, + XYZ_TO_BT2020_MAT); +} + +MBPurityDebug ApplyScaleBT709(float3 rgb709_linear, float saturation_scale, + float2 mb_white_override = float2(-1.f, -1.f), float t_min = 1e-6f, + int purity_adjust_mode = MB_PURITY_ADJUST_NONE) { + return ApplyInternal(rgb709_linear, saturation_scale, MB_PURITY_MODE_SCALE_NEUTWO, 1.f, + mb_white_override, t_min, purity_adjust_mode, BT709_TO_XYZ_MAT, + XYZ_TO_BT709_MAT); +} + +MBPurityDebug ApplyScaleBT2020(float3 rgb2020_linear, float saturation_scale, + float2 mb_white_override = float2(-1.f, -1.f), float t_min = 1e-6f, + int purity_adjust_mode = MB_PURITY_ADJUST_NONE) { + return ApplyInternal(rgb2020_linear, saturation_scale, MB_PURITY_MODE_SCALE_NEUTWO, 1.f, + mb_white_override, t_min, purity_adjust_mode, BT2020_TO_XYZ_MAT, + XYZ_TO_BT2020_MAT); +} + +float3 BT709(float3 rgb709_linear, float purity_scale, float2 mb_white) { + return ApplyInternal(rgb709_linear, purity_scale, MB_PURITY_MODE_DISTANCE, 1.f, mb_white, 0.f, + MB_PURITY_ADJUST_NONE, BT709_TO_XYZ_MAT, XYZ_TO_BT709_MAT) + .rgbOut; +} + +float3 BT2020(float3 rgb2020_linear, float purity_scale, float2 mb_white) { + return ApplyInternal(rgb2020_linear, purity_scale, MB_PURITY_MODE_DISTANCE, 1.f, mb_white, 0.f, + MB_PURITY_ADJUST_NONE, BT2020_TO_XYZ_MAT, XYZ_TO_BT2020_MAT) + .rgbOut; +} + +// Explicit max-purity helpers for testing. +float3 BT709MaxPurity(float3 rgb709_linear, float2 mb_white) { + return ApplyInternal(rgb709_linear, 0.f, MB_PURITY_MODE_DISTANCE, 1.f, mb_white, 0.f, + MB_PURITY_ADJUST_CLIP_MAX, BT709_TO_XYZ_MAT, XYZ_TO_BT709_MAT) + .rgbOut; +} + +float3 BT2020MaxPurity(float3 rgb2020_linear, float2 mb_white) { + return ApplyInternal(rgb2020_linear, 0.f, MB_PURITY_MODE_DISTANCE, 1.f, mb_white, 0.f, + MB_PURITY_ADJUST_CLIP_MAX, BT2020_TO_XYZ_MAT, XYZ_TO_BT2020_MAT) + .rgbOut; +} + +// Gamut compression in MB space: +// Use the white->hue MB ray and clamp t to at most 1.0 (input point). +// - If already in gamut, color is unchanged. +// - If out of gamut, color moves toward MB white until it hits gamut edge. +float3 GamutCompressBT709(float3 rgb709_linear, float2 mb_white = float2(-1.f, -1.f), + float t_min = 1e-6f) { + return ApplyInternal(rgb709_linear, 1.f, MB_PURITY_MODE_DISTANCE, 1.f, mb_white, t_min, + MB_PURITY_ADJUST_NONE, BT709_TO_XYZ_MAT, XYZ_TO_BT709_MAT) + .rgbOut; +} + +float3 GamutCompressBT2020(float3 rgb2020_linear, float2 mb_white = float2(-1.f, -1.f), + float t_min = 1e-6f) { + return ApplyInternal(rgb2020_linear, 1.f, MB_PURITY_MODE_DISTANCE, 1.f, mb_white, t_min, + MB_PURITY_ADJUST_NONE, BT2020_TO_XYZ_MAT, XYZ_TO_BT2020_MAT) + .rgbOut; +} + +// MB-space gamut compression with additive white in LMS. +// Derivation: +// - Let t_max be the white->input MB ray limit (input is at t=1). +// - To move input toward white to exactly t_max, MB blend weight is a = 1 - t_max. +// - Adding white in LMS with MB unit-T white vector gives: +// white_add = T * a / (1 - a) = T * (1 - t_max) / t_max +// where T = L + M of input. +// This preserves MB hue direction while compressing out-of-gamut colors by "adding white". +float3 GamutCompressAddWhiteInternal(float3 rgb_linear, float2 mb_white_override, float t_min, + float3x3 rgb_to_xyz_mat, float3x3 xyz_to_rgb_mat) { + float3 xyz = mul(rgb_to_xyz_mat, rgb_linear); + float3 lms = mul(XYZ_TO_LMS_2006, xyz); + float t = lms.x + lms.y; + + if (t <= t_min) { + return max(rgb_linear, 0.f); + } + + float2 white = (mb_white_override.x >= 0.f && mb_white_override.y >= 0.f) + ? mb_white_override + : MB_White_D65(); + + float2 mb0 = MB_From_LMS(lms); + float2 direction = mb0 - white; + if (dot(direction, direction) < MB_NEAR_WHITE_EPSILON) { + return max(rgb_linear, 0.f); + } + + float3 lms_t0 = LMS_From_MB_T(white, t); + float3 xyz_t0 = mul(LMS_TO_XYZ_2006, lms_t0); + float3 rgb_t0 = mul(xyz_to_rgb_mat, xyz_t0); + float3 ray_a = rgb_linear - rgb_t0; + + float t_lo = 0.f; + float t_hi = INTERVAL_MAX; + float lo; + float hi; + + IntervalLower0(ray_a.x, rgb_t0.x, lo, hi); + t_lo = max(t_lo, lo); + t_hi = min(t_hi, hi); + + IntervalLower0(ray_a.y, rgb_t0.y, lo, hi); + t_lo = max(t_lo, lo); + t_hi = min(t_hi, hi); + + IntervalLower0(ray_a.z, rgb_t0.z, lo, hi); + t_lo = max(t_lo, lo); + t_hi = min(t_hi, hi); + + if (t_hi < t_lo) { + return max(rgb_linear, 0.f); + } + + float t_max = max(0.f, t_hi); + float white_ratio = max(renodx::math::DivideSafe(1.f - t_max, t_max, 0.f), 0.f); + float white_add = t * white_ratio; + + // MB unit-T white vector in LMS (T = L+M = 1). + float3 white_unit_lms = LMS_From_MB_T(white, 1.f); + float3 lms_out = lms + white_unit_lms * white_add; + float3 xyz_out = mul(LMS_TO_XYZ_2006, lms_out); + float3 rgb_out = mul(xyz_to_rgb_mat, xyz_out); + return max(rgb_out, 0.f); +} + +float3 GamutCompressAddWhiteBT709(float3 rgb709_linear, float2 mb_white = float2(-1.f, -1.f), + float t_min = 1e-6f) { + return GamutCompressAddWhiteInternal(rgb709_linear, mb_white, t_min, BT709_TO_XYZ_MAT, + XYZ_TO_BT709_MAT); +} + +float3 GamutCompressAddWhiteBT2020(float3 rgb2020_linear, float2 mb_white = float2(-1.f, -1.f), + float t_min = 1e-6f) { + return GamutCompressAddWhiteInternal(rgb2020_linear, mb_white, t_min, BT2020_TO_XYZ_MAT, + XYZ_TO_BT2020_MAT); +} + +} // namespace macleod_boynton +} // namespace color +} // namespace renodx + +#endif // SRC_SHADERS_COLOR_MACLEOD_BOYNTON_HLSL_ From 79cf1253308ff654e783bd464a86168c0cf62878 Mon Sep 17 00:00:00 2001 From: spiwar <92001312+spiwar@users.noreply.github.com> Date: Sun, 15 Feb 2026 11:56:41 -0700 Subject: [PATCH 17/19] feat(endfield): switch to mcleod boynton hue, remove hue sliders --- src/games/endfield/addon.cpp | 6 +- src/games/endfield/common.hlsl | 314 ++++++++++++++++++ .../others/lutbuilder_0x88BD6DCA.ps_5_0.hlsl | 41 ++- src/games/endfield/shared.h | 1 + .../uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x039C28DA.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x086097D2.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x09270FDA.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x0E520F06.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x10076711.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x21241B7A.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x51359B4D.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x53875523.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x57737D9F.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x6166487A.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x61908D50.ps_5_0.hlsl | 32 +- .../uberpost/uberpost_0x64CEB255.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x6A76C719.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x86420EBC.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x9790A50C.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xA6501734.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xA8213A68.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xBCD91195.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xE0058043.ps_5_0.hlsl | 33 +- .../uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl | 33 +- 32 files changed, 430 insertions(+), 855 deletions(-) diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index c3e94edf8..88a4453f6 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -435,12 +435,12 @@ renodx::utils::settings::Settings settings = { .max = 100.f, .is_enabled = []() { return shader_injection.tone_map_type >= 1; }, .parse = [](float value) { return value * 0.01f; }, - .is_visible = []() { return current_settings_mode >= 1; }, + .is_visible = []() { return false; }, }, new renodx::utils::settings::Setting{ .key = "ToneMapPerChannelBlowout", .binding = &shader_injection.tone_map_blowout, - .default_value = 50.f, + .default_value = 25.f, .label = "Per Channel Blowout", .section = "Tone Mapping", .tooltip = "Per Channel Blowout strength.", @@ -448,7 +448,7 @@ renodx::utils::settings::Settings settings = { .max = 100.f, .is_enabled = []() { return shader_injection.tone_map_type >= 1; }, .parse = [](float value) { return value * 0.01f; }, - .is_visible = []() { return current_settings_mode >= 1; }, + .is_visible = []() { return false; }, }, new renodx::utils::settings::Setting{ .key = "ToneMapClampColorSpace", diff --git a/src/games/endfield/common.hlsl b/src/games/endfield/common.hlsl index 9cfcbb2fe..29b0da174 100644 --- a/src/games/endfield/common.hlsl +++ b/src/games/endfield/common.hlsl @@ -1,4 +1,5 @@ #include "./shared.h" +#include "../../shaders/color/macleod_boynton.hlsl" static inline float3 AutoHDRVideo(float3 sdr_video) { if (RENODX_TONE_MAP_TYPE == 0.f || RENODX_TONE_MAP_HDR_VIDEO == 0.f) { @@ -47,6 +48,209 @@ float3 HueAndChrominanceOKLab( return incorrect_color; } +float3 CorrectHueAndPurityMBGated( + float3 target_color_bt709, + float3 reference_color_bt709, + float hue_strength = 1.f, + float hue_t_ramp_start = 0.5f, + float hue_t_ramp_end = 1.f, + float purity_strength = 1.f, + float curve_gamma = 1.f, + float2 mb_white_override = float2(-1.f, -1.f), + float t_min = 1e-6f) { + if (purity_strength <= 0.f && hue_strength <= 0.f) { + return target_color_bt709; + } + + float3 target_color_bt2020 = renodx::color::bt2020::from::BT709(target_color_bt709); + float3 reference_color_bt2020 = renodx::color::bt2020::from::BT709(reference_color_bt709); + + if (hue_strength <= 0.f) { + float target_purity01 = renodx::color::macleod_boynton::ApplyBT2020( + target_color_bt2020, 1.f, 1.f, mb_white_override, t_min) + .purityCur01; + float reference_purity01 = renodx::color::macleod_boynton::ApplyBT2020( + reference_color_bt2020, 1.f, 1.f, mb_white_override, t_min) + .purityCur01; + float applied_purity01 = lerp(target_purity01, reference_purity01, saturate(purity_strength)); + return renodx::color::bt709::from::BT2020( + renodx::color::macleod_boynton::ApplyBT2020( + target_color_bt2020, applied_purity01, curve_gamma, mb_white_override, t_min) + .rgbOut); + } + + float3 target_lms = mul(renodx::color::macleod_boynton::XYZ_TO_LMS_2006, + mul(renodx::color::BT2020_TO_XYZ_MAT, target_color_bt2020)); + float target_t = target_lms.x + target_lms.y; + if (target_t <= t_min) { + return target_color_bt709; + } + + float hue_blend = saturate(hue_strength) * + saturate(renodx::math::DivideSafe(target_t - hue_t_ramp_start, + hue_t_ramp_end - hue_t_ramp_start, 0.f)); + + float target_purity01 = renodx::color::macleod_boynton::ApplyBT2020( + target_color_bt2020, 1.f, 1.f, mb_white_override, t_min) + .purityCur01; + float reference_purity01 = renodx::color::macleod_boynton::ApplyBT2020( + reference_color_bt2020, 1.f, 1.f, mb_white_override, t_min) + .purityCur01; + float applied_purity01 = lerp(target_purity01, reference_purity01, saturate(purity_strength)); + + if (hue_blend <= 0.f) { + return renodx::color::bt709::from::BT2020( + renodx::color::macleod_boynton::ApplyBT2020( + target_color_bt2020, applied_purity01, curve_gamma, mb_white_override, t_min) + .rgbOut); + } + + float3 reference_lms = mul(renodx::color::macleod_boynton::XYZ_TO_LMS_2006, + mul(renodx::color::BT2020_TO_XYZ_MAT, reference_color_bt2020)); + + float2 white = (mb_white_override.x >= 0.f && mb_white_override.y >= 0.f) + ? mb_white_override + : renodx::color::macleod_boynton::MB_White_D65(); + + float2 target_direction = renodx::color::macleod_boynton::MB_From_LMS(target_lms) - white; + float2 reference_direction = renodx::color::macleod_boynton::MB_From_LMS(reference_lms) - white; + + float target_len_sq = dot(target_direction, target_direction); + float reference_len_sq = dot(reference_direction, reference_direction); + + if (target_len_sq < renodx::color::macleod_boynton::MB_NEAR_WHITE_EPSILON && + reference_len_sq < renodx::color::macleod_boynton::MB_NEAR_WHITE_EPSILON) { + return renodx::color::bt709::from::BT2020( + renodx::color::macleod_boynton::ApplyBT2020( + target_color_bt2020, applied_purity01, curve_gamma, mb_white_override, t_min) + .rgbOut); + } + + float2 target_unit = (target_len_sq > renodx::color::macleod_boynton::MB_NEAR_WHITE_EPSILON) + ? target_direction * rsqrt(target_len_sq) + : float2(0.f, 0.f); + float2 reference_unit = (reference_len_sq > renodx::color::macleod_boynton::MB_NEAR_WHITE_EPSILON) + ? reference_direction * rsqrt(reference_len_sq) + : target_unit; + if (target_len_sq <= renodx::color::macleod_boynton::MB_NEAR_WHITE_EPSILON) { + target_unit = reference_unit; + } + + float2 blended_unit = lerp(target_unit, reference_unit, hue_blend); + float blended_len_sq = dot(blended_unit, blended_unit); + if (blended_len_sq <= renodx::color::macleod_boynton::MB_NEAR_WHITE_EPSILON) { + blended_unit = (hue_blend >= 0.5f) ? reference_unit : target_unit; + blended_len_sq = dot(blended_unit, blended_unit); + } + blended_unit *= rsqrt(max(blended_len_sq, 1e-20f)); + + float seed_len = sqrt(max(target_len_sq, 0.f)); + if (seed_len <= 1e-6f) { + seed_len = sqrt(max(reference_len_sq, 0.f)); + } + seed_len = max(seed_len, 1e-6f); + + float3 seed_bt2020 = mul( + renodx::color::XYZ_TO_BT2020_MAT, + mul(renodx::color::macleod_boynton::LMS_TO_XYZ_2006, + renodx::color::macleod_boynton::LMS_From_MB_T(white + blended_unit * seed_len, target_t))); + + return renodx::color::bt709::from::BT2020( + renodx::color::macleod_boynton::ApplyBT2020( + seed_bt2020, applied_purity01, curve_gamma, mb_white_override, t_min) + .rgbOut); +} + +float3 ApplyMBLowHueThenHighHueAndPurity( + float3 target_bt709, + float3 low_hue_reference_bt709, + float3 high_reference_bt709, + float high_hue_strength = 1.f, + float hue_t_ramp_start = 0.5f, + float hue_t_ramp_end = 1.f, + float curve_gamma = 1.f, + float2 mb_white_override = float2(-1.f, -1.f), + float t_min = 1e-6f) { + const float kNearWhiteEpsilon = renodx::color::macleod_boynton::MB_NEAR_WHITE_EPSILON; + + float3 target_bt2020 = renodx::color::bt2020::from::BT709(target_bt709); + float3 low_reference_bt2020 = renodx::color::bt2020::from::BT709(low_hue_reference_bt709); + float3 high_reference_bt2020 = renodx::color::bt2020::from::BT709(high_reference_bt709); + + float high_purity01 = renodx::color::macleod_boynton::ApplyBT2020( + high_reference_bt2020, 1.f, 1.f, mb_white_override, t_min) + .purityCur01; + + float3 target_lms = mul(renodx::color::macleod_boynton::XYZ_TO_LMS_2006, + mul(renodx::color::BT2020_TO_XYZ_MAT, target_bt2020)); + float3 low_reference_lms = mul(renodx::color::macleod_boynton::XYZ_TO_LMS_2006, + mul(renodx::color::BT2020_TO_XYZ_MAT, low_reference_bt2020)); + float3 high_reference_lms = mul(renodx::color::macleod_boynton::XYZ_TO_LMS_2006, + mul(renodx::color::BT2020_TO_XYZ_MAT, high_reference_bt2020)); + + float target_t = target_lms.x + target_lms.y; + if (target_t <= t_min) { + return target_bt709; + } + + float2 white = (mb_white_override.x >= 0.f && mb_white_override.y >= 0.f) + ? mb_white_override + : renodx::color::macleod_boynton::MB_White_D65(); + + float2 target_direction = renodx::color::macleod_boynton::MB_From_LMS(target_lms) - white; + float2 low_reference_direction = renodx::color::macleod_boynton::MB_From_LMS(low_reference_lms) - white; + float2 high_reference_direction = renodx::color::macleod_boynton::MB_From_LMS(high_reference_lms) - white; + + float target_len_sq = dot(target_direction, target_direction); + float low_len_sq = dot(low_reference_direction, low_reference_direction); + float high_len_sq = dot(high_reference_direction, high_reference_direction); + + float2 low_unit = float2(0.f, 0.f); + if (low_len_sq > kNearWhiteEpsilon) { + low_unit = low_reference_direction * rsqrt(low_len_sq); + } else if (target_len_sq > kNearWhiteEpsilon) { + low_unit = target_direction * rsqrt(target_len_sq); + } else if (high_len_sq > kNearWhiteEpsilon) { + low_unit = high_reference_direction * rsqrt(high_len_sq); + } + + float2 high_unit = (high_len_sq > kNearWhiteEpsilon) + ? high_reference_direction * rsqrt(high_len_sq) + : low_unit; + + float hue_blend = saturate(high_hue_strength) * + saturate(renodx::math::DivideSafe(target_t - hue_t_ramp_start, + hue_t_ramp_end - hue_t_ramp_start, 0.f)); + + float2 hue_unit = lerp(low_unit, high_unit, hue_blend); + + float hue_len_sq = dot(hue_unit, hue_unit); + if (hue_len_sq <= kNearWhiteEpsilon) { + return renodx::color::bt709::from::BT2020( + renodx::color::macleod_boynton::ApplyBT2020( + target_bt2020, high_purity01, curve_gamma, mb_white_override, t_min) + .rgbOut); + } + + hue_unit *= rsqrt(hue_len_sq); + + float seed_len = sqrt(max(target_len_sq, 0.f)); + if (seed_len <= 1e-6f) { + seed_len = sqrt(max(lerp(low_len_sq, high_len_sq, hue_blend), 0.f)); + } + seed_len = max(seed_len, 1e-6f); + + float3 seed_bt2020 = mul( + renodx::color::XYZ_TO_BT2020_MAT, + mul(renodx::color::macleod_boynton::LMS_TO_XYZ_2006, + renodx::color::macleod_boynton::LMS_From_MB_T(white + hue_unit * seed_len, target_t))); + + return renodx::color::bt709::from::BT2020( + renodx::color::macleod_boynton::ApplyBT2020( + seed_bt2020, high_purity01, curve_gamma, mb_white_override, t_min) + .rgbOut); +} + float3 ApplyHermiteSplineByMaxChannel(float3 input, float peak_ratio, float white_clip = 100.f) { float max_channel = renodx::math::Max(input); @@ -152,6 +356,45 @@ float3 ApplyExposureContrastFlareHighlightsShadowsByLuminance(float3 untonemappe float3 ApplySaturationBlowoutHueCorrectionHighlightSaturation(float3 tonemapped, float3 hue_reference_color, float y, UserGradingConfig config) { float3 color = tonemapped; if (config.saturation != 1.f || config.dechroma != 0.f || config.hue_emulation_strength != 0.f || config.chrominance_emulation_strength != 0.f || config.highlight_saturation != 0.f) { + if (config.hue_emulation_strength != 0.0 || config.chrominance_emulation_strength != 0.0) { + color = CorrectHueAndPurityMBGated( + color, + hue_reference_color, + config.hue_emulation_strength, + 0.5f, + 1.f, + config.chrominance_emulation_strength, + 1.f); + } + + float mb_scale = max(config.saturation, 0.f); + + if (config.dechroma != 0.f) { + float dechroma_scale = lerp(1.f, 0.f, saturate(pow(y / (10000.f / 100.f), (1.f - config.dechroma)))); + mb_scale *= max(dechroma_scale, 0.f); + } + + if (config.highlight_saturation != 0.f) { + float percent_max = saturate(y * 100.f / 10000.f); + float highlight_saturation_strength = 100.f; + float highlight_saturation_change = pow(1.f - percent_max, highlight_saturation_strength * abs(config.highlight_saturation)); + if (config.highlight_saturation < 0) { + highlight_saturation_change = (2.f - highlight_saturation_change); + } + mb_scale *= max(highlight_saturation_change, 0.f); + } + + if (abs(mb_scale - 1.f) > 1e-6f) { + float3 color_bt2020 = renodx::color::bt2020::from::BT709(color); + color = renodx::color::bt709::from::BT2020( + renodx::color::macleod_boynton::ApplyScaleBT2020(color_bt2020, mb_scale) + .rgbOut); + } + + color = renodx::color::bt709::clamp::AP1(color); + + /* Disabled OKLab path (kept for reference) + float3 perceptual_new = renodx::color::oklab::from::BT709(color); // hue and chrominance emulation @@ -201,6 +444,77 @@ float3 ApplySaturationBlowoutHueCorrectionHighlightSaturation(float3 tonemapped, color = renodx::color::bt709::from::OkLab(perceptual_new); color = renodx::color::bt709::clamp::AP1(color); + + */ } return color; +} + +struct LUTSampleResult { + float3 graded; + float y; + float3 graded_ap1; +}; + +LUTSampleResult LUTSAMPLE( + SamplerState lut_sampler, + float3 lut_size, + Texture2D lut_texture, + float3 sample_input) { + renodx::lut::Config lut_config = renodx::lut::config::Create( + lut_sampler, + shader_injection.color_grade_strength, + 0.f, + renodx::lut::config::type::ARRI_C1000_NO_CUT, + renodx::lut::config::type::LINEAR, + lut_size); + + LUTSampleResult result; + result.graded = renodx::lut::Sample(lut_texture, lut_config, sample_input); + result.y = renodx::color::y::from::BT709(result.graded); + result.graded_ap1 = renodx::color::ap1::from::BT709(result.graded); + return result; +} + +float3 SDRGRADE(LUTSampleResult lut_sample) { + float3 graded = lut_sample.graded; + float3 graded_ap1 = lut_sample.graded_ap1; + float y = lut_sample.y; + + float3 hue_chrominance_reference_color = + renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); + + UserGradingConfig cg_config; + cg_config.saturation = 1.f; + cg_config.dechroma = .1f; + cg_config.hue_emulation_strength = 1.f; + cg_config.chrominance_emulation_strength = .5f; + cg_config.highlight_saturation = 0.f; + + float3 output = ApplySaturationBlowoutHueCorrectionHighlightSaturation( + graded, hue_chrominance_reference_color, y, cg_config); + output = renodx::color::bt2020::from::BT709(output); + output = renodx::tonemap::neutwo::MaxChannel(output, 1.0f, 2.0f); + output = renodx::color::bt709::from::BT2020(output); + return output; +} + +float3 HDRGRADE(LUTSampleResult lut_sample) { + float3 graded = lut_sample.graded; + float3 graded_ap1 = lut_sample.graded_ap1; + float y = lut_sample.y; + + float3 hue_chrominance_reference_color = + renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); + + UserGradingConfig cg_config = CreateColorGradeConfig(); + float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); + + float3 output = ApplySaturationBlowoutHueCorrectionHighlightSaturation( + graded_bt709, hue_chrominance_reference_color, y, cg_config); + output = renodx::color::bt2020::from::BT709(output); + output = renodx::tonemap::neutwo::MaxChannel( + output, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); + output = renodx::color::bt709::from::BT2020(output); + return output; } \ No newline at end of file diff --git a/src/games/endfield/others/lutbuilder_0x88BD6DCA.ps_5_0.hlsl b/src/games/endfield/others/lutbuilder_0x88BD6DCA.ps_5_0.hlsl index a117bc665..822cc07a0 100644 --- a/src/games/endfield/others/lutbuilder_0x88BD6DCA.ps_5_0.hlsl +++ b/src/games/endfield/others/lutbuilder_0x88BD6DCA.ps_5_0.hlsl @@ -25,7 +25,20 @@ cbuffer cb0 : register(b0) { // 3Dmigoto declarations #define cmp - -#include "../shared.h" +#include "../common.hlsl" + +static float ACESLikeScalar(float value) { + static const float a = 278.5085; + static const float b = 10.7772; + static const float c = 293.6045; + static const float d = 88.7122; + static const float e = 80.6889; + const float divergence_point = 0.267010625; + + float tonemapped = (value * (a * value + b)) / (value * (c * value + d) + e); + float linear_extension = 0.9174704430474515 * value - 0.06355161968502177; + return (value < divergence_point) ? tonemapped : linear_extension; +} void main( float4 v0: SV_Position0, @@ -244,20 +257,22 @@ void main( r0.yzw = min(float3(1, 1, 1), r0.yzw); #else float3 untonemapped = r0.rgb; - static const float a = 278.5085; - static const float b = 10.7772; - static const float c = 293.6045; - static const float d = 88.7122; - static const float e = 80.6889; - - float3 tonemapped = (untonemapped * (a * untonemapped + b)) / (untonemapped * (c * untonemapped + d) + e); - - const float divergence_point = 0.267010625; - float3 linear_extension = 0.9174704430474515 * untonemapped - 0.06355161968502177; + float3 per_channel_tonemapped = float3( + ACESLikeScalar(untonemapped.x), + ACESLikeScalar(untonemapped.y), + ACESLikeScalar(untonemapped.z)); - tonemapped = renodx::math::Select(untonemapped < divergence_point, tonemapped, linear_extension); + float luminance_in = renodx::color::y::from::BT709(untonemapped); + float luminance_tonemapped = ACESLikeScalar(luminance_in); + float3 luminance_tonemapped_color = renodx::color::correct::Luminance( + untonemapped, + luminance_in, + luminance_tonemapped); - r0.yzw = tonemapped; + r0.yzw = ApplyMBLowHueThenHighHueAndPurity( + luminance_tonemapped_color, + untonemapped, + per_channel_tonemapped); #endif r0.x = dot(r0.xyz, float3(0.272228986, 0.674081981, 0.0536894985)); diff --git a/src/games/endfield/shared.h b/src/games/endfield/shared.h index ef22ab020..36909d963 100644 --- a/src/games/endfield/shared.h +++ b/src/games/endfield/shared.h @@ -16,6 +16,7 @@ // #define RENODX_TONE_MAP_FLARE 0 // #define RENODX_TONE_MAP_HUE_CORRECTION 1.f // #define RENODX_TONE_MAP_HUE_SHIFT 0 +// #define RENODX_TONE_MAP_HUE_METHOD 0 // #define RENODX_TONE_MAP_WORKING_COLOR_SPACE color::convert::COLOR_SPACE_BT709 // #define RENODX_TONE_MAP_CLAMP_COLOR_SPACE color::convert::COLOR_SPACE_NONE // #define RENODX_TONE_MAP_CLAMP_PEAK color::convert::COLOR_SPACE_BT709 diff --git a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl index 76fba7310..d0c7d6c36 100644 --- a/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl @@ -194,39 +194,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl index 30d139f79..89b0f8564 100644 --- a/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x039C28DA.ps_5_0.hlsl @@ -222,39 +222,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(renodx::draw::ToneMapPass(r0.yzx, graded)); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl index 7cc9546d2..7dc60fa2c 100644 --- a/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x086097D2.ps_5_0.hlsl @@ -161,39 +161,12 @@ void main( r0.xyz = r0.xxx * r0.yzw + cb1[4].zxy; r0.xyz = r1.xyz * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl index 743eabf6b..8fa22ac10 100644 --- a/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x09270FDA.ps_5_0.hlsl @@ -232,39 +232,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl index 48dd70fd0..1be39770f 100644 --- a/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x0E520F06.ps_5_0.hlsl @@ -176,39 +176,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl index 770a60c0e..85d0d32ec 100644 --- a/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x10076711.ps_5_0.hlsl @@ -266,39 +266,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl index ddf8e6571..eb0d3c27f 100644 --- a/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x21241B7A.ps_5_0.hlsl @@ -173,39 +173,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl index 6e1aa5df1..ceca60d82 100644 --- a/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x51359B4D.ps_5_0.hlsl @@ -203,39 +203,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl index 46ed1b3db..f57b0f620 100644 --- a/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53875523.ps_5_0.hlsl @@ -178,39 +178,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl index fe612e499..230b1effa 100644 --- a/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x53D50BD5.ps_5_0.hlsl @@ -287,39 +287,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl index 54afc1b0f..2e1cec72e 100644 --- a/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x57737D9F.ps_5_0.hlsl @@ -164,39 +164,12 @@ void main( o0.w = min(1, r1.w); return; */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl index 69596eab8..69c797837 100644 --- a/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x5FC0BD3C.ps_5_0.hlsl @@ -219,39 +219,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl index 46eeac4a2..a6ee0dea9 100644 --- a/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6166487A.ps_5_0.hlsl @@ -240,39 +240,12 @@ void main( o0.xyz = renodx::draw::RenderIntermediatePass(o0.xyz); } */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl index b06e85284..a858153e6 100644 --- a/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x61908D50.ps_5_0.hlsl @@ -149,38 +149,12 @@ void main( r1.xyz = -cb1[4].zxy + float3(1, 1, 1); r1.xyz = r0.www * r1.xyz + cb1[4].zxy; r0.xyz = r1.xyz * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl index 1caed954e..8e7a2e280 100644 --- a/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x64CEB255.ps_5_0.hlsl @@ -188,39 +188,12 @@ void main( r0.xyz = r1.xyz * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl index ae8b8d247..ffae9697e 100644 --- a/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x6A76C719.ps_5_0.hlsl @@ -123,39 +123,12 @@ void main( r0.xyz = cb1[9].xxx * r0.xyz + r1.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl index 8deb6a674..52b5ec498 100644 --- a/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x86420EBC.ps_5_0.hlsl @@ -125,39 +125,12 @@ void main( r1.xyz = float3(-0.5,-0.5,-0.5) + r1.xyz; o0.xyz = r1.xyz * float3(0.0013725491,0.0013725491,0.0013725491) + r0.xyz; */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl index 3aefbecaa..88d057ed8 100644 --- a/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9790A50C.ps_5_0.hlsl @@ -145,39 +145,12 @@ void main( r1.xyz = float3(-0.5,-0.5,-0.5) + r1.xyz; o0.xyz = r1.xyz * float3(0.0013725491,0.0013725491,0.0013725491) + r0.xyz; */ - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl index 897dd371d..837919d47 100644 --- a/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0x9AA3FC1F.ps_5_0.hlsl @@ -233,39 +233,12 @@ void main( r1.xyz = r0.www * r1.xyz + cb1[4].zxy; r0.xyz = r1.xyz * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl index 61ed70f1a..9466396cd 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6501734.ps_5_0.hlsl @@ -78,39 +78,12 @@ void main( r0.xyz = r1.xyz * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl index b6bfa9ca5..25065786d 100644 --- a/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA6E6ABE6.ps_5_0.hlsl @@ -200,39 +200,12 @@ void main( r1.xyz = r0.www * r1.xyz + float3(1,1,1); r0.xyz = r1.xyz * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl index 6ebba85a6..84648ab85 100644 --- a/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xA8213A68.ps_5_0.hlsl @@ -138,39 +138,12 @@ void main( r1.xyz = r0.www * r1.xyz + float3(1,1,1); r0.xyz = r1.xyz * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl index a1e1682af..32d9a52e5 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFDCA263.ps_5_0.hlsl @@ -154,39 +154,12 @@ void main( r0.xyz = -r0.xyz * cb0[109].xxx + r2.xyz; r0.xyz = cb1[9].xxx * r0.xyz + r1.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl index ed87501a6..112c55a1b 100644 --- a/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xAFECA8F4.ps_5_0.hlsl @@ -203,39 +203,12 @@ void main( r1.xyz = r0.www * r1.xyz + cb1[4].zxy; r0.xyz = r1.xyz * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s1_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl index 206cbea6e..7e666c244 100644 --- a/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xBCD91195.ps_5_0.hlsl @@ -62,39 +62,12 @@ void main( o0.w = min(1, r1.w); r0.xyz = cb1[9].xxx * r0.xyz + r2.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl index 3844e7fed..b096ccbd6 100644 --- a/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xD5BC74AC.ps_5_0.hlsl @@ -158,39 +158,12 @@ void main( r0.xyz = r0.xyz * r2.www; r0.xyz = cb0[109].xxx * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( diff --git a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl index 806262a93..36a68644f 100644 --- a/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xE0058043.ps_5_0.hlsl @@ -97,39 +97,12 @@ void main( r0.xyz = r1.xyz * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t2, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; diff --git a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl index 82cca5936..49f3a645e 100644 --- a/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl +++ b/src/games/endfield/uberpost/uberpost_0xF8FA587F.ps_5_0.hlsl @@ -95,39 +95,12 @@ void main( r0.xyz = r1.xxx * r0.xyz; r0.xyz = cb0[109].xxx * r0.xyz; r0.xyz = cb1[7].www * r0.xyz; - renodx::lut::Config lut_config = renodx::lut::config::Create( - s0_s, - shader_injection.color_grade_strength, - 0.f, - renodx::lut::config::type::ARRI_C1000_NO_CUT, - renodx::lut::config::type::LINEAR, - cb1[7].xyz - ); - float3 graded = renodx::lut::Sample(t1, lut_config, r0.yzx); - - float y = renodx::color::y::from::BT709(graded); - float3 graded_ap1 = renodx::color::ap1::from::BT709(graded); + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 1.0f)); - UserGradingConfig cg_config; - cg_config.saturation = 1.f; - cg_config.dechroma = .1f; - cg_config.hue_emulation_strength = 1.f; - cg_config.chrominance_emulation_strength = .7f; - cg_config.highlight_saturation = 0.f; - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, 1.0f, 2.0f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = SDRGRADE(lut_sample); } else { - float3 hue_chrominance_reference_color = renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); - UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); - o0.xyz = ApplySaturationBlowoutHueCorrectionHighlightSaturation(graded_bt709, hue_chrominance_reference_color, y, cg_config); - o0.xyz = renodx::color::bt2020::from::BT709(o0.xyz); - o0.xyz = renodx::tonemap::neutwo::MaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } if (CUSTOM_GRAIN_STRENGTH > 0) { o0.xyz = renodx::effects::ApplyFilmGrain( o0.xyz, From dbfae0cdd79b47b929a1ec786d6476a9b45366e1 Mon Sep 17 00:00:00 2001 From: SGTForgery Date: Wed, 18 Feb 2026 17:33:47 +0000 Subject: [PATCH 18/19] feat(endfield): Added AO distance scaling, Removed legacy code + cbuffers to fix FSR4 incompat issues, Added separate slider to control fake in-game cloud shadows --- src/games/endfield/addon.cpp | 219 ++---------------- .../ao/gtao-main_0xE1A460D9.cs_5_0.hlsl | 21 +- .../endfield/deferred-lighting/0x0E84DFD1.cso | Bin 60272 -> 60516 bytes .../deferred-lighting/0x0E84DFD1.ps_5_0.asm | 19 +- .../endfield/deferred-lighting/0x1E8A471E.cso | Bin 47540 -> 47552 bytes .../deferred-lighting/0x1E8A471E.ps_5_0.asm | 19 +- .../endfield/deferred-lighting/0x37837806.cso | Bin 27044 -> 27168 bytes .../deferred-lighting/0x37837806.ps_5_0.asm | 12 +- .../endfield/deferred-lighting/0x518D3855.cso | Bin 51840 -> 51964 bytes .../deferred-lighting/0x518D3855.ps_5_0.asm | 12 +- .../endfield/deferred-lighting/0x620A40FD.cso | Bin 28060 -> 28184 bytes .../deferred-lighting/0x620A40FD.ps_5_0.asm | 12 +- .../endfield/deferred-lighting/0x7010AF4B.cso | Bin 27420 -> 27664 bytes .../deferred-lighting/0x7010AF4B.ps_5_0.asm | 19 +- .../endfield/deferred-lighting/0x8BA3C806.cso | Bin 48308 -> 48552 bytes .../deferred-lighting/0x8BA3C806.ps_5_0.asm | 19 +- .../endfield/deferred-lighting/0x99725481.cso | Bin 60792 -> 61036 bytes .../deferred-lighting/0x99725481.ps_5_0.asm | 19 +- .../endfield/deferred-lighting/0xA4113DE8.cso | Bin 39372 -> 39372 bytes .../deferred-lighting/0xA4113DE8.ps_5_0.asm | 10 +- .../endfield/deferred-lighting/0xB094C87E.cso | Bin 51308 -> 51432 bytes .../deferred-lighting/0xB094C87E.ps_5_0.asm | 12 +- .../endfield/deferred-lighting/0xBD99F0C4.cso | Bin 30220 -> 30220 bytes .../deferred-lighting/0xBD99F0C4.ps_5_0.asm | 6 +- .../endfield/deferred-lighting/0xD3FA93FC.cso | Bin 48664 -> 48788 bytes .../deferred-lighting/0xD3FA93FC.ps_5_0.asm | 12 +- .../endfield/deferred-lighting/0xD5B102A4.cso | Bin 38860 -> 39104 bytes .../deferred-lighting/0xD5B102A4.ps_5_0.asm | 19 +- .../endfield/deferred-lighting/0xD88CD7C9.cso | Bin 26420 -> 26664 bytes .../deferred-lighting/0xD88CD7C9.ps_5_0.asm | 19 +- .../endfield/deferred-lighting/0xE322C21D.cso | Bin 49684 -> 49808 bytes .../deferred-lighting/0xE322C21D.ps_5_0.asm | 12 +- .../endfield/deferred-lighting/0xF901F0EC.cso | Bin 29692 -> 29816 bytes .../deferred-lighting/0xF901F0EC.ps_5_0.asm | 12 +- .../deferred-lighting/Notes for future.txt | 79 ++++++- src/games/endfield/glass/0x183ADBF7.cso | Bin 56220 -> 56220 bytes .../endfield/glass/0x183ADBF7.ps_5_0.asm | 10 +- src/games/endfield/glass/0x41AF9F2B.cso | Bin 55588 -> 55588 bytes .../endfield/glass/0x41AF9F2B.ps_5_0.asm | 10 +- src/games/endfield/glass/0x424F9536.cso | Bin 56364 -> 56364 bytes .../endfield/glass/0x424F9536.ps_5_0.asm | 10 +- src/games/endfield/glass/0x69B6459F.cso | Bin 55740 -> 55740 bytes .../endfield/glass/0x69B6459F.ps_5_0.asm | 10 +- src/games/endfield/glass/0x754218B1.cso | Bin 55856 -> 55856 bytes .../endfield/glass/0x754218B1.ps_5_0.asm | 10 +- src/games/endfield/glass/0x843686F6.cso | Bin 57100 -> 57100 bytes .../endfield/glass/0x843686F6.ps_5_0.asm | 10 +- src/games/endfield/glass/0x859412D4.cso | Bin 56676 -> 56676 bytes .../endfield/glass/0x859412D4.ps_5_0.asm | 10 +- src/games/endfield/glass/0xB317E9E1.cso | Bin 53640 -> 53640 bytes .../endfield/glass/0xB317E9E1.ps_5_0.asm | 10 +- src/games/endfield/glass/0xB8941FB1.cso | Bin 55376 -> 55376 bytes .../endfield/glass/0xB8941FB1.ps_5_0.asm | 10 +- src/games/endfield/glass/0xD2EC68A2.cso | Bin 55952 -> 55952 bytes .../endfield/glass/0xD2EC68A2.ps_5_0.asm | 10 +- src/games/endfield/glass/0xF831814B.cso | Bin 53924 -> 53924 bytes .../endfield/glass/0xF831814B.ps_5_0.asm | 10 +- .../endfield/shadows/0xE9345161.ps_5_0.hlsl | 26 +++ ...aracter-capsule-ao_0xD91A8DD3.ps_5_0.hlsl} | 0 ... character-shadows_0xB8580FF6.ps_5_0.hlsl} | 68 +++--- ...creenspace-shadows_0x0C02AB31.cs_5_0.hlsl} | 8 +- ...positing-shadowmap_0x61FA72DD.ps_5_0.hlsl} | 74 +++--- src/games/endfield/shared.h | 48 ++-- .../ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl | 7 +- .../ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl | 8 +- 65 files changed, 439 insertions(+), 462 deletions(-) create mode 100644 src/games/endfield/shadows/0xE9345161.ps_5_0.hlsl rename src/games/endfield/shadows/{0xD91A8DD3.ps_5_0.hlsl => character-capsule-ao_0xD91A8DD3.ps_5_0.hlsl} (100%) rename src/games/endfield/shadows/{0xB8580FF6.ps_5_0.hlsl => character-shadows_0xB8580FF6.ps_5_0.hlsl} (91%) rename src/games/endfield/shadows/{grass-shadowing_0x0C02AB31.cs_5_0.hlsl => screenspace-shadows_0x0C02AB31.cs_5_0.hlsl} (98%) rename src/games/endfield/shadows/{cloud-shadows_0x61FA72DD.ps_5_0.hlsl => shadowcompositing-shadowmap_0x61FA72DD.ps_5_0.hlsl} (89%) diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index 88a4453f6..cee0685c8 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -435,7 +435,7 @@ renodx::utils::settings::Settings settings = { .max = 100.f, .is_enabled = []() { return shader_injection.tone_map_type >= 1; }, .parse = [](float value) { return value * 0.01f; }, - .is_visible = []() { return false; }, + .is_visible = []() { return false; }, }, new renodx::utils::settings::Setting{ .key = "ToneMapPerChannelBlowout", @@ -774,195 +774,6 @@ renodx::utils::settings::Settings settings = { .tooltip = "Disables the game's built-in GTAO (Ground Truth Ambient Occlusion).\nUseful when using ReShade-based AO instead.", .labels = {"Off", "On"}, }, - new renodx::utils::settings::Setting{ - .key = "AORadius", - .binding = &shader_injection.ao_radius, - .default_value = 4.f, - .label = "AO Radius", - .section = "Ambient Occlusion", - .tooltip = "World-space sampling radius. Larger values detect occlusion from more distant geometry.", - .max = 16.f, - .format = "%.1f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AORadiusScale", - .binding = &shader_injection.ao_radius_scale, - .default_value = 1.f, - .label = "AO Radius Scale", - .section = "Ambient Occlusion", - .tooltip = "Multiplier on the effective radius. Fine-tune the reach of the AO sampling.", - .max = 5.f, - .format = "%.2f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AOFalloffRange", - .binding = &shader_injection.ao_falloff_range, - .default_value = 1.f, - .label = "AO Falloff Range", - .section = "Ambient Occlusion", - .tooltip = "Fraction of radius used for distance falloff (0-1). Lower = sharper falloff.", - .max = 1.f, - .format = "%.2f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AODistributionPower", - .binding = &shader_injection.ao_distribution_power, - .default_value = 2.f, - .label = "AO Distribution Power", - .section = "Ambient Occlusion", - .tooltip = "Controls how sample distances are distributed. Higher = samples pushed further out.", - .max = 5.f, - .format = "%.2f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AOThinOccluder", - .binding = &shader_injection.ao_thin_occluder, - .default_value = 2.f, - .label = "AO Thin Occluder", - .section = "Ambient Occlusion", - .tooltip = "Thin occluder compensation factor. Higher = more AO contribution from thin objects.", - .max = 8.f, - .format = "%.1f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AOGamma", - .binding = &shader_injection.ao_gamma, - .default_value = 2.2f, - .label = "AO Intensity (Gamma)", - .section = "Ambient Occlusion", - .tooltip = "Power curve applied to the final AO. Higher = darker/stronger occlusion.", - .max = 5.f, - .format = "%.2f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AOTemporalFrame", - .binding = &shader_injection.ao_temporal_frame, - .default_value = 64.f, - .label = "AO Temporal Frame", - .section = "Ambient Occlusion", - .tooltip = "Temporal frame count for jitter rotation cycling. Higher = more noise variation frames.", - .max = 128.f, - .format = "%.0f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AOMipBias", - .binding = &shader_injection.ao_mip_bias, - .default_value = 4.f, - .label = "AO Mip Bias", - .section = "Ambient Occlusion", - .tooltip = "Mip level bias for depth sampling. Higher = coarser/smoother depth reads.", - .max = 8.f, - .format = "%.1f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AODirectionCount", - .binding = &shader_injection.ao_direction_count, - .default_value = 6.f, - .label = "AO Direction Count", - .section = "Ambient Occlusion", - .tooltip = "Number of directional slices for horizon search. More = higher quality, higher cost.", - .min = 1.f, - .max = 12.f, - .format = "%.0f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AOStepCount", - .binding = &shader_injection.ao_step_count, - .default_value = 6.f, - .label = "AO Step Count", - .section = "Ambient Occlusion", - .tooltip = "Number of sample steps per direction. More = better horizon accuracy, higher cost.", - .min = 1.f, - .max = 12.f, - .format = "%.0f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AONormalAttenuation", - .binding = &shader_injection.ao_normal_attenuation, - .default_value = 0.05f, - .label = "AO Normal Attenuation", - .section = "Ambient Occlusion", - .tooltip = "Blends between surface normal and view direction for the visibility integral.", - .max = 1.f, - .format = "%.3f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AOThickness", - .binding = &shader_injection.ao_thickness, - .default_value = 0.5f, - .label = "AO Thickness", - .section = "Ambient Occlusion", - .tooltip = "Assumed thickness of occluders. Controls min-sample distance and bitmask backface offset.", - .max = 5.f, - .format = "%.2f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AODenoiserBlurBeta", - .binding = &shader_injection.ao_denoiser_blur_beta, - .default_value = 0.f, - .label = "AO Denoiser Blur", - .section = "Ambient Occlusion", - .tooltip = "Bilateral blur edge sensitivity. Higher = more blur, less edge preservation.", - .max = 3.f, - .format = "%.2f", - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AODebugView", - .binding = &shader_injection.ao_debug_view, - .value_type = renodx::utils::settings::SettingValueType::INTEGER, - .default_value = 0.f, - .label = "AO Debug View", - .section = "Ambient Occlusion", - .tooltip = "Switches between normal scene rendering and AO-only debug visualization.", - .labels = {"Off", "AO Only"}, - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .key = "AOBitmask", - .binding = &shader_injection.ao_bitmask, - .value_type = renodx::utils::settings::SettingValueType::INTEGER, - .default_value = 1.f, - .label = "AO Visibility Bitmask", - .section = "Ambient Occlusion", - .tooltip = "Enables XeGTAO visibility bitmask method. Replaces the default horizon-based integration with a bitmask-based approach for improved multi-layer occlusion.", - .labels = {"Off", "On"}, - .is_visible = []() { return false; }, - }, - new renodx::utils::settings::Setting{ - .value_type = renodx::utils::settings::SettingValueType::BUTTON, - .label = "Reset AO Settings to Defaults", - .section = "Ambient Occlusion", - .on_change = []() { - renodx::utils::settings::UpdateSetting("AORadius", 4.f); - renodx::utils::settings::UpdateSetting("AORadiusScale", 1.f); - renodx::utils::settings::UpdateSetting("AOFalloffRange", 1.f); - renodx::utils::settings::UpdateSetting("AODistributionPower", 2.f); - renodx::utils::settings::UpdateSetting("AOThinOccluder", 2.f); - renodx::utils::settings::UpdateSetting("AOGamma", 2.2f); - renodx::utils::settings::UpdateSetting("AOTemporalFrame", 64.f); - renodx::utils::settings::UpdateSetting("AOMipBias", 4.f); - renodx::utils::settings::UpdateSetting("AODirectionCount", 6.f); - renodx::utils::settings::UpdateSetting("AOStepCount", 6.f); - renodx::utils::settings::UpdateSetting("AONormalAttenuation", 0.05f); - renodx::utils::settings::UpdateSetting("AOThickness", 0.5f); - renodx::utils::settings::UpdateSetting("AODenoiserBlurBeta", 0.f); - renodx::utils::settings::UpdateSetting("AODebugView", 0.f); - renodx::utils::settings::UpdateSetting("AOBitmask", 1.f); - }, - }, new renodx::utils::settings::Setting{ .key = "HDRSun", .binding = &shader_injection.sun_intensity, @@ -994,6 +805,17 @@ renodx::utils::settings::Settings settings = { .labels = {"Off", "On"}, .is_visible = []() { return current_settings_mode >= 1; }, }, + new renodx::utils::settings::Setting{ + .key = "FAKE_CLOUD_SHADOWS", + .binding = &shader_injection.fake_cloud_shadows, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 1.f, + .label = "Vanilla Fake Cloud Shadows", + .section = "Rendering Improvements", + .tooltip = "Toggles fake cloud shadows", + .labels = {"Off", "On / Vanilla"}, + .is_visible = []() { return current_settings_mode >= 1; }, + }, new renodx::utils::settings::Setting{ .key = "FogModification", .binding = &shader_injection.fog_modification, @@ -1004,17 +826,6 @@ renodx::utils::settings::Settings settings = { .tooltip = "Toggles alternative hue-preserving fog", .labels = {"Original", "Alt"}, }, - new renodx::utils::settings::Setting{ - .key = "MetallicIBLIntensity", - .binding = &shader_injection.metallic_ibl_intensity, - .value_type = renodx::utils::settings::SettingValueType::INTEGER, - .default_value = 0.f, - .label = "Metallic IBL Intensity", - .section = "Rendering Improvements", - .tooltip = "Controls image-based lighting intensity on metallic surfaces", - .labels = {"Vanilla", "Alt"}, - .is_visible = []() { return false; }, - }, new renodx::utils::settings::Setting{ .key = "CubemapAmbientLink", .binding = &shader_injection.cubemap_ambient_link, @@ -1305,9 +1116,9 @@ void OnPresent(reshade::api::command_queue* queue, if (pending_tech_test_preset == 1) { renodx::utils::settings::UpdateSetting("GammaCorrection", 2.f); renodx::utils::settings::UpdateSetting("SwapChainGammaCorrection", 2.f); - renodx::utils::settings::UpdateSetting("ToneMapPerChannelBlowout", 75.f); - renodx::utils::settings::UpdateSetting("ColorGradeExposure", 0.65f); - renodx::utils::settings::UpdateSetting("ColorGradeHighlights", 51.f); + renodx::utils::settings::UpdateSetting("ToneMapPerChannelBlowout", 35.f); + renodx::utils::settings::UpdateSetting("ColorGradeExposure", 0.75f); + renodx::utils::settings::UpdateSetting("ColorGradeHighlights", 50.f); renodx::utils::settings::UpdateSetting("ColorGradeShadows", 80.f); renodx::utils::settings::UpdateSetting("ColorGradeContrast", 55.f); renodx::utils::settings::UpdateSetting("ColorGradeSaturation", 35.f); diff --git a/src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl b/src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl index 66ceba190..b85a143b0 100644 --- a/src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl +++ b/src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl @@ -138,6 +138,13 @@ void main(uint3 vThreadID : SV_DispatchThreadID) r0.z = dot(-r4.xzw, -r4.xzw); r0.z = rsqrt(r0.z); r2.xyz = -r4.xwz * r0.zzz; + + // Distance-based thickness scaling: increase thickness linearly with depth + // to prevent over-attenuation of AO on distant objects. + // No scaling within 100 units (near-field), then ramps at 0.02 per unit beyond. + float viewDist = length(float3(r4.x, r4.w, r4.z)); + float scaledThickness = _ao_thickness * (1.0 + max(0.0, viewDist - 100.0) * 0.02); + r0.z = _ao_radius * _ao_radius_scale; r0.w = _ao_falloff_range * r0.z; r2.w = -1 / r0.w; @@ -153,7 +160,7 @@ void main(uint3 vThreadID : SV_DispatchThreadID) r4.y = cb0[15].x + r4.y; r4.y = r4.y * r4.z + -r4.x; r0.z = r0.z / r4.y; - r4.y = _ao_thickness / r0.z; + r4.y = scaledThickness / r0.z; r5.x = 10 + -r0.z; r5.x = saturate(0.00999999978 * r5.x); r5.x = 0.5 * r5.x; @@ -237,8 +244,8 @@ void main(uint3 vThreadID : SV_DispatchThreadID) r10.xyz = r10.xzw + -r4.xwz; // Bitmask: process step 0 samples if (_ao_bitmask) { - BM_ProcessSample(r11.xyz, r2.xyz, -1.0, r6.y, _ao_thickness, bitmask); - BM_ProcessSample(r10.xyz, r2.xyz, 1.0, r6.y, _ao_thickness, bitmask); + BM_ProcessSample(r11.xyz, r2.xyz, -1.0, r6.y, scaledThickness, bitmask); + BM_ProcessSample(r10.xyz, r2.xyz, 1.0, r6.y, scaledThickness, bitmask); } r6.w = dot(r11.xyz, r11.xyz); r6.w = sqrt(r6.w); @@ -302,8 +309,8 @@ void main(uint3 vThreadID : SV_DispatchThreadID) r14.xyz = r14.xzw + -r4.xwz; // Bitmask: process step 1 samples if (_ao_bitmask) { - BM_ProcessSample(r12.xyz, r2.xyz, -1.0, r6.y, _ao_thickness, bitmask); - BM_ProcessSample(r14.xyz, r2.xyz, 1.0, r6.y, _ao_thickness, bitmask); + BM_ProcessSample(r12.xyz, r2.xyz, -1.0, r6.y, scaledThickness, bitmask); + BM_ProcessSample(r14.xyz, r2.xyz, 1.0, r6.y, scaledThickness, bitmask); } r7.z = dot(r12.xyz, r12.xyz); r7.z = sqrt(r7.z); @@ -343,8 +350,8 @@ void main(uint3 vThreadID : SV_DispatchThreadID) r10.xyz = r10.xzw + -r4.xwz; // Bitmask: process step 2 samples if (_ao_bitmask) { - BM_ProcessSample(r8.xyz, r2.xyz, -1.0, r6.y, _ao_thickness, bitmask); - BM_ProcessSample(r10.xyz, r2.xyz, 1.0, r6.y, _ao_thickness, bitmask); + BM_ProcessSample(r8.xyz, r2.xyz, -1.0, r6.y, scaledThickness, bitmask); + BM_ProcessSample(r10.xyz, r2.xyz, 1.0, r6.y, scaledThickness, bitmask); } r7.w = dot(r8.xyz, r8.xyz); r7.w = sqrt(r7.w); diff --git a/src/games/endfield/deferred-lighting/0x0E84DFD1.cso b/src/games/endfield/deferred-lighting/0x0E84DFD1.cso index 4d6c85b7da649f468a0ebe56ea77f0c83b102d99..4535042b2ba9bbdaf87dd0df124a6a377aa555ee 100644 GIT binary patch delta 325 zcmexxjrqw9W+|5lC+DE8v-VZRr^K%Knpbdk?atGT3=9k@Zzf7D;#~5Yfgu3Md%5wb zH6tVcW=1A=CPwwmo-F0=hO!I{96}5N3~E4mtp)`KULef_#EcF=f}z3QNP&S<2__Gu z873PlN!No_gLpsyRp|hs9S(qWG(mM(0ckd<0>QI6>8DL1`%lfd)sQ z1juY728693Ghp_CXrMY3uz)#G5y%h_;6fMzQ@nY%_sw8Vn4kDI&z-N$%(<)!;zhpA Q7Z-IKGD>ZZy&^0Q001{O^#A|> delta 122 zcmaEIgZaZXW+|5lC+D2M$Nf6q3A0QHuZobH*}jjFfq|jm^+c&foEu&-Fa!X3Yc?LW zW@HrJ%*f=<#HhB}lcn5!vW_3e<~=@Vf;p`k6c~7cii9>#T%gS?_^ltx1q!(_2{3R^ Ve)vjy^NYn9hKyF51Fs5;0{}bICqDoH diff --git a/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm index 3b7aef355..3a8a87672 100644 --- a/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm @@ -38,7 +38,7 @@ dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[5], immediateIndexed dcl_constantbuffer CB6[160], dynamicIndexed dcl_constantbuffer CB7[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -77,7 +77,7 @@ dcl_resource_texture2d (float,float,float,float) t28 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw -dcl_temps 38 +dcl_temps 39 ftou r0.xy, v0.xyxx mov r0.z, l(0) ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t26.xyzw @@ -658,6 +658,13 @@ if_nz r0.z mad r12.xyz, r14.xyzx, r12.yzwy, -r14.xyzx mad r12.xyz, r0.zzzz, r12.xyzx, r14.xyzx sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t14.yzxw, s1, l(0.000000) + ge r38.x, cb13[12].z, l(1.000000) + mad_sat r38.y, r0.z, l(2.000000), l(-1.000000) + mad_sat r38.z, r0.z, l(4.000000), l(-3.000000) + mad_sat r38.w, r6.w, l(0.050000), l(-1.500000) + add r38.z, r38.z, -r38.y + mad r38.y, r38.w, r38.z, r38.y + movc r0.z, r38.x, r38.y, r0.z min r0.z, r0.z, l(1.000000) mul r12.xyz, r0.zzzz, r12.xyzx else @@ -1332,7 +1339,7 @@ loop endloop mad r6.xyz, r20.xyzx, r11.yyyy, r12.xyzx ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx -movc r3.y, cb13[18].w, l(0xFFFFFFFF), r3.y +movc r3.y, cb13[14].z, l(0xFFFFFFFF), r3.y if_nz r3.y sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x min r0.z, r1.y, r0.z @@ -1360,7 +1367,7 @@ else mov r11.xyz, r1.yyyy mov r12.xyz, r1.yyyy endif -movc r11.xyz, cb13[18].wwww, r11.xyzx, l(1.0, 1.0, 1.0, 0) +movc r11.xyz, cb13[14].zzzz, r11.xyzx, l(1.0, 1.0, 1.0, 0) mul r6.xyz, r6.xyzx, r11.xyzx mad r15.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx round_z r0.z, cb0[212].x @@ -1772,8 +1779,8 @@ if_nz r4.w endif mul r2.xyz, r2.yzwy, cb0[112].zzzz mul r2.xyz, r2.xyzx, cb0[111].yyyy -// Cubemap ambient link modulation (cb13[13].w) -if_nz cb13[13].w +// Cubemap ambient link modulation (cb13[13].y) +if_nz cb13[13].y max r37.w, r37.w, l(0.000000) min r37.w, r37.w, l(1.000000) mad r37.w, r37.w, l(0.750000), l(0.250000) diff --git a/src/games/endfield/deferred-lighting/0x1E8A471E.cso b/src/games/endfield/deferred-lighting/0x1E8A471E.cso index ff8ad9cc796b947a6158cceb2603114ca9e94421..d1b04e43379942fcd3a8f4ca1d81fc694b8fd6c4 100644 GIT binary patch delta 379 zcmdn;nd!i1CP|kFC+F8Uuas|oHTTbppKL#m%~ZU?$iTpGV4~z=PKKQf3;{rn!^Wf9 zjEwx7KQjJiWK`Y!mf2jqUY3D@Lx@3uK?NwU)u6z@3#55~n9%`9Ff`a3DKKy|S%&BKMd&b8WV$gy8Krs$vgFudwVi0I> z1kxb35d*?8AVa{8hSETFV7@s}4af`-;6jtrf{Gh6Ft9_^Y}S+R3gm=&oNx2NoX<;E6o^4I0KoS>8~^|S delta 286 zcmX@`nQ6;sCP|kFCuf)QPxfWq&iwU6hVj_foeSqMGB7Y~nJBrK^UDqfh5#VPcH>cP zMn>Vy9~pl$GOBET%WN*rXgqmgq4;J4nVLXOs|E!IUZ66e&0BLnGjV?FhjBL+%Feqm~RRrB2b+_Ec-3=9kkSrereaVBIkFa!X35fhIF zGxBeiWIWHvD7E<|Q#!Y(ECU0F5Q6}NBv4wbL4ko6Nb^h<6cP>uiC6(;K*qpm3kC*u wC8%mCG}@ejfwKv!o(oM5tbemF-+Deym?eChS!KnUIhS=o?Bv_5s!;C<03QV+vH$=8 delta 98 zcmZ2*g>lJcMk$vFC+FJM&5Yfp{S(aoo%gRvogK)?z`(F1bE4ED&L;~xce*5y82i0Y5!nkU|{$&QF1Y-%_#YFWDPK%1lGB9umF$gfI0p+zC6c~7cG|%LPM}-;HCQm#nY;D27z^(+9 wmqMe>85lU7fMOuPg(j!PAh7wrWNb1g%uv3~skP$FoXff(cJOU(ZTRg808V=)&;S4c delta 98 zcmew}mAPRmv!qLelXKYj2b}+>&6e5rx?^G3-LJBY3=9kn6D1dO9yrOs5CG&9Y&>es w$SAy-k;$BiQEjs&%W2Wg4N?)woK_7A47@-ELYp7fiZgS5>xXd}8-IHO0Oe^PzW@LL diff --git a/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm index 5da009f1c..8abc7ffcb 100644 --- a/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm @@ -38,7 +38,7 @@ dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[5], immediateIndexed dcl_constantbuffer CB6[160], dynamicIndexed dcl_constantbuffer CB7[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -76,7 +76,7 @@ dcl_resource_texture3d (float,float,float,float) t27 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw -dcl_temps 38 +dcl_temps 39 ftou r0.xy, v0.xyxx mov r0.z, l(0) ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t24.xyzw @@ -249,6 +249,10 @@ ld_indexable(texture2d)(float,float,float,float) r14.x, r0.xyzz, t7.xyzw lt r0.z, l(0.001000), r14.x if_nz r0.z sample_l_indexable(texture2d)(float,float,float,float) r0.z, r7.xyxx, t12.yzxw, s1, l(0.000000) + ge r38.x, cb13[12].z, l(1.000000) + mul r38.y, r0.z, r0.z + mul r38.y, r38.y, r38.y + movc r0.z, r38.x, r38.y, r0.z dp3 r9.w, -r12.xyzx, r6.xyzx add r9.w, r9.w, r9.w mad r15.xyz, r6.xyzx, -r9.wwww, -r12.xyzx @@ -1054,7 +1058,7 @@ loop endloop mad r1.xyz, r22.xyzx, r13.zzzz, r14.xyzx ne r11.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx -movc r11.x, cb13[18].w, l(0xFFFFFFFF), r11.x +movc r11.x, cb13[14].z, l(0xFFFFFFFF), r11.x if_nz r11.x sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x mad r0.z, r0.z, l(0.750000), l(0.250000) @@ -1081,7 +1085,7 @@ else mov r11.xzw, r3.wwww mov r14.xyz, r3.wwww endif -movc r11.xzw, cb13[18].wwww, r11.xyzw, l(1.0, 0, 1.0, 1.0) +movc r11.xzw, cb13[14].zzzz, r11.xyzw, l(1.0, 0, 1.0, 1.0) mul r1.xyz, r1.xyzx, r11.xzwx mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx add r17.xyz, r8.xzyx, -r17.xyzx diff --git a/src/games/endfield/deferred-lighting/0x620A40FD.cso b/src/games/endfield/deferred-lighting/0x620A40FD.cso index 33748756a6e198c73c3f4183c59c41e8968aad5a..389529310e462fc4b62391041ae560afc37a2b29 100644 GIT binary patch delta 206 zcmbPpn{mb+Mk$vFC+Cz0Q?*}TNOHD2durb2fE80185kHO@+L|x;*7{;UJ5OXtX&417{OdJr|lBSpVi&zV&>ZFiZG0i^_^Kb1v(G*vYrqR3Y6L0A_(BJpcdz delta 98 zcmbPnhjGqrMk$vFC+8C#`tomfZnXcB;53!G}s#{FmNitP(*RZDZ~&yH397~lNHamqsb@HQ#>W<7(1HCxF%D#dK#r1P5NL1& z(jc}G1Hv&NL%@!P(m-`!zBy10$P5tRLX*>iiW@U9utU^Lwvy`Og!!9q^F^u8Oq|QQ UAi==5`K;`9Lq@61Oa05G0UNnA#Q*>R delta 104 zcmbPmgK^F^Mk$vFCufJNTNwow=(U9VmRCP{KXVZy0|SFh_C%>goH1Dp3;{si^od7< z8HG1XGTvuol-T@}$y|K0iu4Rls|E!IUZAwl=A+V|nK-}o!?*|Kt{XC1ZJrrWE)4({ C)gZS3 diff --git a/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm index ff6a285e5..fb31dffeb 100644 --- a/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm @@ -24,7 +24,7 @@ dcl_constantbuffer CB0[235], immediateIndexed dcl_constantbuffer CB1[259], dynamicIndexed dcl_constantbuffer CB2[5], immediateIndexed dcl_constantbuffer CB3[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -56,7 +56,7 @@ dcl_resource_texture3d (float,float,float,float) t23 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw -dcl_temps 24 +dcl_temps 25 ftou r0.xy, v0.xyxx mov r0.z, l(0) ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t20.xyzw @@ -239,13 +239,20 @@ if_nz r0.z mad r11.xyw, r8.xyxz, r11.xyxw, -r8.xyxz mad r8.xyz, r0.zzzz, r11.xywx, r8.xyzx sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t9.yzxw, s1, l(0.000000) + ge r24.x, cb13[12].z, l(1.000000) + mad_sat r24.y, r0.z, l(2.000000), l(-1.000000) + mad_sat r24.z, r0.z, l(4.000000), l(-3.000000) + mad_sat r24.w, r2.w, l(0.050000), l(-1.500000) + add r24.z, r24.z, -r24.y + mad r24.y, r24.w, r24.z, r24.y + movc r0.z, r24.x, r24.y, r0.z min r0.z, r0.z, l(1.000000) mul r8.xyz, r0.zzzz, r8.xyzx else mov r8.xyz, l(0,0,0,0) endif ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy -movc r4.z, cb13[18].w, l(0xFFFFFFFF), r4.z +movc r4.z, cb13[14].z, l(0xFFFFFFFF), r4.z if_nz r4.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x min r0.z, r1.y, r0.z @@ -271,7 +278,7 @@ else mov r11.xyw, r1.yyyy mov r14.xyz, r1.yyyy endif -movc r11.xyw, cb13[18].wwww, r11.xyzw, l(1.0, 1.0, 0, 1.0) +movc r11.xyw, cb13[14].zzzz, r11.xyzw, l(1.0, 1.0, 0, 1.0) mul r8.xyz, r8.xyzx, r11.xywx mad r15.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx round_z r0.z, cb0[212].x @@ -684,8 +691,8 @@ if_nz r7.w endif mul r3.xyz, r16.xyzx, cb0[112].zzzz mul r3.xyz, r3.xyzx, cb0[111].yyyy -// Cubemap ambient link modulation (cb13[13].w) -if_nz cb13[13].w +// Cubemap ambient link modulation (cb13[13].y) +if_nz cb13[13].y max r23.w, r23.w, l(0.000000) min r23.w, r23.w, l(1.000000) mad r23.w, r23.w, l(0.750000), l(0.250000) diff --git a/src/games/endfield/deferred-lighting/0x8BA3C806.cso b/src/games/endfield/deferred-lighting/0x8BA3C806.cso index 7c6475c10edc524756339ad8ca56362fc90b8d46..5b36ed62e674d3e4fcf2242e72274441d13761a4 100644 GIT binary patch delta 363 zcmdn;lWE0oCMlN)C+C$Xl>%RH(MnR{Fo@dyW5!=b1_p)|dnZaQ;(D=%fgu3Mv(n#q zOpB3`fAdF1ZYD;x&3~EA#p`7m7&wF&1Q=9-3bYy&7N; zkOl#W9D@T?&3=#?C#-53plTcrfYdZW)mQ;(CWtxp3}?^y*g_0CupcPKfou@SQBn*7 z4URw>#5Q6;I0j@0*wIiLs1D3G2dV*?0RmiTa#~PvV+ICxh?>oI(p`a^Fpu+XzL@iw YiE~*OBpmoQpUuxVWR%)$yRcju047Q|$p8QV delta 113 zcmZ4Sn`z5WCMlN)C+9~p@!hAE`FpTG+wo|%WNk1b0|UdBJrkuCaedj%zz_iB{ngue zOpB3Gc=Ja_ZYD<6&3~EA#Tkt!Z!8qw>>yJU$Z6G}z`zSsC$#x!?q?>>Z~ZXt!Ge54 LMyt(+i^`<|OiU(s diff --git a/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm index e3fb3f163..57b560712 100644 --- a/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm @@ -37,7 +37,7 @@ dcl_constantbuffer CB3[2054], dynamicIndexed dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[160], dynamicIndexed dcl_constantbuffer CB6[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -72,7 +72,7 @@ dcl_resource_texture3d (float,float,float,float) t25 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw -dcl_temps 37 +dcl_temps 38 ftou r0.xy, v0.xyxx mov r0.z, l(0) ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t22.xyzw @@ -255,6 +255,13 @@ if_nz r0.z mad r14.xzw, r15.xxyz, r16.xxyz, -r15.xxyz mad r14.xzw, r0.zzzz, r14.xxzw, r15.xxyz sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t10.yzxw, s1, l(0.000000) + ge r37.x, cb13[12].z, l(1.000000) + mad_sat r37.y, r0.z, l(2.000000), l(-1.000000) + mad_sat r37.z, r0.z, l(4.000000), l(-3.000000) + mad_sat r37.w, r2.w, l(0.050000), l(-1.500000) + add r37.z, r37.z, -r37.y + mad r37.y, r37.w, r37.z, r37.y + movc r0.z, r37.x, r37.y, r0.z min r0.z, r0.z, l(1.000000) mul r14.xzw, r0.zzzz, r14.xxzw else @@ -911,7 +918,7 @@ loop endloop mad r8.xyz, r21.xyzx, r8.wwww, r14.xzwx ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy -movc r4.z, cb13[18].w, l(0xFFFFFFFF), r4.z +movc r4.z, cb13[14].z, l(0xFFFFFFFF), r4.z if_nz r4.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x min r0.z, r1.y, r0.z @@ -937,7 +944,7 @@ else mov r11.xyz, r1.yyyy mov r14.xyz, r1.yyyy endif -movc r11.xyz, cb13[18].wwww, r11.xyzx, l(1.0, 1.0, 1.0, 0) +movc r11.xyz, cb13[14].zzzz, r11.xyzx, l(1.0, 1.0, 1.0, 0) mul r8.xyz, r8.xyzx, r11.xyzx mad r16.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx round_z r0.z, cb0[212].x @@ -1347,8 +1354,8 @@ if_nz r7.w endif mul r3.xyz, r16.xyzx, cb0[112].zzzz mul r3.xyz, r3.xyzx, cb0[111].yyyy -// Cubemap ambient link modulation (cb13[13].w) -if_nz cb13[13].w +// Cubemap ambient link modulation (cb13[13].y) +if_nz cb13[13].y max r36.w, r36.w, l(0.000000) min r36.w, r36.w, l(1.000000) mad r36.w, r36.w, l(0.750000), l(0.250000) diff --git a/src/games/endfield/deferred-lighting/0x99725481.cso b/src/games/endfield/deferred-lighting/0x99725481.cso index b8624e683a0e600e0b10143d1675940ef2c8c778..388c7b2b55ee6224ff4397c9755ff8943d739020 100644 GIT binary patch delta 324 zcmexyi}}qRW+|5lC+Fi*8`p?EIojUgF!lb-p$;=dvz{5BWB~ PT-0sID7Crt3bP~tx9K-6 delta 110 zcmaEJhxx}XW+|5lCufr%2iad9t~@1maf^5{qgNRt0|P_F+lf+(ICs2ZU_?<)?S=i4GIjr3=9l> an{&OjnK_qr!MF?k)QuRWHlJ)@mIMI6`xaXO delta 75 zcmX@Jnd!`CCJ~niC+BY;`WPR6J~?TwIh%;;GUK|9A|i~8!kaZ2t-Uy{8Wb3K85kIZ aHs^Y4Gjo3HhjADBsT(m`Z9dt+EC~Sgc^6Co diff --git a/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm index 73e7610af..3c551d8e5 100644 --- a/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm @@ -25,7 +25,7 @@ dcl_constantbuffer CB1[259], dynamicIndexed dcl_constantbuffer CB2[5], immediateIndexed dcl_constantbuffer CB3[5], immediateIndexed dcl_constantbuffer CB4[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -649,7 +649,7 @@ else mov r8.xyz, l(0,0,0,0) endif ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx -movc r3.y, cb13[18].w, l(0xFFFFFFFF), r3.y +movc r3.y, cb13[14].z, l(0xFFFFFFFF), r3.y if_nz r3.y sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x min r0.z, r1.y, r0.z @@ -677,7 +677,7 @@ else mov r13.xyw, r1.yyyy mov r14.xyz, r1.yyyy endif -movc r13.xyw, cb13[18].wwww, r13.xyzw, l(1.0, 1.0, 0, 1.0) +movc r13.xyw, cb13[14].zzzz, r13.xyzw, l(1.0, 1.0, 0, 1.0) mul r8.xyz, r8.xyzx, r13.xywx mad r15.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx round_z r0.z, cb0[212].x @@ -1094,8 +1094,8 @@ if_nz r4.w endif mul r2.xyz, r15.xyzx, cb0[112].zzzz mul r2.xyz, r2.xyzx, cb0[111].yyyy -// Cubemap ambient link modulation (cb13[13].w) -if_nz cb13[13].w +// Cubemap ambient link modulation (cb13[13].y) +if_nz cb13[13].y max r23.w, r23.w, l(0.000000) min r23.w, r23.w, l(1.000000) mad r23.w, r23.w, l(0.750000), l(0.250000) diff --git a/src/games/endfield/deferred-lighting/0xB094C87E.cso b/src/games/endfield/deferred-lighting/0xB094C87E.cso index 7fc52dcd397e92a86c4e62b4ea770095d6284646..d6c7722b87a7faa4395220e8017af24a20923c11 100644 GIT binary patch delta 227 zcmaDef%(NmW=WR_C+AEC1FK7gokH&alUh%1-Pg>>z`*cgqU2&OjS~zE0YDCy(Z*v| zjEwx78JX0X7}YjwvYZyJmt|n!5MmHuPz5T`YEWR{1=2h~%;*3l7#i#?7#P@{RNMTPIh(kRaM8)nq|KG#Nz`!6eQF1Y7#9ju503au9<56u! vM&ZpL8Gkb}s&0PE9L~M@0KZEzr&WUj120g4&}QCZac0hM{V=X>S-J-RRdF4L diff --git a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm index 4a9ce18fa..3f3c642e0 100644 --- a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm @@ -37,7 +37,7 @@ dcl_constantbuffer CB3[2054], dynamicIndexed dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[160], dynamicIndexed dcl_constantbuffer CB6[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -71,7 +71,7 @@ dcl_resource_texture2d (float,float,float,float) t24 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw -dcl_temps 37 +dcl_temps 38 ftou r0.xy, v0.xyxx mov r0.z, l(0) ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw @@ -162,6 +162,10 @@ ld_indexable(texture2d)(float,float,float,float) r12.z, r0.xyzz, t7.zwxy lt r0.z, l(0.001000), r12.z if_nz r0.z sample_l_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t10.yzxw, s1, l(0.000000) + ge r37.x, cb13[12].z, l(1.000000) + mul r37.y, r0.z, r0.z + mul r37.y, r37.y, r37.y + movc r0.z, r37.x, r37.y, r0.z dp3 r10.w, -r10.xyzx, r5.xyzx add r10.w, r10.w, r10.w mad r13.xyz, r5.xyzx, -r10.wwww, -r10.xyzx @@ -966,7 +970,7 @@ loop endloop mad r1.xyz, r21.xyzx, r13.wwww, r13.xyzx ne r8.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx -movc r8.x, cb13[18].w, l(0xFFFFFFFF), r8.x +movc r8.x, cb13[14].z, l(0xFFFFFFFF), r8.x if_nz r8.x sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x mad r0.z, r0.z, l(0.750000), l(0.250000) @@ -993,7 +997,7 @@ else mov r8.xzw, r3.wwww mov r13.xyz, r3.wwww endif -movc r8.xzw, cb13[18].wwww, r8.xzww, l(1.0, 0, 1.0, 1.0) +movc r8.xzw, cb13[14].zzzz, r8.xzww, l(1.0, 0, 1.0, 1.0) mul r1.xyz, r1.xyzx, r8.xzwx mad r16.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx add r16.xyz, r7.xzyx, -r16.xyzx diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.cso b/src/games/endfield/deferred-lighting/0xD5B102A4.cso index 81a2b599a51d02cdef0ba45e72321cf30f8652f3..7ab8d3b35246ed9b5b1a3fd80b09fe3ea4c91ca3 100644 GIT binary patch delta 337 zcmX@Jp6S3wCMlN)Cufc8)*5js*LCIo*rvvdTv1?TU|={fW1`d|E`}Kl3;{qMgWAMn zNsRoPH5sLu7$r8lGMBq+$}%u;2r&pShy$gy8Wb3Kfiw>gGdchXh6Z~h1qMzfko@GG z{xbDIjuT8VkOl#$LI()#Z~&yC397~lNV7rJoIT@X3sG}mKTwDR*&LANQVaqOjzAj3 zHe!HU3S@)K06Pvy8$uO=1>l bSZ{4+&ShN?@A7S)=%;SPD7ATKgRnRNMf)>4 delta 117 zcmX@Gk?G8OCMlN)CuhOx&GFGM{ZGY6yfq~)7^odf7xOk>BFa!X3hgByY zOJWq>tjQ?N#3;VmmATw~@&@l2oK_7A47@;jq0NCl+RTFA`k`E)kQ<)>1NY>EETWqi P`EwaDT5Vq2C@c;DqthXB diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm index 836daa6ec..bd9a10f39 100644 --- a/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm @@ -25,7 +25,7 @@ dcl_constantbuffer CB1[259], dynamicIndexed dcl_constantbuffer CB2[5], immediateIndexed dcl_constantbuffer CB3[5], immediateIndexed dcl_constantbuffer CB4[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -61,7 +61,7 @@ dcl_resource_texture2d (float,float,float,float) t26 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw -dcl_temps 23 +dcl_temps 24 ftou r0.xy, v0.xyxx mov r0.z, l(0) ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t24.xyzw @@ -642,13 +642,20 @@ if_nz r0.z mad r11.xyw, r6.xyxz, r11.xyxw, -r6.xyxz mad r6.xyz, r0.zzzz, r11.xywx, r6.xyzx sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.zwzz, t13.yzxw, s1, l(0.000000) + ge r23.x, cb13[12].z, l(1.000000) + mad_sat r23.y, r0.z, l(2.000000), l(-1.000000) + mad_sat r23.z, r0.z, l(4.000000), l(-3.000000) + mad_sat r23.w, r6.w, l(0.050000), l(-1.500000) + add r23.z, r23.z, -r23.y + mad r23.y, r23.w, r23.z, r23.y + movc r0.z, r23.x, r23.y, r0.z min r0.z, r0.z, l(1.000000) mul r6.xyz, r0.zzzz, r6.xyzx else mov r6.xyz, l(0,0,0,0) endif ne r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxyx -movc r3.y, cb13[18].w, l(0xFFFFFFFF), r3.y +movc r3.y, cb13[14].z, l(0xFFFFFFFF), r3.y if_nz r3.y sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x min r0.z, r1.y, r0.z @@ -676,7 +683,7 @@ else mov r11.xyw, r1.yyyy mov r12.xyz, r1.yyyy endif -movc r11.xyw, cb13[18].wwww, r11.xyzw, l(1.0, 1.0, 0, 1.0) +movc r11.xyw, cb13[14].zzzz, r11.xyzw, l(1.0, 1.0, 0, 1.0) mul r6.xyz, r6.xyzx, r11.xywx mad r14.xyz, r2.xywx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx round_z r0.z, cb0[212].x @@ -1093,8 +1100,8 @@ if_nz r4.w endif mul r2.xyz, r14.xyzx, cb0[112].zzzz mul r2.xyz, r2.xyzx, cb0[111].yyyy -// Cubemap ambient link modulation (cb13[13].w) -if_nz cb13[13].w +// Cubemap ambient link modulation (cb13[13].y) +if_nz cb13[13].y max r22.w, r22.w, l(0.000000) min r22.w, r22.w, l(1.000000) mad r22.w, r22.w, l(0.750000), l(0.250000) diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.cso b/src/games/endfield/deferred-lighting/0xD88CD7C9.cso index 8222887ace8591107411c08f9708d80c718169ff..28637249513bdaf92f0a27f701bc5d1426868140 100644 GIT binary patch delta 360 zcmdmTj&a2WMk$vFCufIJJ}$NruGHOcJ&hioy>^U|fq_9IW1`d|&Wv;hh5#V%*2JU1 zjQpD=8P78^N^E|~WG-GW%fP@P#2~;R4wTkvP+;H%(mX)S=l~=b8tjb}7&w(+@<18{ zAaV>2P&NBOYMijDX@IJ6H~>=91XW`Nq?sV*)H9qt<6{dk=)iuU7zeUJAV*0t2sAhX zX%O3p0pS>sAz(*CX`nhV-yEn0WCjRup~-1M#f=#l*db~rYf1HS!u-v*`JmKiCeCGD UkYM23yjS+RA*0mhss8iD0l^hBvj6}9 delta 104 zcmZ2+fpN<@Mk$vFC+AKl=9|CYX~x~EDdD_2Gc=Nsfq}s!eWKJN&XP0+h5#UM?!=?P zjKZ5G8P78^if?|&WG+5gM0y6NRf7TpFHl-&^H%B4Oq}2PVcd;!*9{r1Hg^Wh7Y6`9 CC?Nd+ diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm index 6f9e24e9a..e488ef8d7 100644 --- a/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm @@ -24,7 +24,7 @@ dcl_constantbuffer CB0[235], immediateIndexed dcl_constantbuffer CB1[259], dynamicIndexed dcl_constantbuffer CB2[5], immediateIndexed dcl_constantbuffer CB3[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -55,7 +55,7 @@ dcl_resource_texture2d (float,float,float,float) t22 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw -dcl_temps 23 +dcl_temps 24 ftou r0.xy, v0.xyxx mov r0.z, l(0) ld_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyzz, t20.xyzw @@ -238,13 +238,20 @@ if_nz r0.z mad r10.xyw, r6.xyxz, r10.xyxw, -r6.xyxz mad r6.xyz, r0.zzzz, r10.xywx, r6.xyzx sample_l_indexable(texture2d)(float,float,float,float) r0.z, r4.xyxx, t9.yzxw, s1, l(0.000000) + ge r23.x, cb13[12].z, l(1.000000) + mad_sat r23.y, r0.z, l(2.000000), l(-1.000000) + mad_sat r23.z, r0.z, l(4.000000), l(-3.000000) + mad_sat r23.w, r2.w, l(0.050000), l(-1.500000) + add r23.z, r23.z, -r23.y + mad r23.y, r23.w, r23.z, r23.y + movc r0.z, r23.x, r23.y, r0.z min r0.z, r0.z, l(1.000000) mul r6.xyz, r0.zzzz, r6.xyzx else mov r6.xyz, l(0,0,0,0) endif ne r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xxxy -movc r4.z, cb13[18].w, l(0xFFFFFFFF), r4.z +movc r4.z, cb13[14].z, l(0xFFFFFFFF), r4.z if_nz r4.z sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x min r0.z, r1.y, r0.z @@ -270,7 +277,7 @@ else mov r10.xyw, r1.yyyy mov r13.xyz, r1.yyyy endif -movc r10.xyw, cb13[18].wwww, r10.xyzw, l(1.0, 1.0, 0, 1.0) +movc r10.xyw, cb13[14].zzzz, r10.xyzw, l(1.0, 1.0, 0, 1.0) mul r6.xyz, r6.xyzx, r10.xywx mad r14.xyz, r3.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r5.xyzx round_z r0.z, cb0[212].x @@ -683,8 +690,8 @@ if_nz r7.w endif mul r3.xyz, r15.xyzx, cb0[112].zzzz mul r3.xyz, r3.xyzx, cb0[111].yyyy -// Cubemap ambient link modulation (cb13[13].w) -if_nz cb13[13].w +// Cubemap ambient link modulation (cb13[13].y) +if_nz cb13[13].y max r22.w, r22.w, l(0.000000) min r22.w, r22.w, l(1.000000) mad r22.w, r22.w, l(0.750000), l(0.250000) diff --git a/src/games/endfield/deferred-lighting/0xE322C21D.cso b/src/games/endfield/deferred-lighting/0xE322C21D.cso index 5ff4eb7e87d67db5d2ac17c583661a75c285ecf5..a93b11a79e9385bac2ecf3a221d271079d2bc273 100644 GIT binary patch delta 190 zcmbQz!aSjsS<)rK$$7T8+rF?m1BYWbZOufDx&#;*7#Jo@lw8bt;UEJ;0FYC%@u)T< zBmd@)jND9&>YM*EhjWX{GB9umF$gfI0p+zC6c~7cG|%LNyM!6lCU4v&Y;D27z^(+9 wmqMe>85lU7fMOuPg(j!PAh6k=KQ@^YW+>n0twrL@oXff(cJOV!T59hD0KHoza{vGU delta 98 zcmbQx$~>ioS<)rK$=T!TEb)IF%qO^;bv6hue|3hDfq_9}qU2)Ekb?{i0YFaZ#-rMd vjKZ5gGIBF9s%`$u9L~M@0)Ip@r&WUj120g4&}PG8ac0hM{V;A|nY|AH^dcNW diff --git a/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm index 3f9b329b3..cc465cefc 100644 --- a/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm +++ b/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm @@ -37,7 +37,7 @@ dcl_constantbuffer CB3[2054], dynamicIndexed dcl_constantbuffer CB4[401], dynamicIndexed dcl_constantbuffer CB5[160], dynamicIndexed dcl_constantbuffer CB6[4], immediateIndexed -dcl_constantbuffer CB13[19], immediateIndexed +dcl_constantbuffer CB13[15], immediateIndexed dcl_sampler s0, mode_default dcl_sampler s1, mode_default dcl_sampler s2, mode_default @@ -72,7 +72,7 @@ dcl_resource_texture3d (float,float,float,float) t25 dcl_input_ps_siv linear noperspective v0.xy, position dcl_input_ps linear v1.xy dcl_output o0.xyzw -dcl_temps 38 +dcl_temps 39 ftou r0.xy, v0.xyxx mov r0.z, l(0) ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyzz, t22.xyzw @@ -163,6 +163,10 @@ ld_indexable(texture2d)(float,float,float,float) r13.z, r0.xyzz, t7.zwxy lt r0.z, l(0.001000), r13.z if_nz r0.z sample_l_indexable(texture2d)(float,float,float,float) r0.z, r6.xyxx, t10.yzxw, s1, l(0.000000) + ge r38.x, cb13[12].z, l(1.000000) + mul r38.y, r0.z, r0.z + mul r38.y, r38.y, r38.y + movc r0.z, r38.x, r38.y, r0.z dp3 r10.w, -r11.xyzx, r5.xyzx add r10.w, r10.w, r10.w mad r14.xyz, r5.xyzx, -r10.wwww, -r11.xyzx @@ -968,7 +972,7 @@ loop endloop mad r1.xyz, r22.xyzx, r13.wwww, r14.xyzx ne r10.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[112].xyxx -movc r10.x, cb13[18].w, l(0xFFFFFFFF), r10.x +movc r10.x, cb13[14].z, l(0xFFFFFFFF), r10.x if_nz r10.x sample_b_indexable(texture2d)(float,float,float,float) r0.z, v1.xyxx, t4.yzxw, s0, cb0[108].x mad r0.z, r0.z, l(0.750000), l(0.250000) @@ -995,7 +999,7 @@ else mov r10.xzw, r3.wwww mov r14.xyz, r3.wwww endif -movc r10.xzw, cb13[18].wwww, r10.xyzw, l(1.0, 0, 1.0, 1.0) +movc r10.xzw, cb13[14].zzzz, r10.xyzw, l(1.0, 0, 1.0, 1.0) mul r1.xyz, r1.xyzx, r10.xzwx mad r17.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx add r17.xyz, r7.xzyx, -r17.xyzx diff --git a/src/games/endfield/deferred-lighting/0xF901F0EC.cso b/src/games/endfield/deferred-lighting/0xF901F0EC.cso index 5d15c952eb31fad36936f62636d516c84ea98428..9837ec4530e4fa114bdc7cad3c5dcc5c64456ff1 100644 GIT binary patch delta 208 zcmezKobksCMk$vFCuc>*-BUy_??`XWotS&M)pG*a5e$OKo)VK$ytHKH}gua=i`JK%eVQcx;V4ovMz`%d_Y}pOacrXlLd>#Cr>D1 K+03E+#RC9eVkwFM delta 98 zcmezIg7MFDMk$vFCuhGs3nygH*miaQDy|Fp2~UnOGB7awDV`{`h|{K+fgu3MJ3sMg wGNbTjO~&7hjFOvGnO}=;?vY%>$7$7|z`zTX7uxKoA= 1.0. Uses new temp r36 (dcl_temps bumped 36→37). + +Grass/foliage deferred (0xD3FA93FC.ps_5_0.asm:165-169) — After T10 sample, applies pow(x, 4) power curve when SHADOW_HARDENING >= 1.0. Uses new temp r37 (dcl_temps bumped 37→38). + +Both ASM patches use movc for branchless conditional selection — if the toggle is off, the original shadow value passes through unchanged. The crude 4x gives environment the strong contrast you liked, while pow(4) preserves grass/foliage shadow boundaries (0→0, 1→1 fixed points). + + + +// BRDF // + +The BRDF is Unity's standard Cook-Torrance with GGX distribution + Smith height-correlated visibility + Schlick Fresnel + multiscattering energy compensation term + +1. Material Setup - metallic workflow: F0 = albedo⋅m+0.04⋅(1−m) + + +r1.z = -r1.x * 0.0399999991 + 0.0399999991; // dielectricF0 = 0.04 * (1 - metallic) +r9.xyz = r9.xyz * r1.xxx + r1.zzz; // F0 = albedo * metallic + dielectricF0 + + +2. GGX NDF (D term) + +r2.z = r0.z * r1.x + -r0.z; // NdotH² * (α² - 1) = NdotH * α² - NdotH +r0.z = r2.z * r0.z + 1; // denom = NdotH² * (α² - 1) + 1 +// ... +r0.z = r0.z * r0.z; // denom² +r0.z = r1.x / r0.z; // D = α² / denom² + +3. Schlick Fresnel (F term) + +r2.z = saturate(dot(r8.xyz, r15.xyz)); // VdotH +r2.z = 1 + -r2.z; // (1 - VdotH) +r4.w = r2.z * r2.z; // (1 - VdotH)² +r4.w = r4.w * r4.w; // (1 - VdotH)⁴ +r6.w = r4.w * r2.z; // (1 - VdotH)⁵ +r2.z = -r4.w * r2.z + 1; // 1 - (1-VdotH)⁵ +r15.xyz = r9.xyz * r2.zzz + r6.www; // F0*(1-(1-VdotH)⁵) + (1-VdotH)⁵ + +4. Smith Height-Correlated Visibility (V term) + +r16.xy = -r10.zy * r1.xx + r10.zy; // NdotV/L * (1 - α²) +r16.xy = r16.xy * r10.zy + r1.xx; // NdotV/L² * (1-α²) + α² +r16.xy = sqrt(r16.xy); // √(...) +r16.xy = r16.xy * r10.yz; // NdotL/V * √(...) +r1.x = r16.x + r16.y; // sum of both terms +r1.x = 9.99999975e-05 + r1.x; // ε +r1.x = 0.5 / r1.x; // V = 0.5 / sum +r0.z = r1.x * r0.z; // D * V +r15.xyz = r15.xyz * r0.zzz; // specular = D * V * F + +5. Multiscattering Energy Compensation + +// Multiscattering: from lines ~283-300 +r14.xyz = float3(1,1,1) + -r9.xyz; +r14.xyz = r14.xyz * float3(0.0476190485,...) + r9.xyz; // 1/21 blend +// ... sample BRDF LUT from t9 ... +r16.xyz = r14.xyz * r14.xyz; +r16.xyz = r16.xyz * r0.zzz; // Fms squared * LUT +r14.xyz = -r14.xyz * r8.www + float3(1,1,1); +r14.xyz = r16.xyz / r14.xyz; // Ems / (1 - Fms*Eavg) +r14.xyz = r15.xyz + r14.xyz; // specular + multiscatter + +6. BRDF LUT Texture + +r16.xyzw = r10.zwyw * float4(0.96875,...) + float4(0.015625,...); // UV with half-texel offset +r0.z = t9.SampleLevel(s1_s, r16.xy, 0).x; // sample(NdotL_or_V, roughness) +r1.x = t9.SampleLevel(s1_s, r16.zw, 0).x; // sample(NdotV, roughness) + +​D: GGX / Trowbridge-Reitz +F: Schlick +G/V: Smith height-correlated (exact sqrt form, not the fast approximation) +Energy conservation: Kulla-Conty multiscattering via rational polynomial + 1D BRDF LUT (t9) +IBL: Cubemap probes with DDGI-style cascaded 3D irradiance probes (t15–t20) +Dielectric F0: 0.04 (standard) + diff --git a/src/games/endfield/glass/0x183ADBF7.cso b/src/games/endfield/glass/0x183ADBF7.cso index ea7467bfce3e27c0f87d6111cbf7e1242f60f37e..b0d1d989b530dcdde5a1bb67682cc0419bcedadd 100644 GIT binary patch delta 114 zcmbQUoq5i7W)YVNCugIWhtn;#ZtK+z;%l_9_-DRRM8TO;t3iQ*mw|zSceAZCvo?Y| j+16Qob3tBD5Q>oaW|@N@L=ZxoMX#~5AaPZ1l`{eWP5>P* delta 114 zcmbQUoq5i7W)YVNC+9<%j}J7M9#Wt2ZAso0fy&hzMHHMlxf&E0co`TN_%_=*GixKb jlWm>VHy7mf1fd9tZtp)`KUIqpR-p!4!+1d#1 jjJFe8LEFTBCcgv8x?tDF%4N$DV+ delta 114 zcmZ3pgL%ykW)YVNCuhe~8L5_=L=WvKHImU#*yguUB*m4Jt3iQ*mw|zSZ*!w-wl;!0 jxzSa4Ge;pu3W|{UW`nC4%m|^)3vX~UA#u0fDrW=$KFb|) diff --git a/src/games/endfield/glass/0x424F9536.ps_5_0.asm b/src/games/endfield/glass/0x424F9536.ps_5_0.asm index 7a8c59dfd..67e0d77e7 100644 --- a/src/games/endfield/glass/0x424F9536.ps_5_0.asm +++ b/src/games/endfield/glass/0x424F9536.ps_5_0.asm @@ -593,7 +593,7 @@ if_nz r6.w endif mul r1.xyz, r15.xyzx, cb0[112].zzzz // === Glass Fix: Reduce reflection probe intensity === -lt r36.x, l(0.500000), cb13[14].x +lt r36.x, l(0.500000), cb13[13].z if_nz r36.x mul r1.xyz, r1.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) endif @@ -956,7 +956,7 @@ if_nz r4.w add r12.xyw, r12.xyxw, r16.xyxz mul r12.xyw, r12.xyxw, cb5[4].xxxx // === Glass Fix: Reduce sun specular intensity === - lt r36.x, l(0.500000), cb13[14].x + lt r36.x, l(0.500000), cb13[13].z if_nz r36.x mul r12.xyw, r12.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000) endif @@ -1760,7 +1760,7 @@ else mul r4.xyz, r0.wwww, cb0[161].xyzx endif // === Glass Fix: Reduce clustered lights and overall brightness === -lt r36.x, l(0.500000), cb13[14].x +lt r36.x, l(0.500000), cb13[13].z if_nz r36.x mul r20.xyz, r20.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) mul r1.xyz, r1.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) @@ -1789,7 +1789,7 @@ mul r2.xyz, r2.xyzx, r3.xywx mad r2.xyz, r2.xyzx, r3.zzzz, r4.xyzx mul r2.xyz, r1.wwww, r2.xyzx // === Glass Transparency Fix === -lt r36.x, l(0.500000), cb13[14].x +lt r36.x, l(0.500000), cb13[13].z if_nz r36.x // Boost transmittance: lerp(r5, 1, 0.5) add r36.xyz, -r5.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) @@ -1812,7 +1812,7 @@ mul_sat r0.x, r0.x, l(10.000000) lt r0.x, l(0.500000), r0.x and o1.z, r0.x, l(0x3f800000) // === Glass Highlight Compression === -lt r36.x, l(0.500000), cb13[14].x +lt r36.x, l(0.500000), cb13[13].z if_nz r36.x dp3 r36.y, r2.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) lt r36.z, l(0.500000), r36.y diff --git a/src/games/endfield/glass/0x69B6459F.cso b/src/games/endfield/glass/0x69B6459F.cso index 65842f23d7c88836d93e43bf0b6c62b941ab0de2..dbf6f23e62b5f2c927d70f13b9cbd1808677e933 100644 GIT binary patch delta 106 zcmdn9nR(An|3PjerUP1Be(LGtuQkrqcztp)`KUIqpR-pvag+clB6 bhS}*sNZf^c-Nlf&A1`~eAaPx9lrsVVtHB)2 delta 106 zcmdn9nR(A4lH$mz)u6z@%fP_EySdSkSsTHf n+~}x2SwdZ4^O2mIAQWNo%?bNIh#-VEM_vhMLE`SbQO*beC0QV% delta 118 zcmdn6g?YmkW)YVNC+By+pVxgamvI%Yy4tM$xN_k}krYQxt_B4LUIqpRzRit}%-RU< n&CP_woqD&N5dg5xAA0}* delta 110 zcmeC#$K11zS;Qs6$@zIi>2}+c{C}E~w|JgbPYc;7QsTnN)u6z@%fP_Ew|SyVwKfu0 hwBU9+f;)Mli}+@N8yU<9q0NoAxtWl-Q}32D0svZc9wYz& diff --git a/src/games/endfield/glass/0x843686F6.ps_5_0.asm b/src/games/endfield/glass/0x843686F6.ps_5_0.asm index ae793ec72..2ac599748 100644 --- a/src/games/endfield/glass/0x843686F6.ps_5_0.asm +++ b/src/games/endfield/glass/0x843686F6.ps_5_0.asm @@ -582,7 +582,7 @@ if_nz r5.w endif mul r1.xyz, r16.xyzx, cb0[112].zzzz // === Glass Fix: Reduce reflection probe intensity === -lt r35.x, l(0.500000), cb13[14].x +lt r35.x, l(0.500000), cb13[13].z if_nz r35.x mul r1.xyz, r1.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) endif @@ -947,7 +947,7 @@ if_nz r2.w add r4.w, r4.w, r5.w mul r4.w, r4.w, cb5[4].x // === Glass Fix: Reduce sun specular intensity === - lt r35.x, l(0.500000), cb13[14].x + lt r35.x, l(0.500000), cb13[13].z if_nz r35.x mul r4.w, r4.w, l(0.500000) endif @@ -1787,7 +1787,7 @@ else mul r3.yzw, r0.zzzz, cb0[161].xxyz endif // === Glass Fix: Reduce clustered lights and overall brightness === -lt r35.x, l(0.500000), cb13[14].x +lt r35.x, l(0.500000), cb13[13].z if_nz r35.x mul r19.xyz, r19.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) mul r1.xyz, r1.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) @@ -1816,7 +1816,7 @@ mul r2.xyz, r2.xyzx, r5.xyzx mad r2.xyz, r2.xyzx, r3.xxxx, r3.yzwy mul r2.xyz, r0.yyyy, r2.xyzx // === Glass Transparency Fix === -lt r35.x, l(0.500000), cb13[14].x +lt r35.x, l(0.500000), cb13[13].z if_nz r35.x // Boost transmittance: lerp(r4, 1, 0.5) add r35.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) @@ -1839,7 +1839,7 @@ mul_sat r0.x, r0.x, l(10.000000) lt r0.x, l(0.500000), r0.x and o1.z, r0.x, l(0x3f800000) // === Glass Highlight Compression === -lt r35.x, l(0.500000), cb13[14].x +lt r35.x, l(0.500000), cb13[13].z if_nz r35.x dp3 r35.y, r1.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) lt r35.z, l(0.500000), r35.y diff --git a/src/games/endfield/glass/0x859412D4.cso b/src/games/endfield/glass/0x859412D4.cso index d8f8fe5592f94fd64c2be90b9a7e3e0fe2ad816b..7a1aab74a1fabc5fe3bc0936dfd2bd05dc74f2c0 100644 GIT binary patch delta 113 zcmaE|i}}eeW)YVNC+9bh)Oshm6rIaF7CUn((`=rNA_v?!wHg!{co`TNcqb=b6Q3M$ jooAD~hc-fVb6^pB3KBQ*T0S!p_vTG*CM53L+vSV^hI}Eb delta 113 zcmaE|i}}eeW)YVNC+DNHf{e=@-neeEIQ`n_z+35!A_v?!xf&E0co`TN_$DV_6Q3M$ jooAD~hc-fVb6^pB3KBQ*T0S!p_vTG*CM53L+vSV^gC!ws diff --git a/src/games/endfield/glass/0x859412D4.ps_5_0.asm b/src/games/endfield/glass/0x859412D4.ps_5_0.asm index 5859bb753..04545a005 100644 --- a/src/games/endfield/glass/0x859412D4.ps_5_0.asm +++ b/src/games/endfield/glass/0x859412D4.ps_5_0.asm @@ -602,7 +602,7 @@ if_nz r9.w endif mul r1.xyz, r14.xyzx, cb0[112].zzzz // === Glass Fix: Reduce reflection probe intensity === -lt r35.x, l(0.500000), cb13[14].x +lt r35.x, l(0.500000), cb13[13].z if_nz r35.x mul r1.xyz, r1.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) endif @@ -965,7 +965,7 @@ if_nz r5.w add r14.xyw, r14.xyxw, r16.xyxz mul r14.xyw, r14.xyxw, cb5[4].xxxx // === Glass Fix: Reduce sun specular intensity === - lt r35.x, l(0.500000), cb13[14].x + lt r35.x, l(0.500000), cb13[13].z if_nz r35.x mul r14.xyw, r14.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000) endif @@ -1768,7 +1768,7 @@ else mul r3.xyz, r0.yyyy, cb0[161].xyzx endif // === Glass Fix: Reduce clustered lights and overall brightness === -lt r35.x, l(0.500000), cb13[14].x +lt r35.x, l(0.500000), cb13[13].z if_nz r35.x mul r19.xyz, r19.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) mul r1.xyz, r1.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) @@ -1796,7 +1796,7 @@ mul r0.yzw, r0.yyzw, r2.xxyz mad r0.yzw, r0.yyzw, r1.wwww, r3.xxyz mul r0.yzw, r0.xxxx, r0.yyzw // === Glass Transparency Fix === -lt r35.x, l(0.500000), cb13[14].x +lt r35.x, l(0.500000), cb13[13].z if_nz r35.x // Boost transmittance: lerp(r4, 1, 0.5) add r35.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) @@ -1819,7 +1819,7 @@ mul_sat r0.x, r0.x, l(10.000000) lt r0.x, l(0.500000), r0.x and o1.z, r0.x, l(0x3f800000) // === Glass Highlight Compression === -lt r35.x, l(0.500000), cb13[14].x +lt r35.x, l(0.500000), cb13[13].z if_nz r35.x dp3 r35.y, r1.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) lt r35.z, l(0.500000), r35.y diff --git a/src/games/endfield/glass/0xB317E9E1.cso b/src/games/endfield/glass/0xB317E9E1.cso index 069ffe1073adf0d7de2ab782046e28fb7bae09f4..dd604e7a66e85182d225dd0e0cf109f5f1ae7c22 100644 GIT binary patch delta 106 zcmeBJ%-peWKErP_|csiT~i7R-aoDl%KXdGYw delta 106 zcmeBJ%-pe}NL;}S<%|Fi3mp~! diff --git a/src/games/endfield/glass/0xB317E9E1.ps_5_0.asm b/src/games/endfield/glass/0xB317E9E1.ps_5_0.asm index bf3ebe07c..e05c3dd68 100644 --- a/src/games/endfield/glass/0xB317E9E1.ps_5_0.asm +++ b/src/games/endfield/glass/0xB317E9E1.ps_5_0.asm @@ -517,7 +517,7 @@ mad r0.w, cb2[1].x, r0.w, l(1.000000) mul r13.xyz, r0.wwww, r13.xyzx mul r15.xyz, r15.xyzx, cb0[112].zzzz // === Glass Fix: Reduce reflection probe intensity === -lt r30.x, l(0.500000), cb13[14].x +lt r30.x, l(0.500000), cb13[13].z if_nz r30.x mul r15.xyz, r15.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) endif @@ -866,7 +866,7 @@ if_nz r0.w add r16.xyz, r16.xyzx, r17.xyzx mul r16.xyz, r16.xyzx, cb5[4].xxxx // === Glass Fix: Reduce sun specular intensity === - lt r30.x, l(0.500000), cb13[14].x + lt r30.x, l(0.500000), cb13[13].z if_nz r30.x mul r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) endif @@ -1531,7 +1531,7 @@ loop iadd r7.z, r7.z, l(1) endloop // === Glass Fix: Reduce clustered lights and overall brightness === -lt r30.x, l(0.500000), cb13[14].x +lt r30.x, l(0.500000), cb13[13].z if_nz r30.x mul r21.xyz, r21.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) mul r13.xyz, r13.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) @@ -1691,7 +1691,7 @@ add r1.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) mul r1.xyz, r1.xyzx, r2.xywx mad r1.xyz, r1.xyzx, r2.zzzz, r3.xyzx // === Glass Transparency Fix === -lt r30.x, l(0.500000), cb13[14].x +lt r30.x, l(0.500000), cb13[13].z if_nz r30.x // Boost transmittance: lerp(r4, 1, 0.5) add r30.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) @@ -1732,7 +1732,7 @@ mul_sat r0.x, r0.x, l(10.000000) lt r0.x, l(0.500000), r0.x and o1.z, r0.x, l(0x3f800000) // === Glass Highlight Compression === -lt r30.x, l(0.500000), cb13[14].x +lt r30.x, l(0.500000), cb13[13].z if_nz r30.x // Compute luminance dp3 r30.y, r8.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) diff --git a/src/games/endfield/glass/0xB8941FB1.cso b/src/games/endfield/glass/0xB8941FB1.cso index d6a46615aa30f787215cc4667f6304ece6a46270..4f1d23e68d2294542a301fb82fa75388e7a63872 100644 GIT binary patch delta 106 zcmcbxf%(D)W)YVNCubA>RqyhvIyX9Ad9E*duc2q7$P;@`tp)`KUIqpR-pz~-?V3p3 aiJ9p^NLk6%R)YcqF9QPu?`BWic1FM>XNL<~E<%|H((;V;s delta 106 zcmZ3olzGWgW)YVNCuf^$``7qyUm-Z-sm5mp7o$TPMRaUAxf&E0co`TN_%?gmwre7B bZ>FUOA#pu-DhnZTOHZ$7MdIpSEN27&!nzz> diff --git a/src/games/endfield/glass/0xF831814B.ps_5_0.asm b/src/games/endfield/glass/0xF831814B.ps_5_0.asm index fcdc346a6..41983b207 100644 --- a/src/games/endfield/glass/0xF831814B.ps_5_0.asm +++ b/src/games/endfield/glass/0xF831814B.ps_5_0.asm @@ -531,7 +531,7 @@ mad r1.w, cb2[1].x, r1.w, l(1.000000) mul r14.xyz, r1.wwww, r14.xyzx mul r15.xyz, r15.xyzx, cb0[112].zzzz // === Glass Fix: Reduce reflection probe intensity === -lt r36.x, l(0.500000), cb13[14].x +lt r36.x, l(0.500000), cb13[13].z if_nz r36.x mul r15.xyz, r15.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) endif @@ -880,7 +880,7 @@ if_nz r1.w add r15.xyz, r15.xyzx, r16.xyzx mul r15.xyz, r15.xyzx, cb5[4].xxxx // === Glass Fix: Reduce sun specular intensity === - lt r36.x, l(0.500000), cb13[14].x + lt r36.x, l(0.500000), cb13[13].z if_nz r36.x mul r15.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) endif @@ -1545,7 +1545,7 @@ loop iadd r8.z, r8.z, l(1) endloop // === Glass Fix: Reduce clustered lights and overall brightness === -lt r36.x, l(0.500000), cb13[14].x +lt r36.x, l(0.500000), cb13[13].z if_nz r36.x mul r20.xyz, r20.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000) mul r14.xyz, r14.xyzx, l(0.650000, 0.650000, 0.650000, 0.000000) @@ -1690,7 +1690,7 @@ else mul r3.xyz, r0.zzzz, cb0[161].xyzx endif // === Glass Fix: Boost transmittance, reduce inscatter === -lt r36.x, l(0.500000), cb13[14].x +lt r36.x, l(0.500000), cb13[13].z if_nz r36.x add r36.x, -r2.w, l(1.000000) mad r2.w, r36.x, l(0.500000), r2.w @@ -1737,7 +1737,7 @@ mul_sat r0.x, r0.x, l(10.000000) lt r0.x, l(0.500000), r0.x and o1.z, r0.x, l(0x3f800000) // === Glass Highlight Compression === -lt r36.x, l(0.500000), cb13[14].x +lt r36.x, l(0.500000), cb13[13].z if_nz r36.x dp3 r36.y, r9.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) lt r36.z, l(0.500000), r36.y diff --git a/src/games/endfield/shadows/0xE9345161.ps_5_0.hlsl b/src/games/endfield/shadows/0xE9345161.ps_5_0.hlsl new file mode 100644 index 000000000..be0d706fe --- /dev/null +++ b/src/games/endfield/shadows/0xE9345161.ps_5_0.hlsl @@ -0,0 +1,26 @@ +// ---- Created with 3Dmigoto v1.4.1 on Sun Feb 15 13:39:39 2026 +Texture2D t0 : register(t0); + +SamplerState s0_s : register(s0); + + + + +// 3Dmigoto declarations +#define cmp - + + +void main( + float4 v0 : SV_Position0, + float2 v1 : TEXCOORD0, + out float oDepth : SV_Depth) +{ + float4 r0; + uint4 bitmask, uiDest; + float4 fDest; + + r0.xyzw = t0.Gather(s0_s, v1.xy).xyzw; + r0.xy = min(r0.xz, r0.yw); + oDepth = min(r0.x, r0.y); + return; +} \ No newline at end of file diff --git a/src/games/endfield/shadows/0xD91A8DD3.ps_5_0.hlsl b/src/games/endfield/shadows/character-capsule-ao_0xD91A8DD3.ps_5_0.hlsl similarity index 100% rename from src/games/endfield/shadows/0xD91A8DD3.ps_5_0.hlsl rename to src/games/endfield/shadows/character-capsule-ao_0xD91A8DD3.ps_5_0.hlsl diff --git a/src/games/endfield/shadows/0xB8580FF6.ps_5_0.hlsl b/src/games/endfield/shadows/character-shadows_0xB8580FF6.ps_5_0.hlsl similarity index 91% rename from src/games/endfield/shadows/0xB8580FF6.ps_5_0.hlsl rename to src/games/endfield/shadows/character-shadows_0xB8580FF6.ps_5_0.hlsl index 8f82563c3..a4f556847 100644 --- a/src/games/endfield/shadows/0xB8580FF6.ps_5_0.hlsl +++ b/src/games/endfield/shadows/character-shadows_0xB8580FF6.ps_5_0.hlsl @@ -1,4 +1,3 @@ -// ---- Created with 3Dmigoto v1.4.1 on Sat Jan 24 04:33:32 2026 #include "../shared.h" Texture2D t6 : register(t6); @@ -226,7 +225,7 @@ void main( r0.z = (uint)r0.z; r0.z = min(127, (uint)r0.z); r2.w = 0x0000ffff & asint(cb2[r0.z+587].x); - r6.x = f16tof32(r2.w); + r6.x = f16tof32((uint)r2.w); r2.w = cmp(r6.x >= 0); if (r2.w != 0) { r7.x = cb2[576].x; @@ -256,7 +255,7 @@ void main( r3.w = r3.w ? r4.x : 0; if (r3.w != 0) { r0.z = asuint(cb2[r0.z+587].x) >> 16; - r6.y = f16tof32(r0.z); + r6.y = f16tof32((uint)r0.z); r4.xy = r7.xy * cb2[584].zw + r6.xy; r4.zw = r4.xy * cb2[586].zw + float2(0.5,0.5); r4.zw = floor(r4.zw); @@ -312,38 +311,33 @@ void main( } r0.z = r5.x + -r5.y; r0.z = r0.w * r0.z + r5.y; - r0.w = cmp(0.00100000005 < r0.z); - if (r0.w != 0) { - r4.xyz = -cb0[173].xyz + r2.xyz; - r4.yw = cb0[176].xz * r4.yy + r4.xz; - r5.xy = cb0[174].zz * r4.yw; - r5.zw = cb0[183].ww * cb0[175].xy; - r4.yw = r4.yw * cb0[174].zz + r5.zw; - r0.w = t3.SampleLevel(s2_s, r4.yw, 0).x; - r4.yw = r5.xy * cb0[175].ww + r5.zw; - r2.w = t3.SampleLevel(s2_s, r4.yw, 0).x; - r3.w = dot(r4.xz, r4.xz); - r3.w = sqrt(r3.w); - r4.x = cb0[174].y + -cb0[174].x; - r3.w = -cb0[174].x + r3.w; - r4.x = 1 / r4.x; - r3.w = saturate(r4.x * r3.w); - r4.x = r3.w * -2 + 3; - r3.w = r3.w * r3.w; - r3.w = r4.x * r3.w; - r2.w = r2.w + -r0.w; - r0.w = r3.w * r2.w + r0.w; - r0.w = -1 + r0.w; - r0.w = cb0[175].z * r0.w + 1; - - /* - if (SHADOW_HARDENING>= 1.f) { - - r0.w = 1.0 + (r0.w - 1.0) * 4.0; + // Cloud shadow (t3) — toggle via FAKE_CLOUD_SHADOWS + if (FAKE_CLOUD_SHADOWS >= 1.f) { + r0.w = cmp(0.00100000005 < r0.z); + if (r0.w != 0) { + r4.xyz = -cb0[173].xyz + r2.xyz; + r4.yw = cb0[176].xz * r4.yy + r4.xz; + r5.xy = cb0[174].zz * r4.yw; + r5.zw = cb0[183].ww * cb0[175].xy; + r4.yw = r4.yw * cb0[174].zz + r5.zw; + r0.w = t3.SampleLevel(s2_s, r4.yw, 0).x; + r4.yw = r5.xy * cb0[175].ww + r5.zw; + r2.w = t3.SampleLevel(s2_s, r4.yw, 0).x; + r3.w = dot(r4.xz, r4.xz); + r3.w = sqrt(r3.w); + r4.x = cb0[174].y + -cb0[174].x; + r3.w = -cb0[174].x + r3.w; + r4.x = 1 / r4.x; + r3.w = saturate(r4.x * r3.w); + r4.x = r3.w * -2 + 3; + r3.w = r3.w * r3.w; + r3.w = r4.x * r3.w; + r2.w = r2.w + -r0.w; + r0.w = r3.w * r2.w + r0.w; + r0.w = -1 + r0.w; + r0.w = cb0[175].z * r0.w + 1; + r0.z = r0.z * r0.w; } - */ - - r0.z = r0.z * r0.w; } r0.w = cb2[35].z + -r0.z; r0.z = cb2[35].w * r0.w + r0.z; @@ -433,6 +427,12 @@ void main( } o0.y = r1.w ? r0.y : r0.x; r0.x = min(1, r0.z); + + // Shadow compositing contrast curve: S-curve deepens shadow cores + if (SHADOW_HARDENING >= 1.f) { + r0.x = r0.x * r0.x * (3.0 - 2.0 * r0.x); // smoothstep(0, 1, r0.x) + } + r0.x = -1 + r0.x; o0.x = cb2[34].x * r0.x + 1; o0.z = 0; diff --git a/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl b/src/games/endfield/shadows/screenspace-shadows_0x0C02AB31.cs_5_0.hlsl similarity index 98% rename from src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl rename to src/games/endfield/shadows/screenspace-shadows_0x0C02AB31.cs_5_0.hlsl index 42788250a..40386e694 100644 --- a/src/games/endfield/shadows/grass-shadowing_0x0C02AB31.cs_5_0.hlsl +++ b/src/games/endfield/shadows/screenspace-shadows_0x0C02AB31.cs_5_0.hlsl @@ -375,7 +375,7 @@ void main(uint3 vThreadIDInGroup : SV_GroupThreadID, uint3 vThreadGroupID : SV_G r0.y = min(r0.y, r2.y); r0.y = -1 + r0.y; - // Removed screen edge fade for contact shadows + // Removed screen edge fade for contact shadows (original) // r5.yw = r1.xy * cb1[3].zw + float2(-0.5,-0.5); // r5.yw = abs(r5.yw) * float2(12,12) + float2(-4.80000019,-4.80000019); // r5.yw = max(float2(0,0), r5.yw); @@ -384,9 +384,9 @@ void main(uint3 vThreadIDInGroup : SV_GroupThreadID, uint3 vThreadGroupID : SV_G // r1.w = max(0, r1.w); // r0.y = r1.w * r0.y; - if (SHADOW_HARDENING>= 1.f) { - r0.y = r0.y * 4.0; - } + // Shadow hardening moved to deferred lighting shaders per-material: + // 0x1E8A471E (environment) = crude 4x + // 0xD3FA93FC (grass/foliage) = pow(x,4) power curve r6.xzw = cb1[0].www * r0.yyy + float3(1,1,1); r0.y = -cb1[2].w + r1.z; diff --git a/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl b/src/games/endfield/shadows/shadowcompositing-shadowmap_0x61FA72DD.ps_5_0.hlsl similarity index 89% rename from src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl rename to src/games/endfield/shadows/shadowcompositing-shadowmap_0x61FA72DD.ps_5_0.hlsl index f73947141..8f5dfc786 100644 --- a/src/games/endfield/shadows/cloud-shadows_0x61FA72DD.ps_5_0.hlsl +++ b/src/games/endfield/shadows/shadowcompositing-shadowmap_0x61FA72DD.ps_5_0.hlsl @@ -189,6 +189,12 @@ void main( bitmask.x = ((~(-1 << 2)) << 2) & 0xffffffff; r0.x = (((uint)r0.x << 2) & bitmask.x) | ((uint)0 & ~bitmask.x); bitmask.x = ((~(-1 << 2)) << 0) & 0xffffffff; r0.x = (((uint)r0.y << 0) & bitmask.x) | ((uint)r0.x & ~bitmask.x); r0.y = dot(cb2[33].xyzw, icb[r0.z+0].xyzw); + + // Per-cascade PCF kernel scaling: sharper near shadows, softer distant shadows + if (SHADOW_HARDENING >= 1.f) { + r0.y *= lerp(0.75, 1.5, saturate((float)r0.z / 3.0)); + } + r0.zw = icb[r0.x+4].xy * float2(1,-1); r4.xy = float2(0,0); r1.z = 0; @@ -262,7 +268,7 @@ void main( r1.x = (uint)r1.x; r1.x = min(127, (uint)r1.x); r1.y = 0x0000ffff & asint(cb2[r1.x+587].x); - r3.x = f16tof32(r1.y); + r3.x = f16tof32((uint)r1.y); r1.y = cmp(r3.x >= 0); if (r1.y != 0) { r4.x = cb2[576].x; @@ -292,7 +298,7 @@ void main( r0.y = r0.z ? r0.y : 0; if (r0.y != 0) { r0.y = asuint(cb2[r1.x+587].x) >> 16; - r3.y = f16tof32(r0.y); + r3.y = f16tof32((uint)r0.y); r0.yz = r4.xy * cb2[584].zw + r3.xy; r1.xy = r0.yz * cb2[586].zw + float2(0.5,0.5); r1.xy = floor(r1.xy); @@ -348,39 +354,34 @@ void main( } r0.x = r5.x + -r5.y; r0.x = r1.w * r0.x + r5.y; - r0.y = cmp(0.00100000005 < r0.x); - if (r0.y != 0) { - r0.yzw = -cb0[173].xyz + r2.xyz; - r1.xy = cb0[176].xz * r0.zz + r0.yw; - r1.zw = cb0[174].zz * r1.xy; - r2.xy = cb0[183].ww * cb0[175].xy; - r1.xy = r1.xy * cb0[174].zz + r2.xy; - r0.z = t2.SampleLevel(s2_s, r1.xy, 0).x; - r1.xy = r1.zw * cb0[175].ww + r2.xy; - r1.x = t2.SampleLevel(s2_s, r1.xy, 0).x; - r0.y = dot(r0.yw, r0.yw); - r0.y = sqrt(r0.y); - r0.w = cb0[174].y + -cb0[174].x; - r0.y = -cb0[174].x + r0.y; - r0.w = 1 / r0.w; - r0.y = saturate(r0.y * r0.w); - r0.w = r0.y * -2 + 3; - r0.y = r0.y * r0.y; - r0.y = r0.w * r0.y; - r0.w = r1.x + -r0.z; - r0.y = r0.y * r0.w + r0.z; - r0.y = -1 + r0.y; - r0.y = cb0[175].z * r0.y + 1; - //if (SHADOW_HARDENING >= 1.f) { - // r0.y = 1.0 + (r0.y - 1.0) * 2.0; - // - // // Soften cloud shadow transitions for diffused look - // //r0.y = smoothstep(0.0, 1.0, r0.y); - // //r0.y = lerp(r0.y, 1.0, 0.25); - //} - - r0.x = r0.x * r0.y; + // Cloud shadow (t2) — toggle via FAKE_CLOUD_SHADOWS + if (FAKE_CLOUD_SHADOWS >= 1.f) { + r0.y = cmp(0.00100000005 < r0.x); + if (r0.y != 0) { + r0.yzw = -cb0[173].xyz + r2.xyz; + r1.xy = cb0[176].xz * r0.zz + r0.yw; + r1.zw = cb0[174].zz * r1.xy; + r2.xy = cb0[183].ww * cb0[175].xy; + r1.xy = r1.xy * cb0[174].zz + r2.xy; + r0.z = t2.SampleLevel(s2_s, r1.xy, 0).x; + r1.xy = r1.zw * cb0[175].ww + r2.xy; + r1.x = t2.SampleLevel(s2_s, r1.xy, 0).x; + r0.y = dot(r0.yw, r0.yw); + r0.y = sqrt(r0.y); + r0.w = cb0[174].y + -cb0[174].x; + r0.y = -cb0[174].x + r0.y; + r0.w = 1 / r0.w; + r0.y = saturate(r0.y * r0.w); + r0.w = r0.y * -2 + 3; + r0.y = r0.y * r0.y; + r0.y = r0.w * r0.y; + r0.w = r1.x + -r0.z; + r0.y = r0.y * r0.w + r0.z; + r0.y = -1 + r0.y; + r0.y = cb0[175].z * r0.y + 1; + r0.x = r0.x * r0.y; + } } r0.y = cb2[35].z + -r0.x; r0.x = cb2[35].w * r0.y + r0.x; @@ -389,6 +390,11 @@ void main( } r0.x = min(1, r0.x); + // Shadow compositing contrast curve: S-curve deepens shadow cores + if (SHADOW_HARDENING >= 1.f) { + r0.x = r0.x * r0.x * (3.0 - 2.0 * r0.x); + } + r0.x = -1 + r0.x; o0.x = cb2[34].x * r0.x + 1; o0.yz = float2(1,0); diff --git a/src/games/endfield/shared.h b/src/games/endfield/shared.h index 36909d963..7d1cd83bc 100644 --- a/src/games/endfield/shared.h +++ b/src/games/endfield/shared.h @@ -94,29 +94,13 @@ struct ShaderInjectData { float shadow_hardening; float chromatic_aberration_strength; float disable_game_ao; - float ssr_gi_intensity; - float metallic_ibl_intensity; float cubemap_ambient_link; float glass_transparency; float improved_ssr; float tech_test_look; float ui_aspect_ratio; - float ao_radius; - float ao_radius_scale; - float ao_falloff_range; - float ao_distribution_power; - float ao_thin_occluder; - float ao_gamma; - float ao_temporal_frame; - float ao_mip_bias; - float ao_direction_count; - float ao_step_count; - float ao_normal_attenuation; - float ao_thickness; - float ao_denoiser_blur_beta; - float ao_debug_view; - float ao_bitmask; float improved_gtao; + float fake_cloud_shadows; }; #ifndef __cplusplus @@ -179,22 +163,22 @@ cbuffer shader_injection : register(b13) { #define GLASS_TRANSPARENCY shader_injection.glass_transparency #define TECH_TEST_LOOK shader_injection.tech_test_look #define UI_ASPECT_RATIO shader_injection.ui_aspect_ratio -#define AO_RADIUS shader_injection.ao_radius -#define AO_RADIUS_SCALE shader_injection.ao_radius_scale -#define AO_FALLOFF_RANGE shader_injection.ao_falloff_range -#define AO_DISTRIBUTION_POWER shader_injection.ao_distribution_power -#define AO_THIN_OCCLUDER shader_injection.ao_thin_occluder -#define AO_GAMMA shader_injection.ao_gamma -#define AO_TEMPORAL_FRAME shader_injection.ao_temporal_frame -#define AO_MIP_BIAS shader_injection.ao_mip_bias -#define AO_DIRECTION_COUNT shader_injection.ao_direction_count -#define AO_STEP_COUNT shader_injection.ao_step_count -#define AO_NORMAL_ATTENUATION shader_injection.ao_normal_attenuation -#define AO_THICKNESS shader_injection.ao_thickness -#define AO_DENOISER_BLUR_BETA shader_injection.ao_denoiser_blur_beta -#define AO_DEBUG_VIEW shader_injection.ao_debug_view -#define AO_BITMASK shader_injection.ao_bitmask +#define AO_RADIUS 4.0 +#define AO_RADIUS_SCALE 1.0 +#define AO_FALLOFF_RANGE 1.0 +#define AO_DISTRIBUTION_POWER 2.0 +#define AO_THIN_OCCLUDER 2.0 +#define AO_GAMMA 2.2 +#define AO_TEMPORAL_FRAME 64.0 +#define AO_MIP_BIAS 4.0 +#define AO_DIRECTION_COUNT 6.0 +#define AO_STEP_COUNT 6.0 +#define AO_NORMAL_ATTENUATION 0.05 +#define AO_THICKNESS 0.5 +#define AO_DENOISER_BLUR_BETA 0.0 +#define AO_BITMASK 1.0 #define IMPROVED_GTAO shader_injection.improved_gtao +#define FAKE_CLOUD_SHADOWS shader_injection.fake_cloud_shadows #include "../../shaders/renodx.hlsl" diff --git a/src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl b/src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl index 6910ab578..c8ac01dc2 100644 --- a/src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl +++ b/src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl @@ -338,11 +338,6 @@ void main(uint3 vThreadID : SV_DispatchThreadID) u1[vThreadID.xy] = r3.xyzw; } - // Metallic IBL intensity control - float ssr_blend = r0.x; - if (shader_injection.metallic_ibl_intensity == 1.f) { - ssr_blend = max(ssr_blend, 0.75); - } - u2[vThreadID.xy] = ssr_blend.xxxx; + u2[vThreadID.xy] = r0.xxxx; return; } \ No newline at end of file diff --git a/src/games/endfield/ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl b/src/games/endfield/ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl index 4bc2bc01d..01f5f2512 100644 --- a/src/games/endfield/ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl +++ b/src/games/endfield/ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl @@ -464,11 +464,5 @@ void main(uint3 vThreadID : SV_DispatchThreadID) u1[vThreadID.xy] = r3.xyzw; } - // Metallic IBL intensity control - float ssr_blend = r0.x; - if (shader_injection.metallic_ibl_intensity == 1.f) { - ssr_blend = max(ssr_blend, 0.75); - } - - u2[vThreadID.xy] = ssr_blend.xxxx; + u2[vThreadID.xy] = r0.xxxx; } \ No newline at end of file From f8dbc1d892f316b08c00a87eef66b9eca7d3ac5a Mon Sep 17 00:00:00 2001 From: spiwar <92001312+spiwar@users.noreply.github.com> Date: Sun, 22 Feb 2026 00:15:22 -0700 Subject: [PATCH 19/19] fix(endfield): Move color grading functions before tonemapping --- src/games/endfield/common.hlsl | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/games/endfield/common.hlsl b/src/games/endfield/common.hlsl index 29b0da174..28bcd4257 100644 --- a/src/games/endfield/common.hlsl +++ b/src/games/endfield/common.hlsl @@ -461,6 +461,14 @@ LUTSampleResult LUTSAMPLE( float3 lut_size, Texture2D lut_texture, float3 sample_input) { + [branch] + if (shader_injection.tone_map_type != 0.f) { + UserGradingConfig cg_config = CreateColorGradeConfig(); + float sample_input_y = renodx::color::y::from::BT709(sample_input); + sample_input = ApplyExposureContrastFlareHighlightsShadowsByLuminance( + sample_input, sample_input_y, cg_config); + } + renodx::lut::Config lut_config = renodx::lut::config::Create( lut_sampler, shader_injection.color_grade_strength, @@ -508,10 +516,9 @@ float3 HDRGRADE(LUTSampleResult lut_sample) { renodx::color::bt709::from::AP1(renodx::tonemap::ReinhardPiecewise(graded_ap1, 2.f, 0.5f)); UserGradingConfig cg_config = CreateColorGradeConfig(); - float3 graded_bt709 = ApplyExposureContrastFlareHighlightsShadowsByLuminance(graded, y, cg_config); float3 output = ApplySaturationBlowoutHueCorrectionHighlightSaturation( - graded_bt709, hue_chrominance_reference_color, y, cg_config); + graded, hue_chrominance_reference_color, y, cg_config); output = renodx::color::bt2020::from::BT709(output); output = renodx::tonemap::neutwo::MaxChannel( output, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits, 65.f);