diff --git a/src/games/endfield/addon.cpp b/src/games/endfield/addon.cpp index de6ec8693..cee0685c8 100644 --- a/src/games/endfield/addon.cpp +++ b/src/games/endfield/addon.cpp @@ -5,9 +5,10 @@ #define ImTextureID ImU64 -#define DEBUG_LEVEL_0 +// #define DEBUG_LEVEL_0 #include +#include #include #include @@ -44,6 +45,89 @@ 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; + +// 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, + 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,25 +136,158 @@ 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) { +#ifdef DEBUG_LEVEL_0 + 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()); +#endif + + 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 +bool ui_toggle_key_was_pressed = false; +int ui_toggle_hotkey = 0; +bool hotkey_input_active = false; + +// 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; + } else { + 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", @@ -218,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.", @@ -231,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", @@ -355,7 +572,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 +582,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 +594,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, @@ -440,6 +719,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, @@ -451,6 +741,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", @@ -462,6 +764,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, @@ -483,8 +795,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", @@ -493,6 +805,71 @@ 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, + .value_type = renodx::utils::settings::SettingValueType::INTEGER, + .default_value = 0.f, + .label = "Hue-Preserving Fog", + .section = "Rendering Improvements", + .tooltip = "Toggles alternative hue-preserving fog", + .labels = {"Original", "Alt"}, + }, + 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 = "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, @@ -514,6 +891,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, @@ -554,6 +947,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", @@ -584,6 +990,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"), @@ -597,11 +1008,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); @@ -611,6 +1033,55 @@ 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, + uint32_t index_count, + uint32_t instance_count, + uint32_t first_index, + int32_t vertex_offset, + uint32_t first_instance) { + // 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; + + // Reset vertex count after processing + draw_call_vertex_count = 0; + + return false; +} + void OnPresent(reshade::api::command_queue* queue, reshade::api::swapchain* swapchain, const reshade::api::rect* source_rect, @@ -622,6 +1093,51 @@ 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", 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); + 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; + 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; @@ -704,30 +1220,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 false; }, - }; - 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); } { @@ -745,14 +1245,25 @@ 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); + // 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); } + // 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", @@ -789,73 +1300,137 @@ 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({ .old_format = reshade::api::format::r8g8b8a8_unorm, .new_format = reshade::api::format::r16g16b16a16_float, .ignore_size = false, - .use_resource_view_cloning = true, + //.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, }); + /* 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, + //.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, }); - + */ 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, + // Enviroment deferred (doesnt apply to grass/foliage) + /* + 0xD88CD7C9u, + 0x1E8A471Eu, + 0x8BA3C806u, + 0x7010AF4Bu, + 0x0E84DFD1u, + 0x99725481u, + 0xA4113DE8u, + 0xD5B102A4u, }; + */ + + // grass/foliage deferred (grass, plants, trees will be included in AO) + + 0x37837806u, + 0xD3FA93FCu, + 0x620A40FDu, + 0xE322C21Du, + 0xB094C87Eu, + 0xF901F0ECu, + 0x518D3855u, + 0xBD99F0C4u, + }; + + // Uberpost + /* + 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; + } + } + + // 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 and draw_indexed events for heuristic ping/UID detection + reshade::register_event(OnDraw); + reshade::register_event(OnDrawIndexed); initialized = true; } 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/ao-blur_0x80CD64F6.cs_5_0.hlsl b/src/games/endfield/ao/ao-blur_0x80CD64F6.cs_5_0.hlsl new file mode 100644 index 000000000..05f057651 --- /dev/null +++ b/src/games/endfield/ao/ao-blur_0x80CD64F6.cs_5_0.hlsl @@ -0,0 +1,68 @@ +#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); + r1x *= AO_DENOISER_BLUR_BETA; + + 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/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..b85a143b0 --- /dev/null +++ b/src/games/endfield/ao/gtao-main_0xE1A460D9.cs_5_0.hlsl @@ -0,0 +1,427 @@ +// ---- 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; + + // 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; + 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 = scaledThickness / 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, 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); + 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, 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); + 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, 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); + 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/common.hlsl b/src/games/endfield/common.hlsl index e01e5651d..28bcd4257 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); @@ -55,6 +259,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; @@ -144,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 @@ -193,6 +444,84 @@ 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) { + [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, + 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 output = ApplySaturationBlowoutHueCorrectionHighlightSaturation( + 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); + output = renodx::color::bt709::from::BT2020(output); + return output; } \ No newline at end of file diff --git a/src/games/endfield/deferred-lighting/0x05D849CE.cso b/src/games/endfield/deferred-lighting/0x05D849CE.cso new file mode 100644 index 000000000..263e61cb3 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x05D849CE.cso differ diff --git a/src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0.asm new file mode 100644 index 000000000..8b396c7a0 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x05D849CE.ps_5_0.asm @@ -0,0 +1,1864 @@ +// +// 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_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_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 + +// === 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/0x0E84DFD1.cso b/src/games/endfield/deferred-lighting/0x0E84DFD1.cso new file mode 100644 index 000000000..4535042b2 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x0E84DFD1.cso differ 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..3a8a87672 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x0E84DFD1.ps_5_0.asm @@ -0,0 +1,1980 @@ +// +// 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[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_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 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 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) + 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 + 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 +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 + 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 +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 +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 r37.w, r2.x // Store ambient luminance for cubemap modulation +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 +// 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) + mul r2.xyz, r2.xyzx, r37.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 + 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/0x1E8A471E.cso b/src/games/endfield/deferred-lighting/0x1E8A471E.cso new file mode 100644 index 000000000..d1b04e433 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x1E8A471E.cso differ diff --git a/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm new file mode 100644 index 000000000..ba8893eae --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x1E8A471E.ps_5_0.asm @@ -0,0 +1,1551 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Thu Jan 29 14:32:26 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[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_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.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) + ge r36.x, cb13[12].z, l(1.000000) + mad_sat r36.y, r0.z, l(2.000000), l(-1.000000) + mad_sat r36.z, r0.z, l(4.000000), l(-3.000000) + mad_sat r36.w, r2.w, l(0.050000), l(-1.500000) + add r36.z, r36.z, -r36.y + mad r36.y, r36.w, r36.z, r36.y + movc r0.z, r36.x, r36.y, r0.z + 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 +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 + 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 +movc r10.xyz, cb13[14].zzzz, 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 +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 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) +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 +// Cubemap ambient link modulation (cb13[13].y) +if_nz cb13[13].y + 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 + 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 + +// Check fog modification toggle (cb13[12].y) +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 +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x37837806.cso b/src/games/endfield/deferred-lighting/0x37837806.cso new file mode 100644 index 000000000..600de51ed Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x37837806.cso differ 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..a6634b451 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x37837806.ps_5_0.asm @@ -0,0 +1,908 @@ +// +// 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[15], 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 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 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) + ge r25.x, cb13[12].z, l(1.000000) + mul r25.y, r1.w, r1.w + mul r25.y, r25.y, r25.y + movc r1.w, r25.x, r25.y, r1.w + 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 +movc r6.z, cb13[14].z, 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) + 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 +movc r8.xyz, cb13[14].zzzz, r8.xyzx, l(1.0, 1.0, 1.0, 0) +mul r1.xyw, r1.xyzw, r8.xyxz +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_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 +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0x518D3855.cso b/src/games/endfield/deferred-lighting/0x518D3855.cso new file mode 100644 index 000000000..73956d79b Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x518D3855.cso differ diff --git a/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm b/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm new file mode 100644 index 000000000..8abc7ffcb --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x518D3855.ps_5_0.asm @@ -0,0 +1,1705 @@ +// +// 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_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_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 39 +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) + 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 + 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 +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) + 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 +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 +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 + +// === 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, 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.cso b/src/games/endfield/deferred-lighting/0x5468822B.cso new file mode 100644 index 000000000..48fb832e9 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x5468822B.cso differ 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/0x620A40FD.cso b/src/games/endfield/deferred-lighting/0x620A40FD.cso new file mode 100644 index 000000000..389529310 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x620A40FD.cso differ 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..8ee9e8520 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x620A40FD.ps_5_0.asm @@ -0,0 +1,952 @@ +// +// 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[15], 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 27 +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) + ge r26.x, cb13[12].z, l(1.000000) + mul r26.y, r1.w, r1.w + mul r26.y, r26.y, r26.y + movc r1.w, r26.x, r26.y, r1.w + 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 +movc r6.z, cb13[14].z, 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) + 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 +movc r10.xyz, cb13[14].zzzz, 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| +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/0x7010AF4B.cso b/src/games/endfield/deferred-lighting/0x7010AF4B.cso new file mode 100644 index 000000000..d2b98938c Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x7010AF4B.cso differ 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..fb31dffeb --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x7010AF4B.ps_5_0.asm @@ -0,0 +1,931 @@ +// +// 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[15], 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 25 +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) + 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[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 + 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 +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 +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 r23.w, r1.y // Store ambient luminance for cubemap modulation +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 +// 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) + mul r3.xyz, r3.xyzx, r23.wwww +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) 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/0x8BA3C806.cso b/src/games/endfield/deferred-lighting/0x8BA3C806.cso new file mode 100644 index 000000000..5b36ed62e Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x8BA3C806.cso differ 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..57b560712 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x8BA3C806.ps_5_0.asm @@ -0,0 +1,1594 @@ +// +// 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[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_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.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) + 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 + 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 +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 + 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 +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 +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 r36.w, r1.y // Store ambient luminance for cubemap modulation +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 +// 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) + mul r3.xyz, r3.xyzx, r36.wwww +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) 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/0x8D6CC6FA.cso b/src/games/endfield/deferred-lighting/0x8D6CC6FA.cso new file mode 100644 index 000000000..e37fac5dd Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x8D6CC6FA.cso differ 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/0x9630ACD4.cso b/src/games/endfield/deferred-lighting/0x9630ACD4.cso new file mode 100644 index 000000000..f9f42439b Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x9630ACD4.cso differ 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/0x99725481.cso b/src/games/endfield/deferred-lighting/0x99725481.cso new file mode 100644 index 000000000..388c7b2b5 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0x99725481.cso differ 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..dffba1c75 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0x99725481.ps_5_0.asm @@ -0,0 +1,1997 @@ +// +// 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[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_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 40 +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) + ge r39.x, cb13[12].z, l(1.000000) + mad_sat r39.y, r0.z, l(2.000000), l(-1.000000) + mad_sat r39.z, r0.z, l(4.000000), l(-3.000000) + mad_sat r39.w, r6.x, l(0.050000), l(-1.500000) + add r39.z, r39.z, -r39.y + mad r39.y, r39.w, r39.z, r39.y + movc r0.z, r39.x, r39.y, r0.z + 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 +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 + 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 +movc r13.xyz, cb13[14].zzzz, r13.xyzx, l(1.0, 1.0, 1.0, 0) +mul r8.xyz, r8.xyzx, r13.xyzx +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 r38.w, r2.x // Store ambient luminance for cubemap modulation +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 +// Cubemap ambient link modulation (cb13[13].y) +if_nz cb13[13].y + max r38.w, r38.w, l(0.000000) + min r38.w, r38.w, l(1.000000) + mad r38.w, r38.w, l(0.750000), l(0.250000) + mul r2.xyz, r2.xyzx, r38.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) 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/0xA4113DE8.cso b/src/games/endfield/deferred-lighting/0xA4113DE8.cso new file mode 100644 index 000000000..a3496847d Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xA4113DE8.cso differ 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..3c551d8e5 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xA4113DE8.ps_5_0.asm @@ -0,0 +1,1310 @@ +// +// 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[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_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 +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 + 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 +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 +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 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) +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 +// 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) + mul r2.xyz, r2.xyzx, r23.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) 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/0xB094C87E.cso b/src/games/endfield/deferred-lighting/0xB094C87E.cso new file mode 100644 index 000000000..d6c7722b8 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xB094C87E.cso differ 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..768c460ed --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xB094C87E.ps_5_0.asm @@ -0,0 +1,1688 @@ +// +// 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[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_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 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 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) + 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 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 +movc r9.x, cb13[14].z, l(0xFFFFFFFF), r9.x +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 +movc r9.xzw, cb13[14].zzzz, r9.xyzw, l(1.0, 0, 1.0, 1.0) +mul r1.xyz, r1.xyzx, r9.xzwx +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/0xBD99F0C4.cso b/src/games/endfield/deferred-lighting/0xBD99F0C4.cso new file mode 100644 index 000000000..e6048daa6 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xBD99F0C4.cso differ 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..a05f23a8e --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xBD99F0C4.ps_5_0.asm @@ -0,0 +1,1013 @@ +// +// 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[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_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 +movc r2.y, cb13[14].z, 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) + 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 +movc r10.xyz, cb13[14].zzzz, 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| +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/0xC34914B1.cso b/src/games/endfield/deferred-lighting/0xC34914B1.cso new file mode 100644 index 000000000..155248586 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xC34914B1.cso differ 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/0xD3FA93FC.cso b/src/games/endfield/deferred-lighting/0xD3FA93FC.cso new file mode 100644 index 000000000..b9c2895dc Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xD3FA93FC.cso differ diff --git a/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm new file mode 100644 index 000000000..3f3c642e0 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xD3FA93FC.ps_5_0.asm @@ -0,0 +1,1597 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Thu Jan 29 17:26: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[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_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 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 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) + 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 + 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 +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) + 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 +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 +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 + +// Check fog modification toggle (cb13[12].y) +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 +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xD5B102A4.cso b/src/games/endfield/deferred-lighting/0xD5B102A4.cso new file mode 100644 index 000000000..7ab8d3b35 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xD5B102A4.cso differ 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..bd9a10f39 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xD5B102A4.ps_5_0.asm @@ -0,0 +1,1301 @@ +// +// 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[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_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 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 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) + 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[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 + 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 +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 +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 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) +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 +// 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) + 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 + 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/0xD88CD7C9.cso b/src/games/endfield/deferred-lighting/0xD88CD7C9.cso new file mode 100644 index 000000000..286372495 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xD88CD7C9.cso differ diff --git a/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm b/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm new file mode 100644 index 000000000..e488ef8d7 --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xD88CD7C9.ps_5_0.asm @@ -0,0 +1,888 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Thu Jan 29 17:13:28 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[15], 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 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 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, t19.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.z, r9.x, r2.z, r1.z +ld_indexable(texture2d)(float,float,float,float) r11.xyz, r0.xyzz, t22.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.z, r10.z +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, t6.xyzw +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, -cb2[0].xyzx, r14.xyzx + mad r15.xyz, cb2[0].xyzx, r0.zzzz, r14.xyzx + lt r0.z, r0.z, cb2[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, cb2[4].yyyy + mad r15.xyz, -cb2[0].xyzx, cb2[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 r6.xyz, r6.xyzx, r4.zzzz, r14.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 r10.x, r14.xyzx, r3.xyzx + dp3_sat r0.z, r3.xyzx, r6.xyzx + min r10.y, 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, r6.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.x, -r10.z, l(1.000000) + mad r6.y, -r6.x, l(0.383026), l(-0.0761947036) + mad r6.y, r6.x, r6.y, l(1.049970) + mad r6.x, r6.x, r6.y, l(0.409255) + min r6.x, r6.x, l(0.999000) + add r6.y, -r6.x, 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.z, r2.z, l(1.000000) + mad r15.xyz, r9.xyzx, r2.zzzz, r4.wwww + mul r0.z, r0.z, r0.z + div r0.z, r1.x, r0.z + mad r4.zw, -r10.yyyx, r1.xxxx, r10.yyyx + mad r4.zw, r4.zzzw, r10.yyyx, r1.xxxx + sqrt r4.zw, r4.zzzw + mul r4.zw, r4.zzzw, r10.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, r10.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.x, r0.z + div r0.z, r0.z, r6.y + mul r6.xzw, r14.xxyz, r14.xxyz + mul r6.xzw, r0.zzzz, r6.xxzw + mad r14.xyz, -r14.xyzx, r6.yyyy, l(1.000000, 1.000000, 1.000000, 0.000000) + div r6.xyz, r6.xzwx, r14.xyzx + add r6.xyz, r6.xyzx, r15.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) + mul r14.xyz, r10.xxxx, r11.xyzx + mad r6.xyz, r6.xyzx, r10.xxxx, r14.xyzx + mul r6.xyz, r6.xyzx, cb2[1].xyzx + mov r13.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r10.xyw, r13.xyxx, t7.xywz, s1, cb0[108].x + add r0.z, -r13.x, l(1.000000) + 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[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 + add r1.x, r0.z, r12.x + mad r2.z, r10.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 r10.xyw, 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.xyw, r1.yyyy + mov r13.xyz, r1.yyyy +endif +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 +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 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.x, |r15.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 r15.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r15.xyz, r14.xzyx, -r15.xyzx + max r1.x, |r15.y|, |r15.x| + add r1.x, r1.x, l(-29.000000) + add r1.y, |r15.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 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, 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, r15.y + min r2.z, r4.z, r2.z + mul r15.w, r2.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t14.xyzw, s1, l(0.000000) + mad r2.z, r17.w, r1.y, 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, t14.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, r1.yyyy, 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, t14.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, r1.yyyy, 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, r1.yyyy, 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 r2.z, r0.z + endif + mad r17.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r17.xyz, r14.xzyx, -r17.xyzx + max r1.y, |r17.y|, |r17.x| + add r1.y, r1.y, l(-116.000000) + mul_sat r1.y, r1.y, l(0.125000) + add r4.z, |r17.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 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, 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, r17.y + min r4.z, r6.w, r4.z + mul r17.w, r4.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r17.xwzx, t16.xyzw, s1, l(0.000000) + mad r2.z, r20.w, r1.x, r2.z + 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, t16.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.xxxx, 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, 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, r19.xxxx, r17.xyzx + mov r17.w, r19.x + mad r15.xyzw, r17.xyzw, r1.xxxx, 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.xxxx, r16.xyzw + endif + lt r1.x, l(0.000000), r1.y + if_nz r1.x + 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, t17.yzwx, s2, l(0.000000) + add r1.x, -r0.z, l(1.000000) + mul r1.x, r1.x, r1.y + max r1.y, r19.y, r14.y + min r1.y, r17.y, r1.y + mul r14.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t18.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, 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 r18.xyzw, r19.xyzw, r1.xxxx, 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, t18.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.xxxx, 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.xxxx, r16.xyzw + mad r2.z, r17.w, r1.x, r2.z + endif + mad_sat r1.x, r2.z, l(2.000000), l(-1.000000) + add r14.x, -r0.z, r1.x + add r0.z, r0.z, r1.x + 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 r1.xy, r14.yxyy, cb0[213].wyww +mad r17.x, r1.y, l(0.375000), r1.x +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 r1.xy, r14.yxyy, cb0[214].wyww +mad r17.x, r1.y, l(0.375000), r1.x +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 r1.xy, r14.yxyy, cb0[215].wyww +mad r17.x, r1.y, l(0.375000), r1.x +add r14.xyzw, r17.wyzx, r18.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) r17.xyzw, r4.xyxx, t12.xyzw, s1, l(0.000000) + lt r18.xyzw, l(0.000100, 0.000100, 0.000100, 0.000100), |r17.xyzw| + or r1.xy, r18.zwzz, r18.xyxx + or r0.z, r1.y, r1.x + if_nz r0.z + dp3 r0.z, r17.yzwy, r17.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 r17.xyzw, r1.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 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 r18.x, r1.x, l(3.54490781) + mul r18.yzw, r1.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 r1.x, r0.z, r2.z + breakc_nz r1.x + mul r19.xyzw, r18.xyzw, l(0.282094777, 0.282094777, 0.282094777, 0.282094777) + dp4 r1.x, r19.xyzw, r18.xyzw + dp2 r1.y, r19.yxyy, r18.xyxx + dp2 r4.x, r19.zxzz, r18.xzxx + dp2 r4.y, r19.wxww, r18.xwxx + iadd r4.z, r0.z, l(1) + mov r18.xy, r1.xyxx + mov r18.zw, r4.xxxy + mov r0.z, r4.z + 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.x, r17.yxyy, r18.xyxx + dp2 r1.y, r17.zxzz, r18.xzxx + dp2 r2.z, r17.wxww, r18.xwxx + mul r18.xyzw, r15.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r4.x, r17.xyzw, r18.xyzw + dp2 r4.y, r17.yxyy, r18.xyxx + dp2 r4.z, r17.zxzz, r18.xzxx + dp2 r6.w, r17.wxww, r18.xwxx + mul r18.xyzw, r14.wyzx, l(1.12837911, -0.977205, 0.977205, -0.977205) + dp4 r7.w, r17.xyzw, r18.xyzw + dp2 r8.w, r17.yxyy, r18.xyxx + dp2 r9.w, r17.zxzz, r18.xzxx + dp2 r11.w, r17.wxww, r18.xwxx + mul r16.w, r0.z, l(0.886226952) + mul r16.x, r2.z, l(-1.02332675) + mul r16.yz, r1.xxyx, l(0.000000, -1.02332675, 1.02332675, 0.000000) + mul r15.x, r6.w, l(-1.02332675) + mul r15.yzw, r4.yyzx, l(0.000000, -1.02332675, 1.02332675, 0.886226952) + mul r14.w, r7.w, l(0.886226952) + mul r14.x, r11.w, l(-1.02332675) + mul r14.y, r8.w, l(-1.02332675) + mul r14.z, r9.w, l(1.02332675) + endif +endif +dp3 r0.z, r16.xyzx, r3.xyzx +add r0.z, r16.w, r0.z +max r4.x, r0.z, l(0.000000) +dp3 r0.z, r15.xyzx, r3.xyzx +add r0.z, r15.w, r0.z +max r4.y, r0.z, l(0.000000) +dp3 r0.z, r14.xyzx, r3.xyzx +add r0.z, r14.w, r0.z +max r4.z, r0.z, l(0.000000) +dp3 r0.z, -r8.xyzx, r3.xyzx +add r0.z, r0.z, r0.z +mad r14.xyz, r3.xyzx, -r0.zzzz, -r8.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r1.x, r10.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 r15.xyz, r4.xyzx, cb0[111].xxxx +dp3 r1.y, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r22.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) +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.z, l(1), r9.w + xor r6.w, r6.w, r10.z + 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.z, r17.y, r17.x + and r10.z, r17.z, r10.z + if_nz r10.z + mul r10.z, 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.z, r10.z, r10.z, -r13.w + mul r10.z, r10.z, cb1[r9.w + 9].x + mul r10.z, r10.z, cb1[r9.w + 9].x + add r13.w, l(1.000000), -cb1[r9.w + 10].y + mul r10.z, r10.z, r13.w + mul r10.z, r10.z, l(100.000000) + mad_sat r10.z, r12.x, cb1[r9.w + 10].y, r10.z + mul r12.x, r10.z, 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.z, 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 +// 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) + mul r3.xyz, r3.xyzx, r22.wwww +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 + 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.xywx, 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, 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 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 + +// Check fog modification toggle (cb13[12].y) +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 +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/deferred-lighting/0xE322C21D.cso b/src/games/endfield/deferred-lighting/0xE322C21D.cso new file mode 100644 index 000000000..a93b11a79 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xE322C21D.cso differ 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..cc465cefc --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xE322C21D.ps_5_0.asm @@ -0,0 +1,1641 @@ +// +// 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[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_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 39 +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) + 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 + 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 +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) + 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 +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 +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/0xEC0BE43D.cso b/src/games/endfield/deferred-lighting/0xEC0BE43D.cso new file mode 100644 index 000000000..0971d7f54 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xEC0BE43D.cso differ 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/0xF901F0EC.cso b/src/games/endfield/deferred-lighting/0xF901F0EC.cso new file mode 100644 index 000000000..9837ec453 Binary files /dev/null and b/src/games/endfield/deferred-lighting/0xF901F0EC.cso differ 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..f311146de --- /dev/null +++ b/src/games/endfield/deferred-lighting/0xF901F0EC.ps_5_0.asm @@ -0,0 +1,1000 @@ +// +// 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[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_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 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 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) + ge r25.x, cb13[12].z, l(1.000000) + mul r25.y, r1.w, r1.w + mul r25.y, r25.y, r25.y + movc r1.w, r25.x, r25.y, r1.w + 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 +movc r2.y, cb13[14].z, 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) + 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 +movc r8.xyz, cb13[14].zzzz, r8.xyzx, l(1.0, 1.0, 1.0, 0) +mul r1.xyw, r1.xyzw, r8.xyxz +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/Notes for future.txt b/src/games/endfield/deferred-lighting/Notes for future.txt new file mode 100644 index 000000000..1fdac84eb --- /dev/null +++ b/src/games/endfield/deferred-lighting/Notes for future.txt @@ -0,0 +1,91 @@ +// Why AO dont apply to grass / enviroment under spotlights / direct lights + +The issue was that r1.xyz (the accumulated direct light from spotlights, point lights, etc. computed in the light loop) was never multiplied by the AO value. The original shader only applies AO to r3.xyz (the indirect/specular/SSR contribution), not to the direct light accumulator. + +In the original shader flow: + +r8.xzw / r13.xyz = AO values (single-bounce / multiscatter) +r3.xyz is modulated by AO at line ~1401-1402: mul r6.xyw, r8.xzxw, r6.xyxw and mad r3.xyz, r3.xyzx, r13.xyzx, r6.xywx +r1.xyz goes straight to the final output un-attenuated: add r1.xyz, r1.xyzx, r3.xyzx +So the cb0[112].x gate was a red herring — it was already 1 for the main directional light pass. The real problem was that the light loop output bypassed AO entirely. Grass, being mainly lit by direct lights (spotlights included), showed zero AO effect because its dominant lighting term was never occluded. + +The fix: mul r1.xyz, r1.xyzx, r8.xzwx right after the AO block — applying the same single-bounce AO to the direct light contribution. + +// Screenspaced shadows are RIP becasue sun angle is used... Doesnt match spotlight angles + + + +Environment deferred (0x1E8A471E.ps_5_0.asm:257-260) — After T10 sample, applies 4x (saturate(x*4 - 3)) when SHADOW_HARDENING >= 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 new file mode 100644 index 000000000..b0d1d989b Binary files /dev/null and b/src/games/endfield/glass/0x183ADBF7.cso differ diff --git a/src/games/endfield/glass/0x183ADBF7.ps_5_0.asm b/src/games/endfield/glass/0x183ADBF7.ps_5_0.asm new file mode 100644 index 000000000..f0110c400 --- /dev/null +++ b/src/games/endfield/glass/0x183ADBF7.ps_5_0.asm @@ -0,0 +1,1832 @@ +// +// 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_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 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, t5.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, t6.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, 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 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, 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) 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 r8.xy, r9.xxxx, r8.xyxx, r0.xzxx +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.zw, -r8.xxxy, r8.zzzw +mad r8.xy, r7.wwww, r8.zwzz, r8.xyxx +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r8.xyxx, t8.xyzw, s9, cb0[108].x +max r7.w, v5.z, l(9.999999939E-09) +div r9.xy, v5.xyxx, r7.wwww +max r7.w, v6.z, l(9.999999939E-09) +div r12.xy, v6.xyxx, r7.wwww +add r12.xy, r9.xyxx, -r12.xyxx +mul r7.w, l(0.080000), cb2[0].y +mad r9.xyw, -r7.xyxz, r4.wwww, r7.xyxz +mad r7.w, -r7.w, r4.w, r7.w +mad r7.xyz, r7.xyzx, r4.wwww, r7.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 r4.w, r13.x, r13.x +max r0.w, r0.w, l(0.000000) +mul r7.w, r0.w, l(-9.280000) +exp r7.w, r7.w +min r4.w, r4.w, r7.w +mad r4.w, r4.w, r13.x, r13.y +mad r13.xy, r4.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r13.zwzz +eq r4.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 r7.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, r7.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 r7.w, cb0[84].z, r14.z, cb0[84].w +div r15.z, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w +ftou r2.xy, v0.xyxx +movc r14.xyz, r4.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 r4.w, |r15.y|, |r15.x| +add r4.w, r4.w, l(-464.000000) +mul_sat r4.w, r4.w, l(0.031250) +add r7.w, |r15.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 r15.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r15.xyz, r2.xzyx, -r15.xyzx + max r7.w, |r15.y|, |r15.x| + add r7.w, r7.w, l(-29.000000) + mul_sat r7.w, r7.w, l(0.500000) + add r8.w, |r15.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 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 r8.w, -r7.w, l(1.000000) + 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, r15.y + min r12.w, r13.z, r12.w + mul r15.w, r12.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 r12.w, r17.w, r8.w, r4.w + mov r15.w, r16.z + mul r15.xyzw, r8.wwww, r15.xyzw + mov r19.w, r16.y + mul r17.xyzw, r8.wwww, r19.xyzw + mov r18.w, r16.x + mul r16.xyzw, r8.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 r12.w, r4.w + endif + mad r18.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r18.xyz, r2.xzyx, -r18.xyzx + max r8.w, |r18.y|, |r18.x| + add r8.w, r8.w, l(-116.000000) + mul_sat r8.w, r8.w, l(0.125000) + add r13.z, |r18.z|, l(-52.000000) + mul_sat r13.z, r13.z, l(0.125000) + max r8.w, r8.w, r13.z + lt r13.z, r8.w, l(1.000000) + if_nz r13.z + 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 r13.z, -r8.w, l(1.000000) + mul r7.w, r7.w, r13.z + mul r13.z, l(0.500000), cb0[211].y + mad r13.w, -cb0[211].y, l(0.500000), l(1.000000) + max r13.z, r13.z, r18.y + min r13.z, r13.w, r13.z + mul r18.w, r13.z, 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 r12.w, r20.w, r7.w, r12.w + mov r18.w, r19.z + mad r15.xyzw, r18.xyzw, r7.wwww, r15.xyzw + mov r22.w, r19.y + mad r17.xyzw, r22.xyzw, r7.wwww, r17.xyzw + mov r21.w, r19.x + mad r16.xyzw, r21.xyzw, r7.wwww, r16.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 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, -r4.w, l(1.000000) + mul r2.x, r2.x, r8.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 r12.w, r18.w, r2.x, r12.w + endif + mad_sat r2.x, r12.w, l(2.000000), l(-1.000000) + add r18.x, -r4.w, r2.x + add r2.x, r4.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 r4.w, r17.xyzx, r6.xyzx +add r4.w, r17.w, r4.w +max r2.y, r4.w, l(0.000000) +dp3 r4.w, r15.xyzx, r6.xyzx +add r4.w, r15.w, r4.w +max r2.z, r4.w, l(0.000000) +add r4.w, r5.w, r5.w +mad r15.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 r13.zw, r14.xxxy +mul r16.xy, r13.zwzz, cb3[0].wwww +round_ni r16.xy, r16.xyxx +add r5.w, r14.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, r16.y, cb3[0].x, r16.x +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 r15.w, l(0) +loop + lt r16.w, l(0.010000), r8.w + ine r17.x, r12.w, l(0) + and r17.x, r16.w, r17.x + if_nz r17.x + firstbit_lo r17.x, r12.w + ishl r17.y, l(1), r17.x + xor r12.w, r12.w, r17.y + ishl r17.x, r17.x, l(3) + dp4 r18.x, cb3[r17.x + 6].xyzw, r1.xyzw + dp4 r18.y, cb3[r17.x + 7].xyzw, r1.xyzw + dp4 r18.z, cb3[r17.x + 8].xyzw, r1.xyzw + ge r17.yzw, cb3[r17.x + 5].xxyz, |r18.xxyz| + and r17.y, r17.z, r17.y + and r17.y, r17.w, r17.y + if_nz r17.y + mul r17.y, l(0.100000), cb3[r17.x + 5].x + mul r19.xyz, |r18.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r17.zw, r19.xxxy, r19.xxxy + add r19.xyw, -|r18.xyxz|, cb3[r17.x + 5].xyxz + mul r19.xyw, r19.xyxw, cb3[r17.x + 9].xyxz + eq r18.w, l(1.000000), cb3[r17.x + 10].x + if_nz r18.w + dp3 r20.x, cb3[r17.x + 6].xyzx, r15.xyzx + dp3 r20.y, cb3[r17.x + 7].xyzx, r15.xyzx + dp3 r20.z, cb3[r17.x + 8].xyzx, r15.xyzx + add r21.xyz, -r18.xyzx, cb3[r17.x + 5].xyzx + div r21.xyz, r21.xyzx, r20.xyzx + add r22.xyz, -r18.xyzx, -cb3[r17.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 r18.w, r21.y, r21.x + min r18.w, r21.z, r18.w + mad r18.xyz, r20.xyzx, r18.wwww, r18.xyzx + else + mov r18.xyz, r15.xyzx + endif + dp3 r18.w, r18.xyzx, r18.xyzx + rsq r18.w, r18.w + mul r18.xyz, r18.wwww, 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 r18.w, r18.xyzx, r20.xyzx + div r18.xyz, r18.xyzx, r18.wwww + lt r18.z, r18.z, l(0.000000) + add r20.zw, -|r18.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r20.xy, r20.zwzz, r20.xyxx + movc r18.xy, r18.zzzz, r20.xyxx, r18.xyxx + dp4 r18.z, cb3[r17.x + 4].xyzw, r6.xyzw + max r18.z, r18.z, l(0.000000) + max r18.z, r18.z, l(0.000100) + min r18.w, r19.w, r19.y + min r18.w, r18.w, r19.x + add r17.z, r17.w, r17.z + mad r17.z, r19.z, r19.z, r17.z + mad r17.y, r17.y, r17.y, -r17.z + mul r17.y, r17.y, cb3[r17.x + 9].x + mul r17.y, r17.y, cb3[r17.x + 9].x + add r17.z, l(1.000000), -cb3[r17.x + 10].y + mul r17.y, r17.z, r17.y + mul r17.y, r17.y, l(100.000000) + mad_sat r17.y, r18.w, cb3[r17.x + 10].y, r17.y + mul r17.z, r17.y, cb3[r17.x + 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, cb3[1].wwww, cb3[2].wwww + mov r19.z, cb3[r17.x + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r18.xyw, r19.xyzx, t4.xywz, s3, r4.w + mul r18.xyw, r18.xyxw, cb3[r17.x + 9].wwww + div r17.w, r7.w, r18.z + min r17.w, |r17.w|, l(1.000000) + mad r17.w, r17.w, l(2.000000), r7.w + add r18.z, r18.z, l(2.000000) + div r17.w, r17.w, r18.z + add r17.w, r17.w, l(-1.000000) + mad r17.w, r17.w, cb0[112].w, l(1.000000) + mul r18.xyz, r17.wwww, r18.xywx + mul r18.xyz, r17.zzzz, r18.xyzx + mad r16.xyz, r18.xyzx, r8.wwww, r16.xyzx + mad r17.x, -r17.y, cb3[r17.x + 10].w, l(1.000000) + mul r8.w, r8.w, r17.x + endif + mov r15.w, l(-1) + continue + else + mov r15.w, r16.w + break + endif + mov r15.w, r16.w +endloop +if_nz r15.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, 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 r16.xyz, r16.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +lt r37.x, l(0.500000), cb13[13].z +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 +ne r1.w, l(0.000000), cb0[112].y +if_nz r1.w + sample_b_indexable(texture2d)(float,float,float,float) r1.w, r0.xzxx, t3.yzwx, s1, cb0[108].x + sample_b_indexable(texture2d)(float,float,float,float) r17.xyz, r0.xzxx, 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.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 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 r13.xy, r13.zwzz, l(2.083000, 4.867000, 0.000000, 0.000000) + dp2 r4.w, r13.xyxx, 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 r13.xy, r1.wwww, cb6[r4.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[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 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.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 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 r4.w, l(0.000000), r1.w + and r5.w, r16.y, r16.x + and r4.w, r4.w, r5.w + lt r16.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + lt r5.w, r1.w, l(1.000000) + and r6.w, r16.y, r16.x + 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 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) r4.w, r20.zwzz, t13.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, t13.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, 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.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 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.z, r13.xyxx, t12.yzxw, 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 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.z, r1.w + mad r0.z, r4.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 r13.x, cb6[34].x, r0.x, l(1.000000) +lt r0.x, l(0.001000), r13.x +if_nz r0.x + dp3 r0.x, -cb5[0].xyzx, r15.xyzx + mad r16.xyz, cb5[0].xyzx, r0.xxxx, r15.xyzx + lt r0.x, r0.x, cb5[4].z + 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 + mul r16.xyz, r16.xyzx, cb5[4].yyyy + mad r16.xyz, -cb5[0].xyzx, cb5[4].zzzz, r16.xyzx + dp3 r0.z, r16.xyzx, r16.xyzx + rsq r0.z, r0.z + mul r16.xyz, r0.zzzz, r16.xyzx + movc r16.xyz, r0.xxxx, r16.xyzx, r15.xyzx + mad r17.xyz, r3.xyzx, r3.wwww, r16.xyzx + dp3 r0.x, r17.xyzx, r17.xyzx + max r0.x, r0.x, l(0.0000610351562) + rsq r0.x, r0.x + mul r17.xyz, r0.xxxx, r17.xyzx + dp3_sat r11.y, r16.xyzx, r6.xyzx + dp3_sat r0.x, r6.xyzx, r17.xyzx + min r11.z, r0.w, 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, r17.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 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 r1.w, -r4.w, r1.w, l(1.000000) + mad r17.xyz, r7.xyzx, r1.wwww, r5.wwww + mul r0.x, r0.x, r0.x + div r0.x, r0.z, r0.x + mad r18.xy, -r11.zyzz, r0.zzzz, r11.zyzz + mad r18.xy, r18.xyxx, r11.zyzz, r0.zzzz + sqrt r18.xy, r18.xyxx + mul r18.xy, r11.yzyy, r18.xyxx + add r0.z, r18.y, r18.x + add r0.z, r0.z, l(0.000100) + div r0.z, l(0.500000), r0.z + mul r0.x, r0.z, r0.x + mul r17.xyz, r0.xxxx, 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) r0.x, r18.xyxx, t15.xyzw, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r0.z, r18.zwzz, t15.yzxw, s1, l(0.000000) + mul r0.x, r0.z, r0.x + mul r0.x, r6.w, r0.x + div r0.x, r0.x, r7.w + mul r18.xyz, r16.xyzx, r16.xyzx + mul r18.xyz, r0.xxxx, r18.xyzx + mad r16.xyz, -r16.xyzx, r7.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 r37.x, l(0.500000), cb13[13].z + if_nz r37.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 r0.x, r10.w, l(0.010000) + div r16.xyz, r16.xyzx, r0.xxxx + 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 r13.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r17.xyz, r13.xyxx, t14.xyzw, s1, cb0[108].x + add r0.x, -r13.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.xz, r13.zzwz, 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, r14.z +round_ni r0.z, r0.z +add r1.w, l(-1.000000), cb4[1].w +max r4.w, r0.z, 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.z, r1.w, r0.z +iadd r1.w, r4.w, cb0[110].y +mul r4.w, r11.w, r11.w +min r11.x, r0.w, l(1.000000) +add r0.w, -r11.w, l(1.000000) +mad r5.w, -r0.w, l(0.383026), l(-0.0761947036) +mad r5.w, r0.w, r5.w, l(1.049970) +mad r0.w, r0.w, r5.w, l(0.409255) +min r0.w, r0.w, l(0.999000) +add r5.w, -r0.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, t15.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 r13.y, l(1.000000) +mov r20.z, r11.w +mov r21.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.z, r9.z + ishl r11.y, r8.w, l(5) + mov r22.xyz, l(0,0,0,0) + mov r11.z, r7.w + mov r12.w, r9.z + 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 r18.w, cb5[r23.z + 6].w + ieq r18.w, r18.w, l(1) + if_nz r18.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 r18.w, r19.xyzw, r28.xyzw + mov r26.x, r24.y + mov r26.z, r25.y + mov r26.w, r27.x + dp4 r20.w, r19.xyzw, r26.xyzw + mov r27.xz, r25.xxzx + dp4 r19.x, r19.xyzw, r27.xyzw + max r18.w, |r18.w|, |r20.w| + max r18.w, |r19.x|, r18.w + mad r19.x, cb5[r17.w + 6].x, l(0.500000), l(0.500000) + add r18.w, r18.w, -r19.x + mad r19.x, -cb5[r17.w + 6].x, l(0.500000), l(0.500000) + div_sat r18.w, r18.w, r19.x + 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.x, l(0.500000), cb5[r23.y + 6].z + lt r19.y, r18.w, l(0.001000) + or r19.y, r19.x, r19.y + if_nz r19.y + mov r12.w, r16.w + continue + endif + ishl r19.y, r15.w, l(3) + bfi r15.w, l(29), l(3), r15.w, l(2) + lt r19.z, cb5[r19.y + 6].w, l(1.500000) + if_nz r19.z + mad r19.z, cb5[r15.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r19.z, -|cb5[r15.w + 6].x| + add r24.y, -r24.x, cb5[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 r20.w, cb5[r15.w + 6].x, l(0.000000) + movc r24.z, r20.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, -r1.xyzx, cb5[r23.x + 6].xyzx + dp3 r19.z, r25.xyzx, r25.xyzx + rsq r20.w, r19.z + mul r26.xyz, r20.wwww, r25.xyzx + ftoi r21.w, cb5[r17.w + 6].w + mul r27.xyz, r24.xyzx, cb5[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 r22.w, cb5[r19.y + 6].w + and r22.w, r22.w, l(1) + ieq r23.z, r22.w, l(0) + not r23.z, r23.z + lt r24.w, l(0.000000), cb5[r15.w + 6].z + and r23.z, r23.z, r24.w + dp3 r24.w, r28.xyzx, r28.xyzx + sqrt r24.w, r24.w + 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.w + 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.w, r24.w, r25.w, r26.w + mad r24.w, r24.w, l(0.500000), l(1.000000) + div r30.y, l(1.000000, 1.000000, 1.000000, 1.000000), r24.w + dp3_sat r13.x, r6.xyzx, r26.xyzx + movc r20.xy, r23.zzzz, 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.z + mad r13.x, -r13.x, r13.x, l(1.000000) + max r13.x, r13.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 r24.w, r23.z, l(0x3f800000) + add r25.w, -r19.z, r20.y + mad r19.z, r24.w, r25.w, r19.z + mul r13.x, r13.x, r13.x + mul r13.x, r13.x, r19.z + else + mul r29.xyz, r25.xyzx, cb5[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, cb5[r23.w + 6].w + exp r19.z, r19.z + mul r13.x, r19.z, r20.y + endif + dp3 r19.z, r26.xyzx, -r24.xyzx + add r19.z, r19.z, -cb5[r15.w + 6].z + mul_sat r19.z, r19.z, cb5[r15.w + 6].w + mul r19.z, r19.z, r19.z + movc r19.z, r22.w, l(1.000000), r19.z + mul r13.x, r13.x, r19.z + not r19.z, r23.z + ige r20.y, r21.w, l(0) + and r19.z, r19.z, r20.y + if_nz r19.z + if_z r22.w + ishl r19.z, r21.w, l(2) + mul r24.xyz, r1.yyyy, cb7[r19.z + 33].xywx + mad r24.xyz, cb7[r19.z + 32].xywx, r1.xxxx, r24.xyzx + mad r24.xyz, cb7[r19.z + 34].xywx, r1.zzzz, r24.xyzx + add r24.xyz, r24.xyzx, cb7[r19.z + 35].xywx + div_sat r24.xy, r24.xyxx, r24.zzzz + mad r24.xy, r24.xyxx, cb7[r21.w + 0].zwzz, cb7[r21.w + 0].xyxx + else + ishl r19.z, r21.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.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 r24.z, l(0.000244140625), cb7[r21.w + 0].w + add r24.z, -r24.z, l(0.500000) + utof r24.w, r19.z + ult r25.x, r19.z, 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[r19.z + 4].z + div r25.x, r25.x, |r20.y| + mad r24.w, r25.x, r24.z, r24.w + add r24.w, r24.w, l(0.500000) + mul_sat r25.x, r24.w, l(0.166666672) + iadd r24.w, l(-1), icb[r19.z + 4].y + dp2 r24.w, r29.yzyy, icb[r24.w + 0].xyxx + mul r19.z, r24.w, icb[r19.z + 4].w + div r19.z, r19.z, |r20.y| + mad_sat r25.y, -r19.z, r24.z, l(0.500000) + mad r24.xy, r25.xyxx, cb7[r21.w + 0].zwzz, cb7[r21.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.z, r24.xyxx, t23.yzxw, s1, l(0.000000) + mul r13.x, r13.x, r19.z + endif + lt r19.z, l(0.000000), r13.x + if_nz r19.z + if_z r22.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 r21.w, r25.y, r25.x + lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx + ushr r22.w, cb5[r15.w + 6].w, l(24) + ubfe r25.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r15.w + 6].wwww + movc r22.w, r24.x, r22.w, r25.x + and r24.x, l(255), cb5[r15.w + 6].w + movc r24.x, r24.y, r25.y, r24.x + ubfe r24.y, l(8), l(8), cb5[r23.y + 6].x + and r24.w, l(255), cb5[r23.y + 6].x + movc r24.y, r24.z, r24.y, r24.w + movc r24.x, r25.z, r24.x, r24.y + movc r21.w, r21.w, r22.w, r24.x + ilt r22.w, r21.w, l(80) + movc r20.y, r22.w, r21.w, l(-1) + endif + mad r24.xyz, r26.xyzx, cb6[r20.y + 288].xxxx, r1.xyzx + mul r21.w, l(5.000000), cb6[r20.y + 288].y + mad r24.xyz, r6.xyzx, r21.wwww, r24.xyzx + ishl r21.w, r20.y, l(2) + mul r25.xyzw, r24.yyyy, cb6[r21.w + 65].xyzw + mad r25.xyzw, cb6[r21.w + 64].xyzw, r24.xxxx, r25.xyzw + mad r24.xyzw, cb6[r21.w + 66].xyzw, r24.zzzz, r25.xyzw + add r24.xyzw, r24.xyzw, cb6[r21.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) r21.w, r35.xyxx, t11.xxxx, s4, r24.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.w, r35.zwzz, t11.xxxx, s4, r24.z + mul r22.w, r22.w, r34.y + mad r21.w, r34.x, r21.w, r22.w + mad r30.zw, r30.xxxy, cb6[400].xxxy, r32.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.w, r30.zwzz, t11.xxxx, s4, r24.z + mad r21.w, r34.z, r22.w, r21.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) r22.w, r35.xyxx, t11.xxxx, s4, r24.z + mad r21.w, r34.w, r22.w, r21.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) r22.w, r32.xyxx, t11.xxxx, s4, r24.z + mad r21.w, r34.x, r22.w, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.w, r32.zwzz, t11.xxxx, s4, r24.z + mad r21.w, r34.y, r22.w, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.w, r35.zwzz, t11.xxxx, s4, r24.z + mad r21.w, r34.z, r22.w, r21.w + ige r22.w, r20.y, l(0) + or r25.xyz, r25.xyzx, r29.xyzx + or r24.x, r25.y, r25.x + or r24.x, r25.z, r24.x + and r24.y, r24.z, l(0x7fffffff) + ult r24.y, l(0x7f800000), r24.y + or r24.x, r24.y, r24.x + mad r25.xyzw, r30.xyxy, cb6[400].xyxy, r33.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.y, r25.xyxx, t11.xxxx, s4, r24.z + mad r21.w, r34.w, r24.y, r21.w + mul r24.y, r24.w, r31.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r24.z, r25.zwzz, t11.xxxx, s4, r24.z + mad r21.w, r24.y, r24.z, r21.w + add r21.w, r21.w, l(-1.000000) + mad r20.y, cb6[r20.y + 288].w, r21.w, l(1.000000) + movc r20.y, r24.x, l(1.000000), r20.y + movc r20.y, r22.w, r20.y, l(1.000000) + else + mov r20.y, l(1.000000) + endif + if_nz r23.z + dp3 r21.w, r15.xyzx, r27.xyzx + mul_sat r22.w, r20.w, cb5[r15.w + 6].z + mad r22.w, r22.w, l(0.500000), r4.w + min r22.w, r22.w, l(1.000000) + div r22.w, r4.w, r22.w + mad r24.xyz, r15.xyzx, r21.wwww, -r27.xyzx + dp3 r23.z, r28.xyzx, r24.xyzx + mul r21.w, r21.w, r21.w + mad r21.w, cb5[r15.w + 6].z, cb5[r15.w + 6].z, -r21.w + div_sat r21.w, r23.z, r21.w + mad r24.xyz, r27.xyzx, r21.wwww, r28.xyzx + dp3 r21.w, r24.xyzx, r24.xyzx + rsq r21.w, r21.w + mul r26.xyz, r21.wwww, r24.xyzx + else + mov r22.w, l(1.000000) + endif + if_nz r19.z + mul_sat r19.z, r20.w, cb5[r17.w + 6].y + mad r24.xyz, r3.xyzx, r3.wwww, r26.xyzx + dp3 r20.w, r24.xyzx, r24.xyzx + max r20.w, r20.w, l(0.0000610351562) + rsq r20.w, r20.w + mul r24.xyz, r20.wwww, r24.xyzx + dp3_sat r20.w, r6.xyzx, r24.xyzx + dp3_sat r21.w, r5.xyzx, r24.xyzx + lt r23.z, l(0.000000), r19.z + mul r19.z, r19.z, r19.z + mad r24.x, r21.w, l(3.600000), l(0.400000) + div r19.z, r19.z, r24.x + mad r19.z, r11.w, r11.w, r19.z + min r19.z, r19.z, l(1.000000) + movc r19.z, r23.z, r19.z, r4.w + mul r19.z, r19.z, r19.z + mad r23.z, r20.w, r19.z, -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.xyz, r7.xyzx, r21.wwww, r24.xxxx + mul r20.w, r20.w, r20.w + div r20.w, r19.z, r20.w + mul r20.w, r22.w, r20.w + mad r21.w, -r11.x, r19.z, r11.x + mad r21.w, r21.w, r11.x, r19.z + sqrt r21.w, r21.w + mad r22.w, -r20.x, r19.z, r20.x + mad r19.z, r22.w, r20.x, r19.z + sqrt r19.z, r19.z + mul r19.z, r11.x, r19.z + mad r19.z, r20.x, r21.w, r19.z + add r19.z, r19.z, l(0.000100) + div r19.z, l(0.500000), r19.z + mul r19.z, r19.z, r20.w + mul r24.xyz, r19.zzzz, r24.xyzx + min r24.xyz, r24.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.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) r19.z, r25.xyxx, t15.yzxw, s1, l(0.000000) + mul r19.z, r6.w, r19.z + mul r19.z, r0.w, r19.z + div r19.z, r19.z, r5.w + mul r25.xyz, r17.xyzx, r19.zzzz + div r25.xyz, r25.xyzx, r18.xyzx + add r24.xyz, r24.xyzx, r25.xyzx + mul r24.xyz, r24.xyzx, cb5[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, r9.xywx, r20.xxxx + mad r24.xyz, r24.xyzx, r20.xxxx, r25.xyzx + mul r25.xyz, r13.xxxx, cb5[r19.y + 6].xyzx + mul r20.xyw, r20.yyyy, r25.xyxz + mul r20.xyw, r18.wwww, r20.xyxw + mul r20.xyw, r20.xyxw, r24.xyxz + else + mov r20.xyw, l(0,0,0,0) + endif + else + if_z r19.x + mad r13.x, cb5[r15.w + 6].y, l(0.500000), l(0.500000) + add r24.x, r13.x, -|cb5[r15.w + 6].x| + add r24.y, -r24.x, cb5[r15.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 r18.w, cb5[r15.w + 6].x, l(0.000000) + movc r24.z, r18.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 r18.w, r13.x + mul r26.xyz, r18.wwww, r25.xyzx + ftoi r17.w, cb5[r17.w + 6].w + mul r27.xyz, r24.xyzx, cb5[r15.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.w, cb5[r19.y + 6].w + and r18.w, r18.w, l(1) + ieq r19.x, r18.w, l(0) + not r19.x, r19.x + lt r19.y, l(0.000000), cb5[r15.w + 6].z + and r19.x, r19.y, r19.x + dp3 r19.y, r28.xyzx, r28.xyzx + dp3 r19.z, r27.xyzx, r27.xyzx + sqrt r19.yz, r19.yyzy + dp3 r21.w, r28.xyzx, r27.xyzx + mad r19.y, r19.y, r19.z, r21.w + mad r19.y, r19.y, l(0.500000), l(1.000000) + div r19.y, l(1.000000, 1.000000, 1.000000, 1.000000), r19.y + movc r19.y, r19.x, r19.y, l(1.000000) + lt r19.z, cb5[r23.w + 6].w, l(0.000000) + if_nz r19.z + mul r19.z, cb5[r23.x + 6].w, cb5[r23.x + 6].w + mul r19.z, r13.x, r19.z + mad r19.z, -r19.z, r19.z, l(1.000000) + max r19.z, r19.z, 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 r21.w, r19.x, l(0x3f800000) + add r22.w, -r13.x, r19.y + mad r13.x, r21.w, r22.w, r13.x + mul r19.z, r19.z, r19.z + mul r13.x, r13.x, r19.z + else + mul r27.xyz, r25.xyzx, cb5[r23.x + 6].wwww + dp3 r19.z, r27.xyzx, r27.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 r13.x, r19.z, r19.y + endif + dp3 r19.y, r26.xyzx, -r24.xyzx + add r19.y, r19.y, -cb5[r15.w + 6].z + mul_sat r19.y, r19.y, cb5[r15.w + 6].w + mul r19.y, r19.y, r19.y + movc r19.y, r18.w, l(1.000000), r19.y + mul r13.x, r13.x, r19.y + not r19.x, r19.x + ige r19.y, r17.w, l(0) + and r19.x, r19.y, r19.x + if_nz r19.x + if_z r18.w + ishl r19.x, r17.w, l(2) + mul r24.xyz, r1.yyyy, cb7[r19.x + 33].xywx + mad r24.xyz, cb7[r19.x + 32].xywx, r1.xxxx, r24.xyzx + mad r24.xyz, cb7[r19.x + 34].xywx, r1.zzzz, r24.xyzx + add r19.xyz, r24.xyzx, cb7[r19.x + 35].xywx + div_sat r19.xy, r19.xyxx, r19.zzzz + mad r19.xy, r19.xyxx, cb7[r17.w + 0].zwzz, cb7[r17.w + 0].xyxx + else + ishl r19.z, r17.w, l(2) + dp3 r24.x, -r25.xyzx, cb7[r19.z + 32].xyzx + dp3 r24.y, -r25.xyzx, cb7[r19.z + 33].xyzx + dp3 r24.z, -r25.xyzx, cb7[r19.z + 34].xyzx + lt r19.z, |r24.x|, |r24.y| + and r19.z, r19.z, l(1) + dp2 r21.w, |r24.xyxx|, icb[r19.z + 0].xyxx + lt r21.w, r21.w, |r24.z| + movc r19.z, r21.w, l(2), r19.z + dp3 r21.w, r24.xyzx, icb[r19.z + 0].xyzx + lt r21.w, r21.w, l(0.000000) + bfi r19.z, l(31), l(1), r19.z, r21.w + ushr r21.w, r19.z, l(1) + dp3 r21.w, r24.xyzx, icb[r21.w + 0].xyzx + div r22.w, l(0.000244140625), cb7[r17.w + 0].w + add r22.w, -r22.w, l(0.500000) + utof r23.z, r19.z + ult r23.w, r19.z, l(2) + and r23.w, r23.w, l(2) + dp2 r23.w, r24.xzxx, icb[r23.w + 0].xzxx + mul r23.w, r23.w, icb[r19.z + 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 r25.x, r23.z, l(0.166666672) + iadd r23.z, l(-1), icb[r19.z + 4].y + dp2 r23.z, r24.yzyy, icb[r23.z + 0].xyxx + mul r19.z, r23.z, icb[r19.z + 4].w + div r19.z, r19.z, |r21.w| + mad_sat r25.y, -r19.z, r22.w, l(0.500000) + mad r19.xy, r25.xyxx, cb7[r17.w + 0].zwzz, cb7[r17.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.w, r19.xyxx, t23.yzwx, s1, l(0.000000) + mul r13.x, r13.x, r17.w + endif + lt r13.x, l(0.000000), r13.x + if_nz r13.x + if_z r18.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 r17.w, r23.z, r23.x + lt r19.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r19.xyzx + ushr r18.w, cb5[r15.w + 6].w, l(24) + ubfe r23.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb5[r15.w + 6].wwww + movc r18.w, r19.x, r18.w, r23.x + and r15.w, l(255), cb5[r15.w + 6].w + movc r15.w, r19.y, r23.z, r15.w + ubfe r19.x, l(8), l(8), cb5[r23.y + 6].x + and r19.y, l(255), cb5[r23.y + 6].x + movc r19.x, r19.z, r19.x, r19.y + movc r15.w, r23.w, r15.w, r19.x + movc r15.w, r17.w, r18.w, r15.w + ilt r17.w, r15.w, l(80) + movc r13.x, r17.w, r15.w, l(-1) + endif + mad r19.xyz, r26.xyzx, cb6[r13.x + 288].xxxx, r1.xyzx + mul r15.w, l(5.000000), cb6[r13.x + 288].y + mad r19.xyz, r6.xyzx, r15.wwww, r19.xyzx + ishl r15.w, r13.x, l(2) + mul r23.xyzw, r19.yyyy, cb6[r15.w + 65].xyzw + mad r23.xyzw, cb6[r15.w + 64].xyzw, r19.xxxx, r23.xyzw + mad r23.xyzw, cb6[r15.w + 66].xyzw, r19.zzzz, r23.xyzw + add r23.xyzw, r23.xyzw, cb6[r15.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) r15.w, r31.xyxx, t11.xxxx, s4, r19.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r31.zwzz, t11.xxxx, s4, r19.z + mul r17.w, r17.w, r30.y + mad r15.w, r30.x, r15.w, r17.w + mad r19.xy, r25.xyxx, cb6[400].xyxx, r29.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r19.xyxx, t11.xxxx, s4, r19.z + mad r15.w, r30.z, r17.w, r15.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) r17.w, r31.xyxx, t11.xxxx, s4, r19.z + mad r15.w, r30.w, r17.w, r15.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) r17.w, r29.xyxx, t11.xxxx, s4, r19.z + mad r15.w, r30.x, r17.w, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r29.zwzz, t11.xxxx, s4, r19.z + mad r15.w, r30.y, r17.w, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r31.zwzz, t11.xxxx, s4, r19.z + mad r15.w, r30.z, r17.w, r15.w + ige r17.w, r13.x, l(0) + or r23.xyz, r23.xyzx, r24.xyzx + or r18.w, r23.y, r23.x + or r18.w, r23.z, r18.w + and r19.x, r19.z, l(0x7fffffff) + ult r19.x, l(0x7f800000), r19.x + or r18.w, r18.w, r19.x + mad r23.xyzw, r25.xyxy, cb6[400].xyxy, r28.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r23.xyxx, t11.xxxx, s4, r19.z + mad r15.w, r30.w, r19.x, r15.w + mul r19.x, r26.y, r27.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.y, r23.zwzz, t11.xxxx, s4, r19.z + mad r15.w, r19.x, r19.y, r15.w + add r15.w, r15.w, l(-1.000000) + mad r13.x, cb6[r13.x + 288].w, r15.w, l(1.000000) + movc r13.x, r18.w, l(1.000000), r13.x + movc r13.x, r17.w, r13.x, l(1.000000) + else + mov r13.x, l(1.000000) + endif + else + mov r13.x, l(1.000000) + endif + mul r11.z, r11.z, r13.x + mov r20.xyw, l(0,0,0,0) + endif + add r22.xyz, r20.xywx, r22.xyzx + mov r12.w, r16.w + endloop + mov r7.w, r11.z + add r21.xyz, r21.xyzx, r22.xyzx + iadd r8.w, r8.w, l(1) +endloop +// === Glass Fix: Reduce clustered lights and overall brightness === +lt r37.x, l(0.500000), cb13[13].z +if_nz r37.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.xzw, cb0[184].wwww, r1.xxzw, r0.xxxx +mad r1.xzw, r21.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 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 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, r13.zwzz + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r3.w, r14.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, t22.xyzw, s1, l(0.000000) + add r4.x, r14.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[13].z +if_nz r37.x + // Boost transmittance: lerp(r4, 1, 0.5) + 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 + // Reduce inscatter intensity + mul r38.xyz, r1.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + // Modified fog blend + mad r10.xyz, r0.xzwx, r37.xyzx, r38.xyzx +else + // Original fog blend + 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[13].z +if_nz r37.x + // Compute luminance + dp3 r37.y, r10.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000) + // Soft compress if luminance > 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 +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0x41AF9F2B.cso b/src/games/endfield/glass/0x41AF9F2B.cso new file mode 100644 index 000000000..0ddff3440 Binary files /dev/null and b/src/games/endfield/glass/0x41AF9F2B.cso differ 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..bb9abbf0c --- /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[13].z +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[13].z + 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[13].z +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[13].z +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[13].z +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 000000000..821f58396 Binary files /dev/null and b/src/games/endfield/glass/0x424F9536.cso differ diff --git a/src/games/endfield/glass/0x424F9536.ps_5_0.asm b/src/games/endfield/glass/0x424F9536.ps_5_0.asm new file mode 100644 index 000000000..67e0d77e7 --- /dev/null +++ b/src/games/endfield/glass/0x424F9536.ps_5_0.asm @@ -0,0 +1,1833 @@ +// +// 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 xyzw 1 NONE float xyzw +// TEXCOORD 1 xyzw 2 NONE float xy +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyzw 5 NONE float xyzw +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 x 8 NONE uint x +// SV_IsFrontFace 0 x 9 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[22], 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_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_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_texture3d (float,float,float,float) t10 +dcl_resource_texture3d (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_texture2d (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.xyzw +dcl_input_ps linear v2.xy +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyzw +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps constant v8.x +dcl_input_ps_sgv constant v9.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 38 +mul r0.xy, v0.xyxx, cb0[82].zwzz +ftou r1.xy, v0.xyxx +mad r0.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r2.xyzw, -r0.wwww, cb0[25].xyzw +mad r2.xyzw, cb0[24].xyzw, r0.zzzz, r2.xyzw +mad r2.xyzw, cb0[26].xyzw, v0.zzzz, r2.xyzw +add r2.xyzw, r2.xyzw, cb0[27].xyzw +div r2.xyz, r2.xyzx, r2.wwww +mul r0.z, r2.y, cb0[1].z +mad r0.z, cb0[0].z, r2.x, r0.z +mad r0.z, cb0[2].z, r2.z, r0.z +add r0.z, r0.z, cb0[3].z +mov r1.z, |r0.z| +lt r0.z, l(0.000000), v4.w +movc r0.z, r0.z, l(1.000000), l(-1.000000) +eq r0.w, l(0.000000), cb0[86].w +add r3.xyz, -r2.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 r1.w, r0.w, l(9.999999939E-09) +rsq r1.w, r1.w +mul r5.xyz, r1.wwww, r3.xyzx +mul r0.w, r0.w, r1.w +add r6.xyzw, -v5.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) +mad r6.xyzw, cb2[1].yyyy, r6.xyzw, v5.xyzw +mul r6.xyzw, r6.xyzw, cb2[4].xyzw +mul r6.xyzw, r6.xyzw, cb2[1].zzzw +add r3.w, l(1.000000), -cb2[3].x +mad r3.w, cb0[109].x, cb2[3].x, r3.w +div r6.xyz, r6.xyzx, r3.wwww +mul r7.xyzw, v2.xxyy, cb2[1].xxxx +mad r8.xyzw, v1.zzww, cb2[1].xxxx, -r7.xyzw +add r8.xyzw, r8.xyzw, v2.xxyy +mul r9.xyzw, r8.yyww, cb2[8].yyyy +mad r9.xyzw, v1.xxyy, cb2[8].xxxx, r9.xyzw +mad r9.xyzw, cb2[6].xxyy, cb0[183].wwww, r9.xyzw +mad r9.xyzw, cb2[6].zzww, r7.yyyy, r9.xyzw +add r9.xyzw, r9.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r9.xyzw, r9.xyzw, cb2[7].xyzw +add r7.xy, r9.zwzz, r9.xyxx +add r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r7.xy, r7.xyxx, cb2[9].xyxx, cb2[9].zwzz +ishl r3.w, v8.x, l(4) +add r4.w, cb1[r3.w + 3].y, cb1[r3.w + 3].x +add r4.w, r4.w, cb1[r3.w + 3].z +frc r4.w, r4.w +mul r5.w, r4.w, cb2[21].z +min r5.w, r5.w, l(0.500000) +add r5.w, r5.w, l(1.000000) +mul r7.z, r5.w, r7.y +mad r7.xy, cb2[21].zzzz, r4.wwww, r7.xzxx +add r4.w, l(1.000000), cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r9.xyzw, r7.xyxx, t3.xyzw, s5, r4.w +mov r10.x, l(1.000000) +mov r10.w, r9.x +add r10.xyzw, -r9.xyzw, r10.xxxw +mad r9.xyzw, cb2[5].yyyy, r10.xyzw, r9.xyzw +mul r6.xyzw, r6.xyzw, r9.xyzw +mul r8.xyzw, r8.xyzw, cb2[18].yyyy +mad r8.xyzw, v1.xxyy, cb2[18].xxxx, r8.xyzw +mad r8.xyzw, cb2[16].xxyy, cb0[183].wwww, r8.xyzw +mad r7.xyzw, cb2[16].zzww, r7.wwww, r8.xyzw +add r7.xyzw, r7.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r7.xyzw, r7.xyzw, cb2[17].xyzw +add r7.xy, r7.zwzz, r7.xyxx +add r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r7.xy, r7.xyxx, cb2[15].xyxx, cb2[15].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, r7.xyxx, t4.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 r4.w, r7.xyxx, r7.xyxx +min r4.w, r4.w, l(1.000000) +add r4.w, -r4.w, l(1.000000) +sqrt r4.w, r4.w +max r8.z, r4.w, l(1.000000017E-16) +mul r8.xy, r7.xyxx, cb2[14].xxxx +dp3 r4.w, r8.xyzx, r8.xyzx +rsq r4.w, r4.w +mul r7.xyz, r4.wwww, r8.xyzx +mul r8.xyz, v3.zxyz, v4.yzxy +mad r8.xyz, v3.yzxy, v4.zxyz, -r8.xyzx +mul r8.xyz, r0.zzzz, r8.xyzx +mul r8.xyz, r7.yyyy, r8.xyzx +mad r7.xyw, r7.xxxx, v4.xyxz, r8.xyxz +mad r7.xyz, r7.zzzz, v3.xyzx, r7.xywx +utof r8.xy, r1.xyxx +mul r8.xy, r8.xyxx, cb0[82].zwzz +mad r8.xy, r8.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t1.xyzw, s0, l(0.000000) +mul r9.xyzw, -r8.yyyy, cb0[25].xyzw +mad r8.xyzw, cb0[24].xyzw, r8.xxxx, r9.xyzw +mad r8.xyzw, cb0[26].xyzw, r0.xxxx, r8.xyzw +add r8.xyzw, r8.xyzw, cb0[27].xyzw +movc r7.xyz, v9.xxxx, r7.xyzx, -r7.xyzx +ne r0.x, l(0.000000), cb2[11].x +add r0.yz, r1.zzzz, -cb2[11].yywy +add r4.w, -cb2[11].y, cb2[11].z +div_sat r0.y, r0.y, r4.w +add r4.w, -cb2[11].w, cb2[12].x +div_sat r0.z, r0.z, r4.w +mul r0.y, r0.z, r0.y +movc r0.x, r0.x, r0.y, l(1.000000) +mul r0.x, r0.x, r6.w +div r8.xyz, r8.xyzx, r8.wwww +mul r0.y, r8.y, cb0[1].z +mad r0.y, cb0[0].z, r8.x, r0.y +mad r0.y, cb0[2].z, r8.z, r0.y +add r0.y, r0.y, cb0[3].z +add r0.y, -r1.z, |r0.y| +add r0.y, r0.y, cb2[13].y +div_sat r0.y, r0.y, cb2[13].x +mul r0.x, r0.y, r0.x +add r0.y, v5.w, l(-1.000000) +mad r0.y, cb2[21].x, r0.y, l(1.000000) +mul r0.x, r0.y, r0.x +dp3 r0.y, v3.xyzx, r5.xyzx +log r0.y, |r0.y| +mul r0.y, r0.y, cb2[19].y +exp r0.y, r0.y +add r0.y, r0.y, l(-1.000000) +mad r0.y, cb2[19].w, r0.y, l(1.000000) +mul r0.x, r0.y, r0.x +add r0.y, l(1.000000), -cb1[r3.w + 4].y +mul_sat r0.x, r0.y, r0.x +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) +mul r8.xyz, r6.xyzx, cb2[20].xxxx +add r0.y, l(1.000000), cb2[0].w +add_sat r0.y, r0.y, -cb2[0].x +lt r0.y, l(0.500000), r0.y +max r0.z, v6.z, l(9.999999939E-09) +div r9.xy, v6.xyxx, r0.zzzz +max r0.z, v7.z, l(9.999999939E-09) +div r9.zw, v7.xxxy, r0.zzzz +add r9.xy, -r9.zwzz, r9.xyxx +mul r10.xy, r9.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r10.xy, |r10.xyxx| +sqrt r10.xy, r10.xyxx +mov r9.z, -r9.y +lt r9.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r9.xxxz +lt r9.xz, r9.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r9.xy, -r9.ywyy, r9.xzxx +itof r9.xy, r9.xyxx +mul r9.xy, r9.xyxx, r10.xyxx +mad r9.xy, r9.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +and r0.yz, r0.yyyy, r9.xxyx +mul r3.w, l(0.080000), cb2[20].w +mul r9.xyz, r8.xyzx, cb2[20].yyyy +mad r9.xyz, r6.xyzx, cb2[20].xxxx, -r9.xyzx +mad r3.w, -r3.w, cb2[20].y, r3.w +mad r8.xyz, r8.xyzx, cb2[20].yyyy, r3.wwww +dp3 r3.w, r7.xyzx, r5.xyzx +mad r10.xyzw, cb2[20].zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r4.w, r10.x, r10.x +max r3.w, r3.w, l(0.000000) +mul r5.w, r3.w, l(-9.280000) +exp r5.w, r5.w +min r4.w, r4.w, r5.w +mad r4.w, r4.w, r10.x, r10.y +mad r10.xy, r4.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r10.zwzz +eq r4.w, l(1.000000), cb0[113].y +mul r11.xyzw, r2.yyyy, cb0[241].xyzw +mad r11.xyzw, cb0[240].xyzw, r2.xxxx, r11.xyzw +mad r11.xyzw, cb0[242].xyzw, r2.zzzz, r11.xyzw +add r11.xyzw, r11.xyzw, cb0[243].xyzw +div r5.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, r5.wwww, r11.xyzx +mad_sat r10.zw, r11.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) +mul r10.zw, r10.zzzw, cb0[82].xxxy +ftou r12.xy, r10.zwzz +mad r5.w, cb0[84].z, r11.z, cb0[84].w +div r12.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +movc r11.xyz, r4.wwww, r12.xyzx, r1.xyzx +mad r1.xyz, r7.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r2.xyzx +mad r12.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r12.xyz, r1.xzyx, -r12.xyzx +max r4.w, |r12.y|, |r12.x| +add r4.w, r4.w, l(-464.000000) +mul_sat r4.w, r4.w, l(0.031250) +add r5.w, |r12.z|, l(-208.000000) +mul_sat r5.w, r5.w, l(0.031250) +max r4.w, r4.w, r5.w +ne r5.w, l(0.000000), cb0[210].w +lt r6.w, r4.w, l(1.000000) +and r5.w, r5.w, r6.w +if_nz r5.w + mad r12.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r12.xyz, r1.xzyx, -r12.xyzx + max r5.w, |r12.y|, |r12.x| + add r5.w, r5.w, l(-29.000000) + mul_sat r5.w, r5.w, l(0.500000) + add r6.w, |r12.z|, l(-13.000000) + mul_sat r6.w, r6.w, l(0.500000) + max r5.w, r5.w, r6.w + lt r6.w, r5.w, l(1.000000) + if_nz r6.w + mad r12.xyz, r1.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.xyz, r12.xyzx, t6.xyzw, s2, l(0.000000) + add r6.w, -r5.w, 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, r12.y + min r8.w, r9.w, r8.w + mul r12.w, r8.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r12.xwzx, t7.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 r15.xyz, r13.xxxx, r14.xyzx + add r14.xyz, r12.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyz, r14.xyzx, t7.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 r16.xyz, r13.yyyy, r14.xyzx + add r12.xyz, r12.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t7.xyzw, s1, 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.zzzz, r12.xyzx + mad r8.w, r14.w, r6.w, r4.w + mov r12.w, r13.z + mul r12.xyzw, r6.wwww, r12.xyzw + mov r16.w, r13.y + mul r14.xyzw, r6.wwww, r16.xyzw + mov r15.w, r13.x + mul r13.xyzw, r6.wwww, r15.xyzw + else + mov r12.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r8.w, r4.w + endif + mad r15.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r15.xyz, r1.xzyx, -r15.xyzx + max r6.w, |r15.y|, |r15.x| + add r6.w, r6.w, l(-116.000000) + mul_sat r6.w, r6.w, l(0.125000) + add r9.w, |r15.z|, l(-52.000000) + mul_sat r9.w, r9.w, l(0.125000) + max r6.w, r6.w, r9.w + lt r9.w, r6.w, l(1.000000) + if_nz r9.w + mad r15.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 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, t8.xyzw, s2, l(0.000000) + add r9.w, -r6.w, l(1.000000) + mul r5.w, r5.w, r9.w + mul r9.w, l(0.500000), cb0[211].y + mad r10.z, -cb0[211].y, l(0.500000), l(1.000000) + max r9.w, r9.w, r15.y + min r9.w, r10.z, r9.w + mul r15.w, r9.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.xwzx, t9.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, t9.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, t9.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, r5.w, r8.w + mov r15.w, r16.z + mad r12.xyzw, r15.xyzw, r5.wwww, r12.xyzw + mov r19.w, r16.y + mad r14.xyzw, r19.xyzw, r5.wwww, r14.xyzw + mov r18.w, r16.x + mad r13.xyzw, r18.xyzw, r5.wwww, r13.xyzw + endif + lt r5.w, l(0.000000), r6.w + if_nz r5.w + mad r1.xyz, r1.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r1.xyzx, cb0[211].xyzx + mul r16.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r1.xyz, r1.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 r1.xyz, r16.xyzx, r1.xyzx + min r17.xyz, r15.xyzx, r1.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t10.yzwx, s2, l(0.000000) + add r1.x, -r4.w, l(1.000000) + mul r1.x, r1.x, r6.w + max r1.y, r16.y, r17.y + min r1.y, r15.y, r1.y + mul r17.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r17.xwzx, t11.xyzw, s1, l(0.000000) + add r16.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t11.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.yyyy, r16.xyzx + mov r16.w, r18.y + mad r12.xyzw, r16.xyzw, r1.xxxx, r12.xyzw + add r16.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t11.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, r1.xxxx, r14.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 r18.xyz, r18.wwww, r15.xyzx + mad r13.xyzw, r18.xyzw, r1.xxxx, r13.xyzw + mad r8.w, r15.w, r1.x, r8.w + endif + mad_sat r1.x, r8.w, l(2.000000), l(-1.000000) + add r15.x, -r4.w, r1.x + add r1.x, r4.w, r1.x + mul r15.y, r1.x, l(0.500000) +else + mov r12.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r15.xy, l(0,1.000000,0,0) +endif +mul r16.xyzw, r15.yyyx, cb0[213].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r15.yxyy, cb0[213].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r13.xyzw, r13.xyzw, r16.xyzw +mul r16.xyzw, r15.yyyx, cb0[214].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r15.yxyy, cb0[214].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r14.xyzw, r14.xyzw, r16.xyzw +mul r16.xyzw, r15.yyyx, cb0[215].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r15.yxyy, cb0[215].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r12.xyzw, r12.xyzw, r16.xyzw +dp3 r1.x, r13.xyzx, r7.xyzx +add r1.x, r13.w, r1.x +max r1.x, r1.x, l(0.000000) +dp3 r4.w, r14.xyzx, r7.xyzx +add r4.w, r14.w, r4.w +max r1.y, r4.w, l(0.000000) +dp3 r4.w, r12.xyzx, r7.xyzx +add r4.w, r12.w, r4.w +max r1.z, r4.w, l(0.000000) +mul r12.xyz, r9.xyzx, r1.xyzx +mul r10.zw, r12.xxxy, cb0[111].xxxx +dp3 r4.w, -r5.xyzx, r7.xyzx +add r4.w, r4.w, r4.w +mad r13.xyz, r7.xyzx, -r4.wwww, -r5.xyzx +add r4.w, l(-1.000000), cb0[113].x +max r5.w, l(0.001000), cb2[20].z +log r5.w, r5.w +mad r5.w, -r5.w, l(1.200000), l(1.000000) +add r4.w, r4.w, -r5.w +utof r14.xy, r11.xyxx +mul r14.zw, r14.xxxy, cb3[0].wwww +round_ni r14.zw, r14.zzzw +add r5.w, r11.z, -cb3[2].y +round_ni r5.w, r5.w +add r6.w, l(-1.000000), cb3[1].x +max r8.w, r5.w, l(0.000000) +min r6.w, r6.w, r8.w +ge r5.w, r6.w, r5.w +mad r8.w, r14.w, cb3[0].x, r14.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 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, r8.w +and r5.w, r5.w, r6.w +mul r1.xyz, r1.xyzx, cb0[111].xxxx +dp3 r1.x, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r2.w, l(1.000000) +mov r7.w, l(1.000000) +mov r15.xyz, l(0,0,0,0) +mov r1.y, l(1.000000) +mov r1.z, r5.w +mov r6.w, l(0) +loop + lt r8.w, l(0.010000), r1.y + ine r9.w, r1.z, l(0) + and r9.w, r8.w, r9.w + if_nz r9.w + firstbit_lo r9.w, r1.z + ishl r12.w, l(1), r9.w + xor r1.z, r1.z, r12.w + ishl r9.w, r9.w, l(3) + dp4 r16.x, cb3[r9.w + 6].xyzw, r2.xyzw + dp4 r16.y, cb3[r9.w + 7].xyzw, r2.xyzw + dp4 r16.z, cb3[r9.w + 8].xyzw, r2.xyzw + ge r17.xyz, cb3[r9.w + 5].xyzx, |r16.xyzx| + and r12.w, r17.y, r17.x + and r12.w, r17.z, r12.w + if_nz r12.w + mul r12.w, l(0.100000), cb3[r9.w + 5].x + mul r17.xyz, |r16.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r14.zw, r17.xxxy, r17.xxxy + add r17.xyw, -|r16.xyxz|, cb3[r9.w + 5].xyxz + mul r17.xyw, r17.xyxw, cb3[r9.w + 9].xyxz + eq r13.w, l(1.000000), cb3[r9.w + 10].x + if_nz r13.w + dp3 r18.x, cb3[r9.w + 6].xyzx, r13.xyzx + dp3 r18.y, cb3[r9.w + 7].xyzx, r13.xyzx + dp3 r18.z, cb3[r9.w + 8].xyzx, r13.xyzx + add r19.xyz, -r16.xyzx, cb3[r9.w + 5].xyzx + div r19.xyz, r19.xyzx, r18.xyzx + add r20.xyz, -r16.xyzx, -cb3[r9.w + 5].xyzx + div r20.xyz, r20.xyzx, r18.xyzx + lt r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + movc r19.xyz, r21.xyzx, r19.xyzx, r20.xyzx + min r13.w, r19.y, r19.x + min r13.w, r19.z, r13.w + mad r16.xyz, r18.xyzx, r13.wwww, r16.xyzx + else + mov r16.xyz, r13.xyzx + endif + dp3 r13.w, r16.xyzx, r16.xyzx + rsq r13.w, r13.w + mul r16.xyz, r13.wwww, r16.xyzx + lt r18.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xyzx + lt r19.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + iadd r18.xyz, -r18.xyzx, r19.xyzx + itof r18.xyz, r18.xyzx + dp3 r13.w, r16.xyzx, r18.xyzx + div r16.xyz, r16.xyzx, r13.wwww + lt r13.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, r18.xxxy + movc r16.xy, r13.wwww, r16.zwzz, r16.xyxx + dp4 r13.w, cb3[r9.w + 4].xyzw, r7.xyzw + max r13.w, r13.w, l(0.000000) + max r13.w, r13.w, l(0.000100) + min r15.w, r17.w, r17.y + min r15.w, r15.w, r17.x + add r14.z, r14.w, r14.z + mad r14.z, r17.z, r17.z, r14.z + mad r12.w, r12.w, r12.w, -r14.z + mul r12.w, r12.w, cb3[r9.w + 9].x + mul r12.w, r12.w, cb3[r9.w + 9].x + add r14.z, l(1.000000), -cb3[r9.w + 10].y + mul r12.w, r12.w, r14.z + mul r12.w, r12.w, l(100.000000) + mad_sat r12.w, r15.w, cb3[r9.w + 10].y, r12.w + mul r14.z, r12.w, cb3[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, cb3[1].wwww, cb3[2].wwww + mov r16.z, cb3[r9.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t2.xyzw, s3, r4.w + mul r16.xyz, r16.xyzx, cb3[r9.w + 9].wwww + div r14.w, r1.x, r13.w + min r14.w, |r14.w|, l(1.000000) + mad r14.w, r14.w, l(2.000000), r1.x + add r13.w, r13.w, l(2.000000) + div r13.w, r14.w, r13.w + add r13.w, r13.w, l(-1.000000) + mad r13.w, r13.w, cb0[112].w, l(1.000000) + mul r16.xyz, r13.wwww, r16.xyzx + mul r16.xyz, r14.zzzz, r16.xyzx + mad r15.xyz, r16.xyzx, r1.yyyy, r15.xyzx + mad r9.w, -r12.w, cb3[r9.w + 10].w, l(1.000000) + mul r1.y, r1.y, r9.w + endif + mov r6.w, l(-1) + continue + else + mov r6.w, r8.w + break + endif + mov r6.w, r8.w +endloop +if_nz r6.w + dp3 r1.z, r13.xyzx, r13.xyzx + rsq r1.z, r1.z + mul r16.xyz, r1.zzzz, r13.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 r1.z, r16.xyzx, r17.xyzx + div r16.xyz, r16.xyzx, r1.zzzz + lt r1.z, 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, r1.zzzz, r14.zzzw, r16.xxxy + mov r7.w, l(1.000000) + dp4 r1.z, cb3[3].xyzw, r7.xyzw + max r1.z, r1.z, l(0.000000) + max r1.z, r1.z, 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, t2.xyzw, s3, r4.w + div r2.w, r1.x, r1.z + min r2.w, |r2.w|, l(1.000000) + mad r1.x, r2.w, l(2.000000), r1.x + add r1.z, r1.z, l(2.000000) + div r1.x, r1.x, r1.z + add r1.x, r1.x, l(-1.000000) + mad r1.x, r1.x, cb0[112].w, l(1.000000) + mul r16.xyz, r1.xxxx, r16.xyzx + mad r15.xyz, r16.xyzx, r1.yyyy, r15.xyzx +endif +mul r1.xyz, r15.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +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 +mul r1.xyz, r1.xyzx, cb0[111].yyyy +mul_sat r2.w, r8.y, l(50.000000) +mul r2.w, r10.y, r2.w +mad r15.xyz, r8.xyzx, r10.xxxx, r2.wwww +mul r1.xyz, r1.xyzx, r15.xyzx +max r2.w, r0.x, l(0.010000) +div r1.xyz, r1.xyzx, r2.wwww +add r4.w, r10.w, r10.z +mad r4.w, r12.z, cb0[111].x, r4.w +mul r4.w, r4.w, l(0.333333343) +add r5.w, r1.y, r1.x +add r5.w, r1.z, r5.w +mul r6.w, r5.w, l(0.333333343) +mad r10.xyz, r12.xyzx, cb0[111].xxxx, -r4.wwww +mad r10.xyz, r10.xyzx, cb2[19].zzzz, r4.wwww +mad r1.xyz, -r5.wwww, l(0.333333343, 0.333333343, 0.333333343, 0.000000), r1.xyzx +mad r1.xyz, r1.xyzx, cb2[19].zzzz, r6.wwww +add r1.xyz, r1.xyzx, r10.xyzx +lt r4.w, cb6[35].w, l(0.990000) +if_nz r4.w + mad r10.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xyzx + ftoi r4.w, cb6[35].x + ieq r5.w, r4.w, l(2) + movc r12.xyz, r5.wwww, cb6[20].xyzx, cb0[44].xyzx + add r12.xyz, r10.xyzx, -r12.xyzx + dp3 r5.w, r12.xyzx, r12.xyzx + add r5.w, -r5.w, cb6[34].w + mul_sat r5.w, r5.w, cb6[34].z + lt r6.w, l(0.000000), r5.w + if_nz r6.w + ilt r4.w, l(0), r4.w + if_nz r4.w + add r12.xyz, r10.xyzx, -cb6[20].xyzx + add r15.xyz, r10.xyzx, -cb6[21].xyzx + add r16.xyz, r10.xyzx, -cb6[22].xyzx + add r17.xyz, r10.xyzx, -cb6[23].xyzx + dp3 r12.x, r12.xyzx, r12.xyzx + dp3 r12.y, r15.xyzx, r15.xyzx + dp3 r12.z, r16.xyzx, r16.xyzx + dp3 r12.w, r17.xyzx, r17.xyzx + lt r15.x, r12.x, cb6[20].w + lt r15.y, r12.y, cb6[21].w + lt r15.z, r12.z, cb6[22].w + lt r15.w, r12.w, cb6[23].w + and r16.xyzw, r15.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r15.xyz, r15.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r15.xyz, r15.xyzx, r16.yzwy + max r16.yzw, r15.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r4.w, r16.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r4.w, -r4.w, l(4.000000) + max r4.w, r4.w, l(0.000000) + min r4.w, r4.w, l(3.000000) + add r6.w, r4.w, l(1.000000) + min r6.w, r6.w, l(3.000000) + ftou r6.w, r6.w + dp3 r7.w, r12.yzwy, icb[r6.w + 0].yzwy + div r6.w, r7.w, cb6[r6.w + 20].w + ge r7.w, r6.w, l(0.000000) + ge r6.w, l(1.000000), r6.w + and r6.w, r6.w, r7.w + if_nz r6.w + ftou r6.w, r4.w + add r14.zw, r14.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r7.w, r14.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r7.w, r7.w + mul r7.w, r7.w, l(52.982918) + frc r7.w, r7.w + dp4 r8.w, r12.xyzw, icb[r6.w + 0].xyzw + div r6.w, r8.w, cb6[r6.w + 20].w + sqrt r6.w, r6.w + add r6.w, r6.w, l(-0.900000) + mul r6.w, r6.w, l(12.000000) + ge r6.w, r6.w, r7.w + and r6.w, r6.w, l(0x3f800000) + add r4.w, r4.w, r6.w + endif + dp3 r6.w, r7.xyzx, cb5[0].xyzx + max r6.w, r6.w, l(0.000000) + min r6.w, r6.w, l(0.900000) + add r6.w, -r6.w, l(1.000000) + ftou r7.w, r4.w + ishl r8.w, r7.w, l(2) + mul r12.xy, r6.wwww, cb6[r7.w + 24].xyxx + max r6.w, r12.x, l(0.000000) + mad r12.xzw, -cb5[0].xxyz, r6.wwww, r10.xxyz + mad r12.xyz, r7.xyzx, r12.yyyy, r12.xzwx + mul r15.xyz, r12.yyyy, cb6[r8.w + 1].xyzx + mad r12.xyw, cb6[r8.w + 0].xyxz, r12.xxxx, r15.xyxz + mad r12.xyz, cb6[r8.w + 2].xyzx, r12.zzzz, r12.xywx + add r12.xyz, r12.xyzx, cb6[r8.w + 3].xyzx + ge r15.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xyzx + ge r16.xyz, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r15.xyz, r15.xyzx, r16.xyzx + or r6.w, r15.y, r15.x + or r6.w, r15.z, r6.w + and r7.w, r12.z, l(0x7fffffff) + ult r7.w, l(0x7f800000), r7.w + or r15.z, r6.w, r7.w + ftoi r4.w, r4.w + mad r12.xy, r12.xyxx, cb6[r4.w + 28].zwzz, cb6[r4.w + 28].xyxx + mad r14.zw, r12.xxxy, cb6[32].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) + round_ni r14.zw, r14.zzzw + mad r12.xy, r12.xyxx, cb6[32].zwzz, -r14.zwzz + add r16.xyzw, r12.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r17.xw, r16.xxxz, r16.xxxz + min r16.xz, r12.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r18.xy, r12.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r18.zw, r17.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r12.xxxy + add r12.xy, -r12.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mad r12.xy, -r16.xzxx, r16.xzxx, r12.xyxx + mad r16.xy, -r18.xyxx, r18.xyxx, r16.ywyy + mov r19.x, r18.z + mov r19.y, r12.x + mov r19.z, r16.x + mov r19.w, r17.x + mul r19.xyzw, r19.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r17.x, r18.w + mov r17.y, r12.y + mov r17.z, r16.y + mul r16.xyzw, r17.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r17.xyzw, r19.ywyw, r19.xzxz + add r18.xyzw, r16.yyww, r16.xxzz + div r12.xy, r19.ywyy, r17.zwzz + add r12.xy, r12.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r19.xy, r12.xyxx, cb6[32].xxxx + div r12.xy, r16.ywyy, r18.ywyy + add r12.xy, r12.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r19.zw, r12.xxxy, cb6[32].yyyy + mul r16.xyzw, r17.xyzw, r18.xyzw + mad r17.xyzw, r14.zwzw, cb6[32].xyxy, r19.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r17.xyxx, t12.xxxx, s4, r12.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r17.zwzz, t12.xxxx, s4, r12.z + mul r6.w, r6.w, r16.y + mad r4.w, r16.x, r4.w, r6.w + mad r17.xyzw, r14.zwzw, cb6[32].xyxy, r19.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r17.xyxx, t12.xxxx, s4, r12.z + mad r4.w, r16.z, r6.w, r4.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r17.zwzz, t12.xxxx, s4, r12.z + mad r4.w, r16.w, r6.w, r4.w + movc r15.x, r15.z, l(1.000000), r4.w + else + mov r15.xz, l(1.000000,0,0,0) + endif + else + mov r15.xz, l(1.000000,0,0,0) + endif + lt r4.w, r5.w, l(1.000000) + if_nz r4.w + dp3 r4.w, r7.xyzx, cb5[0].xyzx + max r4.w, r4.w, l(0.000000) + min r4.w, r4.w, l(0.900000) + add r4.w, -r4.w, l(1.000000) + mul r12.xy, r4.wwww, cb6[584].xyxx + mad r12.xzw, -cb5[0].xxyz, r12.xxxx, r10.xxyz + mad r12.xyz, r7.xyzx, r12.yyyy, r12.xzwx + mul r14.zw, r12.yyyy, cb6[581].xxxy + mad r14.zw, cb6[580].xxxy, r12.xxxx, r14.zzzw + mad r14.zw, cb6[582].xxxy, r12.zzzz, r14.zzzw + add r14.zw, r14.zzzw, cb6[583].xxxy + lt r16.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r14.zwzz + and r4.w, r16.y, r16.x + lt r16.xy, r14.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r6.w, r16.y, r16.x + and r4.w, r4.w, r6.w + if_nz r4.w + mul r4.w, r14.w, cb6[585].z + round_ni r4.w, r4.w + add r4.w, r14.z, r4.w + mul r4.w, r4.w, cb6[585].y + ftou r4.w, r4.w + umin r4.w, r4.w, l(127) + and r6.w, l(0x0000ffff), cb6[r4.w + 587].x + f16tof32 r16.x, r6.w + ge r6.w, r16.x, l(0.000000) + if_nz r6.w + mov r17.x, cb6[576].x + mov r17.y, cb6[577].x + mov r17.z, cb6[578].x + mov r17.w, cb6[r4.w + 587].y + mov r12.w, l(1.000000) + dp4 r17.x, r17.xyzw, r12.xyzw + mov r18.x, cb6[576].y + mov r18.y, cb6[577].y + mov r18.z, cb6[578].y + mov r18.w, cb6[r4.w + 587].z + dp4 r17.y, r18.xyzw, r12.xyzw + mov r18.x, cb6[576].z + mov r18.y, cb6[577].z + mov r18.z, cb6[578].z + mov r18.w, cb6[r4.w + 587].w + dp4 r6.w, r18.xyzw, r12.xyzw + lt r12.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyxx + lt r7.w, l(0.000000), r6.w + and r8.w, r12.y, r12.x + and r7.w, r7.w, r8.w + lt r12.xy, r17.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + lt r8.w, r6.w, l(1.000000) + and r9.w, r12.y, r12.x + and r8.w, r8.w, r9.w + and r7.w, r7.w, r8.w + if_nz r7.w + ushr r4.w, cb6[r4.w + 587].x, l(16) + f16tof32 r16.y, r4.w + mad r12.xy, r17.xyxx, cb6[584].zwzz, r16.xyxx + mad r12.zw, r12.xxxy, cb6[586].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) + round_ni r12.zw, r12.zzzw + mad r12.xy, r12.xyxx, cb6[586].zwzz, -r12.zwzz + add r16.xyzw, r12.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r17.xw, r16.xxxz, r16.xxxz + min r14.zw, r12.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r16.xz, r12.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r18.xy, r17.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r12.xyxx + add r12.xy, -r12.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mad r12.xy, -r14.zwzz, r14.zwzz, r12.xyxx + mad r14.zw, -r16.xxxz, r16.xxxz, r16.yyyw + mov r16.x, r18.x + mov r16.y, r12.x + mov r16.z, r14.z + mov r16.w, r17.x + mul r16.xyzw, r16.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r17.x, r18.y + mov r17.y, r12.y + mov r17.z, r14.w + mul r17.xyzw, r17.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r18.xyzw, r16.ywyw, r16.xzxz + add r19.xyzw, r17.yyww, r17.xxzz + div r12.xy, r16.ywyy, r18.zwzz + add r12.xy, r12.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r16.xy, r12.xyxx, cb6[586].xxxx + div r12.xy, r17.ywyy, r19.ywyy + add r12.xy, r12.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r16.zw, r12.xxxy, cb6[586].yyyy + mul r17.xyzw, r18.xyzw, r19.xyzw + mad r18.xyzw, r12.zwzw, cb6[586].xyxy, r16.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r18.xyxx, t15.xxxx, s4, r6.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r7.w, r18.zwzz, t15.xxxx, s4, r6.w + mul r7.w, r7.w, r17.y + mad r4.w, r17.x, r4.w, r7.w + mad r12.xyzw, r12.zwzw, cb6[586].xyxy, r16.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r7.w, r12.xyxx, t15.xxxx, s4, r6.w + mad r4.w, r17.z, r7.w, r4.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r12.zwzz, t15.xxxx, s4, r6.w + mad r15.y, r17.w, r6.w, r4.w + else + mov r15.y, l(1.000000) + endif + else + mov r15.y, l(1.000000) + endif + else + mov r15.y, l(1.000000) + endif + movc r15.x, r15.z, r15.y, r15.x + else + mov r15.y, l(1.000000) + endif + add r4.w, -r15.y, r15.x + mad r4.w, r5.w, r4.w, r15.y + lt r5.w, l(0.001000), r4.w + if_nz r5.w + add r10.xyz, r10.xyzx, -cb0[173].xyzx + mad r10.yw, cb0[176].xxxz, r10.yyyy, r10.xxxz + mul r12.xy, r10.ywyy, cb0[174].zzzz + mul r12.zw, cb0[175].xxxy, cb0[183].wwww + mad r10.yw, r10.yyyw, cb0[174].zzzz, r12.zzzw + sample_l_indexable(texture2d)(float,float,float,float) r5.w, r10.ywyy, t14.yzwx, s2, l(0.000000) + mad r10.yw, r12.xxxy, cb0[175].wwww, r12.zzzw + sample_l_indexable(texture2d)(float,float,float,float) r6.w, r10.ywyy, t14.yzwx, s2, l(0.000000) + dp2 r7.w, r10.xzxx, r10.xzxx + sqrt r7.w, r7.w + add r8.w, -cb0[174].x, cb0[174].y + add r7.w, r7.w, -cb0[174].x + div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w + mul_sat r7.w, r7.w, r8.w + mad r8.w, r7.w, l(-2.000000), l(3.000000) + mul r7.w, r7.w, r7.w + mul r7.w, r7.w, r8.w + add r6.w, -r5.w, r6.w + mad r5.w, r7.w, r6.w, r5.w + add r5.w, r5.w, l(-1.000000) + mad r5.w, cb0[175].z, r5.w, l(1.000000) + mul r4.w, r4.w, r5.w + endif + add r5.w, -r4.w, cb6[35].z + mad r4.w, cb6[35].w, r5.w, r4.w +else + mov r4.w, cb6[35].z +endif +min r4.w, r4.w, l(1.000000) +add r4.w, r4.w, l(-1.000000) +mad r10.x, cb6[34].x, r4.w, l(1.000000) +lt r4.w, l(0.001000), r10.x +if_nz r4.w + dp3 r4.w, -cb5[0].xyzx, r13.xyzx + mad r12.xyz, cb5[0].xyzx, r4.wwww, r13.xyzx + lt r4.w, r4.w, cb5[4].z + dp3 r5.w, r12.xyzx, r12.xyzx + max r5.w, r5.w, l(0.0000610351562) + rsq r5.w, r5.w + mul r12.xyz, r5.wwww, r12.xyzx + mul r12.xyz, r12.xyzx, cb5[4].yyyy + mad r12.xyz, -cb5[0].xyzx, cb5[4].zzzz, r12.xyzx + dp3 r5.w, r12.xyzx, r12.xyzx + rsq r5.w, r5.w + mul r12.xyz, r5.wwww, r12.xyzx + movc r12.xyz, r4.wwww, r12.xyzx, r13.xyzx + mad r15.xyz, r3.xyzx, r1.wwww, r12.xyzx + dp3 r4.w, r15.xyzx, r15.xyzx + max r4.w, r4.w, l(0.0000610351562) + rsq r4.w, r4.w + mul r15.xyz, r4.wwww, r15.xyzx + dp3_sat r12.z, r12.xyzx, r7.xyzx + dp3_sat r4.w, r7.xyzx, r15.xyzx + min r12.x, r3.w, l(1.000000) + mul r5.w, cb2[20].z, cb2[20].z + mul r5.w, r5.w, r5.w + mad r6.w, r4.w, r5.w, -r4.w + mad r4.w, r6.w, r4.w, l(1.000000) + dp3_sat r6.w, r5.xyzx, r15.xyzx + add r6.w, -r6.w, l(1.000000) + mul r7.w, r6.w, r6.w + mul r7.w, r7.w, r7.w + mul r8.w, r6.w, r7.w + add r9.w, l(1.000000), -cb2[20].z + mad r10.z, -r9.w, l(0.383026), l(-0.0761947036) + mad r10.z, r9.w, r10.z, l(1.049970) + mad r9.w, r9.w, r10.z, l(0.409255) + min r9.w, r9.w, l(0.999000) + add r10.z, -r9.w, l(1.000000) + add r15.xyz, -r8.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r8.xyzx + mad r6.w, -r7.w, r6.w, l(1.000000) + mad r16.xyz, r8.xyzx, r6.wwww, r8.wwww + mul r4.w, r4.w, r4.w + div r4.w, r5.w, r4.w + mad r14.zw, -r12.xxxz, r5.wwww, r12.xxxz + mad r14.zw, r14.zzzw, r12.xxxz, r5.wwww + sqrt r14.zw, r14.zzzw + mul r14.zw, r12.zzzx, r14.zzzw + add r5.w, r14.w, r14.z + add r5.w, r5.w, l(0.000100) + div r5.w, l(0.500000), r5.w + mul r4.w, r4.w, r5.w + mul r16.xyz, r4.wwww, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mov r12.yw, cb2[20].zzzz + mad r17.xyzw, r12.xyzw, 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) r4.w, r17.xyxx, t17.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r5.w, r17.zwzz, t17.yzwx, s1, l(0.000000) + mul r4.w, r4.w, r5.w + mul r4.w, r9.w, r4.w + div r4.w, r4.w, r10.z + mul r12.xyw, r15.xyxz, r15.xyxz + mul r12.xyw, r4.wwww, r12.xyxw + mad r15.xyz, -r15.xyzx, r10.zzzz, l(1.000000, 1.000000, 1.000000, 0.000000) + div r12.xyw, r12.xyxw, r15.xyxz + 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[13].z + if_nz r36.x + mul r12.xyw, r12.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000) + endif + max r12.xyw, r12.xyxw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r12.xyw, r12.xyxw, l(1000.000000, 1000.000000, 0.000000, 1000.000000) + div r12.xyw, r12.xyxw, r2.wwww + min r12.xyw, r12.xyxw, l(1000.000000, 1000.000000, 0.000000, 1000.000000) + mul r12.xyw, r12.xyxw, cb2[19].xxxx + mul r15.xyz, r9.xyzx, r12.zzzz + mad r12.xyz, r12.xywx, r12.zzzz, r15.xyzx + mul r12.xyz, r12.xyzx, cb5[1].xyzx + mov r10.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r10.yzw, r10.xyxx, t16.wxyz, s1, cb0[108].x + add r2.w, -r10.x, l(1.000000) + mad r10.xyz, r12.xyzx, r10.yzwy, -r12.xyzx + mad r10.xyz, r2.wwww, r10.xyzx, r12.xyzx +else + mov r10.xyz, l(0,0,0,0) +endif +mul r12.xy, r14.xyxx, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r12.xy, r12.xyxx +mad r2.w, r12.y, cb4[1].y, r12.x +mul r2.w, r2.w, l(8.000000) +ftoi r2.w, r2.w +mad r4.w, -cb0[85].y, cb4[2].w, r11.z +round_ni r4.w, r4.w +add r5.w, l(-1.000000), cb4[1].w +max r6.w, r4.w, l(0.000000) +min r5.w, r5.w, r6.w +mul r6.w, r5.w, l(8.000000) +ftoi r6.w, r6.w +ge r4.w, r5.w, r4.w +iadd r5.w, r6.w, cb0[110].y +mul r6.w, cb2[20].z, cb2[20].z +min r12.x, r3.w, l(1.000000) +add r12.zw, l(0.000000, 0.000000, 1.000000, 1.000000), -cb2[20].zzzx +mad r3.w, -r12.z, l(0.383026), l(-0.0761947036) +mad r3.w, r12.z, r3.w, l(1.049970) +mad r3.w, r12.z, r3.w, l(0.409255) +min r3.w, r3.w, l(0.999000) +add r7.w, -r3.w, l(1.000000) +add r15.xyz, -r8.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r8.xyzx +mov r12.y, cb2[20].z +mad r12.yz, r12.xxyx, 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) r8.w, r12.yzyy, t17.yzwx, s1, l(0.000000) +mad r16.xyz, -r15.xyzx, r7.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, cb2[20].z +mov r20.xyz, l(0,0,0,0) +mov r9.w, l(1.000000) +mov r10.w, l(0) +loop + ilt r12.y, l(7), r10.w + breakc_nz r12.y + iadd r12.y, r2.w, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.y, r12.y, l(0), t0.xxxx + iadd r12.z, r5.w, r10.w + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r12.z, r12.z, l(0), t0.xxxx + and r12.y, r12.z, r12.y + and r12.y, r4.w, r12.y + ishl r12.z, r10.w, l(5) + mov r21.xyz, l(0,0,0,0) + mov r13.w, r9.w + mov r14.z, r12.y + loop + breakc_z r14.z + firstbit_lo r14.w, r14.z + ishl r15.w, l(1), r14.w + xor r15.w, r14.z, r15.w + iadd r14.w, r12.z, r14.w + bfi r22.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r14.wwww, l(1, 3, 5, 6) + bfi r16.w, l(29), l(3), r14.w, l(7) + ftou r18.z, cb5[r22.z + 6].w + ieq r18.z, r18.z, l(1) + if_nz r18.z + add r17.xyz, r2.xyzx, -cb5[r22.x + 6].xyzx + and r23.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r22.z + 6].xzyx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r22.w + 6].yxzy + ushr r25.xyz, cb5[r22.z + 6].xzyx, l(16, 16, 16, 0) + ushr r26.xyz, cb5[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.z, r17.xyzw, r27.xyzw + mov r25.x, r23.y + mov r25.z, r24.y + mov r25.w, r26.x + dp4 r18.w, r17.xyzw, r25.xyzw + mov r26.xz, r24.xxzx + dp4 r17.x, r17.xyzw, r26.xyzw + max r17.y, |r18.w|, |r18.z| + max r17.x, |r17.x|, r17.y + mad r17.y, cb5[r16.w + 6].x, l(0.500000), l(0.500000) + add r17.x, -r17.y, r17.x + mad r17.y, -cb5[r16.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), cb5[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.z, r15.w + continue + endif + ishl r17.z, r14.w, l(3) + bfi r14.w, l(29), l(3), r14.w, l(2) + lt r18.z, cb5[r17.z + 6].w, l(1.500000) + if_nz r18.z + mad r18.z, cb5[r14.w + 6].y, l(0.500000), l(0.500000) + add r23.x, r18.z, -|cb5[r14.w + 6].x| + add r23.y, -r23.x, cb5[r14.w + 6].y + add r18.z, -|r23.x|, l(1.000000) + add r18.z, -|r23.y|, r18.z + max r18.z, r18.z, l(0.000488281250) + ge r18.w, cb5[r14.w + 6].x, l(0.000000) + movc r23.z, r18.w, r18.z, -r18.z + dp3 r18.z, r23.xyzx, r23.xyzx + rsq r18.z, r18.z + mul r23.xyz, r18.zzzz, r23.xyzx + add r24.xyz, -r2.xyzx, cb5[r22.x + 6].xyzx + dp3 r18.z, r24.xyzx, r24.xyzx + rsq r18.w, r18.z + mul r25.xyz, r18.wwww, r24.xyzx + ftoi r19.w, cb5[r16.w + 6].w + mul r26.xyz, r23.xyzx, cb5[r14.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 r20.w, cb5[r17.z + 6].w + and r20.w, r20.w, l(1) + ieq r21.w, r20.w, l(0) + not r21.w, r21.w + lt r22.z, l(0.000000), cb5[r14.w + 6].z + and r21.w, r21.w, r22.z + dp3 r22.z, r27.xyzx, r27.xyzx + sqrt r22.z, r22.z + dp3 r23.w, r28.xyzx, r28.xyzx + sqrt r23.w, r23.w + dp3 r24.w, r7.xyzx, r27.xyzx + div r24.w, r24.w, r22.z + dp3 r25.w, r7.xyzx, r28.xyzx + div r25.w, r25.w, r23.w + add r24.w, r24.w, r25.w + mul_sat r29.x, r24.w, l(0.500000) + dp3 r24.w, r27.xyzx, r28.xyzx + mad r22.z, r22.z, r23.w, r24.w + mad r22.z, r22.z, l(0.500000), l(1.000000) + div r29.y, l(1.000000, 1.000000, 1.000000, 1.000000), r22.z + dp3_sat r18.x, r7.xyzx, r25.xyzx + movc r19.xy, r21.wwww, r29.xyxx, r18.xyxx + lt r18.x, cb5[r22.w + 6].w, l(0.000000) + if_nz r18.x + mul r18.x, cb5[r22.x + 6].w, cb5[r22.x + 6].w + mul r18.x, r18.x, r18.z + mad r18.x, -r18.x, r18.x, l(1.000000) + max r18.x, r18.x, l(0.000000) + add r18.z, r18.z, l(1.000000) + div r18.z, l(1.000000, 1.000000, 1.000000, 1.000000), r18.z + and r22.z, r21.w, l(0x3f800000) + add r23.w, -r18.z, r19.y + mad r18.z, r22.z, r23.w, r18.z + mul r18.x, r18.x, r18.x + mul r18.x, r18.x, r18.z + else + mul r28.xyz, r24.xyzx, cb5[r22.x + 6].wwww + dp3 r18.z, r28.xyzx, r28.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, cb5[r22.w + 6].w + exp r18.z, r18.z + mul r18.x, r18.z, r19.y + endif + dp3 r18.z, r25.xyzx, -r23.xyzx + add r18.z, r18.z, -cb5[r14.w + 6].z + mul_sat r18.z, r18.z, cb5[r14.w + 6].w + mul r18.z, r18.z, r18.z + movc r18.z, r20.w, l(1.000000), r18.z + mul r18.x, r18.z, r18.x + not r18.z, r21.w + ige r19.y, r19.w, l(0) + and r18.z, r18.z, r19.y + if_nz r18.z + if_z r20.w + ishl r18.z, r19.w, l(2) + mul r23.xyz, r2.yyyy, cb7[r18.z + 33].xywx + mad r23.xyz, cb7[r18.z + 32].xywx, r2.xxxx, r23.xyzx + mad r23.xyz, cb7[r18.z + 34].xywx, r2.zzzz, r23.xyzx + add r23.xyz, r23.xyzx, cb7[r18.z + 35].xywx + div_sat r23.xy, r23.xyxx, r23.zzzz + mad r23.xy, r23.xyxx, cb7[r19.w + 0].zwzz, cb7[r19.w + 0].xyxx + else + ishl r18.z, r19.w, l(2) + dp3 r28.x, -r24.xyzx, cb7[r18.z + 32].xyzx + dp3 r28.y, -r24.xyzx, cb7[r18.z + 33].xyzx + dp3 r28.z, -r24.xyzx, cb7[r18.z + 34].xyzx + lt r18.z, |r28.x|, |r28.y| + and r18.z, r18.z, l(1) + dp2 r19.y, |r28.xyxx|, icb[r18.z + 0].xyxx + lt r19.y, r19.y, |r28.z| + movc r18.z, r19.y, l(2), r18.z + dp3 r19.y, r28.xyzx, icb[r18.z + 0].xyzx + lt r19.y, r19.y, l(0.000000) + bfi r18.z, l(31), l(1), r18.z, r19.y + ushr r19.y, r18.z, l(1) + dp3 r19.y, r28.xyzx, icb[r19.y + 0].xyzx + div r22.z, l(0.000244140625), cb7[r19.w + 0].w + add r22.z, -r22.z, l(0.500000) + utof r23.z, r18.z + ult r23.w, r18.z, l(2) + and r23.w, r23.w, l(2) + dp2 r23.w, r28.xzxx, icb[r23.w + 0].xzxx + mul r23.w, r23.w, icb[r18.z + 4].z + div r23.w, r23.w, |r19.y| + mad r23.z, r23.w, r22.z, 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[r18.z + 4].y + dp2 r23.z, r28.yzyy, icb[r23.z + 0].xyxx + mul r18.z, r23.z, icb[r18.z + 4].w + div r18.z, r18.z, |r19.y| + mad_sat r24.y, -r18.z, r22.z, l(0.500000) + mad r23.xy, r24.xyxx, cb7[r19.w + 0].zwzz, cb7[r19.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.z, r23.xyxx, t18.yzxw, s1, l(0.000000) + mul r18.x, r18.z, r18.x + endif + lt r18.z, l(0.000000), r18.x + if_nz r18.z + if_z r20.w + ftoi r19.y, cb5[r22.y + 6].x + else + add r23.xyz, r2.xyzx, -cb5[r22.x + 6].xyzx + lt r24.xyz, |r23.yzzy|, |r23.xxyx| + and r19.w, r24.y, r24.x + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + ushr r20.w, cb5[r14.w + 6].w, l(24) + ubfe r24.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r14.w + 6].wwww + movc r20.w, r23.x, r20.w, r24.x + and r22.z, l(255), cb5[r14.w + 6].w + movc r22.z, r23.y, r24.y, r22.z + ubfe r23.x, l(8), l(8), cb5[r22.y + 6].x + and r23.y, l(255), cb5[r22.y + 6].x + movc r23.x, r23.z, r23.x, r23.y + movc r22.z, r24.z, r22.z, r23.x + movc r19.w, r19.w, r20.w, r22.z + ilt r20.w, r19.w, l(80) + movc r19.y, r20.w, r19.w, l(-1) + endif + ishl r19.w, r19.y, l(2) + mad r23.xyz, r25.xyzx, cb6[r19.y + 288].xxxx, r2.xyzx + mul r20.w, l(5.000000), cb6[r19.y + 288].y + mad r23.xyz, r7.xyzx, r20.wwww, r23.xyzx + mul r24.xyzw, r23.yyyy, cb6[r19.w + 65].xyzw + mad r24.xyzw, cb6[r19.w + 64].xyzw, r23.xxxx, r24.xyzw + mad r23.xyzw, cb6[r19.w + 66].xyzw, r23.zzzz, r24.xyzw + add r23.xyzw, r23.xyzw, cb6[r19.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, -cb6[r19.y + 344].xyxx, cb6[r19.y + 344].zwzz + mad r23.xy, r23.xyxx, r29.xyxx, cb6[r19.y + 344].xyxx + mad r29.xy, r23.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r29.xy, r29.xyxx + mad r23.xy, r23.xyxx, cb6[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.xyzx, cb6[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.xyw, r32.xyxz, cb6[400].yyyy + mul r33.xyzw, r23.xxxy, r30.zwyz + mov r31.w, r32.x + mad r34.xyzw, r29.xyxy, cb6[400].xyxy, r31.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.w, r34.xyxx, t13.xxxx, s4, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r34.zwzz, t13.xxxx, s4, r23.z + mul r20.w, r20.w, r33.y + mad r19.w, r33.x, r19.w, r20.w + mad r29.zw, r29.xxxy, cb6[400].xxxy, r31.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r29.zwzz, t13.xxxx, s4, r23.z + mad r19.w, r33.z, r20.w, r19.w + mov r32.z, r31.x + mad r34.xyzw, r29.xyxy, cb6[400].xyxy, r32.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r34.xyxx, t13.xxxx, s4, r23.z + mad r19.w, r33.w, r20.w, r19.w + mul r33.xyzw, r23.yyww, r30.xyzw + mov r32.xz, r31.yyzy + mad r31.xyzw, r29.xyxy, cb6[400].xyxy, r32.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r31.xyxx, t13.xxxx, s4, r23.z + mad r19.w, r33.x, r20.w, r19.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r31.zwzz, t13.xxxx, s4, r23.z + mad r19.w, r33.y, r20.w, r19.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r34.zwzz, t13.xxxx, s4, r23.z + mad r19.w, r33.z, r20.w, r19.w + ige r20.w, r19.y, l(0) + or r24.xyz, r24.xyzx, r28.xyzx + or r22.z, r24.y, r24.x + or r22.z, r24.z, r22.z + and r23.x, r23.z, l(0x7fffffff) + ult r23.x, l(0x7f800000), r23.x + or r22.z, r22.z, r23.x + mad r24.xyzw, r29.xyxy, cb6[400].xyxy, r32.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r24.xyxx, t13.xxxx, s4, r23.z + mad r19.w, r33.w, r23.x, r19.w + mul r23.x, r23.w, r30.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r24.zwzz, t13.xxxx, s4, r23.z + mad r19.w, r23.x, r23.y, r19.w + add r19.w, r19.w, l(-1.000000) + mad r19.y, cb6[r19.y + 288].w, r19.w, l(1.000000) + movc r19.y, r22.z, l(1.000000), r19.y + movc r19.y, r20.w, r19.y, l(1.000000) + else + mov r19.y, l(1.000000) + endif + if_nz r21.w + dp3 r19.w, r13.xyzx, r26.xyzx + mul_sat r20.w, r18.w, cb5[r14.w + 6].z + mad r20.w, r20.w, l(0.500000), r6.w + min r20.w, r20.w, l(1.000000) + div r20.w, r6.w, r20.w + mad r23.xyz, r13.xyzx, r19.wwww, -r26.xyzx + dp3 r21.w, r27.xyzx, r23.xyzx + mul r19.w, r19.w, r19.w + mad r19.w, cb5[r14.w + 6].z, cb5[r14.w + 6].z, -r19.w + div_sat r19.w, r21.w, r19.w + mad r23.xyz, r26.xyzx, r19.wwww, r27.xyzx + dp3 r19.w, r23.xyzx, r23.xyzx + rsq r19.w, r19.w + mul r25.xyz, r19.wwww, r23.xyzx + else + mov r20.w, l(1.000000) + endif + if_nz r18.z + mul_sat r18.z, r18.w, cb5[r16.w + 6].y + mad r23.xyz, r3.xyzx, r1.wwww, r25.xyzx + dp3 r18.w, r23.xyzx, r23.xyzx + max r18.w, r18.w, l(0.0000610351562) + rsq r18.w, r18.w + mul r23.xyz, r18.wwww, r23.xyzx + dp3_sat r18.w, r7.xyzx, r23.xyzx + dp3_sat r19.w, r5.xyzx, r23.xyzx + lt r21.w, l(0.000000), r18.z + mul r18.z, r18.z, r18.z + mad r22.z, r19.w, l(3.600000), l(0.400000) + div r18.z, r18.z, r22.z + mad r18.z, cb2[20].z, cb2[20].z, r18.z + min r18.z, r18.z, l(1.000000) + movc r18.z, r21.w, r18.z, r6.w + mul r18.z, r18.z, r18.z + mad r21.w, r18.w, r18.z, -r18.w + mad r18.w, r21.w, r18.w, l(1.000000) + add r19.w, -r19.w, l(1.000000) + mul r21.w, r19.w, r19.w + mul r21.w, r21.w, r21.w + mul r22.z, r19.w, r21.w + mad r19.w, -r21.w, r19.w, l(1.000000) + mad r23.xyz, r8.xyzx, r19.wwww, r22.zzzz + mul r18.w, r18.w, r18.w + div r18.w, r18.z, r18.w + mul r18.w, r20.w, r18.w + mad r19.w, -r12.x, r18.z, r12.x + mad r19.w, r19.w, r12.x, r18.z + sqrt r19.w, r19.w + mad r20.w, -r19.x, r18.z, r19.x + mad r18.z, r20.w, r19.x, r18.z + sqrt r18.z, r18.z + mul r18.z, r12.x, r18.z + mad r18.z, r19.x, r19.w, r18.z + add r18.z, r18.z, l(0.000100) + div r18.z, l(0.500000), r18.z + mul r18.z, r18.z, r18.w + mul r23.xyz, r18.zzzz, r23.xyzx + min r23.xyz, r23.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r18.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) r18.z, r18.zwzz, t17.yzxw, s1, l(0.000000) + mul r18.z, r8.w, r18.z + mul r18.z, r3.w, r18.z + div r18.z, r18.z, r7.w + mul r24.xyz, r15.xyzx, r18.zzzz + div r24.xyz, r24.xyzx, r16.xyzx + add r23.xyz, r23.xyzx, r24.xyzx + mul r23.xyz, r23.xyzx, cb5[r16.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.xyz, r9.xyzx, r19.xxxx + mad r23.xyz, r23.xyzx, r19.xxxx, r24.xyzx + mul r18.xzw, r18.xxxx, cb5[r17.z + 6].xxyz + mul r18.xzw, r19.yyyy, r18.xxzw + mul r18.xzw, r17.xxxx, r18.xxzw + mul r18.xzw, r18.xxzw, r23.xxyz + else + mov r18.xzw, l(0,0,0,0) + endif + else + if_z r17.y + mad r17.x, cb5[r14.w + 6].y, l(0.500000), l(0.500000) + add r23.x, r17.x, -|cb5[r14.w + 6].x| + add r23.y, -r23.x, cb5[r14.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, cb5[r14.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 r19.xyw, r17.xxxx, r23.xyxz + add r23.xyz, -r2.xyzx, cb5[r22.x + 6].xyzx + dp3 r17.x, r23.xyzx, r23.xyzx + rsq r17.y, r17.x + mul r24.xyz, r17.yyyy, r23.xyzx + ftoi r16.w, cb5[r16.w + 6].w + mul r25.xyz, r19.xywx, cb5[r14.w + 6].zzzz + mad r26.xyz, -r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r23.xyzx + mad r25.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r23.xyzx + ftou r17.y, cb5[r17.z + 6].w + and r17.y, r17.y, l(1) + ieq r17.z, r17.y, l(0) + not r17.z, r17.z + lt r20.w, l(0.000000), cb5[r14.w + 6].z + and r17.z, r17.z, r20.w + dp3 r20.w, r26.xyzx, r26.xyzx + sqrt r20.w, r20.w + dp3 r21.w, r25.xyzx, r25.xyzx + sqrt r21.w, r21.w + dp3 r22.z, r26.xyzx, r25.xyzx + mad r20.w, r20.w, r21.w, r22.z + mad r20.w, r20.w, l(0.500000), l(1.000000) + div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r20.w + movc r20.w, r17.z, r20.w, l(1.000000) + lt r21.w, cb5[r22.w + 6].w, l(0.000000) + if_nz r21.w + mul r21.w, cb5[r22.x + 6].w, cb5[r22.x + 6].w + mul r21.w, r17.x, r21.w + mad r21.w, -r21.w, r21.w, l(1.000000) + max r21.w, r21.w, 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.z, r17.z, l(0x3f800000) + add r23.w, -r17.x, r20.w + mad r17.x, r22.z, r23.w, r17.x + mul r21.w, r21.w, r21.w + mul r17.x, r17.x, r21.w + else + mul r25.xyz, r23.xyzx, cb5[r22.x + 6].wwww + dp3 r21.w, r25.xyzx, r25.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, cb5[r22.w + 6].w + exp r21.w, r21.w + mul r17.x, r20.w, r21.w + endif + dp3 r19.x, r24.xyzx, -r19.xywx + 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, r17.y, l(1.000000), r19.x + mul r17.x, r17.x, r19.x + not r17.z, r17.z + ige r19.x, r16.w, l(0) + and r17.z, r17.z, r19.x + if_nz r17.z + if_z r17.y + ishl r17.z, r16.w, l(2) + mul r19.xyw, r2.yyyy, cb7[r17.z + 33].xyxw + mad r19.xyw, cb7[r17.z + 32].xyxw, r2.xxxx, r19.xyxw + mad r19.xyw, cb7[r17.z + 34].xyxw, r2.zzzz, r19.xyxw + add r19.xyw, r19.xyxw, cb7[r17.z + 35].xyxw + div_sat r19.xy, r19.xyxx, r19.wwww + mad r19.xy, r19.xyxx, cb7[r16.w + 0].zwzz, cb7[r16.w + 0].xyxx + else + ishl r17.z, r16.w, l(2) + dp3 r25.x, -r23.xyzx, cb7[r17.z + 32].xyzx + dp3 r25.y, -r23.xyzx, cb7[r17.z + 33].xyzx + dp3 r25.z, -r23.xyzx, cb7[r17.z + 34].xyzx + lt r17.z, |r25.x|, |r25.y| + and r17.z, r17.z, l(1) + dp2 r19.w, |r25.xyxx|, icb[r17.z + 0].xyxx + lt r19.w, r19.w, |r25.z| + movc r17.z, r19.w, l(2), r17.z + dp3 r19.w, r25.xyzx, icb[r17.z + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r17.z, l(31), l(1), r17.z, r19.w + ushr r19.w, r17.z, l(1) + dp3 r19.w, r25.xyzx, icb[r19.w + 0].xyzx + div r20.w, l(0.000244140625), cb7[r16.w + 0].w + add r20.w, -r20.w, l(0.500000) + utof r21.w, r17.z + ult r22.z, r17.z, l(2) + and r22.z, r22.z, l(2) + dp2 r22.z, r25.xzxx, icb[r22.z + 0].xzxx + mul r22.z, r22.z, icb[r17.z + 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 r23.x, r21.w, l(0.166666672) + iadd r21.w, l(-1), icb[r17.z + 4].y + dp2 r21.w, r25.yzyy, icb[r21.w + 0].xyxx + mul r17.z, r21.w, icb[r17.z + 4].w + div r17.z, r17.z, |r19.w| + mad_sat r23.y, -r17.z, r20.w, l(0.500000) + mad r19.xy, r23.xyxx, cb7[r16.w + 0].zwzz, cb7[r16.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r16.w, r19.xyxx, t18.yzwx, s1, l(0.000000) + mul r17.x, r16.w, r17.x + endif + lt r16.w, l(0.000000), r17.x + if_nz r16.w + if_z r17.y + ftoi r16.w, cb5[r22.y + 6].x + else + add r17.xyz, r2.xyzx, -cb5[r22.x + 6].xyzx + lt r19.xyw, |r17.yzyz|, |r17.xxxy| + and r19.x, r19.y, r19.x + lt r17.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyzx + ushr r19.y, cb5[r14.w + 6].w, l(24) + ubfe r22.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb5[r14.w + 6].wwww + movc r17.x, r17.x, r19.y, r22.x + and r14.w, l(255), cb5[r14.w + 6].w + movc r14.w, r17.y, r22.z, r14.w + ubfe r17.y, l(8), l(8), cb5[r22.y + 6].x + and r19.y, l(255), cb5[r22.y + 6].x + movc r17.y, r17.z, r17.y, r19.y + movc r14.w, r19.w, r14.w, r17.y + movc r14.w, r19.x, r17.x, r14.w + ilt r17.x, r14.w, l(80) + movc r16.w, r17.x, r14.w, l(-1) + endif + ishl r14.w, r16.w, l(2) + mad r17.xyz, r24.xyzx, cb6[r16.w + 288].xxxx, r2.xyzx + mul r19.x, l(5.000000), cb6[r16.w + 288].y + mad r17.xyz, r7.xyzx, r19.xxxx, r17.xyzx + mul r22.xyzw, r17.yyyy, cb6[r14.w + 65].xyzw + mad r22.xyzw, cb6[r14.w + 64].xyzw, r17.xxxx, r22.xyzw + mad r22.xyzw, cb6[r14.w + 66].xyzw, r17.zzzz, r22.xyzw + add r22.xyzw, r22.xyzw, cb6[r14.w + 67].xyzw + div r17.xyz, r22.xyzx, r22.wwww + ge r19.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyxz + ge r22.xyz, r17.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r23.xy, -cb6[r16.w + 344].xyxx, cb6[r16.w + 344].zwzz + mad r17.xy, r17.xyxx, r23.xyxx, cb6[r16.w + 344].xyxx + mad r23.xy, r17.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r23.xy, r23.xyxx + mad r17.xy, r17.xyxx, cb6[400].zwzz, -r23.xyxx + add r24.xyzw, r17.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r25.xyzw, r24.xxzz, r24.xxzz + add r23.zw, -r17.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r24.xz, r17.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r26.xy, r17.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r27.xy, r23.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r26.xy, -r26.xyxx, r26.xyxx, r24.ywyy + add r26.xy, r26.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r26.xy, r26.xyxx, 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.xy, r25.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r17.xyxx + mul r28.xy, r17.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r17.xy, -r24.xzxx, r24.xzxx, r23.zwzz + add r17.xy, r17.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r29.xy, r17.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r17.xy, r24.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r28.z, r29.x + mov r28.w, r17.x + mov r27.z, r26.x + mov r27.w, r25.x + add r24.xyzw, r27.zwxz, r28.zwxz + mov r29.z, r28.y + mov r29.w, r17.y + mov r26.z, r27.y + mov r26.w, r25.z + add r25.xyz, r26.zywz, r29.zywz + div r27.xyz, r27.xzwx, r24.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.xyzx, cb6[400].xxxx + div r26.xyz, r26.zywz, r25.xyzx + add r26.xyz, r26.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r26.xyw, r26.xyxz, cb6[400].yyyy + mul r28.xyzw, r24.zwyz, r25.xxxy + mov r27.w, r26.x + mad r29.xyzw, r23.xyxy, cb6[400].xyxy, r27.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r14.w, r29.xyxx, t13.xxxx, s4, r17.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r29.zwzz, t13.xxxx, s4, r17.z + mul r17.x, r17.x, r28.y + mad r14.w, r28.x, r14.w, r17.x + mad r17.xy, r23.xyxx, cb6[400].xyxx, r27.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r17.xyxx, t13.xxxx, s4, r17.z + mad r14.w, r28.z, r17.x, r14.w + mov r26.z, r27.x + mad r29.xyzw, r23.xyxy, cb6[400].xyxy, r26.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r29.xyxx, t13.xxxx, s4, r17.z + mad r14.w, r28.w, r17.x, r14.w + mul r28.xyzw, r24.xyzw, r25.yyzz + mov r26.xz, r27.yyzy + mad r27.xyzw, r23.xyxy, cb6[400].xyxy, r26.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r27.xyxx, t13.xxxx, s4, r17.z + mad r14.w, r28.x, r17.x, r14.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r27.zwzz, t13.xxxx, s4, r17.z + mad r14.w, r28.y, r17.x, r14.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r29.zwzz, t13.xxxx, s4, r17.z + mad r14.w, r28.z, r17.x, r14.w + ige r17.x, r16.w, l(0) + or r19.xyw, r19.xyxw, r22.xyxz + or r17.y, r19.y, r19.x + or r17.y, r19.w, r17.y + and r19.x, r17.z, l(0x7fffffff) + ult r19.x, l(0x7f800000), r19.x + or r17.y, r17.y, r19.x + mad r22.xyzw, r23.xyxy, cb6[400].xyxy, r26.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r19.x, r22.xyxx, t13.xxxx, s4, r17.z + mad r14.w, r28.w, r19.x, r14.w + mul r19.x, r24.y, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r22.zwzz, t13.xxxx, s4, r17.z + mad r14.w, r19.x, r17.z, r14.w + add r14.w, r14.w, l(-1.000000) + mad r14.w, cb6[r16.w + 288].w, r14.w, l(1.000000) + movc r14.w, r17.y, l(1.000000), r14.w + movc r14.w, r17.x, r14.w, l(1.000000) + else + mov r14.w, l(1.000000) + endif + else + mov r14.w, l(1.000000) + endif + mul r13.w, r13.w, r14.w + mov r18.xzw, l(0,0,0,0) + endif + add r21.xyz, r18.xzwx, r21.xyzx + mov r14.z, r15.w + endloop + mov r9.w, r13.w + add r20.xyz, r20.xyzx, r21.xyzx + iadd r10.w, r10.w, l(1) +endloop +add r1.w, l(1.000000), -cb2[0].y +mad r2.x, r2.y, cb0[156].w, cb0[157].w +mad r2.z, r0.w, cb0[154].w, -cb0[153].w +max r2.xz, r2.xxzx, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r2.w, r2.x, l(-1.442695) +exp r2.w, r2.w +add r2.w, -r2.w, l(1.000000) +div r2.x, r2.w, r2.x +mad r2.w, r2.y, cb0[156].w, cb0[158].w +mul r2.w, r2.w, l(1.442695) +exp r2.w, r2.w +mul r2.x, r2.w, r2.x +mul r2.x, r2.x, -r2.z +mul r2.xzw, r2.xxxx, cb0[155].xxyz +mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r2.xzw, r2.xxzw +dp3 r3.x, -r5.xyzx, cb0[154].xyzx +mad r3.y, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.z, r3.xxxx, cb0[155].wwww +add r3.y, -r3.z, r3.y +lt r3.z, l(0.000000), cb0[163].z +if_nz r3.z + and r11.w, l(7), cb0[108].w + imad r7.xyz, r11.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.z, r7.y, r7.z, r7.x + imad r3.w, r7.z, r3.z, r7.y + imad r4.w, r3.z, r3.w, r7.z + imad r7.x, r3.w, r4.w, r3.z + dp3 r3.z, -r5.xyzx, -r4.xyzx + add r4.x, r2.y, -cb0[44].y + lt r4.y, l(5.960464478E-08), r3.z + div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.z + and r3.z, r3.z, r4.y + mul r3.z, r3.z, cb0[163].w + div r4.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r4.z, r3.z, r4.y + mad r5.x, r4.z, r4.x, cb0[44].y + mad r4.x, -r4.z, r4.x, r4.x + mul r4.z, r4.x, cb0[159].z + mul r4.x, r4.x, cb0[162].x + max r4.xz, r4.xxzx, l(-127.000000, 0.000000, -127.000000, 0.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.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 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), |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 + mul r4.x, r4.x, r5.x + mad r4.x, r5.y, r4.z, r4.x + mad r3.z, -r3.z, r4.y, l(1.000000) + mul r3.z, r0.w, r3.z + mul r3.z, r3.z, r4.x + exp r3.z, -r3.z + min r3.z, r3.z, l(1.000000) + max r3.z, r3.z, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r3.z, r3.z, r4.x + add r3.z, r4.y, r3.z + min r3.z, r3.z, l(1.000000) + imad r7.y, r4.w, r7.x, r3.w + ushr r4.xy, r7.xyxx, l(16, 16, 0, 0) + utof r4.xy, r4.xyxx + mad r4.xy, r4.xyxx, l(0.0000305180438, 0.0000305180438, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) + mad r4.xy, r4.xyxx, cb0[167].wwww, r14.xyxx + mul r4.xy, r4.xyxx, cb0[165].xyxx + mad r3.w, r11.z, cb0[164].x, cb0[164].y + log r3.w, r3.w + mul r3.w, r3.w, cb0[164].z + div r4.z, r3.w, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t5.xyzw, s1, l(0.000000) + add r3.w, r11.z, -cb0[166].z + mul_sat r3.w, r3.w, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r3.wwww, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r3.w, -r3.z, l(1.000000) + mul r5.xyz, r3.wwww, cb0[161].xyzx + mad r4.xyz, r5.xyzx, r4.wwww, r4.xyzx + mul r3.z, r3.z, r4.w +else + add r2.y, r2.y, -cb0[44].y + mul r3.w, r2.y, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + add r4.w, cb0[44].y, -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.y, -r3.w + add r5.y, -r5.y, l(1.000000) + div r5.y, r5.y, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.x, r5.y, r3.w + add r5.x, cb0[44].y, -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.y, l(5.960464478E-08), |r2.y| + exp r5.z, -r2.y + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r2.y + mad r2.y, -r2.y, l(0.240226507), l(0.693147182) + movc r2.y, r5.y, r5.z, r2.y + mul r2.y, r2.y, r5.x + mad r2.y, r4.w, r3.w, r2.y + mul r2.y, r0.w, r2.y + exp r2.y, -r2.y + min r2.y, r2.y, l(1.000000) + max r2.y, r2.y, cb0[161].w + mad_sat r5.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r2.y, r5.x + add r0.w, r5.y, r0.w + min r3.z, r0.w, l(1.000000) + add r0.w, -r3.z, l(1.000000) + mul r4.xyz, r0.wwww, cb0[161].xyzx +endif +// === Glass Fix: Reduce clustered lights and overall brightness === +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) +endif +dp3 r0.w, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xyz, -r0.wwww, r1.xyzx +mad r1.xyz, cb0[184].wwww, r1.xyzx, r0.wwww +mul r5.xyz, r6.xyzx, r12.wwww +mad r1.xyz, r1.xyzx, cb0[184].xyzx, r5.xyzx +mad r5.xyz, r20.xyzx, r9.wwww, r10.xyzx +add r1.xyz, r1.xyzx, r5.xyzx +mul r5.xyz, r2.xzwx, r3.zzzz +mad r0.w, r3.x, r3.x, l(1.000000) +mul r0.w, r0.w, l(0.0596831031) +mad r6.xyz, cb0[156].xyzx, r0.wwww, cb0[158].xyzx +mad r0.w, -cb0[155].w, cb0[155].w, l(1.000000) +mul r2.y, r3.y, l(12.566371) +sqrt r3.x, r3.y +mul r2.y, r2.y, r3.x +max r2.y, r2.y, l(0.001000) +div r0.w, r0.w, r2.y +mad_sat r3.xyw, cb0[157].xyxz, r0.wwww, r6.xyxz +mul r3.xyw, r3.xyxw, l(255.000000, 255.000000, 0.000000, 255.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +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[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) + mad r36.xyz, r36.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r5.xyzx + // Reduce inscatter intensity + mul r37.xyz, r2.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + // Modified fog blend + mad r1.xyz, r1.xyzx, r36.xyzx, r37.xyzx +else + // Original fog blend + mad r1.xyz, r1.xyzx, r5.xyzx, r2.xyzx +endif +mul r2.xyz, r0.xxxx, r1.xyzx +mul r2.w, r0.x, r1.w +min o1.xy, r0.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r2.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r2.w, r0.x +max r0.x, r2.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 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 + if_nz r36.z + add r36.w, r36.y, l(-0.500000) + mul r36.w, r36.w, l(-0.666667) + exp r36.w, r36.w + add r36.w, -r36.w, l(1.000000) + mad r36.w, r36.w, l(1.500000), l(0.500000) + max r37.x, r36.y, l(0.001000) + div r37.x, r36.w, r37.x + mul r2.xyz, r2.xyzx, r37.xxxx + endif +endif +mov o0.xyzw, r2.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0x69B6459F.cso b/src/games/endfield/glass/0x69B6459F.cso new file mode 100644 index 000000000..dbf6f23e6 Binary files /dev/null and b/src/games/endfield/glass/0x69B6459F.cso differ 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..a7d9bc1ff --- /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[13].z +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[13].z + 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[13].z +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[13].z +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[13].z +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/0x754218B1.cso b/src/games/endfield/glass/0x754218B1.cso new file mode 100644 index 000000000..247a14d49 Binary files /dev/null and b/src/games/endfield/glass/0x754218B1.cso differ 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..8b92e5fee --- /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[13].z +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[13].z + 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[13].z +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[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) + 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[13].z +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/0x843686F6.cso b/src/games/endfield/glass/0x843686F6.cso new file mode 100644 index 000000000..f076229da Binary files /dev/null and b/src/games/endfield/glass/0x843686F6.cso differ diff --git a/src/games/endfield/glass/0x843686F6.ps_5_0.asm b/src/games/endfield/glass/0x843686F6.ps_5_0.asm new file mode 100644 index 000000000..2ac599748 --- /dev/null +++ b/src/games/endfield/glass/0x843686F6.ps_5_0.asm @@ -0,0 +1,1860 @@ +// +// 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 xyzw 1 NONE float xyzw +// TEXCOORD 1 xyzw 2 NONE float xy +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float +// TEXCOORD 4 xyzw 5 NONE float xyzw +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 x 8 NONE uint x +// SV_IsFrontFace 0 x 9 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[23], 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_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_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_texture3d (float,float,float,float) t10 +dcl_resource_texture3d (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_texture2d (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.xyzw +dcl_input_ps linear v2.xy +dcl_input_ps linear v3.xyz +dcl_input_ps linear v5.xyzw +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps constant v8.x +dcl_input_ps_sgv constant v9.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 37 +mul r0.xy, v0.xyxx, cb0[82].zwzz +ftou r1.xy, v0.xyxx +mad r0.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r2.xyzw, -r0.wwww, cb0[25].xyzw +mad r2.xyzw, cb0[24].xyzw, r0.zzzz, r2.xyzw +mad r2.xyzw, cb0[26].xyzw, v0.zzzz, r2.xyzw +add r2.xyzw, r2.xyzw, cb0[27].xyzw +div r2.xyz, r2.xyzx, r2.wwww +mul r0.z, r2.y, cb0[1].z +mad r0.z, cb0[0].z, r2.x, r0.z +mad r0.z, cb0[2].z, r2.z, r0.z +add r0.z, r0.z, cb0[3].z +mov r1.z, |r0.z| +eq r0.z, l(0.000000), cb0[86].w +add r3.xyz, -r2.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.zzzz, r3.xyzx, r4.xyzx +dp3 r0.z, r3.xyzx, r3.xyzx +max r0.w, r0.z, l(9.999999939E-09) +rsq r0.w, r0.w +mul r5.xyz, r0.wwww, r3.xyzx +mul r0.z, r0.w, r0.z +add r6.xyzw, -v5.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) +mad r6.xyzw, cb2[1].yyyy, r6.xyzw, v5.xyzw +mul r6.xyzw, r6.xyzw, cb2[4].xyzw +mul r6.xyzw, r6.xyzw, cb2[1].zzzw +add r1.w, l(1.000000), -cb2[3].x +mad r1.w, cb0[109].x, cb2[3].x, r1.w +div r6.xyz, r6.xyzx, r1.wwww +mul r7.xyzw, v2.xxyy, cb2[1].xxxx +mad r8.xyzw, v1.zzww, cb2[1].xxxx, -r7.xyzw +add r8.xyzw, r8.xyzw, v2.xxyy +mul r9.xyzw, r8.yyww, cb2[8].yyyy +mad r9.xyzw, v1.xxyy, cb2[8].xxxx, r9.xyzw +mad r9.xyzw, cb2[6].xxyy, cb0[183].wwww, r9.xyzw +mad r9.xyzw, cb2[6].zzww, r7.yyyy, r9.xyzw +add r9.xyzw, r9.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r9.xyzw, r9.xyzw, cb2[7].xyzw +add r7.xy, r9.zwzz, r9.xyxx +add r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r7.xy, r7.xyxx, cb2[9].xyxx, cb2[9].zwzz +ishl r1.w, v8.x, l(4) +add r3.w, cb1[r1.w + 3].y, cb1[r1.w + 3].x +add r3.w, r3.w, cb1[r1.w + 3].z +frc r3.w, r3.w +mul r4.w, r3.w, cb2[22].w +min r4.w, r4.w, l(0.500000) +add r4.w, r4.w, l(1.000000) +mul r7.z, r4.w, r7.y +mad r7.xy, cb2[22].wwww, r3.wwww, r7.xzxx +add r3.w, l(1.000000), cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r9.xyzw, r7.xyxx, t3.xyzw, s5, r3.w +mul r8.xyzw, r8.xyzw, cb2[15].yyyy +mad r8.xyzw, v1.xxyy, cb2[15].xxxx, r8.xyzw +mad r8.xyzw, cb2[13].xxyy, cb0[183].wwww, r8.xyzw +mad r7.xyzw, cb2[13].zzww, r7.wwww, r8.xyzw +add r7.xyzw, r7.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r7.xyzw, r7.xyzw, cb2[14].xyzw +add r7.xy, r7.zwzz, r7.xyxx +add r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r7.xy, r7.xyxx, cb2[12].xyxx, cb2[12].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r7.xyzw, r7.xyxx, t4.xyzw, s6, cb0[108].x +mov r8.x, l(1.000000) +mov r8.w, r9.x +add r8.xyzw, -r9.xyzw, r8.xxxw +mad r8.xyzw, cb2[5].yyyy, r8.xyzw, r9.xyzw +mul r6.xyzw, r6.xyzw, r8.xyzw +mov r8.x, l(1.000000) +mov r8.w, r7.x +add r8.xyzw, -r7.xyzw, r8.xxxw +mad r7.xyzw, cb2[11].xxxx, r8.xyzw, r7.xyzw +mul r6.xyzw, r6.xyzw, r7.xyzw +utof r7.xy, r1.xyxx +mul r7.xy, r7.xyxx, cb0[82].zwzz +mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t1.xyzw, 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, r0.xxxx, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +movc r8.xyz, v9.xxxx, v3.xyzx, -v3.xyzx +ne r0.x, l(0.000000), cb2[16].x +add r9.xy, r1.zzzz, -cb2[16].ywyy +add r0.y, -cb2[16].y, cb2[16].z +div_sat r0.y, r9.x, r0.y +add r3.w, -cb2[16].w, cb2[17].x +div_sat r3.w, r9.y, r3.w +mul r0.y, r0.y, r3.w +movc r0.x, r0.x, r0.y, l(1.000000) +mul r0.x, r0.x, r6.w +div r7.xyz, r7.xyzx, r7.wwww +mul r0.y, r7.y, cb0[1].z +mad r0.y, cb0[0].z, r7.x, r0.y +mad r0.y, cb0[2].z, r7.z, r0.y +add r0.y, r0.y, cb0[3].z +add r0.y, -r1.z, |r0.y| +add r0.y, r0.y, cb2[18].y +div_sat r0.y, r0.y, cb2[18].x +mul r0.x, r0.y, r0.x +add r7.xy, v5.wxww, l(-1.000000, -1.000000, 0.000000, 0.000000) +mad r7.xy, cb2[22].yyyy, r7.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +mul r0.x, r0.x, r7.x +dp3 r0.y, v3.xyzx, r5.xyzx +log r0.y, |r0.y| +mul r0.y, r0.y, cb2[20].z +exp r0.y, r0.y +add r0.y, r0.y, l(-1.000000) +mad r0.y, cb2[21].x, r0.y, l(1.000000) +mul r0.x, r0.y, r0.x +add r0.y, l(1.000000), -cb1[r1.w + 4].y +mul_sat r0.x, r0.y, r0.x +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) +mul r7.xzw, r6.xxyz, cb2[21].yyyy +mul r0.y, r7.y, cb2[19].z +mul r1.w, r7.x, r0.y +add r3.w, l(1.000000), cb2[0].w +add_sat r3.w, r3.w, -cb2[0].x +lt r3.w, l(0.500000), r3.w +max r4.w, v6.z, l(9.999999939E-09) +div r9.xy, v6.xyxx, r4.wwww +max r4.w, v7.z, l(9.999999939E-09) +div r9.zw, v7.xxxy, r4.wwww +add r9.xy, -r9.zwzz, r9.xyxx +mul r10.xy, r9.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r10.xy, |r10.xyxx| +sqrt r10.xy, r10.xyxx +mov r9.z, -r9.y +lt r9.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r9.xxxz +lt r9.xz, r9.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r9.xy, -r9.ywyy, r9.xzxx +itof r9.xy, r9.xyxx +mul r9.xy, r9.xyxx, r10.xyxx +mad r9.xy, r9.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +and r9.xy, r3.wwww, r9.xyxx +mul r9.zw, l(0.000000, 0.000000, 4.000000, 0.080000), cb2[22].xxxx +dp3 r3.w, r8.xyzx, r5.xyzx +mad r10.xyzw, cb2[21].wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r4.w, r10.x, r10.x +max r3.w, r3.w, l(0.000000) +mul r5.w, r3.w, l(-9.280000) +exp r5.w, r5.w +min r4.w, r4.w, r5.w +mad r4.w, r4.w, r10.x, r10.y +mad r10.xy, r4.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r10.zwzz +eq r4.w, l(1.000000), cb0[113].y +mul r11.xyzw, r2.yyyy, cb0[241].xyzw +mad r11.xyzw, cb0[240].xyzw, r2.xxxx, r11.xyzw +mad r11.xyzw, cb0[242].xyzw, r2.zzzz, r11.xyzw +add r11.xyzw, r11.xyzw, cb0[243].xyzw +div r5.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, r5.wwww, r11.xyzx +mad_sat r10.zw, r11.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) +mul r10.zw, r10.zzzw, cb0[82].xxxy +ftou r12.xy, r10.zwzz +mad r5.w, cb0[84].z, r11.z, cb0[84].w +div r12.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +movc r11.xyz, r4.wwww, r12.xyzx, r1.xyzx +mad r1.xyz, r8.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r2.xyzx +mad r12.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r12.xyz, r1.xzyx, -r12.xyzx +max r4.w, |r12.y|, |r12.x| +add r4.w, r4.w, l(-464.000000) +mul_sat r4.w, r4.w, l(0.031250) +add r5.w, |r12.z|, l(-208.000000) +mul_sat r5.w, r5.w, l(0.031250) +max r4.w, r4.w, r5.w +ne r5.w, l(0.000000), cb0[210].w +lt r6.w, r4.w, l(1.000000) +and r5.w, r5.w, r6.w +if_nz r5.w + mad r12.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r12.xyz, r1.xzyx, -r12.xyzx + max r5.w, |r12.y|, |r12.x| + add r5.w, r5.w, l(-29.000000) + mul_sat r5.w, r5.w, l(0.500000) + add r6.w, |r12.z|, l(-13.000000) + mul_sat r6.w, r6.w, l(0.500000) + max r5.w, r5.w, r6.w + lt r6.w, r5.w, l(1.000000) + if_nz r6.w + mad r12.xyz, r1.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, t6.yzwx, s2, l(0.000000) + add r6.w, -r5.w, l(1.000000) + mul r7.y, l(0.500000), cb0[211].y + mad r10.z, -cb0[211].y, l(0.500000), l(1.000000) + max r7.y, r7.y, r12.y + min r7.y, r10.z, r7.y + mul r12.w, r7.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r12.xwzx, t7.xyzw, s1, l(0.000000) + mad r7.y, r14.w, r6.w, r4.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, t7.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, r13.yyyy, r15.xyzx + mov r15.w, r13.y + mul r15.xyzw, r6.wwww, 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, t7.xyzw, s1, 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, r6.wwww, 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, r6.wwww, 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 r7.y, r4.w + endif + mad r14.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r14.xyz, r1.xzyx, -r14.xyzx + max r6.w, |r14.y|, |r14.x| + add r6.w, r6.w, l(-116.000000) + mul_sat r6.w, r6.w, l(0.125000) + add r10.z, |r14.z|, l(-52.000000) + mul_sat r10.z, r10.z, l(0.125000) + max r6.w, r6.w, r10.z + lt r10.z, r6.w, l(1.000000) + if_nz r10.z + mad r14.xyz, r1.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, t8.yzwx, s2, l(0.000000) + add r10.z, -r6.w, l(1.000000) + mul r5.w, r5.w, r10.z + mul r10.z, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r10.z, r10.z, r14.y + min r10.z, r10.w, r10.z + mul r14.w, r10.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t9.xyzw, s1, l(0.000000) + mad r7.y, r17.w, r5.w, r7.y + 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, t9.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 + mad r15.xyzw, r18.xyzw, r5.wwww, 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, 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, r16.xxxx, r14.xyzx + mov r14.w, r16.x + mad r12.xyzw, r14.xyzw, r5.wwww, 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, r5.wwww, r13.xyzw + endif + lt r5.w, l(0.000000), r6.w + if_nz r5.w + mad r1.xyz, r1.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r1.xyzx, cb0[211].xyzx + mul r16.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r1.xyz, r1.xyzx, cb0[211].xyzx, -r14.xyzx + mad r14.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r1.xyz, r16.xyzx, r1.xyzx + min r17.xyz, r14.xyzx, r1.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t10.yzwx, s2, l(0.000000) + add r1.x, -r4.w, l(1.000000) + mul r1.x, r1.x, r6.w + max r1.y, r16.y, r17.y + min r1.y, r14.y, r1.y + mul r17.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r17.xwzx, t11.xyzw, s1, l(0.000000) + add r16.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t11.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.yyyy, r16.xyzx + mov r16.w, r18.y + mad r15.xyzw, r16.xyzw, r1.xxxx, r15.xyzw + add r16.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t11.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 r12.xyzw, r16.xyzw, r1.xxxx, 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 r18.xyz, r18.wwww, r14.xyzx + mad r13.xyzw, r18.xyzw, r1.xxxx, r13.xyzw + mad r7.y, r14.w, r1.x, r7.y + endif + mad_sat r1.x, r7.y, l(2.000000), l(-1.000000) + add r14.x, -r4.w, r1.x + add r1.x, r4.w, r1.x + mul r14.y, r1.x, 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 r16.xyzw, r14.yyyx, cb0[213].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r14.yxyy, cb0[213].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r13.xyzw, r13.xyzw, r16.xyzw +mul r16.xyzw, r14.yyyx, cb0[214].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r14.yxyy, cb0[214].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r12.xyzw, r12.xyzw, r16.xyzw +mul r16.xyzw, r14.yyyx, cb0[215].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r14.yxyy, cb0[215].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r14.xyzw, r15.xyzw, r16.xyzw +dp3 r1.x, r13.xyzx, r8.xyzx +add r1.x, r13.w, r1.x +max r1.x, r1.x, l(0.000000) +dp3 r4.w, r12.xyzx, r8.xyzx +add r4.w, r12.w, r4.w +max r1.y, r4.w, l(0.000000) +dp3 r4.w, r14.xyzx, r8.xyzx +add r4.w, r14.w, r4.w +max r1.z, r4.w, l(0.000000) +add r12.xyz, l(1.000000, 0.666666687, 0.333333343, 0.000000), cb2[19].xxxx +frc r12.xyz, r12.xyzx +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, cb2[19].yyyy, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r12.xyz, r1.wwww, r12.xyzx +mad r13.xyz, r12.xyzx, cb2[19].wwww, r7.xzwx +mul r13.xyz, r1.xyzx, r13.xyzx +mul r10.zw, r13.xxxy, cb0[111].xxxx +dp3 r1.w, -r5.xyzx, r8.xyzx +add r1.w, r1.w, r1.w +mad r14.xyz, r8.xyzx, -r1.wwww, -r5.xyzx +add r1.w, l(-1.000000), cb0[113].x +max r4.w, l(0.001000), cb2[21].w +log r4.w, r4.w +mad r4.w, -r4.w, l(1.200000), l(1.000000) +add r1.w, r1.w, -r4.w +utof r15.xy, r11.xyxx +mul r15.zw, r15.xxxy, cb3[0].wwww +round_ni r15.zw, r15.zzzw +add r4.w, r11.z, -cb3[2].y +round_ni r4.w, r4.w +add r5.w, l(-1.000000), cb3[1].x +max r6.w, r4.w, l(0.000000) +min r5.w, r5.w, r6.w +ge r4.w, r5.w, r4.w +mad r6.w, r15.w, cb3[0].x, r15.z +ftoi r6.w, r6.w +iadd r6.w, r6.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r6.w, r6.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, r6.w +and r4.w, r4.w, r5.w +mul r1.xyz, r1.xyzx, cb0[111].xxxx +dp3 r1.x, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r2.w, l(1.000000) +mov r8.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r1.y, l(1.000000) +mov r1.z, r4.w +mov r5.w, l(0) +loop + lt r6.w, l(0.010000), r1.y + ine r7.y, r1.z, l(0) + and r7.y, r6.w, r7.y + if_nz r7.y + firstbit_lo r7.y, r1.z + ishl r12.w, l(1), r7.y + xor r1.z, r1.z, r12.w + ishl r7.y, r7.y, l(3) + dp4 r17.x, cb3[r7.y + 6].xyzw, r2.xyzw + dp4 r17.y, cb3[r7.y + 7].xyzw, r2.xyzw + dp4 r17.z, cb3[r7.y + 8].xyzw, r2.xyzw + ge r18.xyz, cb3[r7.y + 5].xyzx, |r17.xyzx| + and r12.w, r18.y, r18.x + and r12.w, r18.z, r12.w + if_nz r12.w + mul r12.w, l(0.100000), cb3[r7.y + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r15.zw, r18.xxxy, r18.xxxy + add r18.xyw, -|r17.xyxz|, cb3[r7.y + 5].xyxz + mul r18.xyw, r18.xyxw, cb3[r7.y + 9].xyxz + eq r13.w, l(1.000000), cb3[r7.y + 10].x + if_nz r13.w + dp3 r19.x, cb3[r7.y + 6].xyzx, r14.xyzx + dp3 r19.y, cb3[r7.y + 7].xyzx, r14.xyzx + dp3 r19.z, cb3[r7.y + 8].xyzx, r14.xyzx + add r20.xyz, -r17.xyzx, cb3[r7.y + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r17.xyzx, -cb3[r7.y + 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 r13.w, r20.y, r20.x + min r13.w, r20.z, r13.w + mad r17.xyz, r19.xyzx, r13.wwww, r17.xyzx + else + mov r17.xyz, r14.xyzx + endif + dp3 r13.w, r17.xyzx, r17.xyzx + rsq r13.w, r13.w + mul r17.xyz, r13.wwww, 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 r13.w, r17.xyzx, r19.xyzx + div r17.xyz, r17.xyzx, r13.wwww + lt r13.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, r19.xxxy + movc r17.xy, r13.wwww, r17.zwzz, r17.xyxx + dp4 r13.w, cb3[r7.y + 4].xyzw, r8.xyzw + max r13.w, r13.w, l(0.000000) + max r13.w, r13.w, l(0.000100) + min r14.w, r18.w, r18.y + min r14.w, r14.w, r18.x + add r15.z, r15.w, r15.z + mad r15.z, r18.z, r18.z, r15.z + mad r12.w, r12.w, r12.w, -r15.z + mul r12.w, r12.w, cb3[r7.y + 9].x + mul r12.w, r12.w, cb3[r7.y + 9].x + add r15.z, l(1.000000), -cb3[r7.y + 10].y + mul r12.w, r12.w, r15.z + mul r12.w, r12.w, l(100.000000) + mad_sat r12.w, r14.w, cb3[r7.y + 10].y, r12.w + mul r14.w, r12.w, cb3[r7.y + 10].w + mad r15.zw, r17.xxxy, 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, cb3[r7.y + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t2.xyzw, s3, r1.w + mul r17.xyz, r17.xyzx, cb3[r7.y + 9].wwww + div r15.z, r1.x, r13.w + min r15.z, |r15.z|, l(1.000000) + mad r15.z, r15.z, l(2.000000), r1.x + add r13.w, r13.w, l(2.000000) + div r13.w, r15.z, r13.w + add r13.w, r13.w, l(-1.000000) + mad r13.w, r13.w, cb0[112].w, l(1.000000) + mul r17.xyz, r13.wwww, r17.xyzx + mul r17.xyz, r14.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r1.yyyy, r16.xyzx + mad r7.y, -r12.w, cb3[r7.y + 10].w, l(1.000000) + mul r1.y, r1.y, r7.y + endif + mov r5.w, l(-1) + continue + else + mov r5.w, r6.w + break + endif + mov r5.w, r6.w +endloop +if_nz r5.w + dp3 r1.z, r14.xyzx, r14.xyzx + rsq r1.z, r1.z + mul r17.xyz, r1.zzzz, 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.z, r17.xyzx, r18.xyzx + div r17.xyz, r17.xyzx, r1.zzzz + lt r1.z, 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.zzzz, r15.zzzw, r17.xxxy + mov r8.w, l(1.000000) + dp4 r1.z, cb3[3].xyzw, r8.xyzw + max r1.z, r1.z, l(0.000000) + max r1.z, r1.z, 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, r1.w + div r1.w, r1.x, r1.z + min r1.w, |r1.w|, l(1.000000) + mad r1.x, r1.w, l(2.000000), r1.x + add r1.z, r1.z, l(2.000000) + div r1.x, r1.x, r1.z + add r1.x, r1.x, l(-1.000000) + mad r1.x, r1.x, cb0[112].w, l(1.000000) + mul r1.xzw, r1.xxxx, r17.xxyz + mad r16.xyz, r1.xzwx, r1.yyyy, r16.xyzx +endif +mul r1.xyz, r16.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +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 +mul r1.xyz, r1.xyzx, cb0[111].yyyy +mov_sat r9.z, r9.z +mul r1.w, r10.y, r9.z +mad r1.w, r9.w, r10.x, r1.w +mul r1.xyz, r1.wwww, r1.xyzx +max r1.w, r0.x, l(0.010000) +div r1.xyz, r1.xyzx, r1.wwww +add r2.w, r10.w, r10.z +mad r2.w, r13.z, cb0[111].x, r2.w +mul r2.w, r2.w, l(0.333333343) +add r4.w, r1.y, r1.x +add r4.w, r1.z, r4.w +mul r5.w, r4.w, l(0.333333343) +mad r10.xyz, r13.xyzx, cb0[111].xxxx, -r2.wwww +mad r10.xyz, r10.xyzx, cb2[20].wwww, r2.wwww +mad r1.xyz, -r4.wwww, l(0.333333343, 0.333333343, 0.333333343, 0.000000), r1.xyzx +mad r1.xyz, r1.xyzx, cb2[20].wwww, r5.wwww +add r1.xyz, r1.xyzx, r10.xyzx +lt r2.w, cb6[35].w, l(0.990000) +if_nz r2.w + mad r10.xyz, r8.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xyzx + ftoi r2.w, cb6[35].x + ieq r4.w, r2.w, l(2) + movc r13.xyz, r4.wwww, cb6[20].xyzx, cb0[44].xyzx + add r13.xyz, r10.xyzx, -r13.xyzx + dp3 r4.w, r13.xyzx, r13.xyzx + add r4.w, -r4.w, cb6[34].w + mul_sat r4.w, r4.w, cb6[34].z + lt r5.w, l(0.000000), r4.w + if_nz r5.w + ilt r2.w, l(0), r2.w + if_nz r2.w + add r13.xyz, r10.xyzx, -cb6[20].xyzx + add r16.xyz, r10.xyzx, -cb6[21].xyzx + add r17.xyz, r10.xyzx, -cb6[22].xyzx + add r18.xyz, r10.xyzx, -cb6[23].xyzx + dp3 r13.x, r13.xyzx, r13.xyzx + dp3 r13.y, r16.xyzx, r16.xyzx + dp3 r13.z, r17.xyzx, r17.xyzx + dp3 r13.w, r18.xyzx, r18.xyzx + lt r16.x, r13.x, cb6[20].w + lt r16.y, r13.y, cb6[21].w + lt r16.z, r13.z, cb6[22].w + lt r16.w, r13.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 r2.w, r17.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r2.w, -r2.w, l(4.000000) + max r2.w, r2.w, l(0.000000) + min r2.w, r2.w, l(3.000000) + add r5.w, r2.w, l(1.000000) + min r5.w, r5.w, l(3.000000) + ftou r5.w, r5.w + dp3 r6.w, r13.yzwy, icb[r5.w + 0].yzwy + div r5.w, r6.w, cb6[r5.w + 20].w + ge r6.w, r5.w, l(0.000000) + ge r5.w, l(1.000000), r5.w + and r5.w, r5.w, r6.w + if_nz r5.w + ftou r5.w, r2.w + add r15.zw, r15.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r6.w, r15.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r6.w, r6.w + mul r6.w, r6.w, l(52.982918) + frc r6.w, r6.w + dp4 r7.y, r13.xyzw, icb[r5.w + 0].xyzw + div r5.w, r7.y, cb6[r5.w + 20].w + sqrt r5.w, r5.w + add r5.w, r5.w, l(-0.900000) + mul r5.w, r5.w, l(12.000000) + ge r5.w, r5.w, r6.w + and r5.w, r5.w, l(0x3f800000) + add r2.w, r2.w, r5.w + endif + dp3 r5.w, r8.xyzx, cb5[0].xyzx + max r5.w, r5.w, l(0.000000) + min r5.w, r5.w, l(0.900000) + add r5.w, -r5.w, l(1.000000) + ftou r6.w, r2.w + ishl r7.y, r6.w, l(2) + mul r13.xy, r5.wwww, cb6[r6.w + 24].xyxx + max r5.w, r13.x, l(0.000000) + mad r13.xzw, -cb5[0].xxyz, r5.wwww, r10.xxyz + mad r13.xyz, r8.xyzx, r13.yyyy, r13.xzwx + mul r16.xyz, r13.yyyy, cb6[r7.y + 1].xyzx + mad r13.xyw, cb6[r7.y + 0].xyxz, r13.xxxx, r16.xyxz + mad r13.xyz, cb6[r7.y + 2].xyzx, r13.zzzz, r13.xywx + add r13.xyz, r13.xyzx, cb6[r7.y + 3].xyzx + ge r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xyzx + ge r17.xyz, r13.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r16.xyz, r16.xyzx, r17.xyzx + or r5.w, r16.y, r16.x + or r5.w, r16.z, r5.w + and r6.w, r13.z, l(0x7fffffff) + ult r6.w, l(0x7f800000), r6.w + or r16.z, r5.w, r6.w + ftoi r2.w, r2.w + mad r13.xy, r13.xyxx, cb6[r2.w + 28].zwzz, cb6[r2.w + 28].xyxx + mad r15.zw, r13.xxxy, cb6[32].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) + round_ni r15.zw, r15.zzzw + mad r13.xy, r13.xyxx, cb6[32].zwzz, -r15.zwzz + add r17.xyzw, r13.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r17.xz, r13.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r19.xy, r13.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.zw, r18.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, -r17.xzxx, r17.xzxx, r13.xyxx + mad r17.xy, -r19.xyxx, r19.xyxx, r17.ywyy + mov r20.x, r19.z + mov r20.y, r13.x + 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, r13.y + 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 r13.xy, r20.ywyy, r18.zwzz + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r20.xy, r13.xyxx, cb6[32].xxxx + div r13.xy, r17.ywyy, r19.ywyy + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r20.zw, r13.xxxy, cb6[32].yyyy + mul r17.xyzw, r18.xyzw, r19.xyzw + mad r18.xyzw, r15.zwzw, cb6[32].xyxy, r20.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.xyxx, t12.xxxx, s4, r13.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r18.zwzz, t12.xxxx, s4, r13.z + mul r5.w, r5.w, r17.y + mad r2.w, r17.x, r2.w, r5.w + mad r18.xyzw, r15.zwzw, cb6[32].xyxy, r20.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r18.xyxx, t12.xxxx, s4, r13.z + mad r2.w, r17.z, r5.w, r2.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r18.zwzz, t12.xxxx, s4, r13.z + mad r2.w, r17.w, r5.w, r2.w + movc r16.x, r16.z, l(1.000000), r2.w + else + mov r16.xz, l(1.000000,0,0,0) + endif + else + mov r16.xz, l(1.000000,0,0,0) + endif + lt r2.w, r4.w, l(1.000000) + if_nz r2.w + dp3 r2.w, r8.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) + mul r13.xy, r2.wwww, cb6[584].xyxx + mad r13.xzw, -cb5[0].xxyz, r13.xxxx, r10.xxyz + mad r13.xyz, r8.xyzx, r13.yyyy, r13.xzwx + mul r15.zw, r13.yyyy, cb6[581].xxxy + mad r15.zw, cb6[580].xxxy, r13.xxxx, r15.zzzw + mad r15.zw, cb6[582].xxxy, r13.zzzz, r15.zzzw + add r15.zw, r15.zzzw, cb6[583].xxxy + lt r17.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r15.zwzz + and r2.w, r17.y, r17.x + lt r17.xy, r15.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r5.w, r17.y, r17.x + and r2.w, r2.w, r5.w + if_nz r2.w + mul r2.w, r15.w, cb6[585].z + round_ni r2.w, r2.w + add r2.w, r15.z, r2.w + mul r2.w, r2.w, cb6[585].y + ftou r2.w, r2.w + umin r2.w, r2.w, l(127) + and r5.w, l(0x0000ffff), cb6[r2.w + 587].x + f16tof32 r17.x, r5.w + ge r5.w, r17.x, l(0.000000) + if_nz r5.w + mov r18.x, cb6[576].x + mov r18.y, cb6[577].x + mov r18.z, cb6[578].x + mov r18.w, cb6[r2.w + 587].y + mov r13.w, l(1.000000) + dp4 r18.x, r18.xyzw, r13.xyzw + mov r19.x, cb6[576].y + mov r19.y, cb6[577].y + mov r19.z, cb6[578].y + mov r19.w, cb6[r2.w + 587].z + dp4 r18.y, r19.xyzw, r13.xyzw + mov r19.x, cb6[576].z + mov r19.y, cb6[577].z + mov r19.z, cb6[578].z + mov r19.w, cb6[r2.w + 587].w + dp4 r5.w, r19.xyzw, r13.xyzw + lt r13.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyxx + lt r6.w, l(0.000000), r5.w + and r7.y, r13.y, r13.x + and r6.w, r6.w, r7.y + lt r13.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + lt r7.y, r5.w, l(1.000000) + and r8.w, r13.y, r13.x + and r7.y, r7.y, r8.w + and r6.w, r6.w, r7.y + if_nz r6.w + ushr r2.w, cb6[r2.w + 587].x, l(16) + f16tof32 r17.y, r2.w + mad r13.xy, r18.xyxx, cb6[584].zwzz, r17.xyxx + mad r13.zw, r13.xxxy, cb6[586].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) + round_ni r13.zw, r13.zzzw + mad r13.xy, r13.xyxx, cb6[586].zwzz, -r13.zwzz + add r17.xyzw, r13.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r15.zw, r13.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r17.xz, r13.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.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, -r15.zwzz, r15.zwzz, r13.xyxx + mad r15.zw, -r17.xxxz, r17.xxxz, r17.yyyw + mov r17.x, r19.x + mov r17.y, r13.x + 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, r13.y + 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 r13.xy, r17.ywyy, r19.zwzz + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r17.xy, r13.xyxx, cb6[586].xxxx + div r13.xy, r18.ywyy, r20.ywyy + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r17.zw, r13.xxxy, cb6[586].yyyy + mad r18.xyzw, r13.zwzw, cb6[586].xyxy, r17.xzyz + mad r13.xyzw, r13.zwzw, cb6[586].xyxy, r17.xwyw + mul r17.xyzw, r19.xyzw, r20.xyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.xyxx, t15.xxxx, s4, r5.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r18.zwzz, t15.xxxx, s4, r5.w + mul r6.w, r6.w, r17.y + mad r2.w, r17.x, r2.w, r6.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r13.xyxx, t15.xxxx, s4, r5.w + mad r2.w, r17.z, r6.w, r2.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r13.zwzz, t15.xxxx, s4, r5.w + mad r16.y, r17.w, r5.w, r2.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 r2.w, -r16.y, r16.x + mad r2.w, r4.w, r2.w, r16.y + lt r4.w, l(0.001000), r2.w + if_nz r4.w + add r10.xyz, r10.xyzx, -cb0[173].xyzx + mad r10.yw, cb0[176].xxxz, r10.yyyy, r10.xxxz + mul r13.xy, r10.ywyy, cb0[174].zzzz + mul r13.zw, cb0[175].xxxy, cb0[183].wwww + mad r10.yw, r10.yyyw, cb0[174].zzzz, r13.zzzw + sample_l_indexable(texture2d)(float,float,float,float) r4.w, r10.ywyy, t14.yzwx, s2, l(0.000000) + mad r10.yw, r13.xxxy, cb0[175].wwww, r13.zzzw + sample_l_indexable(texture2d)(float,float,float,float) r5.w, r10.ywyy, t14.yzwx, s2, l(0.000000) + dp2 r6.w, r10.xzxx, r10.xzxx + sqrt r6.w, r6.w + add r7.y, -cb0[174].x, cb0[174].y + add r6.w, r6.w, -cb0[174].x + div r7.y, l(1.000000, 1.000000, 1.000000, 1.000000), r7.y + mul_sat r6.w, r6.w, r7.y + mad r7.y, r6.w, l(-2.000000), l(3.000000) + mul r6.w, r6.w, r6.w + mul r6.w, r6.w, r7.y + add r5.w, -r4.w, r5.w + mad r4.w, r6.w, r5.w, r4.w + add r4.w, r4.w, l(-1.000000) + mad r4.w, cb0[175].z, r4.w, l(1.000000) + mul r2.w, r2.w, r4.w + endif + add r4.w, -r2.w, cb6[35].z + mad r2.w, cb6[35].w, r4.w, r2.w +else + mov r2.w, cb6[35].z +endif +min r2.w, r2.w, l(1.000000) +add r2.w, r2.w, l(-1.000000) +mad r10.x, cb6[34].x, r2.w, l(1.000000) +lt r2.w, l(0.001000), r10.x +if_nz r2.w + dp3 r2.w, -cb5[0].xyzx, r14.xyzx + mad r13.xyz, cb5[0].xyzx, r2.wwww, r14.xyzx + lt r2.w, r2.w, cb5[4].z + dp3 r4.w, r13.xyzx, r13.xyzx + max r4.w, r4.w, l(0.0000610351562) + rsq r4.w, r4.w + mul r13.xyz, r4.wwww, r13.xyzx + mul r13.xyz, r13.xyzx, cb5[4].yyyy + mad r13.xyz, -cb5[0].xyzx, cb5[4].zzzz, r13.xyzx + dp3 r4.w, r13.xyzx, r13.xyzx + rsq r4.w, r4.w + mul r13.xyz, r4.wwww, r13.xyzx + movc r13.xyz, r2.wwww, r13.xyzx, r14.xyzx + mad r16.xyz, r3.xyzx, r0.wwww, r13.xyzx + dp3 r2.w, r16.xyzx, r16.xyzx + max r2.w, r2.w, l(0.0000610351562) + rsq r2.w, r2.w + mul r16.xyz, r2.wwww, r16.xyzx + dp3 r2.w, r13.xyzx, r8.xyzx + mov_sat r17.z, r2.w + dp3_sat r4.w, r8.xyzx, r16.xyzx + min r17.x, r3.w, l(1.000000) + mul r5.w, cb2[21].w, cb2[21].w + mul r5.w, r5.w, r5.w + mad r6.w, r4.w, r5.w, -r4.w + mad r4.w, r6.w, r4.w, l(1.000000) + dp3_sat r6.w, r5.xyzx, r16.xyzx + add r6.w, -r6.w, l(1.000000) + mul r7.y, r6.w, r6.w + mul r7.y, r7.y, r7.y + mul r8.w, r6.w, r7.y + add r9.z, l(1.000000), -cb2[21].w + mad r10.z, -r9.z, l(0.383026), l(-0.0761947036) + mad r10.z, r9.z, r10.z, l(1.049970) + mad r9.z, r9.z, r10.z, l(0.409255) + min r9.z, r9.z, l(0.999000) + add r10.z, -r9.z, l(1.000000) + mad r10.w, -cb2[22].x, l(0.080000), l(1.000000) + mad r10.w, r10.w, l(0.0476190485), r9.w + mad_sat r12.w, -r0.y, r7.x, l(1.000000) + mad r6.w, -r7.y, r6.w, l(1.000000) + mad r6.w, r9.w, r6.w, r8.w + mul r4.w, r4.w, r4.w + div r4.w, r5.w, r4.w + mad r15.zw, -r17.xxxz, r5.wwww, r17.xxxz + mad r15.zw, r15.zzzw, r17.xxxz, r5.wwww + sqrt r15.zw, r15.zzzw + mul r15.zw, r15.zzzw, r17.zzzx + add r5.w, r15.w, r15.z + add r5.w, r5.w, l(0.000100) + div r5.w, l(0.500000), r5.w + mul r4.w, r4.w, r5.w + mul r4.w, r4.w, r6.w + min r4.w, r4.w, l(2048.000000) + mov r17.yw, cb2[21].wwww + mad r16.xyzw, r17.xyzw, 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) r5.w, r16.xyxx, t17.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r6.w, r16.zwzz, t17.yzwx, s1, l(0.000000) + mul r5.w, r5.w, r6.w + mul r5.w, r9.z, r5.w + div r5.w, r5.w, r10.z + mul r6.w, r10.w, r10.w + mul r5.w, r5.w, r6.w + mad r6.w, -r10.w, r10.z, l(1.000000) + div r5.w, r5.w, r6.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[13].z + if_nz r35.x + mul r4.w, r4.w, l(0.500000) + endif + max r4.w, r4.w, l(0.000000) + min r4.w, r4.w, l(1000.000000) + div r1.w, r4.w, r1.w + min r1.w, r1.w, l(1000.000000) + mul r1.w, r1.w, cb2[20].y + mad_sat r2.w, r2.w, l(0.666666687), l(0.333333343) + log r2.w, r2.w + mul r2.w, r2.w, l(1.500000) + exp r2.w, r2.w + mad r2.w, r2.w, l(1.66666663), l(-1.000000) + mad r2.w, r12.w, r2.w, l(1.000000) + mul r4.w, r2.w, l(0.159154937) + dp3 r5.w, r5.xyzx, r13.xyzx + mov_sat r5.w, -r5.w + log r5.w, r5.w + mul r5.w, r5.w, l(12.000000) + exp r5.w, r5.w + mad r6.w, r12.w, l(-2.900000), l(3.000000) + mul r5.w, r5.w, r6.w + mad r2.w, -r2.w, l(0.159154937), l(1.000000) + mad r2.w, r5.w, r2.w, r4.w + mul r13.xyz, r2.wwww, r12.xyzx + mad r13.xyz, r1.wwww, r17.zzzz, r13.xyzx + mad r13.xyz, r7.xzwx, r17.zzzz, r13.xyzx + mul r13.xyz, r13.xyzx, cb5[1].xyzx + mov r10.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r10.yzw, r10.xyxx, t16.wxyz, s1, cb0[108].x + add r1.w, -r10.x, l(1.000000) + mad r10.xyz, r13.xyzx, r10.yzwy, -r13.xyzx + mad r10.xyz, r1.wwww, r10.xyzx, r13.xyzx +else + mov r10.xyz, l(0,0,0,0) +endif +mul r13.xy, r15.xyxx, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r13.xy, r13.xyxx +mad r1.w, r13.y, cb4[1].y, r13.x +mul r1.w, r1.w, l(8.000000) +ftoi r1.w, r1.w +mad r2.w, -cb0[85].y, cb4[2].w, r11.z +round_ni r2.w, r2.w +add r4.w, l(-1.000000), cb4[1].w +max r5.w, r2.w, l(0.000000) +min r4.w, r4.w, r5.w +mul r5.w, r4.w, l(8.000000) +ftoi r5.w, r5.w +ge r2.w, r4.w, r2.w +iadd r4.w, r5.w, cb0[110].y +mul r5.w, cb2[21].w, cb2[21].w +min r13.x, r3.w, l(1.000000) +add r13.zw, l(0.000000, 0.000000, 1.000000, 1.000000), -cb2[21].wwwy +mad r3.w, -r13.z, l(0.383026), l(-0.0761947036) +mad r3.w, r13.z, r3.w, l(1.049970) +mad r3.w, r13.z, r3.w, l(0.409255) +min r3.w, r3.w, l(0.999000) +add r6.w, -r3.w, l(1.000000) +mad r7.y, -cb2[22].x, l(0.080000), l(1.000000) +mad r7.y, r7.y, l(0.0476190485), r9.w +mad_sat r0.y, -r0.y, r7.x, l(1.000000) +mov r13.y, cb2[21].w +mad r13.yz, r13.xxyx, 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) r8.w, r13.yzyy, t17.yzwx, s1, l(0.000000) +mad r9.z, -r7.y, r6.w, l(1.000000) +mad r10.w, r0.y, l(-2.900000), l(3.000000) +mul r7.y, r7.y, r7.y +mov r16.w, l(1.000000) +mov r17.y, l(1.000000) +mov r18.z, cb2[21].w +mov r19.xyz, l(0,0,0,0) +mov r12.w, l(1.000000) +mov r13.y, l(0) +loop + ilt r13.z, l(7), r13.y + breakc_nz r13.z + iadd r13.z, r1.w, r13.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.z, r13.z, l(0), t0.xxxx + iadd r14.w, r4.w, 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.w, r13.z + ishl r14.w, r13.y, l(5) + mov r20.xyz, l(0,0,0,0) + mov r15.z, r12.w + mov r15.w, r13.z + loop + breakc_z r15.w + firstbit_lo r17.z, r15.w + ishl r17.w, l(1), r17.z + xor r17.w, r15.w, r17.w + iadd r17.z, r14.w, r17.z + bfi r21.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r17.zzzz, l(1, 3, 5, 6) + bfi r18.w, l(29), l(3), r17.z, l(7) + ftou r19.w, cb5[r21.z + 6].w + ieq r19.w, r19.w, l(1) + if_nz r19.w + add r16.xyz, r2.xyzx, -cb5[r21.x + 6].xyzx + and r22.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r21.z + 6].xzyx + and r23.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r21.w + 6].yxzy + ushr r24.xyz, cb5[r21.z + 6].xzyx, l(16, 16, 16, 0) + ushr r25.xyz, cb5[r21.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r22.xyz, r22.xyzx + f16tof32 r23.xyz, r23.xyzx + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyw, r25.yxyz + mov r26.xz, r22.xxzx + mov r26.yw, r24.xxxz + dp4 r19.w, r16.xyzw, r26.xyzw + mov r24.x, r22.y + mov r24.z, r23.y + mov r24.w, r25.x + dp4 r20.w, r16.xyzw, r24.xyzw + mov r25.xz, r23.xxzx + dp4 r16.x, r16.xyzw, r25.xyzw + max r16.y, |r19.w|, |r20.w| + max r16.x, |r16.x|, r16.y + mad r16.y, cb5[r18.w + 6].x, l(0.500000), l(0.500000) + add r16.x, -r16.y, r16.x + mad r16.y, -cb5[r18.w + 6].x, l(0.500000), l(0.500000) + div_sat r16.x, r16.x, r16.y + add r16.x, -r16.x, l(1.000000) + mul r16.x, r16.x, r16.x + else + mov r16.x, l(1.000000) + endif + lt r16.y, l(0.500000), cb5[r21.y + 6].z + lt r16.z, r16.x, l(0.001000) + or r16.z, r16.y, r16.z + if_nz r16.z + mov r15.w, r17.w + continue + endif + ishl r16.z, r17.z, l(3) + bfi r17.z, l(29), l(3), r17.z, l(2) + lt r19.w, cb5[r16.z + 6].w, l(1.500000) + if_nz r19.w + mad r19.w, cb5[r17.z + 6].y, l(0.500000), l(0.500000) + add r22.x, r19.w, -|cb5[r17.z + 6].x| + add r22.y, -r22.x, cb5[r17.z + 6].y + add r19.w, -|r22.x|, l(1.000000) + add r19.w, -|r22.y|, r19.w + max r19.w, r19.w, l(0.000488281250) + ge r20.w, cb5[r17.z + 6].x, l(0.000000) + movc r22.z, r20.w, r19.w, -r19.w + dp3 r19.w, r22.xyzx, r22.xyzx + rsq r19.w, r19.w + mul r22.xyz, r19.wwww, r22.xyzx + add r23.xyz, -r2.xyzx, cb5[r21.x + 6].xyzx + dp3 r19.w, r23.xyzx, r23.xyzx + rsq r20.w, r19.w + mul r24.xyz, r20.wwww, r23.xyzx + ftoi r21.z, cb5[r18.w + 6].w + mul r25.xyz, r22.xyzx, cb5[r17.z + 6].zzzz + mad r26.xyz, -r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r23.xyzx + mad r27.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r23.xyzx + ftou r22.w, cb5[r16.z + 6].w + and r22.w, r22.w, l(1) + ieq r23.w, r22.w, l(0) + not r23.w, r23.w + lt r24.w, l(0.000000), cb5[r17.z + 6].z + and r23.w, r23.w, r24.w + dp3 r24.w, r26.xyzx, r26.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r27.xyzx, r27.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r8.xyzx, r26.xyzx + div r26.w, r26.w, r24.w + dp3 r27.w, r8.xyzx, r27.xyzx + div r27.w, r27.w, r25.w + add r26.w, r26.w, r27.w + mul_sat r28.x, r26.w, l(0.500000) + dp3 r26.w, r26.xyzx, r27.xyzx + mad r24.w, r24.w, r25.w, r26.w + mad r24.w, r24.w, l(0.500000), l(1.000000) + div r28.y, l(1.000000, 1.000000, 1.000000, 1.000000), r24.w + dp3_sat r17.x, r8.xyzx, r24.xyzx + movc r18.xy, r23.wwww, r28.xyxx, r17.xyxx + lt r17.x, cb5[r21.w + 6].w, l(0.000000) + if_nz r17.x + mul r17.x, cb5[r21.x + 6].w, cb5[r21.x + 6].w + mul r17.x, r17.x, r19.w + mad r17.x, -r17.x, r17.x, l(1.000000) + max r17.x, r17.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, r23.w, l(0x3f800000) + add r25.w, r18.y, -r19.w + mad r19.w, r24.w, r25.w, r19.w + mul r17.x, r17.x, r17.x + mul r17.x, r17.x, r19.w + else + mul r27.xyz, r23.xyzx, cb5[r21.x + 6].wwww + dp3 r19.w, r27.xyzx, r27.xyzx + min r19.w, r19.w, l(1.000000) + add r19.w, -r19.w, l(1.000000) + log r19.w, r19.w + mul r19.w, r19.w, cb5[r21.w + 6].w + exp r19.w, r19.w + mul r17.x, r18.y, r19.w + endif + dp3 r18.y, r24.xyzx, -r22.xyzx + add r18.y, r18.y, -cb5[r17.z + 6].z + mul_sat r18.y, r18.y, cb5[r17.z + 6].w + mul r18.y, r18.y, r18.y + movc r18.y, r22.w, l(1.000000), r18.y + mul r17.x, r17.x, r18.y + not r18.y, r23.w + ige r19.w, r21.z, l(0) + and r18.y, r18.y, r19.w + if_nz r18.y + if_z r22.w + ishl r18.y, r21.z, l(2) + mul r22.xyz, r2.yyyy, cb7[r18.y + 33].xywx + mad r22.xyz, cb7[r18.y + 32].xywx, r2.xxxx, r22.xyzx + mad r22.xyz, cb7[r18.y + 34].xywx, r2.zzzz, r22.xyzx + add r22.xyz, r22.xyzx, cb7[r18.y + 35].xywx + div_sat r22.xy, r22.xyxx, r22.zzzz + mad r22.xy, r22.xyxx, cb7[r21.z + 0].zwzz, cb7[r21.z + 0].xyxx + else + ishl r18.y, r21.z, l(2) + dp3 r27.x, -r23.xyzx, cb7[r18.y + 32].xyzx + dp3 r27.y, -r23.xyzx, cb7[r18.y + 33].xyzx + dp3 r27.z, -r23.xyzx, cb7[r18.y + 34].xyzx + lt r18.y, |r27.x|, |r27.y| + and r18.y, r18.y, l(1) + dp2 r19.w, |r27.xyxx|, icb[r18.y + 0].xyxx + lt r19.w, r19.w, |r27.z| + movc r18.y, r19.w, l(2), r18.y + dp3 r19.w, r27.xyzx, icb[r18.y + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r18.y, l(31), l(1), r18.y, r19.w + ushr r19.w, r18.y, l(1) + dp3 r19.w, r27.xyzx, icb[r19.w + 0].xyzx + div r22.z, l(0.000244140625), cb7[r21.z + 0].w + add r22.z, -r22.z, l(0.500000) + utof r23.x, r18.y + ult r23.y, r18.y, l(2) + and r23.y, r23.y, l(2) + dp2 r23.y, r27.xzxx, icb[r23.y + 0].xzxx + mul r23.y, r23.y, icb[r18.y + 4].z + div r23.y, r23.y, |r19.w| + mad r23.x, r23.y, r22.z, r23.x + add r23.x, r23.x, l(0.500000) + mul_sat r23.x, r23.x, l(0.166666672) + iadd r23.z, l(-1), icb[r18.y + 4].y + dp2 r23.z, r27.yzyy, icb[r23.z + 0].xyxx + mul r18.y, r23.z, icb[r18.y + 4].w + div r18.y, r18.y, |r19.w| + mad_sat r23.y, -r18.y, r22.z, l(0.500000) + mad r22.xy, r23.xyxx, cb7[r21.z + 0].zwzz, cb7[r21.z + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r22.xyxx, t18.yxzw, s1, l(0.000000) + mul r17.x, r17.x, r18.y + endif + lt r18.y, l(0.000000), r17.x + if_nz r18.y + if_z r22.w + ftoi r19.w, cb5[r21.y + 6].x + else + add r22.xyz, r2.xyzx, -cb5[r21.x + 6].xyzx + lt r23.xyz, |r22.yzzy|, |r22.xxyx| + and r21.z, r23.y, r23.x + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + ushr r22.w, cb5[r17.z + 6].w, l(24) + ubfe r23.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r17.z + 6].wwww + movc r22.x, r22.x, r22.w, r23.x + and r22.w, l(255), cb5[r17.z + 6].w + movc r22.y, r22.y, r23.y, r22.w + ubfe r22.w, l(8), l(8), cb5[r21.y + 6].x + and r23.x, l(255), cb5[r21.y + 6].x + movc r22.z, r22.z, r22.w, r23.x + movc r22.y, r23.z, r22.y, r22.z + movc r21.z, r21.z, r22.x, r22.y + ilt r22.x, r21.z, l(80) + movc r19.w, r22.x, r21.z, l(-1) + endif + ishl r21.z, r19.w, l(2) + mad r22.xyz, r24.xyzx, cb6[r19.w + 288].xxxx, r2.xyzx + mul r22.w, l(5.000000), cb6[r19.w + 288].y + mad r22.xyz, r8.xyzx, r22.wwww, r22.xyzx + mul r27.xyzw, r22.yyyy, cb6[r21.z + 65].xyzw + mad r27.xyzw, cb6[r21.z + 64].xyzw, r22.xxxx, r27.xyzw + mad r22.xyzw, cb6[r21.z + 66].xyzw, r22.zzzz, r27.xyzw + add r22.xyzw, r22.xyzw, cb6[r21.z + 67].xyzw + div r22.xyz, r22.xyzx, r22.wwww + ge r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + ge r27.xyz, r22.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r28.xy, -cb6[r19.w + 344].xyxx, cb6[r19.w + 344].zwzz + mad r22.xy, r22.xyxx, r28.xyxx, cb6[r19.w + 344].xyxx + mad r28.xy, r22.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r28.xy, r28.xyxx + mad r22.xy, r22.xyxx, cb6[400].zwzz, -r28.xyxx + add r29.xyzw, r22.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r30.xyzw, r29.xxzz, r29.xxzz + add r28.zw, -r22.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r29.xz, r22.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r31.xy, r22.xyxx, 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 r22.xy, r30.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r22.xyxx + mul r33.xy, r22.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r22.xy, -r29.xzxx, r29.xzxx, r28.zwzz + add r22.xy, r22.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r22.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r22.xy, r29.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r33.z, r34.x + mov r33.w, r22.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, r22.y + mov r31.z, r32.y + mov r31.w, r30.z + add r22.xyw, r31.zyzw, r34.zyzw + div r30.xyz, r32.xzwx, r29.zwyz + add r30.xyz, r30.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r30.xyz, r30.xyzx, cb6[400].xxxx + div r31.xyz, r31.zywz, r22.xywx + add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r31.xyw, r31.xyxz, cb6[400].yyyy + mul r32.xyzw, r22.xxxy, r29.zwyz + mov r30.w, r31.x + mad r33.xyzw, r28.xyxy, cb6[400].xyxy, r30.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.z, r33.xyxx, t13.xxxx, s4, r22.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r33.zwzz, t13.xxxx, s4, r22.z + mul r22.x, r22.x, r32.y + mad r21.z, r32.x, r21.z, r22.x + mad r28.zw, r28.xxxy, cb6[400].xxxy, r30.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r28.zwzz, t13.xxxx, s4, r22.z + mad r21.z, r32.z, r22.x, r21.z + mov r31.z, r30.x + mad r33.xyzw, r28.xyxy, cb6[400].xyxy, r31.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r33.xyxx, t13.xxxx, s4, r22.z + mad r21.z, r32.w, r22.x, r21.z + mul r32.xyzw, r22.yyww, r29.xyzw + mov r31.xz, r30.yyzy + mad r30.xyzw, r28.xyxy, cb6[400].xyxy, r31.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r30.xyxx, t13.xxxx, s4, r22.z + mad r21.z, r32.x, r22.x, r21.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r30.zwzz, t13.xxxx, s4, r22.z + mad r21.z, r32.y, r22.x, r21.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r33.zwzz, t13.xxxx, s4, r22.z + mad r21.z, r32.z, r22.x, r21.z + ige r22.x, r19.w, l(0) + or r23.xyz, r23.xyzx, r27.xyzx + or r22.y, r23.y, r23.x + or r22.y, r23.z, r22.y + and r23.x, r22.z, l(0x7fffffff) + ult r23.x, l(0x7f800000), r23.x + or r22.y, r22.y, r23.x + mad r27.xyzw, r28.xyxy, cb6[400].xyxy, r31.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r27.xyxx, t13.xxxx, s4, r22.z + mad r21.z, r32.w, r23.x, r21.z + mul r22.w, r22.w, r29.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r27.zwzz, t13.xxxx, s4, r22.z + mad r21.z, r22.w, r22.z, r21.z + add r21.z, r21.z, l(-1.000000) + mad r19.w, cb6[r19.w + 288].w, r21.z, l(1.000000) + movc r19.w, r22.y, l(1.000000), r19.w + movc r19.w, r22.x, r19.w, l(1.000000) + else + mov r19.w, l(1.000000) + endif + if_nz r23.w + dp3 r21.z, r14.xyzx, r25.xyzx + mul_sat r22.x, r20.w, cb5[r17.z + 6].z + mad r22.x, r22.x, l(0.500000), r5.w + min r22.x, r22.x, l(1.000000) + div r22.x, r5.w, r22.x + mad r22.yzw, r14.xxyz, r21.zzzz, -r25.xxyz + dp3 r22.y, r26.xyzx, r22.yzwy + mul r21.z, r21.z, r21.z + mad r21.z, cb5[r17.z + 6].z, cb5[r17.z + 6].z, -r21.z + div_sat r21.z, r22.y, r21.z + mad r22.yzw, r25.xxyz, r21.zzzz, r26.xxyz + dp3 r21.z, r22.yzwy, r22.yzwy + rsq r21.z, r21.z + mul r24.xyz, r21.zzzz, r22.yzwy + else + mov r22.x, l(1.000000) + endif + if_nz r18.y + mul_sat r18.y, r20.w, cb5[r18.w + 6].y + mad r22.yzw, r3.xxyz, r0.wwww, r24.xxyz + dp3 r20.w, r22.yzwy, r22.yzwy + max r20.w, r20.w, l(0.0000610351562) + rsq r20.w, r20.w + mul r22.yzw, r20.wwww, r22.yyzw + dp3_sat r20.w, r8.xyzx, r22.yzwy + dp3_sat r21.z, r5.xyzx, r22.yzwy + lt r22.y, l(0.000000), r18.y + mul r18.y, r18.y, r18.y + mad r22.z, r21.z, l(3.600000), l(0.400000) + div r18.y, r18.y, r22.z + mad r18.y, cb2[21].w, cb2[21].w, r18.y + min r18.y, r18.y, l(1.000000) + movc r18.y, r22.y, r18.y, r5.w + mul r18.y, r18.y, r18.y + mad r22.y, r20.w, r18.y, -r20.w + mad r20.w, r22.y, r20.w, l(1.000000) + add r21.z, -r21.z, l(1.000000) + mul r22.y, r21.z, r21.z + mul r22.y, r22.y, r22.y + mul r22.z, r21.z, r22.y + mad r21.z, -r22.y, r21.z, l(1.000000) + mad r21.z, r9.w, r21.z, r22.z + mul r20.w, r20.w, r20.w + div r20.w, r18.y, r20.w + mul r20.w, r22.x, r20.w + mad r22.x, -r13.x, r18.y, r13.x + mad r22.x, r22.x, r13.x, r18.y + sqrt r22.x, r22.x + mad r22.y, -r18.x, r18.y, r18.x + mad r18.y, r22.y, r18.x, r18.y + sqrt r18.y, r18.y + mul r18.y, r13.x, r18.y + mad r18.y, r18.x, r22.x, r18.y + add r18.y, r18.y, l(0.000100) + div r18.y, l(0.500000), r18.y + mul r18.y, r18.y, r20.w + mul r18.y, r18.y, r21.z + min r18.y, r18.y, l(2048.000000) + mad r22.xy, r18.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, r22.xyxx, t17.yzwx, s1, l(0.000000) + mul r20.w, r8.w, r20.w + mul r20.w, r3.w, r20.w + div r20.w, r20.w, r6.w + mul r20.w, r7.y, r20.w + div r20.w, r20.w, r9.z + add r18.y, r18.y, r20.w + mul r18.y, r18.y, cb5[r18.w + 6].z + max r18.y, r18.y, l(0.000000) + min r18.y, r18.y, l(1000.000000) + dp3 r20.w, r8.xyzx, r24.xyzx + mad_sat r20.w, r20.w, l(0.666666687), l(0.333333343) + log r20.w, r20.w + mul r20.w, r20.w, l(1.500000) + exp r20.w, r20.w + mad r20.w, r20.w, l(1.66666663), l(-1.000000) + mad r20.w, r0.y, r20.w, l(1.000000) + mul r21.z, r20.w, l(0.159154937) + dp3 r22.x, r5.xyzx, r24.xyzx + mov_sat r22.x, -r22.x + log r22.x, r22.x + mul r22.x, r22.x, l(12.000000) + exp r22.x, r22.x + mul r22.x, r10.w, r22.x + mad r20.w, -r20.w, l(0.159154937), l(1.000000) + mad r20.w, r22.x, r20.w, r21.z + mul r22.xyz, r12.xyzx, r20.wwww + mad r22.xyz, r18.yyyy, r18.xxxx, r22.xyzx + mad r22.xyz, r7.xzwx, r18.xxxx, r22.xyzx + mul r23.xyz, r17.xxxx, cb5[r16.z + 6].xyzx + mul r23.xyz, r19.wwww, r23.xyzx + mul r23.xyz, r16.xxxx, r23.xyzx + mul r22.xyz, r22.xyzx, r23.xyzx + else + mov r22.xyz, l(0,0,0,0) + endif + else + if_z r16.y + mad r16.x, cb5[r17.z + 6].y, l(0.500000), l(0.500000) + add r23.x, r16.x, -|cb5[r17.z + 6].x| + add r23.y, -r23.x, cb5[r17.z + 6].y + add r16.x, -|r23.x|, l(1.000000) + add r16.x, -|r23.y|, r16.x + max r16.x, r16.x, l(0.000488281250) + ge r16.y, cb5[r17.z + 6].x, l(0.000000) + movc r23.z, r16.y, r16.x, -r16.x + dp3 r16.x, r23.xyzx, r23.xyzx + rsq r16.x, r16.x + mul r23.xyz, r16.xxxx, r23.xyzx + add r24.xyz, -r2.xyzx, cb5[r21.x + 6].xyzx + dp3 r16.x, r24.xyzx, r24.xyzx + rsq r16.y, r16.x + mul r25.xyz, r16.yyyy, r24.xyzx + ftoi r16.y, cb5[r18.w + 6].w + mul r18.xyw, r23.xyxz, cb5[r17.z + 6].zzzz + mad r26.xyz, -r18.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + mad r18.xyw, r18.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r24.xyxz + ftou r16.z, cb5[r16.z + 6].w + and r16.z, r16.z, l(1) + ieq r17.x, r16.z, l(0) + not r17.x, r17.x + lt r19.w, l(0.000000), cb5[r17.z + 6].z + and r17.x, r17.x, r19.w + dp3 r19.w, r26.xyzx, r26.xyzx + sqrt r19.w, r19.w + dp3 r20.w, r18.xywx, r18.xywx + sqrt r20.w, r20.w + dp3 r18.x, r26.xyzx, r18.xywx + mad r18.x, r19.w, r20.w, 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, r17.x, r18.x, l(1.000000) + lt r18.y, cb5[r21.w + 6].w, l(0.000000) + if_nz r18.y + mul r18.y, cb5[r21.x + 6].w, cb5[r21.x + 6].w + mul r18.y, r16.x, r18.y + mad r18.y, -r18.y, r18.y, l(1.000000) + max r18.y, r18.y, l(0.000000) + add r16.x, r16.x, l(1.000000) + div r16.x, l(1.000000, 1.000000, 1.000000, 1.000000), r16.x + and r18.w, r17.x, l(0x3f800000) + add r19.w, -r16.x, r18.x + mad r16.x, r18.w, r19.w, r16.x + mul r18.y, r18.y, r18.y + mul r16.x, r16.x, r18.y + else + mul r26.xyz, r24.xyzx, cb5[r21.x + 6].wwww + dp3 r18.y, r26.xyzx, r26.xyzx + min r18.y, r18.y, l(1.000000) + add r18.y, -r18.y, l(1.000000) + log r18.y, r18.y + mul r18.y, r18.y, cb5[r21.w + 6].w + exp r18.y, r18.y + mul r16.x, r18.y, r18.x + endif + dp3 r18.x, r25.xyzx, -r23.xyzx + add r18.x, r18.x, -cb5[r17.z + 6].z + mul_sat r18.x, r18.x, cb5[r17.z + 6].w + mul r18.x, r18.x, r18.x + movc r18.x, r16.z, l(1.000000), r18.x + mul r16.x, r16.x, r18.x + not r17.x, r17.x + ige r18.x, r16.y, l(0) + and r17.x, r17.x, r18.x + if_nz r17.x + if_z r16.z + ishl r17.x, r16.y, l(2) + mul r18.xyw, r2.yyyy, cb7[r17.x + 33].xyxw + mad r18.xyw, cb7[r17.x + 32].xyxw, r2.xxxx, r18.xyxw + mad r18.xyw, cb7[r17.x + 34].xyxw, r2.zzzz, r18.xyxw + add r18.xyw, r18.xyxw, cb7[r17.x + 35].xyxw + div_sat r18.xy, r18.xyxx, r18.wwww + mad r18.xy, r18.xyxx, cb7[r16.y + 0].zwzz, cb7[r16.y + 0].xyxx + else + ishl r17.x, r16.y, l(2) + dp3 r23.x, -r24.xyzx, cb7[r17.x + 32].xyzx + dp3 r23.y, -r24.xyzx, cb7[r17.x + 33].xyzx + dp3 r23.z, -r24.xyzx, cb7[r17.x + 34].xyzx + lt r17.x, |r23.x|, |r23.y| + and r17.x, r17.x, l(1) + dp2 r18.w, |r23.xyxx|, icb[r17.x + 0].xyxx + lt r18.w, r18.w, |r23.z| + movc r17.x, r18.w, l(2), r17.x + dp3 r18.w, r23.xyzx, icb[r17.x + 0].xyzx + lt r18.w, r18.w, l(0.000000) + bfi r17.x, l(31), l(1), r17.x, r18.w + ushr r18.w, r17.x, l(1) + dp3 r18.w, r23.xyzx, icb[r18.w + 0].xyzx + div r19.w, l(0.000244140625), cb7[r16.y + 0].w + add r19.w, -r19.w, l(0.500000) + utof r20.w, r17.x + ult r21.z, r17.x, l(2) + and r21.z, r21.z, l(2) + dp2 r21.z, r23.xzxx, icb[r21.z + 0].xzxx + mul r21.z, r21.z, icb[r17.x + 4].z + div r21.z, r21.z, |r18.w| + mad r20.w, r21.z, r19.w, r20.w + add r20.w, r20.w, l(0.500000) + mul_sat r24.x, r20.w, l(0.166666672) + iadd r20.w, l(-1), icb[r17.x + 4].y + dp2 r20.w, r23.yzyy, icb[r20.w + 0].xyxx + mul r17.x, r20.w, icb[r17.x + 4].w + div r17.x, r17.x, |r18.w| + mad_sat r24.y, -r17.x, r19.w, l(0.500000) + mad r18.xy, r24.xyxx, cb7[r16.y + 0].zwzz, cb7[r16.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r16.y, r18.xyxx, t18.yxzw, s1, l(0.000000) + mul r16.x, r16.y, r16.x + endif + lt r16.x, l(0.000000), r16.x + if_nz r16.x + if_z r16.z + ftoi r16.x, cb5[r21.y + 6].x + else + add r18.xyw, r2.xyxz, -cb5[r21.x + 6].xyxz + lt r21.xzw, |r18.yyww|, |r18.xxxy| + and r16.y, r21.z, r21.x + lt r18.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyxw + ushr r16.z, cb5[r17.z + 6].w, l(24) + ubfe r21.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb5[r17.z + 6].wwww + movc r16.z, r18.x, r16.z, r21.x + and r17.x, l(255), cb5[r17.z + 6].w + movc r17.x, r18.y, r21.z, r17.x + ubfe r17.z, l(8), l(8), cb5[r21.y + 6].x + and r18.x, l(255), cb5[r21.y + 6].x + movc r17.z, r18.w, r17.z, r18.x + movc r17.x, r21.w, r17.x, r17.z + movc r16.y, r16.y, r16.z, r17.x + ilt r16.z, r16.y, l(80) + movc r16.x, r16.z, r16.y, l(-1) + endif + ishl r16.y, r16.x, l(2) + mad r18.xyw, r25.xyxz, cb6[r16.x + 288].xxxx, r2.xyxz + mul r16.z, l(5.000000), cb6[r16.x + 288].y + mad r18.xyw, r8.xyxz, r16.zzzz, r18.xyxw + mul r21.xyzw, r18.yyyy, cb6[r16.y + 65].xyzw + mad r21.xyzw, cb6[r16.y + 64].xyzw, r18.xxxx, r21.xyzw + mad r21.xyzw, cb6[r16.y + 66].xyzw, r18.wwww, r21.xyzw + add r21.xyzw, r21.xyzw, cb6[r16.y + 67].xyzw + div r18.xyw, r21.xyxz, r21.wwww + ge r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xywx + ge r23.xyz, r18.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r16.yz, -cb6[r16.x + 344].xxyx, cb6[r16.x + 344].zzwz + mad r16.yz, r18.xxyx, r16.yyzy, cb6[r16.x + 344].xxyx + mad r17.xz, r16.yyzy, cb6[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) + round_ni r17.xz, r17.xxzx + mad r16.yz, r16.yyzy, cb6[400].zzwz, -r17.xxzx + add r24.xyzw, r16.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r25.xyzw, r24.xxzz, r24.xxzz + add r18.xy, -r16.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r24.xz, r16.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r26.xy, r16.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r27.xy, r18.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r26.xy, -r26.xyxx, r26.xyxx, r24.ywyy + add r26.xy, r26.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r26.xy, r26.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xz, r25.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r16.yz, r25.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r16.yyzy + mul r28.xy, r16.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r16.yz, -r24.xxzx, r24.xxzx, r18.xxyx + add r16.yz, r16.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r29.xy, r16.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r16.yz, r24.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r28.z, r29.x + mov r28.w, r16.y + mov r27.z, r26.x + mov r27.w, r25.x + add r24.xyzw, r27.zwxz, r28.zwxz + mov r29.z, r28.y + mov r29.w, r16.z + mov r26.z, r27.y + mov r26.w, r25.z + add r25.xyz, r26.zywz, r29.zywz + div r27.xyz, r27.xzwx, r24.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.xyzx, cb6[400].xxxx + div r26.xyz, r26.zywz, r25.xyzx + add r26.xyz, r26.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r26.xyw, r26.xyxz, cb6[400].yyyy + mul r28.xyzw, r24.zwyz, r25.xxxy + mov r27.w, r26.x + mad r29.xyzw, r17.xzxz, cb6[400].xyxy, r27.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.y, r29.xyxx, t13.xxxx, s4, r18.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r29.zwzz, t13.xxxx, s4, r18.w + mul r16.z, r16.z, r28.y + mad r16.y, r28.x, r16.y, r16.z + mad r18.xy, r17.xzxx, cb6[400].xyxx, r27.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r18.xyxx, t13.xxxx, s4, r18.w + mad r16.y, r28.z, r16.z, r16.y + mov r26.z, r27.x + mad r29.xyzw, r17.xzxz, cb6[400].xyxy, r26.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r29.xyxx, t13.xxxx, s4, r18.w + mad r16.y, r28.w, r16.z, r16.y + mul r28.xyzw, r24.xyzw, r25.yyzz + mov r26.xz, r27.yyzy + mad r27.xyzw, r17.xzxz, cb6[400].xyxy, r26.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r27.xyxx, t13.xxxx, s4, r18.w + mad r16.y, r28.x, r16.z, r16.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r27.zwzz, t13.xxxx, s4, r18.w + mad r16.y, r28.y, r16.z, r16.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r29.zwzz, t13.xxxx, s4, r18.w + mad r16.y, r28.z, r16.z, r16.y + ige r16.z, r16.x, l(0) + or r21.xyz, r21.xyzx, r23.xyzx + or r18.x, r21.y, r21.x + or r18.x, r21.z, r18.x + and r18.y, r18.w, l(0x7fffffff) + ult r18.y, l(0x7f800000), r18.y + or r18.x, r18.y, r18.x + mad r21.xyzw, r17.xzxz, cb6[400].xyxy, r26.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r21.xyxx, t13.xxxx, s4, r18.w + mad r16.y, r28.w, r17.x, r16.y + mul r17.x, r24.y, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r21.zwzz, t13.xxxx, s4, r18.w + mad r16.y, r17.x, r17.z, r16.y + add r16.y, r16.y, l(-1.000000) + mad r16.x, cb6[r16.x + 288].w, r16.y, l(1.000000) + movc r16.x, r18.x, l(1.000000), r16.x + movc r16.x, r16.z, r16.x, l(1.000000) + else + mov r16.x, l(1.000000) + endif + else + mov r16.x, l(1.000000) + endif + mul r15.z, r15.z, r16.x + mov r22.xyz, l(0,0,0,0) + endif + add r20.xyz, r20.xyzx, r22.xyzx + mov r15.w, r17.w + endloop + mov r12.w, r15.z + add r19.xyz, r19.xyzx, r20.xyzx + iadd r13.y, r13.y, l(1) +endloop +add r0.y, l(1.000000), -cb2[0].y +mad r0.w, r2.y, cb0[156].w, cb0[157].w +max r0.w, r0.w, l(0.010000) +mad r1.w, r0.z, cb0[154].w, -cb0[153].w +max r1.w, r1.w, l(0.000000) +mul r2.x, r0.w, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.w, r2.x, r0.w +mad r2.x, r2.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.w, r0.w, r2.x +mul r0.w, r0.w, -r1.w +mul r2.xzw, r0.wwww, cb0[155].xxyz +mul r2.xzw, r2.xxzw, l(1.442695, 0.000000, 1.442695, 1.442695) +exp r2.xzw, r2.xxzw +dp3 r0.w, -r5.xyzx, cb0[154].xyzx +mad r1.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r3.x, r0.wwww, cb0[155].wwww +add r1.w, r1.w, -r3.x +lt r3.x, l(0.000000), cb0[163].z +if_nz r3.x + and r11.w, l(7), cb0[108].w + imad r3.xyz, r11.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.x, r3.y, r3.z, r3.x + imad r3.y, r3.z, r3.x, r3.y + imad r3.z, r3.x, r3.y, r3.z + imad r7.x, r3.y, r3.z, r3.x + dp3 r3.x, -r5.xyzx, -r4.xyzx + add r3.w, r2.y, -cb0[44].y + lt r4.x, l(5.960464478E-08), r3.x + div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x + and r3.x, r3.x, r4.x + mul r3.x, r3.x, cb0[163].w + div r4.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z + mul r4.y, r3.x, r4.x + mad r4.z, r4.y, r3.w, cb0[44].y + mad r3.w, -r4.y, r3.w, r3.w + mul r4.y, r3.w, cb0[159].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + add r4.w, r4.z, -cb0[159].x + mul r4.w, r4.w, cb0[159].z + max r4.yw, r4.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[159].y + lt r5.x, l(5.960464478E-08), |r4.y| + exp r5.y, -r4.y + add r5.y, -r5.y, l(1.000000) + div r5.y, r5.y, r4.y + mad r4.y, -r4.y, l(0.240226507), l(0.693147182) + movc r4.y, r5.x, r5.y, r4.y + 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), |r3.w| + exp r5.y, -r3.w + add r5.y, -r5.y, l(1.000000) + div r5.y, r5.y, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.x, r5.y, r3.w + mul r3.w, r3.w, r4.z + mad r3.w, r4.w, r4.y, r3.w + mad r3.x, -r3.x, r4.x, l(1.000000) + mul r3.x, r0.z, r3.x + mul r3.x, r3.x, r3.w + exp r3.x, -r3.x + min r3.x, r3.x, l(1.000000) + max r3.x, r3.x, cb0[161].w + mad_sat r4.xy, r0.zzzz, cb0[160].ywyy, cb0[160].xzxx + add r3.x, r3.x, r4.x + add r3.x, r4.y, r3.x + min r3.x, r3.x, l(1.000000) + imad r7.y, r3.z, r7.x, r3.y + ushr r3.yz, r7.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, r15.xxyx + mul r4.xy, r3.yzyy, cb0[165].xyxx + mad r3.y, r11.z, cb0[164].x, cb0[164].y + log r3.y, r3.y + mul r3.y, r3.y, cb0[164].z + div r4.z, r3.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t5.xyzw, s1, l(0.000000) + add r3.y, r11.z, -cb0[166].z + mul_sat r3.y, r3.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r3.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r3.y, -r3.x, l(1.000000) + mul r3.yzw, r3.yyyy, cb0[161].xxyz + mad r3.yzw, r3.yyzw, r4.wwww, r4.xxyz + mul r3.x, r3.x, r4.w +else + add r2.y, r2.y, -cb0[44].y + mul r4.x, r2.y, cb0[159].z + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + add r4.y, cb0[44].y, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.xy, r4.xyxx, l(-127.000000, -127.000000, 0.000000, 0.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r4.x| + exp r4.w, -r4.x + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r4.z, r4.w, r4.x + add r4.z, cb0[44].y, -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 r4.w, l(5.960464478E-08), |r2.y| + exp r5.x, -r2.y + add r5.x, -r5.x, l(1.000000) + div r5.x, r5.x, r2.y + mad r2.y, -r2.y, l(0.240226507), l(0.693147182) + movc r2.y, r4.w, r5.x, r2.y + mul r2.y, r2.y, r4.z + mad r2.y, r4.y, r4.x, r2.y + mul r2.y, r0.z, r2.y + exp r2.y, -r2.y + min r2.y, r2.y, l(1.000000) + max r2.y, r2.y, cb0[161].w + mad_sat r4.xy, r0.zzzz, cb0[160].ywyy, cb0[160].xzxx + add r0.z, r2.y, r4.x + add r0.z, r4.y, r0.z + min r3.x, r0.z, l(1.000000) + add r0.z, -r3.x, l(1.000000) + mul r3.yzw, r0.zzzz, cb0[161].xxyz +endif +// === Glass Fix: Reduce clustered lights and overall brightness === +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) +endif +dp3 r0.z, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xyz, -r0.zzzz, r1.xyzx +mad r1.xyz, cb0[184].wwww, r1.xyzx, r0.zzzz +mul r4.xyz, r6.xyzx, r13.wwww +mad r1.xyz, r1.xyzx, cb0[184].xyzx, r4.xyzx +mad r4.xyz, r19.xyzx, r12.wwww, r10.xyzx +add r1.xyz, r1.xyzx, r4.xyzx +mul r4.xyz, r2.xzwx, r3.xxxx +mad r0.z, r0.w, r0.w, l(1.000000) +mul r0.z, r0.z, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.zzzz, cb0[158].xyzx +mad r0.z, -cb0[155].w, cb0[155].w, l(1.000000) +mul r0.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r0.w, r0.w, r1.w +max r0.w, r0.w, l(0.001000) +div r0.z, r0.z, r0.w +mad_sat r5.xyz, cb0[157].xyzx, r0.zzzz, r5.xyzx +mul r5.xyz, r5.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +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[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) + mad r35.xyz, r35.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r4.xyzx + // Reduce inscatter intensity + mul r36.xyz, r2.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) + // Modified fog blend + mad r1.xyz, r1.xyzx, r35.xyzx, r36.xyzx +else + // Original fog blend + mad r1.xyz, r1.xyzx, r4.xyzx, r2.xyzx +endif +mul r1.xyz, r0.xxxx, r1.xyzx +mul r1.w, r0.y, r0.x +min o1.xy, r9.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r1.w, r0.x +max r0.x, r1.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 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 + if_nz r35.z + add r35.w, r35.y, l(-0.500000) + mul r35.w, r35.w, l(-0.666667) + exp r35.w, r35.w + add r35.w, -r35.w, l(1.000000) + mad r35.w, r35.w, l(1.500000), l(0.500000) + max r36.x, r35.y, l(0.001000) + div r36.x, r35.w, r36.x + mul r1.xyz, r1.xyzx, r36.xxxx + endif +endif +mov o0.xyzw, r1.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used diff --git a/src/games/endfield/glass/0x859412D4.cso b/src/games/endfield/glass/0x859412D4.cso new file mode 100644 index 000000000..7a1aab74a Binary files /dev/null and b/src/games/endfield/glass/0x859412D4.cso differ diff --git a/src/games/endfield/glass/0x859412D4.ps_5_0.asm b/src/games/endfield/glass/0x859412D4.ps_5_0.asm new file mode 100644 index 000000000..04545a005 --- /dev/null +++ b/src/games/endfield/glass/0x859412D4.ps_5_0.asm @@ -0,0 +1,1840 @@ +// +// 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 xyzw 1 NONE float xyzw +// TEXCOORD 1 xyzw 2 NONE float xyz +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyzw 5 NONE float xyzw +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 x 8 NONE uint x +// SV_IsFrontFace 0 x 9 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[28], 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_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_texture3d (float,float,float,float) t10 +dcl_resource_texture3d (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_texture2d (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.xyzw +dcl_input_ps linear v2.xyz +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyzw +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps constant v8.x +dcl_input_ps_sgv constant v9.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.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 +mul r1.x, r0.y, cb0[1].z +mad r1.x, cb0[0].z, r0.x, r1.x +mad r1.x, cb0[2].z, r0.z, r1.x +add r1.x, r1.x, cb0[3].z +mov r1.z, |r1.x| +lt r1.w, l(0.000000), v4.w +movc r1.w, r1.w, l(1.000000), l(-1.000000) +eq r2.x, l(0.000000), cb0[86].w +add r2.yzw, -r0.xxyz, cb0[44].xxyz +mov r3.x, cb0[0].z +mov r3.y, cb0[1].z +mov r3.z, cb0[2].z +movc r2.xyz, r2.xxxx, r2.yzwy, r3.xyzx +dp3 r2.w, r2.xyzx, r2.xyzx +max r3.w, r2.w, l(9.999999939E-09) +rsq r3.w, r3.w +mul r4.xyz, r2.xyzx, r3.wwww +mul r2.w, r2.w, r3.w +add r5.xyzw, -v5.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) +mad r5.xyzw, cb2[1].yyyy, r5.xyzw, v5.xyzw +mul r5.xyzw, r5.xyzw, cb2[4].xyzw +mul r5.xyzw, r5.xyzw, cb2[1].zzzw +add r4.w, l(1.000000), -cb2[3].x +mad r4.w, cb0[109].x, cb2[3].x, r4.w +div r5.xyz, r5.xyzx, r4.wwww +mul r6.xy, v2.xyxx, cb2[1].xxxx +mad r7.xyzw, v1.zzww, cb2[1].xxxx, -r6.xxyy +add r7.xyzw, r7.xyzw, v2.xxyy +mul r8.xyzw, r7.yyww, cb2[8].yyyy +mad r8.xyzw, v1.xxyy, cb2[8].xxxx, r8.xyzw +mad r8.xyzw, cb2[6].xxyy, cb0[183].wwww, r8.xyzw +mad r8.xyzw, cb2[6].zzww, r6.xxxx, r8.xyzw +add r8.xyzw, r8.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r8.xyzw, r8.xyzw, cb2[7].xyzw +add r6.xz, r8.zzwz, r8.xxyx +add r6.xz, r6.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) +mad r8.xy, r6.xzxx, cb2[9].xyxx, cb2[9].zwzz +ishl r4.w, v8.x, l(4) +add r6.x, cb1[r4.w + 3].y, cb1[r4.w + 3].x +add r6.x, r6.x, cb1[r4.w + 3].z +frc r6.x, r6.x +mul r6.z, r6.x, cb2[26].z +min r6.z, r6.z, l(0.500000) +add r6.z, r6.z, l(1.000000) +mul r8.z, r6.z, r8.y +mad r6.xz, cb2[26].zzzz, r6.xxxx, r8.xxzx +add r6.w, l(1.000000), cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r8.xyzw, r6.xzxx, t2.xyzw, s4, r6.w +mov r6.x, l(1.000000) +mov r6.w, r8.x +add r9.xyzw, -r8.xyzw, r6.xxxw +mad r8.xyzw, cb2[5].yyyy, r9.xyzw, r8.xyzw +mul r5.xyzw, r5.xyzw, r8.xyzw +mul r8.xyzw, r7.yyww, cb2[23].yyyy +mad r8.xyzw, v1.xxyy, cb2[23].xxxx, r8.xyzw +mad r8.xyzw, cb2[21].xxyy, cb0[183].wwww, r8.xyzw +mad r8.xyzw, cb2[21].zzww, r6.yyyy, r8.xyzw +add r8.xyzw, r8.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r8.xyzw, r8.xyzw, cb2[22].xyzw +add r6.xz, r8.zzwz, r8.xxyx +add r6.xz, r6.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000) +mad r6.xz, r6.xxzx, cb2[20].xxyx, cb2[20].zzwz +sample_b_indexable(texture2d)(float,float,float,float) r6.xzw, r6.xzxx, t3.xzyw, s5, cb0[108].x +mul r6.x, r6.x, r6.w +mad r6.xz, r6.xxzx, l(2.000000, 0.000000, 2.000000, 0.000000), l(-1.000000, 0.000000, -1.000000, 0.000000) +dp2 r6.w, r6.xzxx, r6.xzxx +min r6.w, r6.w, l(1.000000) +add r6.w, -r6.w, l(1.000000) +sqrt r6.w, r6.w +max r8.z, r6.w, l(1.000000017E-16) +mul r8.xy, r6.xzxx, cb2[19].xxxx +dp3 r6.x, r8.xyzx, r8.xyzx +rsq r6.x, r6.x +mul r6.xzw, r6.xxxx, r8.xxyz +mul r8.xyz, v3.zxyz, v4.yzxy +mad r8.xyz, v3.yzxy, v4.zxyz, -r8.xyzx +mul r8.xyz, r1.wwww, r8.xyzx +mul r8.xyz, r6.zzzz, r8.xyzx +mad r8.xyz, r6.xxxx, v4.xyzx, r8.xyzx +mad r6.xzw, r6.wwww, v3.xxyz, r8.xxyz +mul r7.xyzw, r7.xyzw, cb2[15].yyyy +mad r7.xyzw, v1.xxyy, cb2[15].xxxx, r7.xyzw +mad r7.xyzw, cb2[13].xxyy, cb0[183].wwww, r7.xyzw +mad r7.xyzw, cb2[13].zzww, r6.yyyy, r7.xyzw +add r7.xyzw, r7.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r7.xyzw, r7.xyzw, cb2[14].xyzw +add r7.xy, r7.zwzz, r7.xyxx +add r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r7.xy, r7.xyxx, cb2[12].xyxx, cb2[12].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r1.w, r7.xyxx, t4.yzwx, s6, cb0[108].x +mad r6.y, v2.z, cb2[1].x, cb2[11].y +add r7.x, -v5.x, v5.w +mad r7.x, cb2[26].w, r7.x, v5.x +add r7.x, r7.x, l(-1.000000) +mad r7.x, cb2[27].x, r7.x, l(1.000000) +add_sat r7.x, r7.x, -cb2[27].y +mad r6.y, r6.y, l(2.020000), l(-0.00999999046) +mad r6.y, r7.x, r6.y, l(-1.000000) +add r1.w, r1.w, -r6.y +mul_sat r6.y, r1.w, cb2[11].z +add r1.w, -r1.w, cb2[11].w +mul_sat r1.w, r1.w, cb2[11].z +movc r7.xyz, v9.xxxx, r6.xzwx, -r6.xzwx +mul r5.w, r5.w, r6.y +ne r6.x, l(0.000000), cb2[17].x +add r6.yz, r1.zzzz, -cb2[17].yywy +add r6.w, -cb2[17].y, cb2[17].z +div_sat r6.y, r6.y, r6.w +add r6.w, -cb2[17].w, cb2[18].x +div_sat r6.z, r6.z, r6.w +mul r6.y, r6.z, r6.y +movc r6.x, r6.x, r6.y, l(1.000000) +mul r5.w, r5.w, r6.x +add r6.x, v5.w, l(-1.000000) +mad r6.x, cb2[26].x, r6.x, l(1.000000) +mul r5.w, r5.w, r6.x +dp3 r6.x, v3.xyzx, r4.xyzx +log r6.x, |r6.x| +mul r6.x, r6.x, cb2[24].y +exp r6.x, r6.x +add r6.x, r6.x, l(-1.000000) +mad r6.x, cb2[24].w, r6.x, l(1.000000) +mul r5.w, r5.w, r6.x +add r4.w, l(1.000000), -cb1[r4.w + 4].y +mul_sat r4.w, r4.w, r5.w +mul r6.xyz, r1.wwww, cb2[16].xyzx +mad r6.xyz, r6.xyzx, cb2[1].zzzz, -r5.xyzx +mad r5.xyz, r1.wwww, r6.xyzx, r5.xyzx +max r5.xyz, r5.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) +min r5.xyz, r5.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) +mul r6.xyz, r5.xyzx, cb2[25].xxxx +add r1.w, l(1.000000), cb2[0].w +add_sat r1.w, r1.w, -cb2[0].x +lt r1.w, l(0.500000), r1.w +max r5.w, v6.z, l(9.999999939E-09) +div r8.xy, v6.xyxx, r5.wwww +max r5.w, v7.z, l(9.999999939E-09) +div r8.zw, v7.xxxy, r5.wwww +add r8.xy, -r8.zwzz, r8.xyxx +mul r9.xy, r8.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r9.xy, |r9.xyxx| +sqrt r9.xy, r9.xyxx +mov r8.z, -r8.y +lt r8.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r8.xxxz +lt r8.xz, r8.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r8.xy, -r8.ywyy, r8.xzxx +itof r8.xy, r8.xyxx +mul r8.xy, r8.xyxx, r9.xyxx +mad r8.xy, r8.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +and r8.xy, r1.wwww, r8.xyxx +mul r1.w, l(0.080000), cb2[25].w +mul r9.xyz, r6.xyzx, cb2[25].yyyy +mad r9.xyz, r5.xyzx, cb2[25].xxxx, -r9.xyzx +mad r1.w, -r1.w, cb2[25].y, r1.w +mad r6.xyz, r6.xyzx, cb2[25].yyyy, r1.wwww +dp3 r1.w, r7.xyzx, r4.xyzx +mad r10.xyzw, cb2[25].zzzz, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r5.w, r10.x, r10.x +max r1.w, r1.w, l(0.000000) +mul r6.w, r1.w, l(-9.280000) +exp r6.w, r6.w +min r5.w, r5.w, r6.w +mad r5.w, r5.w, r10.x, r10.y +mad r8.zw, r5.wwww, l(0.000000, 0.000000, -1.040000, 1.040000), r10.zzzw +eq r5.w, l(1.000000), cb0[113].y +mul r10.xyzw, r0.yyyy, cb0[241].xyzw +mad r10.xyzw, cb0[240].xyzw, r0.xxxx, r10.xyzw +mad r10.xyzw, cb0[242].xyzw, r0.zzzz, r10.xyzw +add r10.xyzw, r10.xyzw, cb0[243].xyzw +div r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w +mul r10.xyz, r10.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r10.xyz, r6.wwww, r10.xyzx +mad_sat r10.xy, r10.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +mul r10.xy, r10.xyxx, cb0[82].xyxx +ftou r11.xy, r10.xyxx +mad r6.w, cb0[84].z, r10.z, cb0[84].w +div r11.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w +ftou r1.xy, v0.xyxx +movc r10.xyz, r5.wwww, r11.xyzx, r1.xyzx +mad r1.xyz, r7.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r0.xyzx +mad r11.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r11.xyz, r1.xzyx, -r11.xyzx +max r5.w, |r11.y|, |r11.x| +add r5.w, r5.w, l(-464.000000) +mul_sat r5.w, r5.w, l(0.031250) +add r6.w, |r11.z|, l(-208.000000) +mul_sat r6.w, r6.w, l(0.031250) +max r5.w, r5.w, r6.w +ne r6.w, l(0.000000), cb0[210].w +lt r9.w, r5.w, l(1.000000) +and r6.w, r6.w, r9.w +if_nz r6.w + mad r11.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r11.xyz, r1.xzyx, -r11.xyzx + max r6.w, |r11.y|, |r11.x| + add r6.w, r6.w, l(-29.000000) + mul_sat r6.w, r6.w, l(0.500000) + add r9.w, |r11.z|, l(-13.000000) + mul_sat r9.w, r9.w, l(0.500000) + max r6.w, r6.w, r9.w + lt r9.w, r6.w, l(1.000000) + if_nz r9.w + mad r11.xyz, r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r12.xyz, r11.xyzx, cb0[211].xyzx + round_ni r12.xyz, r12.xyzx + mad r11.xyz, r11.xyzx, cb0[211].xyzx, -r12.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r11.xyzx, t6.xyzw, s1, l(0.000000) + add r9.w, -r6.w, l(1.000000) + mul r12.w, l(0.500000), cb0[211].y + mad r13.x, -cb0[211].y, l(0.500000), l(1.000000) + max r11.y, r11.y, r12.w + min r11.y, r13.x, r11.y + mul r11.w, r11.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r13.xyzw, r11.xwzx, t7.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 r14.xyz, r12.xxxx, r13.xyzx + add r13.xyz, r11.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r13.xyz, r13.xyzx, t7.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 r15.xyz, r12.yyyy, r13.xyzx + add r11.xyz, r11.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r11.xyz, r11.xyzx, t7.xyzw, s0, l(0.000000) + mad r11.xyz, r11.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r11.xyz, r12.zzzz, r11.xyzx + mad r12.w, r13.w, r9.w, r5.w + mov r11.w, r12.z + mul r11.xyzw, r9.wwww, r11.xyzw + mov r15.w, r12.y + mul r13.xyzw, r9.wwww, r15.xyzw + mov r14.w, r12.x + mul r14.xyzw, r9.wwww, r14.xyzw + else + mov r11.xyzw, l(0,0,0,0) + mov r13.xyzw, l(0,0,0,0) + mov r14.xyzw, l(0,0,0,0) + mov r12.w, r5.w + endif + mad r12.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r12.xyz, r1.xzyx, -r12.xyzx + max r9.w, |r12.y|, |r12.x| + add r9.w, r9.w, l(-116.000000) + mul_sat r9.w, r9.w, l(0.125000) + add r12.x, |r12.z|, l(-52.000000) + mul_sat r12.x, r12.x, l(0.125000) + max r9.w, r9.w, r12.x + lt r12.x, r9.w, l(1.000000) + if_nz r12.x + mad r12.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r15.xyz, r12.xyzx, cb0[211].xyzx + round_ni r15.xyz, r15.xyzx + mad r15.xyz, r12.xyzx, cb0[211].xyzx, -r15.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r15.xyzx, t8.xyzw, s1, l(0.000000) + add r16.x, -r9.w, l(1.000000) + mul r6.w, r6.w, r16.x + mul r16.x, l(0.500000), cb0[211].y + mad r16.y, -cb0[211].y, l(0.500000), l(1.000000) + max r15.y, r15.y, r16.x + min r15.y, r16.y, r15.y + mul r15.w, r15.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r15.xwzx, t9.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 r17.xyz, r12.xxxx, r16.xyzx + add r16.xyz, r15.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyz, r16.xyzx, t9.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 r18.xyz, r12.yyyy, r16.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, t9.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, r12.zzzz, r15.xyzx + mad r12.w, r16.w, r6.w, r12.w + mov r15.w, r12.z + mad r11.xyzw, r15.xyzw, r6.wwww, r11.xyzw + mov r18.w, r12.y + mad r13.xyzw, r18.xyzw, r6.wwww, r13.xyzw + mov r17.w, r12.x + mad r14.xyzw, r17.xyzw, r6.wwww, r14.xyzw + endif + lt r6.w, l(0.000000), r9.w + if_nz r6.w + mad r1.xyz, r1.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r12.xyz, r1.xyzx, cb0[211].xyzx + mul r15.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r12.xyz, r12.xyzx + mad r1.xyz, r1.xyzx, cb0[211].xyzx, -r12.xyzx + mad r12.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r1.xyz, r15.xyzx, r1.xyzx + min r16.xyz, r12.xyzx, r1.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r17.xyw, r16.xyzx, t10.yzwx, s1, l(0.000000) + add r1.x, -r5.w, l(1.000000) + mul r1.x, r1.x, r9.w + max r1.y, r15.y, r16.y + min r1.y, r12.y, r1.y + mul r16.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r16.xwzx, t11.xyzw, s0, l(0.000000) + add r12.xyz, r16.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t11.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 r18.xyz, r17.yyyy, r12.xyzx + mov r18.w, r17.y + mad r11.xyzw, r18.xyzw, r1.xxxx, r11.xyzw + add r12.xyz, r16.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r12.xyzx, t11.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 r16.xyz, r17.xxxx, r12.xyzx + mov r16.w, r17.x + mad r13.xyzw, r16.xyzw, r1.xxxx, r13.xyzw + mad r12.xyz, r15.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000) + mul r17.xyz, r17.wwww, r12.xyzx + mad r14.xyzw, r17.xyzw, r1.xxxx, r14.xyzw + mad r12.w, r15.w, r1.x, r12.w + endif + mad_sat r1.x, r12.w, l(2.000000), l(-1.000000) + add r12.x, -r5.w, r1.x + add r1.x, r5.w, r1.x + mul r12.y, r1.x, l(0.500000) +else + mov r11.xyzw, l(0,0,0,0) + mov r13.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 r15.xyzw, r12.yyyx, cb0[213].xyzw +mad r15.y, r15.w, l(0.500000), r15.y +mul r1.xy, r12.yxyy, cb0[213].wyww +mad r15.w, r1.y, l(0.375000), r1.x +add r14.xyzw, r14.xyzw, r15.xyzw +mul r15.xyzw, r12.yyyx, cb0[214].xyzw +mad r15.y, r15.w, l(0.500000), r15.y +mul r1.xy, r12.yxyy, cb0[214].wyww +mad r15.w, r1.y, l(0.375000), r1.x +add r13.xyzw, r13.xyzw, r15.xyzw +mul r15.xyzw, r12.yyyx, cb0[215].xyzw +mad r15.y, r15.w, l(0.500000), r15.y +mul r1.xy, r12.yxyy, cb0[215].wyww +mad r15.w, r1.y, l(0.375000), r1.x +add r11.xyzw, r11.xyzw, r15.xyzw +dp3 r1.x, r14.xyzx, r7.xyzx +add r1.x, r14.w, r1.x +max r1.x, r1.x, l(0.000000) +dp3 r5.w, r13.xyzx, r7.xyzx +add r5.w, r13.w, r5.w +max r1.y, r5.w, l(0.000000) +dp3 r5.w, r11.xyzx, r7.xyzx +add r5.w, r11.w, r5.w +max r1.z, r5.w, l(0.000000) +mul r11.xyz, r9.xyzx, r1.xyzx +mul r12.xy, r11.xyxx, cb0[111].xxxx +dp3 r5.w, -r4.xyzx, r7.xyzx +add r5.w, r5.w, r5.w +mad r13.xyz, r7.xyzx, -r5.wwww, -r4.xyzx +add r5.w, l(-1.000000), cb0[113].x +max r6.w, l(0.001000), cb2[25].z +log r6.w, r6.w +mad r6.w, -r6.w, l(1.200000), l(1.000000) +add r5.w, r5.w, -r6.w +utof r12.zw, r10.xxxy +mul r14.xy, r12.zwzz, cb3[0].wwww +round_ni r14.xy, r14.xyxx +add r6.w, r10.z, -cb3[2].y +round_ni r6.w, r6.w +add r9.w, l(-1.000000), cb3[1].x +max r11.w, r6.w, l(0.000000) +min r9.w, r9.w, r11.w +ge r6.w, r9.w, r6.w +mad r11.w, r14.y, cb3[0].x, r14.x +ftoi r11.w, r11.w +iadd r11.w, r11.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.w, r11.w, l(0), t0.xxxx +ftoi r9.w, r9.w +iadd r9.w, r9.w, cb0[110].w +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r9.w, l(0), t0.xxxx +and r9.w, r9.w, r11.w +and r6.w, r6.w, r9.w +mul r1.xyz, r1.xyzx, cb0[111].xxxx +dp3 r1.x, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r0.w, l(1.000000) +mov r7.w, l(1.000000) +mov r14.xyz, l(0,0,0,0) +mov r1.y, l(1.000000) +mov r1.z, r6.w +mov r9.w, l(0) +loop + lt r11.w, l(0.010000), r1.y + ine r13.w, r1.z, l(0) + and r13.w, r11.w, r13.w + if_nz r13.w + firstbit_lo r13.w, r1.z + ishl r14.w, l(1), r13.w + xor r1.z, r1.z, r14.w + ishl r13.w, r13.w, l(3) + dp4 r15.x, cb3[r13.w + 6].xyzw, r0.xyzw + dp4 r15.y, cb3[r13.w + 7].xyzw, r0.xyzw + dp4 r15.z, cb3[r13.w + 8].xyzw, r0.xyzw + ge r16.xyz, cb3[r13.w + 5].xyzx, |r15.xyzx| + and r14.w, r16.y, r16.x + and r14.w, r16.z, r14.w + if_nz r14.w + mul r14.w, l(0.100000), cb3[r13.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 r17.xyz, -|r15.xyzx|, cb3[r13.w + 5].xyzx + mul r17.xyz, r17.xyzx, cb3[r13.w + 9].xyzx + eq r15.w, l(1.000000), cb3[r13.w + 10].x + if_nz r15.w + dp3 r18.x, cb3[r13.w + 6].xyzx, r13.xyzx + dp3 r18.y, cb3[r13.w + 7].xyzx, r13.xyzx + dp3 r18.z, cb3[r13.w + 8].xyzx, r13.xyzx + add r19.xyz, -r15.xyzx, cb3[r13.w + 5].xyzx + div r19.xyz, r19.xyzx, r18.xyzx + add r20.xyz, -r15.xyzx, -cb3[r13.w + 5].xyzx + div r20.xyz, r20.xyzx, r18.xyzx + lt r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + movc r19.xyz, r21.xyzx, r19.xyzx, r20.xyzx + min r15.w, r19.y, r19.x + min r15.w, r19.z, r15.w + mad r15.xyz, r18.xyzx, r15.wwww, r15.xyzx + else + mov r15.xyz, r13.xyzx + endif + dp3 r15.w, r15.xyzx, r15.xyzx + rsq r15.w, r15.w + mul r15.xyz, r15.wwww, r15.xyzx + lt r18.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 r18.xyz, -r18.xyzx, r19.xyzx + itof r18.xyz, r18.xyzx + dp3 r15.w, r15.xyzx, r18.xyzx + div r15.xyz, r15.xyzx, r15.wwww + lt r15.z, r15.z, l(0.000000) + add r18.zw, -|r15.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000) + mul r18.xy, r18.zwzz, r18.xyxx + movc r15.xy, r15.zzzz, r18.xyxx, r15.xyxx + dp4 r15.z, cb3[r13.w + 4].xyzw, r7.xyzw + max r15.z, r15.z, l(0.000000) + max r15.z, r15.z, l(0.000100) + min r15.w, r17.z, r17.y + min r15.w, r15.w, r17.x + add r16.x, r16.y, r16.x + mad r16.x, r16.z, r16.z, r16.x + mad r14.w, r14.w, r14.w, -r16.x + mul r14.w, r14.w, cb3[r13.w + 9].x + mul r14.w, r14.w, cb3[r13.w + 9].x + add r16.x, l(1.000000), -cb3[r13.w + 10].y + mul r14.w, r14.w, r16.x + mul r14.w, r14.w, l(100.000000) + mad_sat r14.w, r15.w, cb3[r13.w + 10].y, r14.w + mul r15.w, r14.w, cb3[r13.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 r16.xy, r15.xyxx, cb3[1].wwww, cb3[2].wwww + mov r16.z, cb3[r13.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r16.xyz, r16.xyzx, t1.xyzw, s2, r5.w + mul r16.xyz, r16.xyzx, cb3[r13.w + 9].wwww + div r15.x, r1.x, r15.z + min r15.x, |r15.x|, l(1.000000) + mad r15.x, r15.x, l(2.000000), r1.x + add r15.y, r15.z, l(2.000000) + div r15.x, r15.x, r15.y + add r15.x, r15.x, l(-1.000000) + mad r15.x, r15.x, cb0[112].w, l(1.000000) + mul r15.xyz, r15.xxxx, r16.xyzx + mul r15.xyz, r15.wwww, r15.xyzx + mad r14.xyz, r15.xyzx, r1.yyyy, r14.xyzx + mad r13.w, -r14.w, cb3[r13.w + 10].w, l(1.000000) + mul r1.y, r1.y, r13.w + 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 r0.w, r13.xyzx, r13.xyzx + rsq r0.w, r0.w + mul r15.xyz, r0.wwww, r13.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 r0.w, r15.xyzx, r16.xyzx + div r15.xyz, r15.xyzx, r0.wwww + lt r0.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, r16.xxxy + movc r15.xy, r0.wwww, r15.zwzz, r15.xyxx + mov r7.w, l(1.000000) + dp4 r0.w, cb3[3].xyzw, r7.xyzw + max r0.w, r0.w, l(0.000000) + max r0.w, r0.w, l(0.000100) + 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, cb3[1].wwww, cb3[2].wwww + mov r15.z, l(0) + sample_l_indexable(texture2darray)(float,float,float,float) r15.xyz, r15.xyzx, t1.xyzw, s2, r5.w + div r1.z, r1.x, r0.w + min r1.z, |r1.z|, l(1.000000) + mad r1.x, r1.z, l(2.000000), r1.x + add r0.w, r0.w, l(2.000000) + div r0.w, r1.x, r0.w + add r0.w, r0.w, l(-1.000000) + mad r0.w, r0.w, cb0[112].w, l(1.000000) + mul r15.xyz, r0.wwww, r15.xyzx + mad r14.xyz, r15.xyzx, r1.yyyy, r14.xyzx +endif +mul r1.xyz, r14.xyzx, cb0[112].zzzz +// === Glass Fix: Reduce reflection probe intensity === +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 +mul r1.xyz, r1.xyzx, cb0[111].yyyy +mul_sat r0.w, r6.y, l(50.000000) +mul r0.w, r8.w, r0.w +mad r14.xyz, r6.xyzx, r8.zzzz, r0.wwww +mul r1.xyz, r1.xyzx, r14.xyzx +max r0.w, r4.w, l(0.010000) +div r1.xyz, r1.xyzx, r0.wwww +add r5.w, r12.y, r12.x +mad r5.w, r11.z, cb0[111].x, r5.w +mul r5.w, r5.w, l(0.333333343) +add r6.w, r1.y, r1.x +add r6.w, r1.z, r6.w +mul r7.w, r6.w, l(0.333333343) +mad r11.xyz, r11.xyzx, cb0[111].xxxx, -r5.wwww +mad r11.xyz, r11.xyzx, cb2[24].zzzz, r5.wwww +mad r1.xyz, -r6.wwww, l(0.333333343, 0.333333343, 0.333333343, 0.000000), r1.xyzx +mad r1.xyz, r1.xyzx, cb2[24].zzzz, r7.wwww +add r1.xyz, r1.xyzx, r11.xyzx +lt r5.w, cb6[35].w, l(0.990000) +if_nz r5.w + mad r11.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r0.xyzx + ftoi r5.w, cb6[35].x + ieq r6.w, r5.w, l(2) + movc r14.xyz, r6.wwww, cb6[20].xyzx, cb0[44].xyzx + add r14.xyz, r11.xyzx, -r14.xyzx + dp3 r6.w, r14.xyzx, r14.xyzx + add r6.w, -r6.w, cb6[34].w + mul_sat r6.w, r6.w, cb6[34].z + lt r7.w, l(0.000000), r6.w + if_nz r7.w + ilt r5.w, l(0), r5.w + if_nz r5.w + add r14.xyz, r11.xyzx, -cb6[20].xyzx + add r15.xyz, r11.xyzx, -cb6[21].xyzx + add r16.xyz, r11.xyzx, -cb6[22].xyzx + add r17.xyz, r11.xyzx, -cb6[23].xyzx + dp3 r14.x, r14.xyzx, r14.xyzx + dp3 r14.y, r15.xyzx, r15.xyzx + dp3 r14.z, r16.xyzx, r16.xyzx + dp3 r14.w, r17.xyzx, r17.xyzx + lt r15.x, r14.x, cb6[20].w + lt r15.y, r14.y, cb6[21].w + lt r15.z, r14.z, cb6[22].w + lt r15.w, r14.w, cb6[23].w + and r16.xyzw, r15.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000) + movc r15.xyz, r15.xyzx, l(-1.000000,-1.000000,-1.000000,0), l(-0.000000,-0.000000,-0.000000,0) + add r15.xyz, r15.xyzx, r16.yzwy + max r16.yzw, r15.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000) + dp4 r5.w, r16.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r5.w, -r5.w, l(4.000000) + max r5.w, r5.w, l(0.000000) + min r5.w, r5.w, l(3.000000) + add r7.w, r5.w, l(1.000000) + min r7.w, r7.w, l(3.000000) + ftou r7.w, r7.w + dp3 r8.z, r14.yzwy, icb[r7.w + 0].yzwy + div r7.w, r8.z, cb6[r7.w + 20].w + ge r8.z, r7.w, l(0.000000) + ge r7.w, l(1.000000), r7.w + and r7.w, r7.w, r8.z + if_nz r7.w + ftou r7.w, r5.w + add r8.zw, r12.zzzw, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r8.z, r8.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r8.z, r8.z + mul r8.z, r8.z, l(52.982918) + frc r8.z, r8.z + dp4 r8.w, r14.xyzw, icb[r7.w + 0].xyzw + div r7.w, r8.w, cb6[r7.w + 20].w + sqrt r7.w, r7.w + add r7.w, r7.w, l(-0.900000) + mul r7.w, r7.w, l(12.000000) + ge r7.w, r7.w, r8.z + and r7.w, r7.w, l(0x3f800000) + add r5.w, r5.w, r7.w + endif + dp3 r7.w, r7.xyzx, cb5[0].xyzx + max r7.w, r7.w, l(0.000000) + min r7.w, r7.w, l(0.900000) + add r7.w, -r7.w, l(1.000000) + ftou r8.z, r5.w + ishl r8.w, r8.z, l(2) + mul r12.xy, r7.wwww, cb6[r8.z + 24].xyxx + max r7.w, r12.x, l(0.000000) + mad r14.xyz, -cb5[0].xyzx, r7.wwww, r11.xyzx + mad r14.xyz, r7.xyzx, r12.yyyy, r14.xyzx + mul r15.xyz, r14.yyyy, cb6[r8.w + 1].xyzx + mad r14.xyw, cb6[r8.w + 0].xyxz, r14.xxxx, r15.xyxz + mad r14.xyz, cb6[r8.w + 2].xyzx, r14.zzzz, r14.xywx + add r14.xyz, r14.xyzx, cb6[r8.w + 3].xyzx + ge r15.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xyzx + ge r16.xyz, r14.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r15.xyz, r15.xyzx, r16.xyzx + or r7.w, r15.y, r15.x + or r7.w, r15.z, r7.w + and r8.z, r14.z, l(0x7fffffff) + ult r8.z, l(0x7f800000), r8.z + or r15.z, r7.w, r8.z + ftoi r5.w, r5.w + mad r8.zw, r14.xxxy, cb6[r5.w + 28].zzzw, cb6[r5.w + 28].xxxy + mad r12.xy, r8.zwzz, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r12.xy, r12.xyxx + mad r8.zw, r8.zzzw, cb6[32].zzzw, -r12.xxxy + add r16.xyzw, r8.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r17.xw, r16.xxxz, r16.xxxz + min r14.xy, r8.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r16.xz, r8.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r18.xy, r17.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r8.zwzz + add r8.zw, -r8.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r8.zw, -r14.xxxy, r14.xxxy, r8.zzzw + mad r14.xy, -r16.xzxx, r16.xzxx, r16.ywyy + mov r16.x, r18.x + mov r16.y, r8.z + mov r16.z, r14.x + mov r16.w, r17.x + mul r16.xyzw, r16.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r17.x, r18.y + mov r17.y, r8.w + mov r17.z, r14.y + mul r17.xyzw, r17.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r18.xyzw, r16.ywyw, r16.xzxz + add r19.xyzw, r17.yyww, r17.xxzz + div r8.zw, r16.yyyw, r18.zzzw + add r8.zw, r8.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r16.xy, r8.zwzz, cb6[32].xxxx + div r8.zw, r17.yyyw, r19.yyyw + add r8.zw, r8.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r16.zw, r8.zzzw, cb6[32].yyyy + mul r17.xyzw, r18.xyzw, r19.xyzw + mad r18.xyzw, r12.xyxy, cb6[32].xyxy, r16.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r18.xyxx, t12.xxxx, s3, r14.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r7.w, r18.zwzz, t12.xxxx, s3, r14.z + mul r7.w, r7.w, r17.y + mad r5.w, r17.x, r5.w, r7.w + mad r16.xyzw, r12.xyxy, cb6[32].xyxy, r16.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r7.w, r16.xyxx, t12.xxxx, s3, r14.z + mad r5.w, r17.z, r7.w, r5.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r7.w, r16.zwzz, t12.xxxx, s3, r14.z + mad r5.w, r17.w, r7.w, r5.w + movc r15.x, r15.z, l(1.000000), r5.w + else + mov r15.xz, l(1.000000,0,0,0) + endif + else + mov r15.xz, l(1.000000,0,0,0) + endif + lt r5.w, r6.w, l(1.000000) + if_nz r5.w + dp3 r5.w, r7.xyzx, cb5[0].xyzx + max r5.w, r5.w, l(0.000000) + min r5.w, r5.w, l(0.900000) + add r5.w, -r5.w, l(1.000000) + mul r8.zw, r5.wwww, cb6[584].xxxy + mad r14.xyz, -cb5[0].xyzx, r8.zzzz, r11.xyzx + mad r14.xyz, r7.xyzx, r8.wwww, r14.xyzx + mul r8.zw, r14.yyyy, cb6[581].xxxy + mad r8.zw, cb6[580].xxxy, r14.xxxx, r8.zzzw + mad r8.zw, cb6[582].xxxy, r14.zzzz, r8.zzzw + add r8.zw, r8.zzzw, cb6[583].xxxy + lt r12.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r8.zwzz + and r5.w, r12.y, r12.x + lt r12.xy, r8.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r7.w, r12.y, r12.x + and r5.w, r5.w, r7.w + if_nz r5.w + mul r5.w, r8.w, cb6[585].z + round_ni r5.w, r5.w + add r5.w, r8.z, r5.w + mul r5.w, r5.w, cb6[585].y + ftou r5.w, r5.w + umin r5.w, r5.w, l(127) + and r7.w, l(0x0000ffff), cb6[r5.w + 587].x + f16tof32 r12.x, r7.w + ge r7.w, r12.x, l(0.000000) + if_nz r7.w + mov r16.x, cb6[576].x + mov r16.y, cb6[577].x + mov r16.z, cb6[578].x + mov r16.w, cb6[r5.w + 587].y + mov r14.w, l(1.000000) + dp4 r16.x, r16.xyzw, r14.xyzw + mov r17.x, cb6[576].y + mov r17.y, cb6[577].y + mov r17.z, cb6[578].y + mov r17.w, cb6[r5.w + 587].z + dp4 r16.y, r17.xyzw, r14.xyzw + mov r17.x, cb6[576].z + mov r17.y, cb6[577].z + mov r17.z, cb6[578].z + mov r17.w, cb6[r5.w + 587].w + dp4 r7.w, r17.xyzw, r14.xyzw + lt r8.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r16.xxxy + lt r9.w, l(0.000000), r7.w + and r8.z, r8.w, r8.z + and r8.z, r9.w, r8.z + lt r14.xy, r16.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + lt r8.w, r7.w, l(1.000000) + and r9.w, r14.y, r14.x + and r8.w, r8.w, r9.w + and r8.z, r8.w, r8.z + if_nz r8.z + ushr r5.w, cb6[r5.w + 587].x, l(16) + f16tof32 r12.y, r5.w + mad r8.zw, r16.xxxy, cb6[584].zzzw, r12.xxxy + mad r12.xy, r8.zwzz, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r12.xy, r12.xyxx + mad r8.zw, r8.zzzw, cb6[586].zzzw, -r12.xxxy + add r14.xyzw, r8.zzww, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r16.xw, r14.xxxz, r14.xxxz + min r14.xz, r8.zzwz, l(0.000000, 0.000000, 0.000000, 0.000000) + max r17.xy, r8.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r17.zw, r16.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r8.zzzw + add r8.zw, -r8.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000) + mad r8.zw, -r14.xxxz, r14.xxxz, r8.zzzw + mad r14.xy, -r17.xyxx, r17.xyxx, r14.ywyy + mov r18.x, r17.z + mov r18.y, r8.z + mov r18.z, r14.x + mov r18.w, r16.x + mul r18.xyzw, r18.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + mov r16.x, r17.w + mov r16.y, r8.w + mov r16.z, r14.y + mul r14.xyzw, r16.xyzw, l(0.444440, 0.444440, 0.444440, 0.222220) + add r16.xyzw, r18.ywyw, r18.xzxz + add r17.xyzw, r14.yyww, r14.xxzz + div r8.zw, r18.yyyw, r16.zzzw + add r8.zw, r8.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r18.xy, r8.zwzz, cb6[586].xxxx + div r8.zw, r14.yyyw, r17.yyyw + add r8.zw, r8.zzzw, l(0.000000, 0.000000, -1.500000, 0.500000) + mul r18.zw, r8.zzzw, cb6[586].yyyy + mul r14.xyzw, r16.xyzw, r17.xyzw + mad r16.xyzw, r12.xyxy, cb6[586].xyxy, r18.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r16.xyxx, t15.xxxx, s3, r7.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r8.z, r16.zwzz, t15.xxxx, s3, r7.w + mul r8.z, r8.z, r14.y + mad r5.w, r14.x, r5.w, r8.z + mad r16.xyzw, r12.xyxy, cb6[586].xyxy, r18.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r8.z, r16.xyxx, t15.xxxx, s3, r7.w + mad r5.w, r14.z, r8.z, r5.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r7.w, r16.zwzz, t15.xxxx, s3, r7.w + mad r15.y, r14.w, r7.w, r5.w + else + mov r15.y, l(1.000000) + endif + else + mov r15.y, l(1.000000) + endif + else + mov r15.y, l(1.000000) + endif + movc r15.x, r15.z, r15.y, r15.x + else + mov r15.y, l(1.000000) + endif + add r5.w, -r15.y, r15.x + mad r5.w, r6.w, r5.w, r15.y + lt r6.w, l(0.001000), r5.w + if_nz r6.w + add r11.xyz, r11.xyzx, -cb0[173].xyzx + mad r8.zw, cb0[176].xxxz, r11.yyyy, r11.xxxz + mul r11.yw, r8.zzzw, cb0[174].zzzz + mul r12.xy, cb0[175].xyxx, cb0[183].wwww + mad r8.zw, r8.zzzw, cb0[174].zzzz, r12.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r6.w, r8.zwzz, t14.yzwx, s1, l(0.000000) + mad r8.zw, r11.yyyw, cb0[175].wwww, r12.xxxy + sample_l_indexable(texture2d)(float,float,float,float) r7.w, r8.zwzz, t14.yzwx, s1, l(0.000000) + dp2 r8.z, r11.xzxx, r11.xzxx + sqrt r8.z, r8.z + add r8.w, -cb0[174].x, cb0[174].y + add r8.z, r8.z, -cb0[174].x + div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w + mul_sat r8.z, r8.w, r8.z + mad r8.w, r8.z, l(-2.000000), l(3.000000) + mul r8.z, r8.z, r8.z + mul r8.z, r8.z, r8.w + add r7.w, -r6.w, r7.w + mad r6.w, r8.z, r7.w, r6.w + add r6.w, r6.w, l(-1.000000) + mad r6.w, cb0[175].z, r6.w, l(1.000000) + mul r5.w, r5.w, r6.w + endif + add r6.w, -r5.w, cb6[35].z + mad r5.w, cb6[35].w, r6.w, r5.w +else + mov r5.w, cb6[35].z +endif +min r5.w, r5.w, l(1.000000) +add r5.w, r5.w, l(-1.000000) +mad r11.x, cb6[34].x, r5.w, l(1.000000) +lt r5.w, l(0.001000), r11.x +if_nz r5.w + dp3 r5.w, -cb5[0].xyzx, r13.xyzx + mad r14.xyz, cb5[0].xyzx, r5.wwww, r13.xyzx + lt r5.w, r5.w, cb5[4].z + dp3 r6.w, r14.xyzx, r14.xyzx + max r6.w, r6.w, l(0.0000610351562) + rsq r6.w, r6.w + mul r14.xyz, r6.wwww, r14.xyzx + mul r14.xyz, r14.xyzx, cb5[4].yyyy + mad r14.xyz, -cb5[0].xyzx, cb5[4].zzzz, r14.xyzx + dp3 r6.w, r14.xyzx, r14.xyzx + rsq r6.w, r6.w + mul r14.xyz, r6.wwww, r14.xyzx + movc r14.xyz, r5.wwww, r14.xyzx, r13.xyzx + mad r15.xyz, r2.xyzx, r3.wwww, r14.xyzx + dp3 r5.w, r15.xyzx, r15.xyzx + max r5.w, r5.w, l(0.0000610351562) + rsq r5.w, r5.w + mul r15.xyz, r5.wwww, r15.xyzx + dp3_sat r14.z, r14.xyzx, r7.xyzx + dp3_sat r5.w, r7.xyzx, r15.xyzx + min r14.x, r1.w, l(1.000000) + mul r6.w, cb2[25].z, cb2[25].z + mul r6.w, r6.w, r6.w + mad r7.w, r5.w, r6.w, -r5.w + mad r5.w, r7.w, r5.w, l(1.000000) + dp3_sat r7.w, r4.xyzx, r15.xyzx + add r7.w, -r7.w, l(1.000000) + mul r8.z, r7.w, r7.w + mul r8.z, r8.z, r8.z + mul r8.w, r7.w, r8.z + add r9.w, l(1.000000), -cb2[25].z + mad r11.z, -r9.w, l(0.383026), l(-0.0761947036) + mad r11.z, r9.w, r11.z, l(1.049970) + mad r9.w, r9.w, r11.z, l(0.409255) + min r9.w, r9.w, l(0.999000) + add r11.z, -r9.w, l(1.000000) + add r15.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r6.xyzx + mad r7.w, -r8.z, r7.w, l(1.000000) + mad r16.xyz, r6.xyzx, r7.wwww, r8.wwww + mul r5.w, r5.w, r5.w + div r5.w, r6.w, r5.w + mad r8.zw, -r14.xxxz, r6.wwww, r14.xxxz + mad r8.zw, r8.zzzw, r14.xxxz, r6.wwww + sqrt r8.zw, r8.zzzw + mul r8.zw, r8.zzzw, r14.zzzx + add r6.w, r8.w, r8.z + add r6.w, r6.w, l(0.000100) + div r6.w, l(0.500000), r6.w + mul r5.w, r5.w, r6.w + mul r16.xyz, r5.wwww, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mov r14.yw, cb2[25].zzzz + mad r17.xyzw, r14.xyzw, 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) r5.w, r17.xyxx, t17.yzwx, s0, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r6.w, r17.zwzz, t17.yzwx, s0, l(0.000000) + mul r5.w, r5.w, r6.w + mul r5.w, r9.w, r5.w + div r5.w, r5.w, r11.z + mul r14.xyw, r15.xyxz, r15.xyxz + mul r14.xyw, r5.wwww, r14.xyxw + mad r15.xyz, -r15.xyzx, r11.zzzz, l(1.000000, 1.000000, 1.000000, 0.000000) + div r14.xyw, r14.xyxw, r15.xyxz + 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[13].z + if_nz r35.x + mul r14.xyw, r14.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000) + endif + max r14.xyw, r14.xyxw, l(0.000000, 0.000000, 0.000000, 0.000000) + min r14.xyw, r14.xyxw, l(1000.000000, 1000.000000, 0.000000, 1000.000000) + div r14.xyw, r14.xyxw, r0.wwww + min r14.xyw, r14.xyxw, l(1000.000000, 1000.000000, 0.000000, 1000.000000) + mul r14.xyw, r14.xyxw, cb2[24].xxxx + mul r15.xyz, r9.xyzx, r14.zzzz + mad r14.xyz, r14.xywx, r14.zzzz, r15.xyzx + mul r14.xyz, r14.xyzx, cb5[1].xyzx + mov r11.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r11.yzw, r11.xyxx, t16.wxyz, s0, cb0[108].x + add r0.w, -r11.x, l(1.000000) + mad r11.xyz, r14.xyzx, r11.yzwy, -r14.xyzx + mad r11.xyz, r0.wwww, r11.xyzx, r14.xyzx +else + mov r11.xyz, l(0,0,0,0) +endif +mul r8.zw, r12.zzzw, l(0.000000, 0.000000, 0.031250, 0.031250) +round_ni r8.zw, r8.zzzw +mad r0.w, r8.w, cb4[1].y, r8.z +mul r0.w, r0.w, l(8.000000) +ftoi r0.w, r0.w +mad r5.w, -cb0[85].y, cb4[2].w, r10.z +round_ni r5.w, r5.w +add r6.w, l(-1.000000), cb4[1].w +max r7.w, r5.w, l(0.000000) +min r6.w, r6.w, r7.w +mul r7.w, r6.w, l(8.000000) +ftoi r7.w, r7.w +ge r5.w, r6.w, r5.w +iadd r6.w, r7.w, cb0[110].y +mul r7.w, cb2[25].z, cb2[25].z +min r12.x, r1.w, l(1.000000) +add r8.zw, l(0.000000, 0.000000, 1.000000, 1.000000), -cb2[25].zzzx +mad r1.w, -r8.z, l(0.383026), l(-0.0761947036) +mad r1.w, r8.z, r1.w, l(1.049970) +mad r1.w, r8.z, r1.w, l(0.409255) +min r1.w, r1.w, l(0.999000) +add r8.z, -r1.w, l(1.000000) +add r14.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mad r14.xyz, r14.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r6.xyzx +mov r12.y, cb2[25].z +mad r15.xy, r12.xyxx, 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) r9.w, r15.xyxx, t17.yzwx, s0, l(0.000000) +mad r15.xyz, -r14.xyzx, r8.zzzz, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r14.xyz, r14.xyzx, r14.xyzx +mov r16.w, l(1.000000) +mov r17.y, l(1.000000) +mov r18.z, cb2[25].z +mov r19.xyz, l(0,0,0,0) +mov r11.w, l(1.000000) +mov r12.y, l(0) +loop + ilt r13.w, l(7), r12.y + breakc_nz r13.w + iadd r13.w, r0.w, r12.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r13.w, l(0), t0.xxxx + iadd r14.w, r6.w, r12.y + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.w, r14.w, l(0), t0.xxxx + and r13.w, r13.w, r14.w + and r13.w, r5.w, r13.w + ishl r14.w, r12.y, l(5) + mov r20.xyz, l(0,0,0,0) + mov r15.w, r11.w + mov r17.z, r13.w + loop + breakc_z r17.z + firstbit_lo r17.w, r17.z + ishl r18.w, l(1), r17.w + xor r18.w, r17.z, r18.w + iadd r17.w, r14.w, r17.w + bfi r21.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, cb5[r21.z + 6].w + ieq r20.w, r20.w, l(1) + if_nz r20.w + add r16.xyz, r0.xyzx, -cb5[r21.x + 6].xyzx + and r22.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r21.z + 6].xzyx + and r23.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r21.w + 6].yxzy + ushr r24.xyz, cb5[r21.z + 6].xzyx, l(16, 16, 16, 0) + ushr r25.xyz, cb5[r21.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r22.xyz, r22.xyzx + f16tof32 r23.xyz, r23.xyzx + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyw, r25.yxyz + mov r26.xz, r22.xxzx + mov r26.yw, r24.xxxz + dp4 r20.w, r16.xyzw, r26.xyzw + mov r24.x, r22.y + mov r24.z, r23.y + mov r24.w, r25.x + dp4 r21.z, r16.xyzw, r24.xyzw + mov r25.xz, r23.xxzx + dp4 r16.x, r16.xyzw, r25.xyzw + max r16.y, |r20.w|, |r21.z| + max r16.x, |r16.x|, r16.y + mad r16.y, cb5[r19.w + 6].x, l(0.500000), l(0.500000) + add r16.x, -r16.y, r16.x + mad r16.y, -cb5[r19.w + 6].x, l(0.500000), l(0.500000) + div_sat r16.x, r16.x, r16.y + add r16.x, -r16.x, l(1.000000) + mul r16.x, r16.x, r16.x + else + mov r16.x, l(1.000000) + endif + lt r16.y, l(0.500000), cb5[r21.y + 6].z + lt r16.z, r16.x, l(0.001000) + or r16.z, r16.y, r16.z + if_nz r16.z + mov r17.z, r18.w + continue + endif + ishl r16.z, r17.w, l(3) + bfi r17.w, l(29), l(3), r17.w, l(2) + lt r20.w, cb5[r16.z + 6].w, l(1.500000) + if_nz r20.w + mad r20.w, cb5[r17.w + 6].y, l(0.500000), l(0.500000) + add r22.x, r20.w, -|cb5[r17.w + 6].x| + add r22.y, -r22.x, cb5[r17.w + 6].y + add r20.w, -|r22.x|, l(1.000000) + add r20.w, -|r22.y|, r20.w + max r20.w, r20.w, l(0.000488281250) + ge r21.z, cb5[r17.w + 6].x, l(0.000000) + movc r22.z, r21.z, r20.w, -r20.w + dp3 r20.w, r22.xyzx, r22.xyzx + rsq r20.w, r20.w + mul r22.xyz, r20.wwww, r22.xyzx + add r23.xyz, -r0.xyzx, cb5[r21.x + 6].xyzx + dp3 r20.w, r23.xyzx, r23.xyzx + rsq r21.z, r20.w + mul r24.xyz, r21.zzzz, r23.xyzx + ftoi r22.w, cb5[r19.w + 6].w + mul r25.xyz, r22.xyzx, cb5[r17.w + 6].zzzz + mad r26.xyz, -r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r23.xyzx + mad r27.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r23.xyzx + ftou r23.w, cb5[r16.z + 6].w + and r23.w, r23.w, l(1) + ieq r24.w, r23.w, l(0) + not r24.w, r24.w + lt r25.w, l(0.000000), cb5[r17.w + 6].z + and r24.w, r24.w, r25.w + dp3 r25.w, r26.xyzx, r26.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r27.xyzx, r27.xyzx + sqrt r26.w, r26.w + dp3 r27.w, r7.xyzx, r26.xyzx + div r27.w, r27.w, r25.w + dp3 r28.x, r7.xyzx, r27.xyzx + div r28.x, r28.x, r26.w + add r27.w, r27.w, r28.x + mul_sat r28.x, r27.w, l(0.500000) + dp3 r27.x, r26.xyzx, r27.xyzx + mad r25.w, r25.w, r26.w, r27.x + mad r25.w, r25.w, l(0.500000), l(1.000000) + div r28.y, l(1.000000, 1.000000, 1.000000, 1.000000), r25.w + dp3_sat r17.x, r7.xyzx, r24.xyzx + movc r18.xy, r24.wwww, r28.xyxx, r17.xyxx + lt r17.x, cb5[r21.w + 6].w, l(0.000000) + if_nz r17.x + mul r17.x, cb5[r21.x + 6].w, cb5[r21.x + 6].w + mul r17.x, r17.x, r20.w + mad r17.x, -r17.x, r17.x, l(1.000000) + max r17.x, r17.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.w, l(0x3f800000) + add r26.w, r18.y, -r20.w + mad r20.w, r25.w, r26.w, r20.w + mul r17.x, r17.x, r17.x + mul r17.x, r17.x, r20.w + else + mul r27.xyz, r23.xyzx, cb5[r21.x + 6].wwww + dp3 r20.w, r27.xyzx, r27.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[r21.w + 6].w + exp r20.w, r20.w + mul r17.x, r18.y, r20.w + endif + dp3 r18.y, r24.xyzx, -r22.xyzx + add r18.y, r18.y, -cb5[r17.w + 6].z + mul_sat r18.y, r18.y, cb5[r17.w + 6].w + mul r18.y, r18.y, r18.y + movc r18.y, r23.w, l(1.000000), r18.y + mul r17.x, r17.x, r18.y + not r18.y, r24.w + ige r20.w, r22.w, l(0) + and r18.y, r18.y, r20.w + if_nz r18.y + if_z r23.w + ishl r18.y, r22.w, l(2) + mul r22.xyz, r0.yyyy, cb7[r18.y + 33].xywx + mad r22.xyz, cb7[r18.y + 32].xywx, r0.xxxx, r22.xyzx + mad r22.xyz, cb7[r18.y + 34].xywx, r0.zzzz, r22.xyzx + add r22.xyz, r22.xyzx, cb7[r18.y + 35].xywx + div_sat r22.xy, r22.xyxx, r22.zzzz + mad r22.xy, r22.xyxx, cb7[r22.w + 0].zwzz, cb7[r22.w + 0].xyxx + else + ishl r18.y, r22.w, l(2) + dp3 r27.x, -r23.xyzx, cb7[r18.y + 32].xyzx + dp3 r27.y, -r23.xyzx, cb7[r18.y + 33].xyzx + dp3 r27.z, -r23.xyzx, cb7[r18.y + 34].xyzx + lt r18.y, |r27.x|, |r27.y| + and r18.y, r18.y, l(1) + dp2 r20.w, |r27.xyxx|, icb[r18.y + 0].xyxx + lt r20.w, r20.w, |r27.z| + movc r18.y, r20.w, l(2), r18.y + dp3 r20.w, r27.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, r27.xyzx, icb[r20.w + 0].xyzx + div r22.z, l(0.000244140625), cb7[r22.w + 0].w + add r22.z, -r22.z, l(0.500000) + utof r23.x, r18.y + ult r23.y, r18.y, l(2) + and r23.y, r23.y, l(2) + dp2 r23.y, r27.xzxx, icb[r23.y + 0].xzxx + mul r23.y, r23.y, icb[r18.y + 4].z + div r23.y, r23.y, |r20.w| + mad r23.x, r23.y, r22.z, r23.x + add r23.x, r23.x, l(0.500000) + mul_sat r23.x, r23.x, l(0.166666672) + iadd r23.z, l(-1), icb[r18.y + 4].y + dp2 r23.z, r27.yzyy, icb[r23.z + 0].xyxx + mul r18.y, r23.z, icb[r18.y + 4].w + div r18.y, r18.y, |r20.w| + mad_sat r23.y, -r18.y, r22.z, l(0.500000) + mad r22.xy, r23.xyxx, cb7[r22.w + 0].zwzz, cb7[r22.w + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r22.xyxx, t18.yxzw, s0, l(0.000000) + mul r17.x, r17.x, r18.y + endif + lt r18.y, l(0.000000), r17.x + if_nz r18.y + if_z r23.w + ftoi r20.w, cb5[r21.y + 6].x + else + add r22.xyz, r0.xyzx, -cb5[r21.x + 6].xyzx + lt r23.xyz, |r22.yzzy|, |r22.xxyx| + and r22.w, r23.y, r23.x + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + ushr r23.x, cb5[r17.w + 6].w, l(24) + ubfe r23.yw, l(0, 8, 0, 8), l(0, 16, 0, 8), cb5[r17.w + 6].wwww + movc r22.x, r22.x, r23.x, r23.y + and r23.x, l(255), cb5[r17.w + 6].w + movc r22.y, r22.y, r23.w, r23.x + ubfe r23.x, l(8), l(8), cb5[r21.y + 6].x + and r23.y, l(255), cb5[r21.y + 6].x + movc r22.z, r22.z, r23.x, r23.y + movc r22.y, r23.z, r22.y, r22.z + movc r22.x, r22.w, r22.x, r22.y + ilt r22.y, r22.x, l(80) + movc r20.w, r22.y, r22.x, l(-1) + endif + ishl r22.x, r20.w, l(2) + mad r22.yzw, r24.xxyz, cb6[r20.w + 288].xxxx, r0.xxyz + mul r23.x, l(5.000000), cb6[r20.w + 288].y + mad r22.yzw, r7.xxyz, r23.xxxx, r22.yyzw + mul r23.xyzw, r22.zzzz, cb6[r22.x + 65].xyzw + mad r23.xyzw, cb6[r22.x + 64].xyzw, r22.yyyy, r23.xyzw + mad r23.xyzw, cb6[r22.x + 66].xyzw, r22.wwww, r23.xyzw + add r22.xyzw, r23.xyzw, cb6[r22.x + 67].xyzw + div r22.xyz, r22.xyzx, r22.wwww + ge r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + ge r27.xyz, r22.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r28.xy, -cb6[r20.w + 344].xyxx, cb6[r20.w + 344].zwzz + mad r22.xy, r22.xyxx, r28.xyxx, cb6[r20.w + 344].xyxx + mad r28.xy, r22.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r28.xy, r28.xyxx + mad r22.xy, r22.xyxx, cb6[400].zwzz, -r28.xyxx + add r29.xyzw, r22.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r30.xyzw, r29.xxzz, r29.xxzz + add r28.zw, -r22.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r29.xz, r22.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r31.xy, r22.xyxx, 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 r22.xy, r30.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r22.xyxx + mul r33.xy, r22.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r22.xy, -r29.xzxx, r29.xzxx, r28.zwzz + add r22.xy, r22.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r22.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r22.xy, r29.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r33.z, r34.x + mov r33.w, r22.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, r22.y + mov r31.z, r32.y + mov r31.w, r30.z + add r22.xyw, r31.zyzw, r34.zyzw + div r30.xyz, r32.xzwx, r29.zwyz + add r30.xyz, r30.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r30.xyz, r30.xyzx, cb6[400].xxxx + div r31.xyz, r31.zywz, r22.xywx + add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r31.xyw, r31.xyxz, cb6[400].yyyy + mul r32.xyzw, r22.xxxy, r29.zwyz + mov r30.w, r31.x + mad r33.xyzw, r28.xyxy, cb6[400].xyxy, r30.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r33.xyxx, t13.xxxx, s3, r22.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r33.zwzz, t13.xxxx, s3, r22.z + mul r23.w, r23.w, r32.y + mad r22.x, r32.x, r22.x, r23.w + mad r28.zw, r28.xxxy, cb6[400].xxxy, r30.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r28.zwzz, t13.xxxx, s3, r22.z + mad r22.x, r32.z, r23.w, r22.x + mov r31.z, r30.x + mad r33.xyzw, r28.xyxy, cb6[400].xyxy, r31.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.w, r33.xyxx, t13.xxxx, s3, r22.z + mad r22.x, r32.w, r23.w, r22.x + mul r32.xyzw, r22.yyww, r29.xyzw + mov r31.xz, r30.yyzy + mad r30.xyzw, r28.xyxy, cb6[400].xyxy, r31.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.y, r30.xyxx, t13.xxxx, s3, r22.z + mad r22.x, r32.x, r22.y, r22.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.y, r30.zwzz, t13.xxxx, s3, r22.z + mad r22.x, r32.y, r22.y, r22.x + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.y, r33.zwzz, t13.xxxx, s3, r22.z + mad r22.x, r32.z, r22.y, r22.x + ige r22.y, r20.w, l(0) + or r23.xyz, r23.xyzx, r27.xyzx + or r23.x, r23.y, r23.x + or r23.x, r23.z, r23.x + and r23.y, r22.z, l(0x7fffffff) + ult r23.y, l(0x7f800000), r23.y + or r23.x, r23.y, r23.x + mad r27.xyzw, r28.xyxy, cb6[400].xyxy, r31.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r27.xyxx, t13.xxxx, s3, r22.z + mad r22.x, r32.w, r23.y, r22.x + mul r22.w, r22.w, r29.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r27.zwzz, t13.xxxx, s3, r22.z + mad r22.x, r22.w, r22.z, r22.x + add r22.x, r22.x, l(-1.000000) + mad r20.w, cb6[r20.w + 288].w, r22.x, l(1.000000) + movc r20.w, r23.x, l(1.000000), r20.w + movc r20.w, r22.y, r20.w, l(1.000000) + else + mov r20.w, l(1.000000) + endif + if_nz r24.w + dp3 r22.x, r13.xyzx, r25.xyzx + mul_sat r22.y, r21.z, cb5[r17.w + 6].z + mad r22.y, r22.y, l(0.500000), r7.w + min r22.y, r22.y, l(1.000000) + div r22.y, r7.w, r22.y + mad r23.xyz, r13.xyzx, r22.xxxx, -r25.xyzx + dp3 r22.z, r26.xyzx, r23.xyzx + mul r22.x, r22.x, r22.x + mad r22.x, cb5[r17.w + 6].z, cb5[r17.w + 6].z, -r22.x + div_sat r22.x, r22.z, r22.x + mad r22.xzw, r25.xxyz, r22.xxxx, r26.xxyz + dp3 r23.x, r22.xzwx, r22.xzwx + rsq r23.x, r23.x + mul r24.xyz, r22.xzwx, r23.xxxx + else + mov r22.y, l(1.000000) + endif + if_nz r18.y + mul_sat r18.y, r21.z, cb5[r19.w + 6].y + mad r22.xzw, r2.xxyz, r3.wwww, r24.xxyz + dp3 r21.z, r22.xzwx, r22.xzwx + max r21.z, r21.z, l(0.0000610351562) + rsq r21.z, r21.z + mul r22.xzw, r21.zzzz, r22.xxzw + dp3_sat r21.z, r7.xyzx, r22.xzwx + dp3_sat r22.x, r4.xyzx, r22.xzwx + lt r22.z, l(0.000000), r18.y + mul r18.y, r18.y, r18.y + mad r22.w, r22.x, l(3.600000), l(0.400000) + div r18.y, r18.y, r22.w + mad r18.y, cb2[25].z, cb2[25].z, r18.y + min r18.y, r18.y, l(1.000000) + movc r18.y, r22.z, r18.y, r7.w + mul r18.y, r18.y, r18.y + mad r22.z, r21.z, r18.y, -r21.z + mad r21.z, r22.z, r21.z, l(1.000000) + add r22.x, -r22.x, l(1.000000) + mul r22.z, r22.x, r22.x + mul r22.z, r22.z, r22.z + mul r22.w, r22.x, r22.z + mad r22.x, -r22.z, r22.x, l(1.000000) + mad r22.xzw, r6.xxyz, r22.xxxx, r22.wwww + mul r21.z, r21.z, r21.z + div r21.z, r18.y, r21.z + mul r21.z, r22.y, r21.z + mad r22.y, -r12.x, r18.y, r12.x + mad r22.y, r22.y, r12.x, r18.y + sqrt r22.y, r22.y + mad r23.x, -r18.x, r18.y, r18.x + mad r18.y, r23.x, r18.x, r18.y + sqrt r18.y, r18.y + mul r18.y, r12.x, r18.y + mad r18.y, r18.x, r22.y, r18.y + add r18.y, r18.y, l(0.000100) + div r18.y, l(0.500000), r18.y + mul r18.y, r18.y, r21.z + mul r22.xyz, r18.yyyy, r22.xzwx + min r22.xyz, r22.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r23.xy, r18.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.y, r23.xyxx, t17.yxzw, s0, l(0.000000) + mul r18.y, r9.w, r18.y + mul r18.y, r1.w, r18.y + div r18.y, r18.y, r8.z + mul r23.xyz, r14.xyzx, r18.yyyy + div r23.xyz, r23.xyzx, r15.xyzx + add r22.xyz, r22.xyzx, r23.xyzx + mul r22.xyz, r22.xyzx, cb5[r19.w + 6].zzzz + max r22.xyz, r22.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000) + min r22.xyz, r22.xyzx, l(1000.000000, 1000.000000, 1000.000000, 0.000000) + mul r23.xyz, r9.xyzx, r18.xxxx + mad r22.xyz, r22.xyzx, r18.xxxx, r23.xyzx + mul r23.xyz, r17.xxxx, cb5[r16.z + 6].xyzx + mul r23.xyz, r20.wwww, r23.xyzx + mul r23.xyz, r16.xxxx, r23.xyzx + mul r22.xyz, r22.xyzx, r23.xyzx + else + mov r22.xyz, l(0,0,0,0) + endif + else + if_z r16.y + mad r16.x, cb5[r17.w + 6].y, l(0.500000), l(0.500000) + add r23.x, r16.x, -|cb5[r17.w + 6].x| + add r23.y, -r23.x, cb5[r17.w + 6].y + add r16.x, -|r23.x|, l(1.000000) + add r16.x, -|r23.y|, r16.x + max r16.x, r16.x, l(0.000488281250) + ge r16.y, cb5[r17.w + 6].x, l(0.000000) + movc r23.z, r16.y, r16.x, -r16.x + dp3 r16.x, r23.xyzx, r23.xyzx + rsq r16.x, r16.x + mul r23.xyz, r16.xxxx, r23.xyzx + add r24.xyz, -r0.xyzx, cb5[r21.x + 6].xyzx + dp3 r16.x, r24.xyzx, r24.xyzx + rsq r16.y, r16.x + mul r25.xyz, r16.yyyy, r24.xyzx + ftoi r16.y, cb5[r19.w + 6].w + mul r26.xyz, r23.xyzx, cb5[r17.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 r16.z, cb5[r16.z + 6].w + and r16.z, r16.z, l(1) + ieq r17.x, r16.z, l(0) + not r17.x, r17.x + lt r18.x, l(0.000000), cb5[r17.w + 6].z + and r17.x, r17.x, r18.x + dp3 r18.x, r27.xyzx, r27.xyzx + dp3 r18.y, r26.xyzx, r26.xyzx + sqrt r18.xy, r18.xyxx + dp3 r19.w, r27.xyzx, r26.xyzx + mad r18.x, r18.x, r18.y, r19.w + 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, r17.x, r18.x, l(1.000000) + lt r18.y, cb5[r21.w + 6].w, l(0.000000) + if_nz r18.y + mul r18.y, cb5[r21.x + 6].w, cb5[r21.x + 6].w + mul r18.y, r16.x, r18.y + mad r18.y, -r18.y, r18.y, l(1.000000) + max r18.y, r18.y, l(0.000000) + add r16.x, r16.x, l(1.000000) + div r16.x, l(1.000000, 1.000000, 1.000000, 1.000000), r16.x + and r19.w, r17.x, l(0x3f800000) + add r20.w, -r16.x, r18.x + mad r16.x, r19.w, r20.w, r16.x + mul r18.y, r18.y, r18.y + mul r16.x, r16.x, r18.y + else + mul r26.xyz, r24.xyzx, cb5[r21.x + 6].wwww + dp3 r18.y, r26.xyzx, r26.xyzx + min r18.y, r18.y, l(1.000000) + add r18.y, -r18.y, l(1.000000) + log r18.y, r18.y + mul r18.y, r18.y, cb5[r21.w + 6].w + exp r18.y, r18.y + mul r16.x, r18.y, r18.x + endif + dp3 r18.x, r25.xyzx, -r23.xyzx + add r18.x, r18.x, -cb5[r17.w + 6].z + mul_sat r18.x, r18.x, cb5[r17.w + 6].w + mul r18.x, r18.x, r18.x + movc r18.x, r16.z, l(1.000000), r18.x + mul r16.x, r16.x, r18.x + not r17.x, r17.x + ige r18.x, r16.y, l(0) + and r17.x, r17.x, r18.x + if_nz r17.x + if_z r16.z + ishl r17.x, r16.y, l(2) + mul r23.xyz, r0.yyyy, cb7[r17.x + 33].xywx + mad r23.xyz, cb7[r17.x + 32].xywx, r0.xxxx, r23.xyzx + mad r23.xyz, cb7[r17.x + 34].xywx, r0.zzzz, r23.xyzx + add r23.xyz, r23.xyzx, cb7[r17.x + 35].xywx + div_sat r18.xy, r23.xyxx, r23.zzzz + mad r18.xy, r18.xyxx, cb7[r16.y + 0].zwzz, cb7[r16.y + 0].xyxx + else + ishl r17.x, r16.y, l(2) + dp3 r23.x, -r24.xyzx, cb7[r17.x + 32].xyzx + dp3 r23.y, -r24.xyzx, cb7[r17.x + 33].xyzx + dp3 r23.z, -r24.xyzx, cb7[r17.x + 34].xyzx + lt r17.x, |r23.x|, |r23.y| + and r17.x, r17.x, l(1) + dp2 r19.w, |r23.xyxx|, icb[r17.x + 0].xyxx + lt r19.w, r19.w, |r23.z| + movc r17.x, r19.w, l(2), r17.x + dp3 r19.w, r23.xyzx, icb[r17.x + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r17.x, l(31), l(1), r17.x, r19.w + ushr r19.w, r17.x, l(1) + dp3 r19.w, r23.xyzx, icb[r19.w + 0].xyzx + div r20.w, l(0.000244140625), cb7[r16.y + 0].w + add r20.w, -r20.w, l(0.500000) + utof r21.z, r17.x + ult r21.w, r17.x, l(2) + and r21.w, r21.w, l(2) + dp2 r21.w, r23.xzxx, icb[r21.w + 0].xzxx + mul r21.w, r21.w, icb[r17.x + 4].z + div r21.w, r21.w, |r19.w| + mad r21.z, r21.w, r20.w, r21.z + add r21.z, r21.z, l(0.500000) + mul_sat r24.x, r21.z, l(0.166666672) + iadd r21.z, l(-1), icb[r17.x + 4].y + dp2 r21.z, r23.yzyy, icb[r21.z + 0].xyxx + mul r17.x, r21.z, icb[r17.x + 4].w + div r17.x, r17.x, |r19.w| + mad_sat r24.y, -r17.x, r20.w, l(0.500000) + mad r18.xy, r24.xyxx, cb7[r16.y + 0].zwzz, cb7[r16.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r16.y, r18.xyxx, t18.yxzw, s0, l(0.000000) + mul r16.x, r16.y, r16.x + endif + lt r16.x, l(0.000000), r16.x + if_nz r16.x + if_z r16.z + ftoi r16.x, cb5[r21.y + 6].x + else + add r21.xzw, r0.xxyz, -cb5[r21.x + 6].xxyz + lt r23.xyz, |r21.zwwz|, |r21.xxzx| + and r16.y, r23.y, r23.x + lt r21.xzw, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xxzw + ushr r16.z, cb5[r17.w + 6].w, l(24) + ubfe r18.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r17.w + 6].wwww + movc r16.z, r21.x, r16.z, r18.x + and r17.x, l(255), cb5[r17.w + 6].w + movc r17.x, r21.z, r18.y, r17.x + ubfe r17.w, l(8), l(8), cb5[r21.y + 6].x + and r18.x, l(255), cb5[r21.y + 6].x + movc r17.w, r21.w, r17.w, r18.x + movc r17.x, r23.z, r17.x, r17.w + movc r16.y, r16.y, r16.z, r17.x + ilt r16.z, r16.y, l(80) + movc r16.x, r16.z, r16.y, l(-1) + endif + ishl r16.y, r16.x, l(2) + mad r21.xyz, r25.xyzx, cb6[r16.x + 288].xxxx, r0.xyzx + mul r16.z, l(5.000000), cb6[r16.x + 288].y + mad r21.xyz, r7.xyzx, r16.zzzz, r21.xyzx + mul r23.xyzw, r21.yyyy, cb6[r16.y + 65].xyzw + mad r23.xyzw, cb6[r16.y + 64].xyzw, r21.xxxx, r23.xyzw + mad r21.xyzw, cb6[r16.y + 66].xyzw, r21.zzzz, r23.xyzw + add r21.xyzw, r21.xyzw, cb6[r16.y + 67].xyzw + div r21.xyz, r21.xyzx, r21.wwww + ge r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r21.xyzx + ge r24.xyz, r21.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r16.yz, -cb6[r16.x + 344].xxyx, cb6[r16.x + 344].zzwz + mad r16.yz, r21.xxyx, r16.yyzy, cb6[r16.x + 344].xxyx + mad r17.xw, r16.yyyz, cb6[400].zzzw, l(0.500000, 0.000000, 0.000000, 0.500000) + round_ni r17.xw, r17.xxxw + mad r16.yz, r16.yyzy, cb6[400].zzwz, -r17.xxwx + add r25.xyzw, r16.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r26.xyzw, r25.xxzz, r25.xxzz + add r18.xy, -r16.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r21.xy, r16.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r25.xz, r16.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r27.xy, r18.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r25.xz, -r25.xxzx, r25.xxzx, r25.yywy + add r25.xz, r25.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000) + mul r28.xy, r25.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xz, r26.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r16.yz, r26.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r16.yyzy + mul r26.xy, r16.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r16.yz, -r21.xxyx, r21.xxyx, r18.xxyx + add r16.yz, r16.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r29.xy, r16.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r16.yz, r25.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r26.z, r29.x + mov r26.w, r16.y + mov r27.z, r28.x + mov r27.w, r25.x + add r30.xyzw, r26.zwxz, r27.zwxz + mov r29.z, r26.y + mov r29.w, r16.z + mov r28.z, r27.y + mov r28.w, r25.z + add r21.xyw, r28.zyzw, r29.zyzw + div r25.xyz, r27.xzwx, r30.zwyz + add r25.xyz, r25.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r25.xyz, r25.xyzx, cb6[400].xxxx + div r26.xyz, r28.zywz, r21.xywx + add r26.xyz, r26.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r26.xyw, r26.xyxz, cb6[400].yyyy + mul r27.xyzw, r21.xxxy, r30.zwyz + mov r25.w, r26.x + mad r28.xyzw, r17.xwxw, cb6[400].xyxy, r25.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.y, r28.xyxx, t13.xxxx, s3, r21.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r28.zwzz, t13.xxxx, s3, r21.z + mul r16.z, r16.z, r27.y + mad r16.y, r27.x, r16.y, r16.z + mad r18.xy, r17.xwxx, cb6[400].xyxx, r25.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r18.xyxx, t13.xxxx, s3, r21.z + mad r16.y, r27.z, r16.z, r16.y + mov r26.z, r25.x + mad r28.xyzw, r17.xwxw, cb6[400].xyxy, r26.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r28.xyxx, t13.xxxx, s3, r21.z + mad r16.y, r27.w, r16.z, r16.y + mul r27.xyzw, r21.yyww, r30.xyzw + mov r26.xz, r25.yyzy + mad r25.xyzw, r17.xwxw, cb6[400].xyxy, r26.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r25.xyxx, t13.xxxx, s3, r21.z + mad r16.y, r27.x, r16.z, r16.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r25.zwzz, t13.xxxx, s3, r21.z + mad r16.y, r27.y, r16.z, r16.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r28.zwzz, t13.xxxx, s3, r21.z + mad r16.y, r27.z, r16.z, r16.y + ige r16.z, r16.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 r18.y, r21.z, l(0x7fffffff) + ult r18.y, l(0x7f800000), r18.y + or r18.x, r18.y, r18.x + mad r23.xyzw, r17.xwxw, cb6[400].xyxy, r26.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r23.xyxx, t13.xxxx, s3, r21.z + mad r16.y, r27.w, r17.x, r16.y + mul r17.x, r21.w, r30.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r23.zwzz, t13.xxxx, s3, r21.z + mad r16.y, r17.x, r17.w, r16.y + add r16.y, r16.y, l(-1.000000) + mad r16.x, cb6[r16.x + 288].w, r16.y, l(1.000000) + movc r16.x, r18.x, l(1.000000), r16.x + movc r16.x, r16.z, r16.x, l(1.000000) + else + mov r16.x, l(1.000000) + endif + else + mov r16.x, l(1.000000) + endif + mul r15.w, r15.w, r16.x + mov r22.xyz, l(0,0,0,0) + endif + add r20.xyz, r20.xyzx, r22.xyzx + mov r17.z, r18.w + endloop + mov r11.w, r15.w + add r19.xyz, r19.xyzx, r20.xyzx + iadd r12.y, r12.y, l(1) +endloop +add r0.x, l(1.000000), -cb2[0].y +mad r0.z, r0.y, cb0[156].w, cb0[157].w +mad r0.w, r2.w, cb0[154].w, -cb0[153].w +max r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.010000, 0.000000) +mul r1.w, r0.z, l(-1.442695) +exp r1.w, r1.w +add r1.w, -r1.w, l(1.000000) +div r0.z, r1.w, r0.z +mad r1.w, r0.y, cb0[156].w, cb0[158].w +mul r1.w, r1.w, l(1.442695) +exp r1.w, r1.w +mul r0.z, r0.z, r1.w +mul r0.z, r0.z, -r0.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, -r4.xyzx, cb0[154].xyzx +mad r0.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r1.w, r0.zzzz, cb0[155].wwww +add r0.w, r0.w, -r1.w +lt r1.w, l(0.000000), cb0[163].z +if_nz r1.w + and r10.w, l(7), cb0[108].w + imad r6.xyz, r10.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r1.w, r6.y, r6.z, r6.x + imad r3.w, r6.z, r1.w, r6.y + imad r5.w, r1.w, r3.w, r6.z + imad r6.x, r3.w, r5.w, r1.w + dp3 r1.w, -r4.xyzx, -r3.xyzx + add r3.x, r0.y, -cb0[44].y + lt r3.y, l(5.960464478E-08), r1.w + div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w + and r1.w, r1.w, r3.y + mul r1.w, r1.w, cb0[163].w + div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w + mul r3.z, r1.w, 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 r6.z, -r3.z + add r6.z, -r6.z, l(1.000000) + div r6.z, r6.z, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r4.z, r6.z, 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 r6.z, -r3.x + add r6.z, -r6.z, l(1.000000) + div r6.z, r6.z, r3.x + mad r3.x, -r3.x, l(0.240226507), l(0.693147182) + movc r3.x, r4.z, r6.z, r3.x + mul r3.x, r3.x, r4.x + mad r3.x, r4.y, r3.z, r3.x + mad r1.w, -r1.w, r3.y, l(1.000000) + mul r1.w, r2.w, r1.w + mul r1.w, r1.w, r3.x + exp r1.w, -r1.w + min r1.w, r1.w, l(1.000000) + max r1.w, r1.w, cb0[161].w + mad_sat r3.xy, r2.wwww, cb0[160].ywyy, cb0[160].xzxx + add r1.w, r1.w, r3.x + add r1.w, r3.y, r1.w + min r1.w, r1.w, l(1.000000) + imad r6.y, r5.w, r6.x, r3.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, r12.zwzz + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r3.w, r10.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, t5.xyzw, s0, l(0.000000) + add r4.x, r10.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, -r1.w, l(1.000000) + mul r4.xyz, r4.xxxx, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r1.w, r1.w, r3.w +else + add r0.y, r0.y, -cb0[44].y + mul r3.w, r0.y, cb0[159].z + max r3.w, r3.w, l(-127.000000) + mul r0.y, r0.y, cb0[162].x + max r0.y, r0.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), |r0.y| + exp r5.w, -r0.y + add r5.w, -r5.w, l(1.000000) + div r5.w, r5.w, r0.y + mad r0.y, -r0.y, l(0.240226507), l(0.693147182) + movc r0.y, r4.z, r5.w, r0.y + mul r0.y, r0.y, r4.y + mad r0.y, r4.x, r3.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 r4.xy, r2.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.y, r0.y, r4.x + add r0.y, r4.y, r0.y + min r1.w, r0.y, l(1.000000) + add r0.y, -r1.w, l(1.000000) + mul r3.xyz, r0.yyyy, cb0[161].xyzx +endif +// === Glass Fix: Reduce clustered lights and overall brightness === +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) +endif +dp3 r0.y, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xyz, -r0.yyyy, r1.xyzx +mad r1.xyz, cb0[184].wwww, r1.xyzx, r0.yyyy +mul r4.xyz, r5.xyzx, r8.wwww +mad r1.xyz, r1.xyzx, cb0[184].xyzx, r4.xyzx +mad r4.xyz, r19.xyzx, r11.wwww, r11.xyzx +add r1.xyz, r1.xyzx, r4.xyzx +mul r4.xyz, r1.wwww, r2.xyzx +mad r0.y, r0.z, r0.z, l(1.000000) +mul r0.yz, r0.yywy, l(0.000000, 0.0596831031, 12.566371, 0.000000) +mad r5.xyz, cb0[156].xyzx, r0.yyyy, cb0[158].xyzx +mad r0.y, -cb0[155].w, cb0[155].w, l(1.000000) +sqrt r0.w, r0.w +mul r0.z, r0.w, r0.z +max r0.z, r0.z, l(0.001000) +div r0.y, r0.y, r0.z +mad_sat r0.yzw, cb0[157].xxyz, r0.yyyy, r5.xxyz +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.yzw, r0.yyzw, r1.wwww, r3.xxyz +mul r0.yzw, r0.xxxx, r0.yyzw +// === Glass Transparency Fix === +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) + mad r35.xyz, r35.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r4.xyzx + // Reduce inscatter intensity + mul r36.xyz, r0.yzwy, l(0.350000, 0.350000, 0.350000, 0.000000) + // Modified fog blend + mad r0.yzw, r1.xxyz, r35.xxyz, r36.xxyz +else + // Original fog blend + mad r0.yzw, r1.xxyz, r4.xxyz, r0.yyzw +endif +mul r1.xyz, r4.wwww, r0.yzwy +mul r1.w, r0.x, r4.w +min o1.xy, r8.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r1.w, r0.x +max r0.x, r1.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 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 + if_nz r35.z + add r35.w, r35.y, l(-0.500000) + mul r35.w, r35.w, l(-0.666667) + exp r35.w, r35.w + add r35.w, -r35.w, l(1.000000) + mad r35.w, r35.w, l(1.500000), l(0.500000) + max r36.x, r35.y, l(0.001000) + div r36.x, r35.w, r36.x + mul r1.xyz, r1.xyzx, r36.xxxx + endif +endif +mov o0.xyzw, r1.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 000000000..dd604e7a6 Binary files /dev/null and b/src/games/endfield/glass/0xB317E9E1.cso differ 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..e05c3dd68 --- /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[13].z +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[13].z + 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[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) +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[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) + 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[13].z +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/0xB8941FB1.cso b/src/games/endfield/glass/0xB8941FB1.cso new file mode 100644 index 000000000..4f1d23e68 Binary files /dev/null and b/src/games/endfield/glass/0xB8941FB1.cso differ 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..0f5fbe530 --- /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[13].z +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[13].z + 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[13].z +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[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) + 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[13].z +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/0xD2EC68A2.cso b/src/games/endfield/glass/0xD2EC68A2.cso new file mode 100644 index 000000000..5b5a37354 Binary files /dev/null and b/src/games/endfield/glass/0xD2EC68A2.cso differ 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..43bd1bd30 --- /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[13].z +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[13].z + 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[13].z +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[13].z +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[13].z +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 000000000..914d924c7 Binary files /dev/null and b/src/games/endfield/glass/0xF831814B.cso differ diff --git a/src/games/endfield/glass/0xF831814B.ps_5_0.asm b/src/games/endfield/glass/0xF831814B.ps_5_0.asm new file mode 100644 index 000000000..41983b207 --- /dev/null +++ b/src/games/endfield/glass/0xF831814B.ps_5_0.asm @@ -0,0 +1,1758 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Feb 6 23:51:39 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 38 +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 r0.xz, r0.xxzx, l(2.000000, 0.000000, 2.000000, 0.000000), l(-1.000000, 0.000000, -1.000000, 0.000000) +mul r1.xyzw, -r0.zzzz, cb0[25].xyzw +mad r1.xyzw, cb0[24].xyzw, r0.xxxx, 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.x, l(0.000000), v3.w +movc r0.x, r0.x, l(1.000000), l(-1.000000) +eq r0.z, 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.zzzz, r2.xyzx, r3.xyzx +dp3 r0.z, r2.xyzx, r2.xyzx +max r0.w, r0.z, l(9.999999939E-09) +rsq r0.w, r0.w +mul r4.xyz, r0.wwww, r2.xyzx +mul r0.z, r0.w, r0.z +add r5.xy, -v1.xyxx, v1.zwzz +mad r5.zw, cb2[3].xxxx, r5.xxxy, v1.xxxy +mad r5.zw, r5.zzzw, cb2[12].xxxy, cb2[12].zzzw +mad r5.xy, cb2[2].wwww, r5.xyxx, v1.xyxx +mad r5.xy, r5.xyxx, cb2[11].xyxx, cb2[11].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r6.xyzw, r5.xyxx, t2.xyzw, s4, cb0[108].x +add r2.w, cb0[108].x, cb2[3].y +sample_b_indexable(texture2d)(float,float,float,float) r7.xyz, r5.zwzz, t3.xywz, s5, r2.w +mul r7.x, r7.x, r7.z +mad r5.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r7.xy, r5.xyxx, cb2[0].xxxx +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r5.zwzz, t4.xyzw, s6, cb0[108].x +mul r6.xyzw, r6.xyzw, cb2[8].xyzw +mul_sat r6.xyz, r6.xyzx, cb2[4].zzzz +add r9.xyz, -r6.xyzx, cb2[8].xyzx +mad r6.xyz, cb2[4].xxxx, r9.xyzx, r6.xyzx +mad r2.w, r6.w, v4.x, -r6.w +mad r9.w, cb2[19].x, r2.w, r6.w +add r2.w, -cb2[0].z, cb2[0].w +mad r10.w, r8.y, r2.w, cb2[0].z +add_sat r2.w, l(-1.000000), cb2[3].w +add r3.w, -r8.x, cb2[4].y +mad r2.w, r2.w, r3.w, r8.x +mul r8.xyw, v2.zxzy, v3.yzyx +mad r8.xyw, v2.yzyx, v3.zxzy, -r8.xyxw +mul r8.xyw, r0.xxxx, r8.xyxw +mul r7.yzw, r7.yyyy, r8.xxyw +mad r7.xyz, v3.xyzx, r7.xxxx, r7.yzwy +dp2 r0.x, r5.xyxx, r5.xyxx +min r0.x, r0.x, l(1.000000) +add r0.x, -r0.x, l(1.000000) +sqrt r0.x, r0.x +max r0.x, r0.x, l(1.000000017E-16) +lt r3.w, l(0.000000), cb2[1].w +movc r3.w, r3.w, l(-1.000000), l(1.000000) +movc r3.w, v8.x, l(1.000000), r3.w +mul r0.x, r0.x, r3.w +mad r5.xyz, v2.xyzx, r0.xxxx, r7.xyzx +dp3 r0.x, r5.xyzx, r5.xyzx +rsq r0.x, r0.x +mul r5.xyz, r0.xxxx, r5.xyzx +max r0.x, v5.z, l(9.999999939E-09) +div r7.xy, v5.xyxx, r0.xxxx +max r0.x, v6.z, l(9.999999939E-09) +div r7.zw, v6.xxxy, r0.xxxx +add r7.xy, -r7.zwzz, r7.xyxx +mul r0.x, l(0.080000), cb2[0].y +mad r8.xyw, -r6.xyxz, r2.wwww, r6.xyxz +mad r0.x, -r0.x, r2.w, r0.x +mad r6.xyz, r6.xyzx, r2.wwww, r0.xxxx +dp3 r0.x, r5.xyzx, r4.xyzx +mad r11.xyzw, r10.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r2.w, r11.x, r11.x +max r0.x, r0.x, l(0.000000) +mul r3.w, r0.x, l(-9.280000) +exp r3.w, r3.w +min r2.w, r2.w, r3.w +mad r2.w, r2.w, r11.x, r11.y +mad r11.xy, r2.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r11.zwzz +eq r2.w, l(1.000000), cb0[113].y +mul r12.xyzw, r1.yyyy, cb0[241].xyzw +mad r12.xyzw, cb0[240].xyzw, r1.xxxx, r12.xyzw +mad r12.xyzw, cb0[242].xyzw, r1.zzzz, r12.xyzw +add r12.xyzw, r12.xyzw, cb0[243].xyzw +div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r12.w +mul r12.xyz, r12.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000) +mul r12.xyz, r3.wwww, r12.xyzx +mad_sat r11.zw, r12.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) +mul r11.zw, r11.zzzw, cb0[82].xxxy +ftou r13.xy, r11.zwzz +mad r3.w, cb0[84].z, r12.z, cb0[84].w +div r13.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w +ftou r12.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 r12.z, |r3.w| +movc r12.xyz, r2.wwww, r13.xyzx, r12.xyzx +mad r13.xyz, r5.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, r13.xzyx, -r14.xyzx +max r2.w, |r14.y|, |r14.x| +add r2.w, r2.w, l(-464.000000) +mul_sat r2.w, r2.w, l(0.031250) +add r3.w, |r14.z|, l(-208.000000) +mul_sat r3.w, r3.w, l(0.031250) +max r2.w, r2.w, r3.w +ne r3.w, l(0.000000), cb0[210].w +lt r4.w, r2.w, l(1.000000) +and r3.w, r3.w, r4.w +if_nz r3.w + mad r14.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r14.xyz, r13.xzyx, -r14.xyzx + max r3.w, |r14.y|, |r14.x| + add r3.w, r3.w, l(-29.000000) + mul_sat r3.w, r3.w, l(0.500000) + add r4.w, |r14.z|, l(-13.000000) + mul_sat r4.w, r4.w, l(0.500000) + max r3.w, r3.w, r4.w + lt r4.w, r3.w, l(1.000000) + if_nz r4.w + mad r14.xyz, r13.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, t11.xyzw, s1, l(0.000000) + add r4.w, -r3.w, l(1.000000) + mul r6.w, l(0.500000), cb0[211].y + mad r7.w, -cb0[211].y, l(0.500000), l(1.000000) + max r6.w, r6.w, r14.y + min r6.w, r7.w, r6.w + mul r14.w, r6.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r14.xwzx, t12.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 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, t12.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 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, t12.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.zzzz, r14.xyzx + mad r6.w, r16.w, r4.w, r2.w + mov r14.w, r15.z + mul r14.xyzw, r4.wwww, r14.xyzw + mov r18.w, r15.y + mul r16.xyzw, r4.wwww, r18.xyzw + mov r17.w, r15.x + mul r15.xyzw, r4.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 r6.w, r2.w + endif + mad r17.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r17.xyz, r13.xzyx, -r17.xyzx + max r4.w, |r17.y|, |r17.x| + add r4.w, r4.w, l(-116.000000) + mul_sat r4.w, r4.w, l(0.125000) + add r7.w, |r17.z|, l(-52.000000) + mul_sat r7.w, r7.w, l(0.125000) + max r4.w, r4.w, r7.w + lt r7.w, r4.w, l(1.000000) + if_nz r7.w + mad r17.xyz, r13.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, t13.xyzw, s1, l(0.000000) + add r7.w, -r4.w, l(1.000000) + mul r3.w, r3.w, r7.w + mul r7.w, l(0.500000), cb0[211].y + mad r11.z, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r17.y + min r7.w, r11.z, r7.w + mul r17.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t14.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 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, t14.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 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, t14.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.zzzz, r17.xyzx + mad r6.w, r19.w, r3.w, r6.w + mov r17.w, r18.z + mad r14.xyzw, r17.xyzw, r3.wwww, r14.xyzw + mov r21.w, r18.y + mad r16.xyzw, r21.xyzw, r3.wwww, r16.xyzw + mov r20.w, r18.x + mad r15.xyzw, r20.xyzw, r3.wwww, r15.xyzw + endif + lt r3.w, l(0.000000), r4.w + if_nz r3.w + mad r13.xyz, r13.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r17.xyz, r13.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 r13.xyz, r13.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 r13.xyz, r18.xyzx, r13.xyzx + min r13.xyz, r17.xyzx, r13.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r19.xyw, r13.xyzx, t15.yzwx, s1, l(0.000000) + add r3.w, -r2.w, l(1.000000) + mul r3.w, r3.w, r4.w + max r4.w, r18.y, r13.y + min r4.w, r17.y, r4.w + mul r13.w, r4.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r13.xwzx, t16.xyzw, s0, l(0.000000) + add r18.xyz, r13.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000) + sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r18.xyzx, t16.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.yyyy, r18.xyzx + mov r18.w, r19.y + mad r14.xyzw, r18.xyzw, r3.wwww, r14.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, 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, r19.xxxx, r13.xyzx + mov r13.w, r19.x + mad r16.xyzw, r13.xyzw, r3.wwww, r16.xyzw + mad r13.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, r13.xyzx + mad r15.xyzw, r19.xyzw, r3.wwww, r15.xyzw + mad r6.w, r17.w, r3.w, r6.w + endif + mad_sat r3.w, r6.w, l(2.000000), l(-1.000000) + add r13.x, -r2.w, r3.w + add r2.w, r2.w, r3.w + mul r13.y, r2.w, 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 r13.xy, l(0,1.000000,0,0) +endif +mul r17.xyzw, r13.yyyx, cb0[213].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r11.zw, r13.yyyx, cb0[213].wwwy +mad r17.w, r11.w, l(0.375000), r11.z +add r15.xyzw, r15.xyzw, r17.xyzw +mul r17.xyzw, r13.yyyx, cb0[214].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r11.zw, r13.yyyx, cb0[214].wwwy +mad r17.w, r11.w, l(0.375000), r11.z +add r16.xyzw, r16.xyzw, r17.xyzw +mul r17.xyzw, r13.yyyx, cb0[215].xyzw +mad r17.y, r17.w, l(0.500000), r17.y +mul r11.zw, r13.yyyx, cb0[215].wwwy +mad r17.w, r11.w, l(0.375000), r11.z +add r13.xyzw, r14.xyzw, r17.xyzw +dp3 r2.w, r15.xyzx, r5.xyzx +add r2.w, r15.w, r2.w +max r14.x, r2.w, l(0.000000) +dp3 r2.w, r16.xyzx, r5.xyzx +add r2.w, r16.w, r2.w +max r14.y, r2.w, l(0.000000) +dp3 r2.w, r13.xyzx, r5.xyzx +add r2.w, r13.w, r2.w +max r14.z, r2.w, l(0.000000) +dp3 r2.w, -r4.xyzx, r5.xyzx +add r2.w, r2.w, r2.w +mad r13.xyz, r5.xyzx, -r2.wwww, -r4.xyzx +add r2.w, l(-1.000000), cb0[113].x +max r3.w, r10.w, l(0.001000) +log r3.w, r3.w +mad r3.w, -r3.w, l(1.200000), l(1.000000) +add r2.w, r2.w, -r3.w +utof r11.zw, r12.xxxy +mul r15.xy, r11.zwzz, cb3[0].wwww +round_ni r15.xy, r15.xyxx +add r3.w, r12.z, -cb3[2].y +round_ni r3.w, r3.w +add r4.w, l(-1.000000), cb3[1].x +max r6.w, r3.w, l(0.000000) +min r4.w, r4.w, r6.w +ge r3.w, r4.w, r3.w +mad r6.w, r15.y, cb3[0].x, r15.x +ftoi r6.w, r6.w +iadd r6.w, r6.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r6.w, r6.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, r6.w +and r3.w, r3.w, r4.w +mul r15.xyz, r14.xyzx, cb0[111].xxxx +dp3 r4.w, r15.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r1.w, l(1.000000) +mov r5.w, l(1.000000) +mov r15.xyz, l(0,0,0,0) +mov r6.w, l(1.000000) +mov r7.w, r3.w +mov r13.w, l(0) +loop + lt r14.w, l(0.010000), r6.w + ine r15.w, r7.w, l(0) + and r15.w, r14.w, r15.w + if_nz r15.w + firstbit_lo r15.w, r7.w + ishl r16.x, l(1), r15.w + xor r7.w, r7.w, r16.x + ishl r15.w, r15.w, l(3) + dp4 r16.x, cb3[r15.w + 6].xyzw, r1.xyzw + dp4 r16.y, cb3[r15.w + 7].xyzw, r1.xyzw + dp4 r16.z, cb3[r15.w + 8].xyzw, r1.xyzw + ge r17.xyz, cb3[r15.w + 5].xyzx, |r16.xyzx| + and r16.w, r17.y, r17.x + and r16.w, r17.z, r16.w + if_nz r16.w + mul r16.w, l(0.100000), cb3[r15.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[r15.w + 5].xyzx + mul r18.xyz, r18.xyzx, cb3[r15.w + 9].xyzx + eq r17.w, l(1.000000), cb3[r15.w + 10].x + if_nz r17.w + dp3 r19.x, cb3[r15.w + 6].xyzx, r13.xyzx + dp3 r19.y, cb3[r15.w + 7].xyzx, r13.xyzx + dp3 r19.z, cb3[r15.w + 8].xyzx, r13.xyzx + add r20.xyz, -r16.xyzx, cb3[r15.w + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r16.xyzx, -cb3[r15.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 r17.w, r20.y, r20.x + min r17.w, r20.z, r17.w + mad r16.xyz, r19.xyzx, r17.wwww, r16.xyzx + else + mov r16.xyz, r13.xyzx + endif + dp3 r17.w, r16.xyzx, r16.xyzx + rsq r17.w, r17.w + mul r16.xyz, r16.xyzx, r17.wwww + 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 r17.w, r16.xyzx, r19.xyzx + div r16.xyz, r16.xyzx, r17.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[r15.w + 4].xyzw, r5.xyzw + max r16.z, r16.z, l(0.000000) + max r16.z, r16.z, l(0.000100) + min r17.w, r18.z, r18.y + min r17.w, r17.w, r18.x + add r17.x, r17.y, r17.x + mad r17.x, r17.z, r17.z, r17.x + mad r16.w, r16.w, r16.w, -r17.x + mul r16.w, r16.w, cb3[r15.w + 9].x + mul r16.w, r16.w, cb3[r15.w + 9].x + add r17.x, l(1.000000), -cb3[r15.w + 10].y + mul r16.w, r16.w, r17.x + mul r16.w, r16.w, l(100.000000) + mad_sat r16.w, r17.w, cb3[r15.w + 10].y, r16.w + mul r17.x, r16.w, cb3[r15.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 r18.xy, r16.xyxx, cb3[1].wwww, cb3[2].wwww + mov r18.z, cb3[r15.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.yzw, r18.xyzx, t1.wxyz, s2, r2.w + mul r17.yzw, r17.yyzw, cb3[r15.w + 9].wwww + div r16.x, r4.w, r16.z + min r16.x, |r16.x|, l(1.000000) + mad r16.x, r16.x, l(2.000000), r4.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.yzwy + mul r16.xyz, r17.xxxx, r16.xyzx + mad r15.xyz, r16.xyzx, r6.wwww, r15.xyzx + mad r15.w, -r16.w, cb3[r15.w + 10].w, l(1.000000) + mul r6.w, r6.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, r13.xyzx, r13.xyzx + rsq r1.w, r1.w + mul r16.xyz, r1.wwww, r13.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 r1.w, r16.xyzx, r17.xyzx + div r16.xyz, r16.xyzx, r1.wwww + lt r1.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, r17.xxxy + movc r16.xy, r1.wwww, r16.zwzz, r16.xyxx + mov r5.w, l(1.000000) + dp4 r1.w, cb3[3].xyzw, r5.xyzw + max r1.w, r1.w, l(0.000000) + max r1.w, r1.w, l(0.000100) + 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, 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, r2.w + div r2.w, r4.w, r1.w + min r2.w, |r2.w|, l(1.000000) + mad r2.w, r2.w, l(2.000000), r4.w + add r1.w, r1.w, l(2.000000) + div r1.w, r2.w, r1.w + add r1.w, r1.w, l(-1.000000) + mad r1.w, r1.w, cb0[112].w, l(1.000000) + mul r16.xyz, r1.wwww, r16.xyzx + mad r15.xyz, r16.xyzx, r6.wwww, r15.xyzx +endif +mul r14.xyz, r8.xywx, r14.xyzx +add r1.w, r8.z, l(-1.000000) +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[13].z +if_nz r36.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 r1.w, r6.y, l(50.000000) +mul r1.w, r11.y, r1.w +mad r16.xyz, r6.xyzx, r11.xxxx, r1.wwww +mul r15.xyz, r15.xyzx, r16.xyzx +mad r14.xyz, r14.xyzx, cb0[111].xxxx, r15.xyzx +lt r1.w, cb6[35].w, l(0.990000) +if_nz r1.w + ftoi r1.w, cb6[35].x + ieq r2.w, r1.w, l(2) + movc r15.xyz, r2.wwww, cb6[20].xyzx, cb0[44].xyzx + add r15.xyz, r1.xyzx, -r15.xyzx + dp3 r2.w, r15.xyzx, r15.xyzx + add r2.w, -r2.w, cb6[34].w + mul_sat r2.w, r2.w, cb6[34].z + lt r3.w, l(0.000000), r2.w + if_nz r3.w + ilt r1.w, l(0), r1.w + if_nz r1.w + add r15.xyz, r1.xyzx, -cb6[20].xyzx + add r16.xyz, r1.xyzx, -cb6[21].xyzx + add r17.xyz, r1.xyzx, -cb6[22].xyzx + add r18.xyz, r1.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 r1.w, r17.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r1.w, -r1.w, l(4.000000) + max r1.w, r1.w, l(0.000000) + min r1.w, r1.w, l(3.000000) + add r3.w, r1.w, l(1.000000) + min r3.w, r3.w, l(3.000000) + ftou r3.w, r3.w + dp3 r4.w, r15.yzwy, icb[r3.w + 0].yzwy + div r3.w, r4.w, cb6[r3.w + 20].w + ge r4.w, r3.w, l(0.000000) + ge r3.w, l(1.000000), r3.w + and r3.w, r3.w, r4.w + if_nz r3.w + ftou r3.w, r1.w + add r11.xy, r11.zwzz, l(2.083000, 4.867000, 0.000000, 0.000000) + dp2 r4.w, r11.xyxx, 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, r15.xyzw, icb[r3.w + 0].xyzw + div r3.w, r5.w, cb6[r3.w + 20].w + sqrt r3.w, r3.w + add r3.w, r3.w, l(-0.900000) + mul r3.w, r3.w, l(12.000000) + ge r3.w, r3.w, r4.w + and r3.w, r3.w, l(0x3f800000) + add r1.w, r1.w, r3.w + endif + dp3 r3.w, r5.xyzx, cb5[0].xyzx + max r3.w, r3.w, l(0.000000) + min r3.w, r3.w, l(0.900000) + add r3.w, -r3.w, l(1.000000) + ftou r4.w, r1.w + ishl r5.w, r4.w, l(2) + mul r11.xy, r3.wwww, cb6[r4.w + 24].xyxx + max r3.w, r11.x, l(0.000000) + mad r15.xyz, -cb5[0].xyzx, r3.wwww, r1.xyzx + mad r15.xyz, r5.xyzx, r11.yyyy, r15.xyzx + mul r16.xyz, r15.yyyy, cb6[r5.w + 1].xyzx + mad r15.xyw, cb6[r5.w + 0].xyxz, r15.xxxx, r16.xyxz + mad r15.xyz, cb6[r5.w + 2].xyzx, r15.zzzz, r15.xywx + add r15.xyz, r15.xyzx, cb6[r5.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 r3.w, r16.y, r16.x + or r3.w, r16.z, r3.w + and r4.w, r15.z, l(0x7fffffff) + ult r4.w, l(0x7f800000), r4.w + or r16.z, r3.w, r4.w + ftoi r1.w, r1.w + mad r11.xy, r15.xyxx, cb6[r1.w + 28].zwzz, cb6[r1.w + 28].xyxx + mad r15.xy, r11.xyxx, cb6[32].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r15.xy, r15.xyxx + mad r11.xy, r11.xyxx, cb6[32].zwzz, -r15.xyxx + add r17.xyzw, r11.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r17.xz, r11.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r19.xy, r11.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.zw, r18.xxxw, l(0.000000, 0.000000, 0.500000, 0.500000), -r11.xxxy + add r11.xy, -r11.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mad r11.xy, -r17.xzxx, r17.xzxx, r11.xyxx + mad r17.xy, -r19.xyxx, r19.xyxx, r17.ywyy + mov r20.x, r19.z + mov r20.y, r11.x + 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, r11.y + 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 r11.xy, r20.ywyy, r18.zwzz + add r11.xy, r11.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r20.xy, r11.xyxx, cb6[32].xxxx + div r11.xy, r17.ywyy, r19.ywyy + add r11.xy, r11.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r20.zw, r11.xxxy, 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) r1.w, r18.xyxx, t5.xxxx, s3, r15.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r18.zwzz, t5.xxxx, s3, r15.z + mul r3.w, r3.w, r17.y + mad r1.w, r17.x, r1.w, r3.w + mad r18.xyzw, r15.xyxy, cb6[32].xyxy, r20.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r18.xyxx, t5.xxxx, s3, r15.z + mad r1.w, r17.z, r3.w, r1.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r18.zwzz, t5.xxxx, s3, r15.z + mad r1.w, r17.w, r3.w, r1.w + movc r16.x, r16.z, l(1.000000), r1.w + else + mov r16.xz, l(1.000000,0,0,0) + endif + else + mov r16.xz, l(1.000000,0,0,0) + endif + lt r1.w, r2.w, l(1.000000) + if_nz r1.w + dp3 r1.w, r5.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) + mul r11.xy, r1.wwww, cb6[584].xyxx + mad r15.xyz, -cb5[0].xyzx, r11.xxxx, r1.xyzx + mad r15.xyz, r5.xyzx, r11.yyyy, r15.xyzx + mul r11.xy, r15.yyyy, cb6[581].xyxx + mad r11.xy, cb6[580].xyxx, r15.xxxx, r11.xyxx + mad r11.xy, cb6[582].xyxx, r15.zzzz, r11.xyxx + add r11.xy, r11.xyxx, cb6[583].xyxx + lt r17.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r11.xyxx + and r1.w, r17.y, r17.x + lt r17.xy, r11.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + and r3.w, r17.y, r17.x + and r1.w, r1.w, r3.w + if_nz r1.w + mul r1.w, r11.y, cb6[585].z + round_ni r1.w, r1.w + add r1.w, r11.x, r1.w + mul r1.w, r1.w, cb6[585].y + ftou r1.w, r1.w + umin r1.w, r1.w, l(127) + and r3.w, l(0x0000ffff), cb6[r1.w + 587].x + f16tof32 r11.x, r3.w + ge r3.w, r11.x, l(0.000000) + if_nz r3.w + mov r17.x, cb6[576].x + mov r17.y, cb6[577].x + mov r17.z, cb6[578].x + mov r17.w, cb6[r1.w + 587].y + mov r15.w, l(1.000000) + dp4 r17.x, r17.xyzw, r15.xyzw + mov r18.x, cb6[576].y + mov r18.y, cb6[577].y + mov r18.z, cb6[578].y + mov r18.w, cb6[r1.w + 587].z + dp4 r17.y, r18.xyzw, r15.xyzw + mov r18.x, cb6[576].z + mov r18.y, cb6[577].z + mov r18.z, cb6[578].z + mov r18.w, cb6[r1.w + 587].w + dp4 r3.w, r18.xyzw, r15.xyzw + lt r15.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xyxx + lt r4.w, l(0.000000), r3.w + and r5.w, r15.y, r15.x + and r4.w, r4.w, r5.w + lt r15.xy, r17.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + lt r5.w, r3.w, l(1.000000) + and r6.w, r15.y, r15.x + and r5.w, r5.w, r6.w + and r4.w, r4.w, r5.w + if_nz r4.w + ushr r1.w, cb6[r1.w + 587].x, l(16) + f16tof32 r11.y, r1.w + mad r11.xy, r17.xyxx, cb6[584].zwzz, r11.xyxx + mad r15.xy, r11.xyxx, cb6[586].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r15.xy, r15.xyxx + mad r11.xy, r11.xyxx, cb6[586].zwzz, -r15.xyxx + add r17.xyzw, r11.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r15.zw, r11.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r17.xz, r11.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.xwxx, l(0.500000, 0.500000, 0.000000, 0.000000), -r11.xyxx + add r11.xy, -r11.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mad r11.xy, -r15.zwzz, r15.zwzz, r11.xyxx + mad r15.zw, -r17.xxxz, r17.xxxz, r17.yyyw + mov r17.x, r19.x + mov r17.y, r11.x + 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, r11.y + 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 r11.xy, r17.ywyy, r19.zwzz + add r11.xy, r11.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r17.xy, r11.xyxx, cb6[586].xxxx + div r11.xy, r18.ywyy, r20.ywyy + add r11.xy, r11.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r17.zw, r11.xxxy, 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) r1.w, r19.xyxx, t8.xxxx, s3, r3.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r19.zwzz, t8.xxxx, s3, r3.w + mul r4.w, r4.w, r18.y + mad r1.w, r18.x, r1.w, r4.w + mad r15.xyzw, r15.xyxy, cb6[586].xyxy, r17.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r15.xyxx, t8.xxxx, s3, r3.w + mad r1.w, r18.z, r4.w, r1.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r3.w, r15.zwzz, t8.xxxx, s3, r3.w + mad r16.y, r18.w, r3.w, r1.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 r1.w, -r16.y, r16.x + mad r1.w, r2.w, r1.w, r16.y + lt r2.w, l(0.001000), r1.w + if_nz r2.w + add r15.xyz, r1.xyzx, -cb0[173].xyzx + mad r11.xy, cb0[176].xzxx, r15.yyyy, r15.xzxx + mul r15.yw, r11.xxxy, cb0[174].zzzz + mul r16.xy, cb0[175].xyxx, cb0[183].wwww + mad r11.xy, r11.xyxx, cb0[174].zzzz, r16.xyxx + sample_l_indexable(texture2d)(float,float,float,float) r2.w, r11.xyxx, t7.yzwx, s1, l(0.000000) + mad r11.xy, r15.ywyy, cb0[175].wwww, r16.xyxx + sample_l_indexable(texture2d)(float,float,float,float) r3.w, r11.xyxx, t7.yzwx, s1, l(0.000000) + dp2 r4.w, r15.xzxx, r15.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 r3.w, -r2.w, r3.w + mad r2.w, r4.w, r3.w, r2.w + add r2.w, r2.w, l(-1.000000) + mad r2.w, cb0[175].z, r2.w, l(1.000000) + mul r1.w, r1.w, r2.w + endif + add r2.w, -r1.w, cb6[35].z + mad r1.w, cb6[35].w, r2.w, r1.w +else + mov r1.w, cb6[35].z +endif +min r1.w, r1.w, l(1.000000) +add r1.w, r1.w, l(-1.000000) +mad r11.x, cb6[34].x, r1.w, l(1.000000) +lt r1.w, l(0.001000), r11.x +if_nz r1.w + dp3 r1.w, -cb5[0].xyzx, r13.xyzx + mad r15.xyz, cb5[0].xyzx, r1.wwww, r13.xyzx + lt r1.w, r1.w, cb5[4].z + dp3 r2.w, r15.xyzx, r15.xyzx + max r2.w, r2.w, l(0.0000610351562) + rsq r2.w, r2.w + mul r15.xyz, r2.wwww, r15.xyzx + mul r15.xyz, r15.xyzx, cb5[4].yyyy + mad r15.xyz, -cb5[0].xyzx, cb5[4].zzzz, r15.xyzx + dp3 r2.w, r15.xyzx, r15.xyzx + rsq r2.w, r2.w + mul r15.xyz, r2.wwww, r15.xyzx + movc r15.xyz, r1.wwww, r15.xyzx, r13.xyzx + mad r16.xyz, r2.xyzx, r0.wwww, r15.xyzx + dp3 r1.w, r16.xyzx, r16.xyzx + max r1.w, r1.w, l(0.0000610351562) + rsq r1.w, r1.w + mul r16.xyz, r1.wwww, r16.xyzx + dp3_sat r10.y, r15.xyzx, r5.xyzx + dp3_sat r1.w, r5.xyzx, r16.xyzx + min r10.z, r0.x, l(1.000000) + mul r2.w, r10.w, r10.w + mul r2.w, r2.w, r2.w + mad r3.w, r1.w, r2.w, -r1.w + mad r1.w, r3.w, r1.w, l(1.000000) + dp3_sat r3.w, r4.xyzx, r16.xyzx + add r3.w, -r3.w, l(1.000000) + mul r4.w, r3.w, r3.w + mul r4.w, r4.w, r4.w + mul r5.w, r3.w, r4.w + add r6.w, -r10.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 r15.xyz, -r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + mad r15.xyz, r15.xyzx, l(0.0476190485, 0.0476190485, 0.0476190485, 0.000000), r6.xyzx + mad r3.w, -r4.w, r3.w, l(1.000000) + mad r16.xyz, r6.xyzx, r3.wwww, r5.wwww + mul r1.w, r1.w, r1.w + div r1.w, r2.w, r1.w + mad r17.xy, -r10.zyzz, r2.wwww, r10.zyzz + mad r17.xy, r17.xyxx, r10.zyzz, r2.wwww + sqrt r17.xy, r17.xyxx + mul r17.xy, r10.yzyy, r17.xyxx + add r2.w, r17.y, r17.x + add r2.w, r2.w, l(0.000100) + div r2.w, l(0.500000), r2.w + mul r1.w, r1.w, r2.w + mul r16.xyz, r1.wwww, r16.xyzx + min r16.xyz, r16.xyzx, l(2048.000000, 2048.000000, 2048.000000, 0.000000) + mad r17.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) r1.w, r17.xyxx, t10.yzwx, s0, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r2.w, r17.zwzz, t10.yzwx, s0, l(0.000000) + mul r1.w, r1.w, r2.w + mul r1.w, r6.w, r1.w + div r1.w, r1.w, r7.w + mul r17.xyz, r15.xyzx, r15.xyzx + mul r17.xyz, r1.wwww, r17.xyzx + mad r15.xyz, -r15.xyzx, r7.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, cb5[4].xxxx + // === Glass Fix: Reduce sun specular intensity === + 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 + 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, r8.xywx, r10.yyyy + mad r15.xyz, r15.xyzx, r10.yyyy, r16.xyzx + mul r15.xyz, r15.xyzx, cb5[1].xyzx + mov r11.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r16.xyz, r11.xyxx, t9.xyzw, s0, cb0[108].x + add r1.w, -r11.x, l(1.000000) + mad r16.xyz, r15.xyzx, r16.xyzx, -r15.xyzx + mad r15.xyz, r1.wwww, r16.xyzx, r15.xyzx +else + mov r15.xyz, l(0,0,0,0) +endif +mul r10.yz, r11.zzwz, l(0.000000, 0.031250, 0.031250, 0.000000) +round_ni r10.yz, r10.yyzy +mad r1.w, r10.z, cb4[1].y, r10.y +mul r1.w, r1.w, l(8.000000) +ftoi r1.w, r1.w +mad r2.w, -cb0[85].y, cb4[2].w, r12.z +round_ni r2.w, r2.w +add r3.w, l(-1.000000), cb4[1].w +max r4.w, r2.w, l(0.000000) +min r3.w, r3.w, r4.w +mul r4.w, r3.w, l(8.000000) +ftoi r4.w, r4.w +ge r2.w, r3.w, r2.w +iadd r3.w, r4.w, cb0[110].y +mul r4.w, r10.w, r10.w +min r10.x, r0.x, l(1.000000) +add r0.x, -r10.w, l(1.000000) +mad r5.w, -r0.x, l(0.383026), l(-0.0761947036) +mad r5.w, r0.x, r5.w, l(1.049970) +mad r0.x, r0.x, r5.w, l(0.409255) +min r0.x, r0.x, l(0.999000) +add r5.w, -r0.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 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) r6.w, r10.yzyy, t10.yzwx, s0, l(0.000000) +mad r17.xyz, -r16.xyzx, r5.wwww, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r16.xyz, r16.xyzx, r16.xyzx +mov r18.w, l(1.000000) +mov r11.y, l(1.000000) +mov r19.z, r10.w +mov r20.xyz, l(0,0,0,0) +mov r7.w, l(1.000000) +mov r8.z, l(0) +loop + ilt r10.y, l(7), r8.z + breakc_nz r10.y + iadd r10.y, r1.w, r8.z + ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.y, r10.y, l(0), t0.xxxx + iadd r10.z, r3.w, r8.z + 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, r2.w, r10.y + ishl r10.z, r8.z, l(5) + mov r21.xyz, l(0,0,0,0) + mov r13.w, r7.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 r17.w, l(29), l(3), r15.w, l(7) + ftou r19.w, cb5[r22.z + 6].w + ieq r19.w, r19.w, l(1) + if_nz r19.w + add r18.xyz, r1.xyzx, -cb5[r22.x + 6].xyzx + and r23.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r22.z + 6].xzyx + and r24.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r22.w + 6].yxzy + ushr r25.xyz, cb5[r22.z + 6].xzyx, l(16, 16, 16, 0) + ushr r26.xyz, cb5[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 r19.w, r18.xyzw, r27.xyzw + mov r25.x, r23.y + mov r25.z, r24.y + mov r25.w, r26.x + dp4 r20.w, r18.xyzw, r25.xyzw + mov r26.xz, r24.xxzx + dp4 r18.x, r18.xyzw, r26.xyzw + max r18.y, |r19.w|, |r20.w| + max r18.x, |r18.x|, r18.y + mad r18.y, cb5[r17.w + 6].x, l(0.500000), l(0.500000) + add r18.x, -r18.y, r18.x + mad r18.y, -cb5[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), cb5[r22.y + 6].z + lt r18.z, r18.x, l(0.001000) + or r18.z, r18.y, r18.z + if_nz r18.z + mov r14.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.w, cb5[r18.z + 6].w, l(1.500000) + if_nz r19.w + mad r19.w, cb5[r15.w + 6].y, l(0.500000), l(0.500000) + add r23.x, r19.w, -|cb5[r15.w + 6].x| + add r23.y, -r23.x, cb5[r15.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[r15.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 r24.xyz, -r1.xyzx, cb5[r22.x + 6].xyzx + dp3 r19.w, r24.xyzx, r24.xyzx + rsq r20.w, r19.w + mul r25.xyz, r20.wwww, r24.xyzx + ftoi r21.w, cb5[r17.w + 6].w + mul r26.xyz, r23.xyzx, cb5[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 r22.z, cb5[r18.z + 6].w + and r22.z, r22.z, l(1) + ieq r23.w, r22.z, l(0) + not r23.w, r23.w + lt r24.w, l(0.000000), cb5[r15.w + 6].z + and r23.w, r23.w, r24.w + dp3 r24.w, r27.xyzx, r27.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r28.xyzx, r28.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r5.xyzx, r27.xyzx + div r26.w, r26.w, r24.w + dp3 r27.w, r5.xyzx, r28.xyzx + div r27.w, r27.w, r25.w + add r26.w, r26.w, r27.w + mul_sat r29.x, r26.w, l(0.500000) + dp3 r26.w, r27.xyzx, r28.xyzx + mad r24.w, r24.w, r25.w, r26.w + mad r24.w, r24.w, l(0.500000), l(1.000000) + div r29.y, l(1.000000, 1.000000, 1.000000, 1.000000), r24.w + dp3_sat r11.x, r5.xyzx, r25.xyzx + movc r19.xy, r23.wwww, r29.xyxx, r11.xyxx + lt r11.x, cb5[r22.w + 6].w, l(0.000000) + if_nz r11.x + mul r11.x, cb5[r22.x + 6].w, cb5[r22.x + 6].w + mul r11.x, r11.x, r19.w + mad r11.x, -r11.x, r11.x, l(1.000000) + max r11.x, r11.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, r23.w, l(0x3f800000) + add r25.w, -r19.w, r19.y + mad r19.w, r24.w, r25.w, r19.w + mul r11.x, r11.x, r11.x + mul r11.x, r11.x, r19.w + else + mul r28.xyz, r24.xyzx, cb5[r22.x + 6].wwww + dp3 r19.w, r28.xyzx, r28.xyzx + min r19.w, r19.w, l(1.000000) + add r19.w, -r19.w, l(1.000000) + log r19.w, r19.w + mul r19.w, r19.w, cb5[r22.w + 6].w + exp r19.w, r19.w + mul r11.x, r19.w, r19.y + endif + dp3 r19.y, r25.xyzx, -r23.xyzx + add r19.y, r19.y, -cb5[r15.w + 6].z + mul_sat r19.y, r19.y, cb5[r15.w + 6].w + mul r19.y, r19.y, r19.y + movc r19.y, r22.z, l(1.000000), r19.y + mul r11.x, r11.x, r19.y + not r19.y, r23.w + ige r19.w, r21.w, l(0) + and r19.y, r19.w, r19.y + if_nz r19.y + if_z r22.z + ishl r19.y, r21.w, l(2) + mul r23.xyz, r1.yyyy, cb7[r19.y + 33].xywx + mad r23.xyz, cb7[r19.y + 32].xywx, r1.xxxx, r23.xyzx + mad r23.xyz, cb7[r19.y + 34].xywx, r1.zzzz, r23.xyzx + add r23.xyz, r23.xyzx, cb7[r19.y + 35].xywx + div_sat r19.yw, r23.xxxy, r23.zzzz + mad r19.yw, r19.yyyw, cb7[r21.w + 0].zzzw, cb7[r21.w + 0].xxxy + else + ishl r23.x, r21.w, l(2) + dp3 r28.x, -r24.xyzx, cb7[r23.x + 32].xyzx + dp3 r28.y, -r24.xyzx, cb7[r23.x + 33].xyzx + dp3 r28.z, -r24.xyzx, cb7[r23.x + 34].xyzx + lt r23.x, |r28.x|, |r28.y| + and r23.x, r23.x, l(1) + dp2 r23.y, |r28.xyxx|, icb[r23.x + 0].xyxx + lt r23.y, r23.y, |r28.z| + movc r23.x, r23.y, l(2), r23.x + dp3 r23.y, r28.xyzx, icb[r23.x + 0].xyzx + lt r23.y, r23.y, l(0.000000) + bfi r23.x, l(31), l(1), r23.x, r23.y + ushr r23.y, r23.x, l(1) + dp3 r23.y, r28.xyzx, icb[r23.y + 0].xyzx + div r23.z, l(0.000244140625), cb7[r21.w + 0].w + add r23.z, -r23.z, l(0.500000) + utof r24.x, r23.x + ult r24.y, r23.x, l(2) + and r24.y, r24.y, l(2) + dp2 r24.y, r28.xzxx, icb[r24.y + 0].xzxx + mul r24.y, r24.y, icb[r23.x + 4].z + div r24.y, r24.y, |r23.y| + mad r24.x, r24.y, r23.z, r24.x + add r24.x, r24.x, l(0.500000) + mul_sat r24.x, r24.x, l(0.166666672) + iadd r24.z, l(-1), icb[r23.x + 4].y + dp2 r24.z, r28.yzyy, icb[r24.z + 0].xyxx + mul r23.x, r24.z, icb[r23.x + 4].w + div r23.x, r23.x, |r23.y| + mad_sat r24.y, -r23.x, r23.z, l(0.500000) + mad r19.yw, r24.xxxy, cb7[r21.w + 0].zzzw, cb7[r21.w + 0].xxxy + endif + sample_l_indexable(texture2d)(float,float,float,float) r19.y, r19.ywyy, t18.yxzw, s0, l(0.000000) + mul r11.x, r11.x, r19.y + endif + lt r19.y, l(0.000000), r11.x + if_nz r19.y + if_z r22.z + ftoi r19.w, cb5[r22.y + 6].x + else + add r23.xyz, r1.xyzx, -cb5[r22.x + 6].xyzx + lt r24.xyz, |r23.yzzy|, |r23.xxyx| + and r21.w, r24.y, r24.x + lt r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r23.xyzx + ushr r22.z, 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 r22.z, r23.x, r22.z, r24.x + and r23.x, l(255), cb5[r15.w + 6].w + movc r23.x, r23.y, r24.y, r23.x + ubfe r23.y, l(8), l(8), cb5[r22.y + 6].x + and r24.x, l(255), cb5[r22.y + 6].x + movc r23.y, r23.z, r23.y, r24.x + movc r23.x, r24.z, r23.x, r23.y + movc r21.w, r21.w, r22.z, r23.x + ilt r22.z, r21.w, l(80) + movc r19.w, r22.z, r21.w, l(-1) + endif + mad r23.xyz, r25.xyzx, cb6[r19.w + 288].xxxx, r1.xyzx + mul r21.w, l(5.000000), cb6[r19.w + 288].y + mad r23.xyz, r5.xyzx, r21.wwww, r23.xyzx + ishl r21.w, r19.w, l(2) + mul r24.xyzw, r23.yyyy, cb6[r21.w + 65].xyzw + mad r24.xyzw, cb6[r21.w + 64].xyzw, r23.xxxx, r24.xyzw + mad r24.xyzw, cb6[r21.w + 66].xyzw, r23.zzzz, r24.xyzw + add r24.xyzw, r24.xyzw, cb6[r21.w + 67].xyzw + div r23.xyz, r24.xyzx, r24.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, -cb6[r19.w + 344].xyxx, cb6[r19.w + 344].zwzz + mad r23.xy, r23.xyxx, r29.xyxx, cb6[r19.w + 344].xyxx + mad r29.xy, r23.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r29.xy, r29.xyxx + mad r23.xy, r23.xyxx, cb6[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 r31.xyz, r32.zywz, r35.zywz + div r33.xyz, r33.xzwx, r30.zwyz + add r33.xyz, r33.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r33.xyz, r33.xyzx, cb6[400].xxxx + div r32.xyz, r32.zywz, r31.xyzx + add r32.xyz, r32.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r32.xyw, r32.xyxz, cb6[400].yyyy + mul r34.xyzw, r30.zwyz, r31.xxxy + mov r33.w, r32.x + mad r35.xyzw, r29.xyxy, cb6[400].xyxy, r33.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.w, r35.xyxx, t6.xxxx, s3, r23.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r35.zwzz, t6.xxxx, s3, r23.z + mul r22.z, r22.z, r34.y + mad r21.w, r34.x, r21.w, r22.z + mad r23.xy, r29.xyxx, cb6[400].xyxx, r33.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r23.xyxx, t6.xxxx, s3, r23.z + mad r21.w, r34.z, r22.z, r21.w + mov r32.z, r33.x + mad r35.xyzw, r29.xyxy, cb6[400].xyxy, r32.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r35.xyxx, t6.xxxx, s3, r23.z + mad r21.w, r34.w, r22.z, r21.w + mul r34.xyzw, r30.xyzw, r31.yyzz + mov r32.xz, r33.yyzy + mad r33.xyzw, r29.xyxy, cb6[400].xyxy, r32.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r33.xyxx, t6.xxxx, s3, r23.z + mad r21.w, r34.x, r22.z, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r33.zwzz, t6.xxxx, s3, r23.z + mad r21.w, r34.y, r22.z, r21.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r35.zwzz, t6.xxxx, s3, r23.z + mad r21.w, r34.z, r22.z, r21.w + ige r22.z, r19.w, 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 + mad r24.xyzw, r29.xyxy, cb6[400].xyxy, r32.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.y, r24.xyxx, t6.xxxx, s3, r23.z + mad r21.w, r34.w, r23.y, r21.w + mul r23.y, r30.y, r31.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.z, r24.zwzz, t6.xxxx, s3, r23.z + mad r21.w, r23.y, r23.z, r21.w + add r21.w, r21.w, l(-1.000000) + mad r19.w, cb6[r19.w + 288].w, r21.w, l(1.000000) + movc r19.w, r23.x, l(1.000000), r19.w + movc r19.w, r22.z, r19.w, l(1.000000) + else + mov r19.w, l(1.000000) + endif + if_nz r23.w + dp3 r21.w, r13.xyzx, r26.xyzx + mul_sat r22.z, r20.w, cb5[r15.w + 6].z + mad r22.z, r22.z, l(0.500000), r4.w + min r22.z, r22.z, l(1.000000) + div r22.z, r4.w, r22.z + mad r23.xyz, r13.xyzx, r21.wwww, -r26.xyzx + dp3 r23.x, r27.xyzx, r23.xyzx + mul r21.w, r21.w, r21.w + mad r21.w, cb5[r15.w + 6].z, cb5[r15.w + 6].z, -r21.w + div_sat r21.w, r23.x, r21.w + mad r23.xyz, r26.xyzx, r21.wwww, r27.xyzx + dp3 r21.w, r23.xyzx, r23.xyzx + rsq r21.w, r21.w + mul r25.xyz, r21.wwww, r23.xyzx + else + mov r22.z, l(1.000000) + endif + if_nz r19.y + mul_sat r19.y, r20.w, cb5[r17.w + 6].y + mad r23.xyz, r2.xyzx, r0.wwww, r25.xyzx + dp3 r20.w, r23.xyzx, r23.xyzx + max r20.w, r20.w, l(0.0000610351562) + rsq r20.w, r20.w + mul r23.xyz, r20.wwww, r23.xyzx + dp3_sat r20.w, r5.xyzx, r23.xyzx + dp3_sat r21.w, r4.xyzx, r23.xyzx + lt r23.x, l(0.000000), r19.y + mul r19.y, r19.y, r19.y + mad r23.y, r21.w, l(3.600000), l(0.400000) + div r19.y, r19.y, r23.y + mad r19.y, r10.w, r10.w, r19.y + min r19.y, r19.y, l(1.000000) + movc r19.y, r23.x, r19.y, r4.w + mul r19.y, r19.y, r19.y + mad r23.x, r20.w, r19.y, -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, r6.xyzx, r21.wwww, r23.yyyy + mul r20.w, r20.w, r20.w + div r20.w, r19.y, r20.w + mul r20.w, r22.z, r20.w + mad r21.w, -r10.x, r19.y, r10.x + mad r21.w, r21.w, r10.x, r19.y + sqrt r21.w, r21.w + mad r22.z, -r19.x, r19.y, r19.x + mad r19.y, r22.z, r19.x, r19.y + sqrt r19.y, r19.y + mul r19.y, r10.x, r19.y + mad r19.y, r19.x, r21.w, r19.y + add r19.y, r19.y, l(0.000100) + div r19.y, l(0.500000), r19.y + mul r19.y, r19.y, r20.w + mul r23.xyz, r19.yyyy, 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) r19.y, r24.xyxx, t10.yxzw, s0, l(0.000000) + mul r19.y, r6.w, r19.y + mul r19.y, r0.x, r19.y + div r19.y, r19.y, r5.w + mul r24.xyz, r16.xyzx, r19.yyyy + div r24.xyz, r24.xyzx, r17.xyzx + add r23.xyz, r23.xyzx, r24.xyzx + mul r23.xyz, r23.xyzx, cb5[r17.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.xyz, r8.xywx, r19.xxxx + mad r23.xyz, r23.xyzx, r19.xxxx, r24.xyzx + mul r24.xyz, r11.xxxx, cb5[r18.z + 6].xyzx + mul r19.xyw, r19.wwww, r24.xyxz + mul r19.xyw, r18.xxxx, r19.xyxw + mul r19.xyw, r19.xyxw, r23.xyxz + else + mov r19.xyw, l(0,0,0,0) + endif + else + if_z r18.y + mad r11.x, cb5[r15.w + 6].y, l(0.500000), l(0.500000) + add r23.x, r11.x, -|cb5[r15.w + 6].x| + add r23.y, -r23.x, cb5[r15.w + 6].y + add r11.x, -|r23.x|, l(1.000000) + add r11.x, -|r23.y|, r11.x + max r11.x, r11.x, l(0.000488281250) + ge r18.x, cb5[r15.w + 6].x, l(0.000000) + movc r23.z, r18.x, r11.x, -r11.x + dp3 r11.x, r23.xyzx, r23.xyzx + rsq r11.x, r11.x + mul r23.xyz, r11.xxxx, r23.xyzx + add r24.xyz, -r1.xyzx, cb5[r22.x + 6].xyzx + dp3 r11.x, r24.xyzx, r24.xyzx + rsq r18.x, r11.x + mul r25.xyz, r18.xxxx, r24.xyzx + ftoi r17.w, cb5[r17.w + 6].w + mul r26.xyz, r23.xyzx, cb5[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.x, cb5[r18.z + 6].w + and r18.x, r18.x, l(1) + ieq r18.y, r18.x, l(0) + not r18.y, r18.y + lt r18.z, l(0.000000), cb5[r15.w + 6].z + and r18.y, r18.z, r18.y + dp3 r18.z, r27.xyzx, r27.xyzx + sqrt r18.z, r18.z + dp3 r20.w, r26.xyzx, r26.xyzx + sqrt r20.w, r20.w + dp3 r21.w, r27.xyzx, r26.xyzx + mad r18.z, r18.z, r20.w, r21.w + mad r18.z, r18.z, l(0.500000), l(1.000000) + div r18.z, l(1.000000, 1.000000, 1.000000, 1.000000), r18.z + movc r18.z, r18.y, r18.z, l(1.000000) + lt r20.w, cb5[r22.w + 6].w, l(0.000000) + if_nz r20.w + mul r20.w, cb5[r22.x + 6].w, cb5[r22.x + 6].w + mul r20.w, r11.x, r20.w + mad r20.w, -r20.w, r20.w, l(1.000000) + max r20.w, r20.w, l(0.000000) + add r11.x, r11.x, l(1.000000) + div r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.x + and r21.w, r18.y, l(0x3f800000) + add r22.z, -r11.x, r18.z + mad r11.x, r21.w, r22.z, r11.x + mul r20.w, r20.w, r20.w + mul r11.x, r11.x, r20.w + else + mul r26.xyz, r24.xyzx, cb5[r22.x + 6].wwww + dp3 r20.w, r26.xyzx, r26.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[r22.w + 6].w + exp r20.w, r20.w + mul r11.x, r18.z, r20.w + endif + dp3 r18.z, r25.xyzx, -r23.xyzx + add r18.z, r18.z, -cb5[r15.w + 6].z + mul_sat r18.z, r18.z, cb5[r15.w + 6].w + mul r18.z, r18.z, r18.z + movc r18.z, r18.x, l(1.000000), r18.z + mul r11.x, r11.x, r18.z + not r18.y, r18.y + ige r18.z, r17.w, l(0) + and r18.y, r18.z, r18.y + if_nz r18.y + if_z r18.x + ishl r18.y, r17.w, l(2) + mul r23.xyz, r1.yyyy, cb7[r18.y + 33].xywx + mad r23.xyz, cb7[r18.y + 32].xywx, r1.xxxx, r23.xyzx + mad r23.xyz, cb7[r18.y + 34].xywx, r1.zzzz, r23.xyzx + add r23.xyz, r23.xyzx, cb7[r18.y + 35].xywx + div_sat r18.yz, r23.xxyx, r23.zzzz + mad r18.yz, r18.yyzy, cb7[r17.w + 0].zzwz, cb7[r17.w + 0].xxyx + else + ishl r20.w, r17.w, l(2) + dp3 r23.x, -r24.xyzx, cb7[r20.w + 32].xyzx + dp3 r23.y, -r24.xyzx, cb7[r20.w + 33].xyzx + dp3 r23.z, -r24.xyzx, cb7[r20.w + 34].xyzx + lt r20.w, |r23.x|, |r23.y| + and r20.w, r20.w, l(1) + dp2 r21.w, |r23.xyxx|, icb[r20.w + 0].xyxx + lt r21.w, r21.w, |r23.z| + movc r20.w, r21.w, l(2), r20.w + dp3 r21.w, r23.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, r23.xyzx, icb[r21.w + 0].xyzx + div r22.z, l(0.000244140625), cb7[r17.w + 0].w + add r22.z, -r22.z, l(0.500000) + utof r22.w, r20.w + ult r23.w, r20.w, l(2) + and r23.w, r23.w, l(2) + dp2 r23.x, r23.xzxx, icb[r23.w + 0].xzxx + mul r23.x, r23.x, icb[r20.w + 4].z + div r23.x, r23.x, |r21.w| + mad r22.w, r23.x, r22.z, 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[r20.w + 4].y + dp2 r22.w, r23.yzyy, icb[r22.w + 0].xyxx + mul r20.w, r22.w, icb[r20.w + 4].w + div r20.w, r20.w, |r21.w| + mad_sat r24.y, -r20.w, r22.z, l(0.500000) + mad r18.yz, r24.xxyx, cb7[r17.w + 0].zzwz, cb7[r17.w + 0].xxyx + endif + sample_l_indexable(texture2d)(float,float,float,float) r17.w, r18.yzyy, t18.yzwx, s0, l(0.000000) + mul r11.x, r11.x, r17.w + endif + lt r11.x, l(0.000000), r11.x + if_nz r11.x + if_z r18.x + ftoi r11.x, cb5[r22.y + 6].x + else + add r18.xyz, r1.xyzx, -cb5[r22.x + 6].xyzx + lt r22.xzw, |r18.yyzz|, |r18.xxxy| + and r17.w, r22.z, r22.x + lt r18.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + ushr r20.w, cb5[r15.w + 6].w, l(24) + ubfe r22.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb5[r15.w + 6].wwww + movc r18.x, r18.x, r20.w, r22.x + and r15.w, l(255), cb5[r15.w + 6].w + movc r15.w, r18.y, r22.z, r15.w + ubfe r18.y, l(8), l(8), cb5[r22.y + 6].x + and r20.w, l(255), cb5[r22.y + 6].x + movc r18.y, r18.z, r18.y, r20.w + movc r15.w, r22.w, r15.w, r18.y + movc r15.w, r17.w, r18.x, r15.w + ilt r17.w, r15.w, l(80) + movc r11.x, r17.w, r15.w, l(-1) + endif + mad r18.xyz, r25.xyzx, cb6[r11.x + 288].xxxx, r1.xyzx + mul r15.w, l(5.000000), cb6[r11.x + 288].y + mad r18.xyz, r5.xyzx, r15.wwww, r18.xyzx + ishl r15.w, r11.x, l(2) + mul r22.xyzw, r18.yyyy, cb6[r15.w + 65].xyzw + mad r22.xyzw, cb6[r15.w + 64].xyzw, r18.xxxx, r22.xyzw + mad r22.xyzw, cb6[r15.w + 66].xyzw, r18.zzzz, r22.xyzw + add r22.xyzw, r22.xyzw, cb6[r15.w + 67].xyzw + div r18.xyz, r22.xyzx, r22.wwww + ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyzx + ge r23.xyz, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r24.xy, -cb6[r11.x + 344].xyxx, cb6[r11.x + 344].zwzz + mad r18.xy, r18.xyxx, r24.xyxx, cb6[r11.x + 344].xyxx + mad r24.xy, r18.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r24.xy, r24.xyxx + mad r18.xy, r18.xyxx, cb6[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.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) r15.w, r30.xyxx, t6.xxxx, s3, r18.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r30.zwzz, t6.xxxx, s3, r18.z + mul r17.w, r17.w, r29.y + mad r15.w, r29.x, r15.w, r17.w + mad r18.xy, r24.xyxx, cb6[400].xyxx, r28.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r18.xyxx, t6.xxxx, s3, r18.z + mad r15.w, r29.z, r17.w, r15.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) r17.w, r30.xyxx, t6.xxxx, s3, r18.z + mad r15.w, r29.w, r17.w, r15.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) r17.w, r28.xyxx, t6.xxxx, s3, r18.z + mad r15.w, r29.x, r17.w, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r28.zwzz, t6.xxxx, s3, r18.z + mad r15.w, r29.y, r17.w, r15.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.w, r30.zwzz, t6.xxxx, s3, r18.z + mad r15.w, r29.z, r17.w, r15.w + ige r17.w, r11.x, l(0) + or r22.xyz, r22.xyzx, r23.xyzx + or r18.x, r22.y, r22.x + or r18.x, r22.z, r18.x + and r18.y, r18.z, l(0x7fffffff) + ult r18.y, l(0x7f800000), r18.y + or r18.x, r18.y, r18.x + mad r22.xyzw, r24.xyxy, cb6[400].xyxy, r27.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.y, r22.xyxx, t6.xxxx, s3, r18.z + mad r15.w, r29.w, r18.y, r15.w + mul r18.y, r25.y, r26.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r22.zwzz, t6.xxxx, s3, r18.z + mad r15.w, r18.y, r18.z, r15.w + add r15.w, r15.w, l(-1.000000) + mad r11.x, cb6[r11.x + 288].w, r15.w, l(1.000000) + movc r11.x, r18.x, l(1.000000), r11.x + movc r11.x, r17.w, r11.x, l(1.000000) + else + mov r11.x, l(1.000000) + endif + else + mov r11.x, l(1.000000) + endif + mul r13.w, r11.x, r13.w + mov r19.xyw, l(0,0,0,0) + endif + add r21.xyz, r19.xywx, r21.xyzx + mov r14.w, r16.w + endloop + mov r7.w, r13.w + add r20.xyz, r20.xyzx, r21.xyzx + iadd r8.z, r8.z, l(1) +endloop +// === Glass Fix: Reduce clustered lights and overall brightness === +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) +endif +dp3 r0.x, r14.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xzw, -r0.xxxx, r14.xxyz +mad r1.xzw, cb0[184].wwww, r1.xxzw, r0.xxxx +mad r2.xyz, r20.xyzx, r7.wwww, r15.xyzx +mad r1.xzw, r1.xxzw, cb0[184].xxyz, r2.xxyz +mad r0.x, r1.y, cb0[156].w, cb0[157].w +mad r0.w, r0.z, cb0[154].w, -cb0[153].w +max r0.xw, r0.xxxw, l(0.010000, 0.000000, 0.000000, 0.000000) +mul r2.x, r0.x, l(-1.442695) +exp r2.x, r2.x +add r2.x, -r2.x, l(1.000000) +div r0.x, r2.x, r0.x +mad r2.x, r1.y, cb0[156].w, cb0[158].w +mul r2.x, r2.x, l(1.442695) +exp r2.x, r2.x +mul r0.x, r0.x, r2.x +mul r0.x, r0.x, -r0.w +mul r2.xyz, r0.xxxx, cb0[155].xyzx +mul r2.xyz, r2.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000) +exp r2.xyz, r2.xyzx +dp3 r0.x, -r4.xyzx, cb0[154].xyzx +mad r0.w, cb0[155].w, cb0[155].w, l(1.000000) +dp2 r2.w, r0.xxxx, cb0[155].wwww +add r0.w, r0.w, -r2.w +lt r2.w, l(0.000000), cb0[163].z +if_nz r2.w + and r12.w, l(7), cb0[108].w + imad r5.xyz, r12.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r2.w, r5.y, r5.z, r5.x + imad r3.w, r5.z, r2.w, r5.y + imad r4.w, r2.w, r3.w, r5.z + imad r5.x, r3.w, r4.w, r2.w + dp3 r2.w, -r4.xyzx, -r3.xyzx + add r3.x, r1.y, -cb0[44].y + lt r3.y, l(5.960464478E-08), r2.w + div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w + and r2.w, r2.w, r3.y + mul r2.w, r2.w, cb0[163].w + div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z + mul r3.z, r2.w, 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 r5.z, -r3.z + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.z + mad r3.z, -r3.z, l(0.240226507), l(0.693147182) + movc r3.z, r4.z, r5.z, 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 r5.z, -r3.x + add r5.z, -r5.z, l(1.000000) + div r5.z, r5.z, r3.x + mad r3.x, -r3.x, l(0.240226507), l(0.693147182) + movc r3.x, r4.z, r5.z, r3.x + mul r3.x, r3.x, r4.x + mad r3.x, r4.y, r3.z, r3.x + mad r2.w, -r2.w, r3.y, l(1.000000) + mul r2.w, r0.z, r2.w + mul r2.w, r2.w, r3.x + exp r2.w, -r2.w + min r2.w, r2.w, l(1.000000) + max r2.w, r2.w, cb0[161].w + mad_sat r3.xy, r0.zzzz, cb0[160].ywyy, cb0[160].xzxx + add r2.w, r2.w, r3.x + add r2.w, r3.y, r2.w + min r2.w, r2.w, l(1.000000) + imad r5.y, r4.w, r5.x, r3.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, r11.zwzz + mul r3.xy, r3.xyxx, cb0[165].xyxx + mad r3.w, r12.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, t17.xyzw, s0, l(0.000000) + add r4.x, r12.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.w, l(1.000000) + mul r4.xyz, r4.xxxx, cb0[161].xyzx + mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx + mul r2.w, r2.w, 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, r0.z, 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.zzzz, cb0[160].ywyy, cb0[160].xzxx + add r0.z, r1.y, r4.x + add r0.z, r4.y, r0.z + min r2.w, r0.z, l(1.000000) + add r0.z, -r2.w, l(1.000000) + mul r3.xyz, r0.zzzz, cb0[161].xyzx +endif +// === Glass Fix: Boost transmittance, reduce inscatter === +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 + mul r3.xyz, r3.xyzx, l(0.350000, 0.350000, 0.350000, 0.000000) +endif +mul r4.xyz, r2.wwww, r2.xyzx +mad r0.x, r0.x, r0.x, l(1.000000) +mul r0.xz, r0.xxwx, l(0.0596831031, 0.000000, 12.566371, 0.000000) +mad r5.xyz, cb0[156].xyzx, r0.xxxx, cb0[158].xyzx +mad r0.x, -cb0[155].w, cb0[155].w, l(1.000000) +sqrt r0.w, r0.w +mul r0.z, r0.w, r0.z +max r0.z, r0.z, l(0.001000) +div r0.x, r0.x, r0.z +mad_sat r0.xzw, cb0[157].xxyz, r0.xxxx, r5.xxyz +mul r0.xzw, r0.xxzw, l(255.000000, 0.000000, 255.000000, 255.000000) +add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r0.xzw, r0.xxzw, r2.xxyz +mad r0.xzw, r0.xxzw, r2.wwww, r3.xxyz +mad r9.xyz, r1.xzwx, r4.xyzx, r0.xzwx +mul r0.xz, r7.xxyx, l(0.500000, 0.000000, -0.500000, 0.000000) +sqrt r0.xz, |r0.xxzx| +sqrt r0.xz, r0.xxzx +mov r7.z, -r7.y +lt r1.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r7.xzxx +lt r1.zw, r7.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 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 + if_nz r36.z + add r36.w, r36.y, l(-0.500000) + mul r36.w, r36.w, l(-0.666667) + exp r36.w, r36.w + add r36.w, -r36.w, l(1.000000) + mad r36.w, r36.w, l(1.500000), l(0.500000) + max r37.x, r36.y, l(0.001000) + div r37.x, r36.w, r37.x + mul r9.xyz, r9.xyzx, r37.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/others/blit_0x7CF14F74.ps_5_0.hlsl b/src/games/endfield/others/blit_0x7CF14F74.ps_5_0.hlsl index e2102d5ef..fa0924d94 100644 --- a/src/games/endfield/others/blit_0x7CF14F74.ps_5_0.hlsl +++ b/src/games/endfield/others/blit_0x7CF14F74.ps_5_0.hlsl @@ -122,6 +122,43 @@ float3 ApplyRCAS( return pix; } +// Color Calibration: Temperature 6500K → 6750K + magenta offset 0.03 + +float3 ApplyColorCalibration(float3 color) +{ + float3 adapted; + adapted.r = dot(color, float3( 1.00113f, -0.00212f, -0.01555f)); + adapted.g = dot(color, float3(-0.00031f, 1.00047f, 0.00113f)); + adapted.b = dot(color, float3(-0.00018f, 0.00445f, 1.03436f)); + + float3 lms; + lms.x = dot(adapted, float3(0.4122214708f, 0.5363325363f, 0.0514459929f)); + lms.y = dot(adapted, float3(0.2119034982f, 0.6806995451f, 0.1073969566f)); + lms.z = dot(adapted, float3(0.0883024619f, 0.2817188376f, 0.6299787005f)); + + lms = sign(lms) * pow(abs(lms), 1.0f / 3.0f); + + float3 lab; + lab.x = dot(lms, float3( 0.2104542553f, 0.7936177850f, -0.0040720468f)); + lab.y = dot(lms, float3( 1.9779984951f, -2.4285922050f, 0.4505937099f)); + lab.z = dot(lms, float3( 0.0259040371f, 0.7827717662f, -0.8086757660f)); + + lab.y += 0.0015f; + + lms.x = lab.x + 0.3963377774f * lab.y + 0.2158037573f * lab.z; + lms.y = lab.x - 0.1055613458f * lab.y - 0.0638541728f * lab.z; + lms.z = lab.x - 0.0894841775f * lab.y - 1.2914855480f * lab.z; + + lms = lms * lms * lms; + + float3 result; + result.r = dot(lms, float3( 4.0767416621f, -3.3077115913f, 0.2309699292f)); + result.g = dot(lms, float3(-1.2684380046f, 2.6097574011f, -0.3413193965f)); + result.b = dot(lms, float3(-0.0041960863f, -0.7034186147f, 1.7076147010f)); + + return result; +} + void main( float4 v0 : SV_Position0, float2 v1 : TEXCOORD0, @@ -137,6 +174,11 @@ void main( if (shader_injection.fx_rcas_sharpening >= 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/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/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/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 de6e5c809..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,36 +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 (AO_INTENSITY >= 1.f) { - // Boost AO intensity (hardcoded 4x) - 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; @@ -431,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/0x0C02AB31.cs_5_0.hlsl b/src/games/endfield/shadows/screenspace-shadows_0x0C02AB31.cs_5_0.hlsl similarity index 95% rename from src/games/endfield/shadows/0x0C02AB31.cs_5_0.hlsl rename to src/games/endfield/shadows/screenspace-shadows_0x0C02AB31.cs_5_0.hlsl index 939eb641e..40386e694 100644 --- a/src/games/endfield/shadows/0x0C02AB31.cs_5_0.hlsl +++ b/src/games/endfield/shadows/screenspace-shadows_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; @@ -380,17 +374,19 @@ 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; - if (AO_INTENSITY>= 1.f) { - r0.y = r0.y * 4.0; - } + // 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); + // r1.w = dot(r5.yw, r5.yw); + // r1.w = 1 + -r1.w; + // r1.w = max(0, r1.w); + // r0.y = r1.w * r0.y; + + // 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/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/0x61FA72DD.ps_5_0.hlsl rename to src/games/endfield/shadows/shadowcompositing-shadowmap_0x61FA72DD.ps_5_0.hlsl index d5b205bc5..8f5dfc786 100644 --- a/src/games/endfield/shadows/0x61FA72DD.ps_5_0.hlsl +++ b/src/games/endfield/shadows/shadowcompositing-shadowmap_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); @@ -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,36 +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 (AO_INTENSITY >= 1.f) { - // Boost AO intensity (hardcoded 4x) - r0.y = 1.0 + (r0.y - 1.0) * 4.0; + // 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.x = r0.x * r0.y; } r0.y = cb2[35].z + -r0.x; r0.x = cb2[35].w * r0.y + r0.x; @@ -385,6 +389,12 @@ void main( r0.x = cb2[35].z; } 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 9ede27511..7d1cd83bc 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 @@ -79,6 +80,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,7 +90,17 @@ struct ShaderInjectData { float bloom_strength; float godrays_intensity; float perchannelblowout; - float ao_intensity; + float fog_modification; + float shadow_hardening; + float chromatic_aberration_strength; + float disable_game_ao; + float cubemap_ambient_link; + float glass_transparency; + float improved_ssr; + float tech_test_look; + float ui_aspect_ratio; + float improved_gtao; + float fake_cloud_shadows; }; #ifndef __cplusplus @@ -144,7 +157,28 @@ 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 +#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 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-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..c8ac01dc2 --- /dev/null +++ b/src/games/endfield/ssr/ssr-temporal2_0x9C372EA1.cs_5_0.hlsl @@ -0,0 +1,343 @@ + +#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; + } + + 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 new file mode 100644 index 000000000..01f5f2512 --- /dev/null +++ b/src/games/endfield/ssr/ssr-temporal_0xE92EE541.cs_5_0.hlsl @@ -0,0 +1,468 @@ + +#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((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; + 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 + // 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; + } + + u2[vThreadID.xy] = r0.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/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl b/src/games/endfield/uberpost/uberpost_0x00C16AFB.ps_5_0.hlsl index 84dc9d6af..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 501784663..89b0f8564 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; @@ -221,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 542a13bec..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 176d15313..8fa22ac10 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; @@ -231,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 b5ce43fec..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 cdf3c2342..85d0d32ec 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; @@ -265,30 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 1493b24d6..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 65ef2875a..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 5425472b9..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 55da2c3fd..230b1effa 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; @@ -286,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 c669fb040..2e1cec72e 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; @@ -163,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 2151594ba..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 fdbba0cbb..a6ee0dea9 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; @@ -239,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 cb85e0019..a858153e6 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; @@ -46,66 +39,67 @@ 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); + 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; + 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; + 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; - 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; - 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; + 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; 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; + 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; + 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,33 +145,16 @@ 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( - 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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - o0.xyz = renodx::color::bt709::from::BT2020(o0.xyz); + o0.xyz = HDRGRADE(lut_sample); } // Apply vignette after tonemapping o0.xyz *= vignette_value; @@ -191,4 +168,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 cf8b817f9..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 2bc6e6ea6..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 c7c6f5055..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 2c9390cd2..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 b87937fee..837919d47 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; @@ -232,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 923bda04c..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 b1abcfa6b..25065786d 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; @@ -199,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 7d762160c..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 1b345ce82..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 68dd99ccb..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s1_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 0c93caafd..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 07af03a62..b096ccbd6 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; @@ -157,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 fcdb84ba4..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t2, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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 b6c5791e2..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,29 +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); - + LUTSampleResult lut_sample = LUTSAMPLE(s0_s, cb1[7].xyz, t1, r0.yzx); [branch] if (shader_injection.tone_map_type == 0.f) { - o0.xyz = renodx::tonemap::ExponentialRollOff(max(0, graded), 0.18f, 1.f); + o0.xyz = SDRGRADE(lut_sample); } else { - 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); - o0.xyz = ApplyHermiteSplineByMaxChannel(o0.xyz, shader_injection.peak_white_nits / shader_injection.diffuse_white_nits); - 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, 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..3ab5ea531 --- /dev/null +++ b/src/games/endfield/ui/latencybar_0x9BDC181F.vs_5_0.hlsl @@ -0,0 +1,158 @@ + +#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) +// 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) +{ + [unroll] + for (int i = 0; i < 12; i++) + { + float2 diff = abs(GetLatencyBarVert(i) - pos); + if (dot(diff, diff) < 1.0) + { + 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; +} 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 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/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/ui/uid_0x6B8E9049.ps_5_0.hlsl b/src/games/endfield/ui/uid_0x6B8E9049.ps_5_0.hlsl index 7ba4ea34b..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,25 +78,9 @@ void main( r0.x = 1 + -r0.x; r0.xyzw = r2.xyzw * r0.xxxx; o0.xyzw = v1.wwww * r0.xyzw; - + if (UI_VISIBILITY < 0.5f) { o0 = 0; - return; - } - float2 invViewportSize = float2(3840.0f, 2160.0f); - float2 uv = v0.xy / invViewportSize; - - if (STATUS_TEXT_OPACITY < 0.5f) { - bool isUuid = (uv.x >= 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 diff --git a/src/games/endfield/waterfalls/0xF5AB0A61.cso b/src/games/endfield/waterfalls/0xF5AB0A61.cso new file mode 100644 index 000000000..c76cbb5e4 Binary files /dev/null and b/src/games/endfield/waterfalls/0xF5AB0A61.cso differ diff --git a/src/games/endfield/waterfalls/0xF5AB0A61.ps_5_0.asm b/src/games/endfield/waterfalls/0xF5AB0A61.ps_5_0.asm new file mode 100644 index 000000000..265a88760 --- /dev/null +++ b/src/games/endfield/waterfalls/0xF5AB0A61.ps_5_0.asm @@ -0,0 +1,1934 @@ +// +// Generated by Microsoft (R) D3D Shader Disassembler +// +// using 3Dmigoto v1.4.1 on Fri Feb 6 23:51:39 2026 +// +// +// Input signature: +// +// Name Index Mask Register SysValue Format Used +// -------------------- ----- ------ -------- -------- ------- ------ +// SV_Position 0 xyzw 0 POS float xyz +// TEXCOORD 0 xyzw 1 NONE float xyzw +// TEXCOORD 1 xyzw 2 NONE float xy +// TEXCOORD 2 xyz 3 NONE float xyz +// TEXCOORD 3 xyzw 4 NONE float xyzw +// TEXCOORD 4 xyzw 5 NONE float xyzw +// TEXCOORD 5 xyz 6 NONE float xyz +// TEXCOORD 6 xyz 7 NONE float xyz +// TEXCOORD 7 x 8 NONE uint x +// SV_IsFrontFace 0 x 9 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[30], 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_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_texture3d (float,float,float,float) t8 +dcl_resource_texture3d (float,float,float,float) t9 +dcl_resource_texture3d (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_texture2d (float,float,float,float) t15 +dcl_resource_texture2d (float,float,float,float) t16 +dcl_resource_texture2d (float,float,float,float) t17 +dcl_resource_texture2d (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_input_ps_siv linear noperspective v0.xyz, position +dcl_input_ps linear v1.xyzw +dcl_input_ps linear v2.xy +dcl_input_ps linear v3.xyz +dcl_input_ps linear v4.xyzw +dcl_input_ps linear v5.xyzw +dcl_input_ps linear v6.xyz +dcl_input_ps linear v7.xyz +dcl_input_ps constant v8.x +dcl_input_ps_sgv constant v9.x, is_front_face +dcl_output o0.xyzw +dcl_output o1.xyzw +dcl_temps 37 +mul r0.xy, v0.xyxx, cb0[82].zwzz +ftou r1.xy, v0.xyxx +mad r0.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000) +mul r2.xyzw, -r0.wwww, cb0[25].xyzw +mad r2.xyzw, cb0[24].xyzw, r0.zzzz, r2.xyzw +mad r2.xyzw, cb0[26].xyzw, v0.zzzz, r2.xyzw +add r2.xyzw, r2.xyzw, cb0[27].xyzw +div r2.xyz, r2.xyzx, r2.wwww +mul r0.z, r2.y, cb0[1].z +mad r0.z, cb0[0].z, r2.x, r0.z +mad r0.z, cb0[2].z, r2.z, r0.z +add r0.z, r0.z, cb0[3].z +mov r1.z, |r0.z| +lt r0.z, l(0.000000), v4.w +movc r0.z, r0.z, l(1.000000), l(-1.000000) +eq r0.w, l(0.000000), cb0[86].w +add r3.xyz, -r2.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 r1.w, r0.w, l(9.999999939E-09) +rsq r1.w, r1.w +mul r5.xyz, r1.wwww, r3.xyzx +mul r0.w, r0.w, r1.w +add r6.xyzw, -v5.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) +mad r6.xyzw, cb2[1].yyyy, r6.xyzw, v5.xyzw +mul r6.xyzw, r6.xyzw, cb2[4].xyzw +mul r6.xyzw, r6.xyzw, cb2[1].zzzw +add r3.w, l(1.000000), -cb2[3].x +mad r3.w, cb0[109].x, cb2[3].x, r3.w +div r6.xyz, r6.xyzx, r3.wwww +mul r7.xyzw, v2.xxyy, cb2[1].xxxx +mad r8.xyzw, v1.zzww, cb2[1].xxxx, -r7.xyzw +add r8.xyzw, r8.xyzw, v2.xxyy +mul r9.xyzw, r8.yyww, cb2[8].yyyy +mad r9.xyzw, v1.xxyy, cb2[8].xxxx, r9.xyzw +mad r9.xyzw, cb2[6].xxyy, cb0[183].wwww, r9.xyzw +mad r9.xyzw, cb2[6].zzww, r7.yyyy, r9.xyzw +add r9.xyzw, r9.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r9.xyzw, r9.xyzw, cb2[7].xyzw +add r7.xy, r9.zwzz, r9.xyxx +add r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r7.xy, r7.xyxx, cb2[9].xyxx, cb2[9].zwzz +ishl r3.w, v8.x, l(4) +add r4.w, cb1[r3.w + 3].y, cb1[r3.w + 3].x +add r4.w, r4.w, cb1[r3.w + 3].z +frc r4.w, r4.w +mul r5.w, r4.w, cb2[29].w +min r5.w, r5.w, l(0.500000) +add r5.w, r5.w, l(1.000000) +mul r7.z, r5.w, r7.y +mad r7.xy, cb2[29].wwww, r4.wwww, r7.xzxx +add r5.w, l(1.000000), cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r9.xyzw, r7.xyxx, t3.xyzw, s5, r5.w +mul r8.xyzw, r8.xyzw, cb2[15].yyyy +mad r8.xyzw, v1.xxyy, cb2[15].xxxx, r8.xyzw +mad r8.xyzw, cb2[13].xxyy, cb0[183].wwww, r8.xyzw +mad r7.xyzw, cb2[13].zzww, r7.wwww, r8.xyzw +add r7.xyzw, r7.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000) +mul r7.xyzw, r7.xyzw, cb2[14].xyzw +add r7.xy, r7.zwzz, r7.xyxx +add r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000) +mad r7.xy, r7.xyxx, cb2[12].xyxx, cb2[12].zwzz +sample_b_indexable(texture2d)(float,float,float,float) r7.xyzw, r7.xyxx, t4.xyzw, s6, cb0[108].x +mov r8.x, l(1.000000) +mov r8.w, r9.x +add r8.xyzw, -r9.xyzw, r8.xxxw +mad r8.xyzw, cb2[5].yyyy, r8.xyzw, r9.xyzw +mul r6.xyzw, r6.xyzw, r8.xyzw +mov r8.x, l(1.000000) +mov r8.w, r7.x +add r8.xyzw, -r7.xyzw, r8.xxxw +mad r7.xyzw, cb2[11].xxxx, r8.xyzw, r7.xyzw +mul r6.xyzw, r6.xyzw, r7.xyzw +utof r7.xy, r1.xyxx +mul r7.xy, r7.xyxx, cb0[82].zwzz +mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +sample_l_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t1.xyzw, 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, r0.xxxx, r7.xyzw +add r7.xyzw, r7.xyzw, cb0[27].xyzw +mad r0.x, cb2[20].y, r4.w, cb0[183].w +mul r0.y, r0.x, cb2[19].z +mul r4.w, cb2[22].x, cb2[22].y +round_ni r5.w, r0.y +div r5.w, r5.w, r4.w +ge r8.x, r5.w, -r5.w +frc r5.w, |r5.w| +movc r5.w, r8.x, r5.w, -r5.w +mul r5.w, r4.w, r5.w +div r8.x, r5.w, cb2[22].x +round_ni r8.x, r8.x +add r8.x, -r8.x, cb2[22].y +div r8.yz, l(1.000000, 1.000000, 1.000000, 1.000000), cb2[22].xxyx +mad r5.w, -r8.x, cb2[22].x, r5.w +mul r9.x, r8.y, r5.w +mul r9.y, r8.z, r8.x +mad r8.xw, v1.xxxy, r8.yyyz, r9.xxxy +mad r0.x, r0.x, cb2[19].z, l(1.000000) +round_ni r0.x, r0.x +div r0.x, r0.x, r4.w +ge r5.w, r0.x, -r0.x +frc r0.x, |r0.x| +movc r0.x, r5.w, r0.x, -r0.x +mul r0.x, r4.w, r0.x +div r4.w, r0.x, cb2[22].x +round_ni r4.w, r4.w +add r4.w, -r4.w, cb2[22].y +mad r0.x, -r4.w, cb2[22].x, r0.x +mul r9.x, r8.y, r0.x +mul r9.y, r8.z, r4.w +mad r8.yz, v1.xxyx, r8.yyzy, r9.xxyx +frc r0.x, r0.y +sample_b_indexable(texture2d)(float,float,float,float) r9.xy, r8.xwxx, t7.xyzw, s2, cb0[108].x +mad r9.xy, r9.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +mul r9.xy, r0.xxxx, r9.xyxx +mad r8.xw, -r9.xxxy, cb2[20].xxxx, r8.xxxw +sample_b_indexable(texture2d)(float,float,float,float) r9.xy, r8.yzyy, t7.xyzw, s2, cb0[108].x +mad r9.xy, r9.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +add r0.y, -r0.x, l(1.000000) +mul r9.xy, r0.yyyy, r9.xyxx +mad r8.yz, r9.xxyx, cb2[20].xxxx, r8.yyzy +sample_b_indexable(texture2d)(float,float,float,float) r9.xyzw, r8.xwxx, t6.xyzw, s2, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r10.xyzw, r8.yzyy, t6.xyzw, s2, cb0[108].x +add r10.xyzw, -r9.xyzw, r10.xyzw +mad r9.xyzw, r0.xxxx, r10.xyzw, r9.xyzw +add_sat r9.xyzw, r9.xyzw, -cb2[20].wwww +sample_b_indexable(texture2d)(float,float,float,float) r10.xyz, r8.xwxx, t5.xywz, s2, cb0[108].x +sample_b_indexable(texture2d)(float,float,float,float) r8.xyz, r8.yzyy, t5.xywz, s2, cb0[108].x +add r8.xyz, -r10.xyzx, r8.xyzx +mad r8.yzw, r0.xxxx, r8.xxyz, r10.xxyz +mul r8.x, r8.y, r8.w +mad r0.xy, r8.xzxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) +dp2 r4.w, r0.xyxx, r0.xyxx +min r4.w, r4.w, l(1.000000) +add r4.w, -r4.w, l(1.000000) +sqrt r4.w, r4.w +max r4.w, r4.w, l(1.000000017E-16) +mul r0.xy, r0.xyxx, cb2[19].xxxx +mul r8.xyz, v3.zxyz, v4.yzxy +mad r8.xyz, v3.yzxy, v4.zxyz, -r8.xyzx +mul r8.xyz, r0.zzzz, r8.xyzx +mul r8.xyz, r0.yyyy, r8.xyzx +mad r0.xyz, r0.xxxx, v4.xyzx, r8.xyzx +mad r0.xyz, r4.wwww, v3.xyzx, r0.xyzx +dp3 r4.w, r0.xyzx, r0.xyzx +max r4.w, r4.w, l(1.175494351E-38) +rsq r4.w, r4.w +mul r0.xyz, r0.xyzx, r4.wwww +mul r4.w, r9.w, cb2[19].w +movc r8.xyz, v9.xxxx, r0.xyzx, -r0.xyzx +ne r0.x, l(0.000000), cb2[16].x +add r0.yz, r1.zzzz, -cb2[16].yywy +add r5.w, -cb2[16].y, cb2[16].z +div_sat r0.y, r0.y, r5.w +add r5.w, -cb2[16].w, cb2[17].x +div_sat r0.z, r0.z, r5.w +mul r0.y, r0.z, r0.y +movc r0.x, r0.x, r0.y, l(1.000000) +mul r0.x, r0.x, r6.w +mad_sat r0.x, r0.x, r4.w, -cb2[20].z +mul r0.x, r0.x, cb2[19].w +div r7.xyz, r7.xyzx, r7.wwww +mul r0.y, r7.y, cb0[1].z +mad r0.y, cb0[0].z, r7.x, r0.y +mad r0.y, cb0[2].z, r7.z, r0.y +add r0.y, r0.y, cb0[3].z +add r0.y, -r1.z, |r0.y| +add r0.y, r0.y, cb2[18].y +div_sat r0.y, r0.y, cb2[18].x +mul r0.x, r0.y, r0.x +add r0.yz, v5.wwxw, l(0.000000, -1.000000, -1.000000, 0.000000) +mad r0.yz, cb2[29].yyyy, r0.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) +mul r0.x, r0.y, r0.x +dp3 r0.y, v3.xyzx, r5.xyzx +log r0.y, |r0.y| +mul r0.y, r0.y, cb2[27].z +exp r0.y, r0.y +add r0.y, r0.y, l(-1.000000) +mad r0.y, cb2[28].x, r0.y, l(1.000000) +mul r0.x, r0.y, r0.x +add r0.y, l(1.000000), -cb1[r3.w + 4].y +mul_sat r0.x, r0.y, r0.x +mul r7.xyz, r9.xyzx, cb2[21].xyzx +mad r6.xyz, r7.xyzx, r9.wwww, r6.xyzx +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) +mul r7.xyz, r6.xyzx, cb2[28].yyyy +mul r0.y, r0.z, r4.w +mul r0.y, r0.y, cb2[26].z +mul r0.z, r7.x, r0.y +add r3.w, l(1.000000), cb2[0].w +add_sat r3.w, r3.w, -cb2[0].x +lt r3.w, l(0.500000), r3.w +max r4.w, v6.z, l(9.999999939E-09) +div r9.xy, v6.xyxx, r4.wwww +max r4.w, v7.z, l(9.999999939E-09) +div r9.zw, v7.xxxy, r4.wwww +add r9.xy, -r9.zwzz, r9.xyxx +mul r10.xy, r9.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000) +sqrt r10.xy, |r10.xyxx| +sqrt r10.xy, r10.xyxx +mov r9.z, -r9.y +lt r9.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r9.xxxz +lt r9.xz, r9.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000) +iadd r9.xy, -r9.ywyy, r9.xzxx +itof r9.xy, r9.xyxx +mul r9.xy, r9.xyxx, r10.xyxx +mad r9.xy, r9.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000) +and r9.xy, r3.wwww, r9.xyxx +mul r9.zw, l(0.000000, 0.000000, 4.000000, 0.080000), cb2[29].xxxx +dp3 r3.w, r8.xyzx, r5.xyzx +mad r10.xyzw, cb2[28].wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000) +mul r4.w, r10.x, r10.x +max r3.w, r3.w, l(0.000000) +mul r5.w, r3.w, l(-9.280000) +exp r5.w, r5.w +min r4.w, r4.w, r5.w +mad r4.w, r4.w, r10.x, r10.y +mad r10.xy, r4.wwww, l(-1.040000, 1.040000, 0.000000, 0.000000), r10.zwzz +eq r4.w, l(1.000000), cb0[113].y +mul r11.xyzw, r2.yyyy, cb0[241].xyzw +mad r11.xyzw, cb0[240].xyzw, r2.xxxx, r11.xyzw +mad r11.xyzw, cb0[242].xyzw, r2.zzzz, r11.xyzw +add r11.xyzw, r11.xyzw, cb0[243].xyzw +div r5.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, r5.wwww, r11.xyzx +mad_sat r10.zw, r11.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000) +mul r10.zw, r10.zzzw, cb0[82].xxxy +ftou r12.xy, r10.zwzz +mad r5.w, cb0[84].z, r11.z, cb0[84].w +div r12.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w +movc r11.xyz, r4.wwww, r12.xyzx, r1.xyzx +mad r1.xyz, r8.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000), r2.xyzx +mad r12.xyz, cb0[6].xzyx, -cb0[212].wwww, cb0[210].xzyx +add r12.xyz, r1.xzyx, -r12.xyzx +max r4.w, |r12.y|, |r12.x| +add r4.w, r4.w, l(-464.000000) +mul_sat r4.w, r4.w, l(0.031250) +add r5.w, |r12.z|, l(-208.000000) +mul_sat r5.w, r5.w, l(0.031250) +max r4.w, r4.w, r5.w +ne r5.w, l(0.000000), cb0[210].w +lt r6.w, r4.w, l(1.000000) +and r5.w, r5.w, r6.w +if_nz r5.w + mad r12.xyz, cb0[6].xzyx, -cb0[212].yyyy, cb0[210].xzyx + add r12.xyz, r1.xzyx, -r12.xyzx + max r5.w, |r12.y|, |r12.x| + add r5.w, r5.w, l(-29.000000) + mul_sat r5.w, r5.w, l(0.500000) + add r6.w, |r12.z|, l(-13.000000) + mul_sat r6.w, r6.w, l(0.500000) + max r5.w, r5.w, r6.w + lt r6.w, r5.w, l(1.000000) + if_nz r6.w + mad r12.xyz, r1.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, t9.yzwx, s2, l(0.000000) + add r6.w, -r5.w, l(1.000000) + mul r7.w, l(0.500000), cb0[211].y + mad r10.z, -cb0[211].y, l(0.500000), l(1.000000) + max r7.w, r7.w, r12.y + min r7.w, r10.z, r7.w + mul r12.w, r7.w, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r12.xwzx, t10.xyzw, s1, l(0.000000) + mad r7.w, r14.w, r6.w, r4.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, t10.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, r13.yyyy, r15.xyzx + mov r15.w, r13.y + mul r15.xyzw, r6.wwww, 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, t10.xyzw, s1, 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, r6.wwww, 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, r6.wwww, 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 r7.w, r4.w + endif + mad r14.xyz, cb0[6].xzyx, -cb0[212].zzzz, cb0[210].xzyx + add r14.xyz, r1.xzyx, -r14.xyzx + max r6.w, |r14.y|, |r14.x| + add r6.w, r6.w, l(-116.000000) + mul_sat r6.w, r6.w, l(0.125000) + add r10.z, |r14.z|, l(-52.000000) + mul_sat r10.z, r10.z, l(0.125000) + max r6.w, r6.w, r10.z + lt r10.z, r6.w, l(1.000000) + if_nz r10.z + mad r14.xyz, r1.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, t11.yzwx, s2, l(0.000000) + add r10.z, -r6.w, l(1.000000) + mul r5.w, r5.w, r10.z + mul r10.z, l(0.500000), cb0[211].y + mad r10.w, -cb0[211].y, l(0.500000), l(1.000000) + max r10.z, r10.z, r14.y + min r10.z, r10.w, r10.z + mul r14.w, r10.z, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r14.xwzx, t12.xyzw, s1, l(0.000000) + mad r7.w, r17.w, r5.w, r7.w + 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, t12.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 + mad r15.xyzw, r18.xyzw, r5.wwww, 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, t12.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, r16.xxxx, r14.xyzx + mov r14.w, r16.x + mad r12.xyzw, r14.xyzw, r5.wwww, 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, r5.wwww, r13.xyzw + endif + lt r5.w, l(0.000000), r6.w + if_nz r5.w + mad r1.xyz, r1.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) + mul r14.xyz, r1.xyzx, cb0[211].xyzx + mul r16.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb0[211].xyzx + round_ni r14.xyz, r14.xyzx + mad r1.xyz, r1.xyzx, cb0[211].xyzx, -r14.xyzx + mad r14.xyz, -cb0[211].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000) + max r1.xyz, r16.xyzx, r1.xyzx + min r17.xyz, r14.xyzx, r1.xyzx + sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t13.yzwx, s2, l(0.000000) + add r1.x, -r4.w, l(1.000000) + mul r1.x, r1.x, r6.w + max r1.y, r16.y, r17.y + min r1.y, r14.y, r1.y + mul r17.w, r1.y, l(0.333333343) + sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r17.xwzx, t14.xyzw, s1, l(0.000000) + add r16.xyz, r17.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, r18.yyyy, r16.xyzx + mov r16.w, r18.y + mad r15.xyzw, r16.xyzw, r1.xxxx, r15.xyzw + add r16.xyz, r17.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, r18.xxxx, r16.xyzx + mov r16.w, r18.x + mad r12.xyzw, r16.xyzw, r1.xxxx, 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 r18.xyz, r18.wwww, r14.xyzx + mad r13.xyzw, r18.xyzw, r1.xxxx, r13.xyzw + mad r7.w, r14.w, r1.x, r7.w + endif + mad_sat r1.x, r7.w, l(2.000000), l(-1.000000) + add r14.x, -r4.w, r1.x + add r1.x, r4.w, r1.x + mul r14.y, r1.x, 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 r16.xyzw, r14.yyyx, cb0[213].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r14.yxyy, cb0[213].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r13.xyzw, r13.xyzw, r16.xyzw +mul r16.xyzw, r14.yyyx, cb0[214].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r14.yxyy, cb0[214].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r12.xyzw, r12.xyzw, r16.xyzw +mul r16.xyzw, r14.yyyx, cb0[215].xyzw +mad r16.y, r16.w, l(0.500000), r16.y +mul r1.xy, r14.yxyy, cb0[215].wyww +mad r16.w, r1.y, l(0.375000), r1.x +add r14.xyzw, r15.xyzw, r16.xyzw +dp3 r1.x, r13.xyzx, r8.xyzx +add r1.x, r13.w, r1.x +max r1.x, r1.x, l(0.000000) +dp3 r4.w, r12.xyzx, r8.xyzx +add r4.w, r12.w, r4.w +max r1.y, r4.w, l(0.000000) +dp3 r4.w, r14.xyzx, r8.xyzx +add r4.w, r14.w, r4.w +max r1.z, r4.w, l(0.000000) +add r12.xyz, l(1.000000, 0.666666687, 0.333333343, 0.000000), cb2[26].xxxx +frc r12.xyz, r12.xyzx +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, cb2[26].yyyy, r12.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r12.xyz, r0.zzzz, r12.xyzx +mad r13.xyz, r12.xyzx, cb2[26].wwww, r7.xyzx +mul r13.xyz, r1.xyzx, r13.xyzx +mul r10.zw, r13.xxxy, cb0[111].xxxx +dp3 r0.z, -r5.xyzx, r8.xyzx +add r0.z, r0.z, r0.z +mad r14.xyz, r8.xyzx, -r0.zzzz, -r5.xyzx +add r0.z, l(-1.000000), cb0[113].x +max r4.w, l(0.001000), cb2[28].w +log r4.w, r4.w +mad r4.w, -r4.w, l(1.200000), l(1.000000) +add r0.z, r0.z, -r4.w +utof r15.xy, r11.xyxx +mul r15.zw, r15.xxxy, cb3[0].wwww +round_ni r15.zw, r15.zzzw +add r4.w, r11.z, -cb3[2].y +round_ni r4.w, r4.w +add r5.w, l(-1.000000), cb3[1].x +max r6.w, r4.w, l(0.000000) +min r5.w, r5.w, r6.w +ge r4.w, r5.w, r4.w +mad r6.w, r15.w, cb3[0].x, r15.z +ftoi r6.w, r6.w +iadd r6.w, r6.w, cb0[110].z +ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r6.w, r6.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, r6.w +and r4.w, r4.w, r5.w +mul r1.xyz, r1.xyzx, cb0[111].xxxx +dp3 r1.x, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mov r2.w, l(1.000000) +mov r8.w, l(1.000000) +mov r16.xyz, l(0,0,0,0) +mov r1.y, l(1.000000) +mov r1.z, r4.w +mov r5.w, l(0) +loop + lt r6.w, l(0.010000), r1.y + ine r7.w, r1.z, l(0) + and r7.w, r6.w, r7.w + if_nz r7.w + firstbit_lo r7.w, r1.z + ishl r12.w, l(1), r7.w + xor r1.z, r1.z, r12.w + ishl r7.w, r7.w, l(3) + dp4 r17.x, cb3[r7.w + 6].xyzw, r2.xyzw + dp4 r17.y, cb3[r7.w + 7].xyzw, r2.xyzw + dp4 r17.z, cb3[r7.w + 8].xyzw, r2.xyzw + ge r18.xyz, cb3[r7.w + 5].xyzx, |r17.xyzx| + and r12.w, r18.y, r18.x + and r12.w, r18.z, r12.w + if_nz r12.w + mul r12.w, l(0.100000), cb3[r7.w + 5].x + mul r18.xyz, |r17.xyzx|, l(0.100000, 0.100000, 0.100000, 0.000000) + mul r15.zw, r18.xxxy, r18.xxxy + add r18.xyw, -|r17.xyxz|, cb3[r7.w + 5].xyxz + mul r18.xyw, r18.xyxw, cb3[r7.w + 9].xyxz + eq r13.w, l(1.000000), cb3[r7.w + 10].x + if_nz r13.w + dp3 r19.x, cb3[r7.w + 6].xyzx, r14.xyzx + dp3 r19.y, cb3[r7.w + 7].xyzx, r14.xyzx + dp3 r19.z, cb3[r7.w + 8].xyzx, r14.xyzx + add r20.xyz, -r17.xyzx, cb3[r7.w + 5].xyzx + div r20.xyz, r20.xyzx, r19.xyzx + add r21.xyz, -r17.xyzx, -cb3[r7.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 r13.w, r20.y, r20.x + min r13.w, r20.z, r13.w + mad r17.xyz, r19.xyzx, r13.wwww, r17.xyzx + else + mov r17.xyz, r14.xyzx + endif + dp3 r13.w, r17.xyzx, r17.xyzx + rsq r13.w, r13.w + mul r17.xyz, r13.wwww, 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 r13.w, r17.xyzx, r19.xyzx + div r17.xyz, r17.xyzx, r13.wwww + lt r13.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, r19.xxxy + movc r17.xy, r13.wwww, r17.zwzz, r17.xyxx + dp4 r13.w, cb3[r7.w + 4].xyzw, r8.xyzw + max r13.w, r13.w, l(0.000000) + max r13.w, r13.w, l(0.000100) + min r14.w, r18.w, r18.y + min r14.w, r14.w, r18.x + add r15.z, r15.w, r15.z + mad r15.z, r18.z, r18.z, r15.z + mad r12.w, r12.w, r12.w, -r15.z + mul r12.w, r12.w, cb3[r7.w + 9].x + mul r12.w, r12.w, cb3[r7.w + 9].x + add r15.z, l(1.000000), -cb3[r7.w + 10].y + mul r12.w, r12.w, r15.z + mul r12.w, r12.w, l(100.000000) + mad_sat r12.w, r14.w, cb3[r7.w + 10].y, r12.w + mul r14.w, r12.w, cb3[r7.w + 10].w + mad r15.zw, r17.xxxy, 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, cb3[r7.w + 5].w + sample_l_indexable(texture2darray)(float,float,float,float) r17.xyz, r17.xyzx, t2.xyzw, s3, r0.z + mul r17.xyz, r17.xyzx, cb3[r7.w + 9].wwww + div r15.z, r1.x, r13.w + min r15.z, |r15.z|, l(1.000000) + mad r15.z, r15.z, l(2.000000), r1.x + add r13.w, r13.w, l(2.000000) + div r13.w, r15.z, r13.w + add r13.w, r13.w, l(-1.000000) + mad r13.w, r13.w, cb0[112].w, l(1.000000) + mul r17.xyz, r13.wwww, r17.xyzx + mul r17.xyz, r14.wwww, r17.xyzx + mad r16.xyz, r17.xyzx, r1.yyyy, r16.xyzx + mad r7.w, -r12.w, cb3[r7.w + 10].w, l(1.000000) + mul r1.y, r1.y, r7.w + endif + mov r5.w, l(-1) + continue + else + mov r5.w, r6.w + break + endif + mov r5.w, r6.w +endloop +if_nz r5.w + dp3 r1.z, r14.xyzx, r14.xyzx + rsq r1.z, r1.z + mul r17.xyz, r1.zzzz, 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.z, r17.xyzx, r18.xyzx + div r17.xyz, r17.xyzx, r1.zzzz + lt r1.z, 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.zzzz, r15.zzzw, r17.xxxy + mov r8.w, l(1.000000) + dp4 r1.z, cb3[3].xyzw, r8.xyzw + max r1.z, r1.z, l(0.000000) + max r1.z, r1.z, 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, r0.z + div r0.z, r1.x, r1.z + min r0.z, |r0.z|, l(1.000000) + mad r0.z, r0.z, l(2.000000), r1.x + add r1.x, r1.z, 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 r17.xyz, r0.zzzz, r17.xyzx + mad r16.xyz, r17.xyzx, r1.yyyy, r16.xyzx +endif +mul r1.xyz, r16.xyzx, cb0[112].zzzz +// === Fog Mod: Reduce reflection probe intensity === +lt r35.x, l(0.500000), cb13[12].y +if_nz r35.x + mul r1.xyz, r1.xyzx, l(0.400000, 0.400000, 0.400000, 0.000000) +endif +mul r1.xyz, r1.xyzx, cb0[111].yyyy +mov_sat r9.z, r9.z +mul r0.z, r10.y, r9.z +mad r0.z, r9.w, r10.x, r0.z +mul r1.xyz, r0.zzzz, r1.xyzx +max r0.z, r0.x, l(0.010000) +div r1.xyz, r1.xyzx, r0.zzzz +add r2.w, r10.w, r10.z +mad r2.w, r13.z, cb0[111].x, r2.w +mul r2.w, r2.w, l(0.333333343) +add r4.w, r1.y, r1.x +add r4.w, r1.z, r4.w +mul r5.w, r4.w, l(0.333333343) +mad r10.xyz, r13.xyzx, cb0[111].xxxx, -r2.wwww +mad r10.xyz, r10.xyzx, cb2[27].wwww, r2.wwww +mad r1.xyz, -r4.wwww, l(0.333333343, 0.333333343, 0.333333343, 0.000000), r1.xyzx +mad r1.xyz, r1.xyzx, cb2[27].wwww, r5.wwww +add r1.xyz, r1.xyzx, r10.xyzx +lt r2.w, cb6[35].w, l(0.990000) +if_nz r2.w + mad r10.xyz, r8.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xyzx + ftoi r2.w, cb6[35].x + ieq r4.w, r2.w, l(2) + movc r13.xyz, r4.wwww, cb6[20].xyzx, cb0[44].xyzx + add r13.xyz, r10.xyzx, -r13.xyzx + dp3 r4.w, r13.xyzx, r13.xyzx + add r4.w, -r4.w, cb6[34].w + mul_sat r4.w, r4.w, cb6[34].z + lt r5.w, l(0.000000), r4.w + if_nz r5.w + ilt r2.w, l(0), r2.w + if_nz r2.w + add r13.xyz, r10.xyzx, -cb6[20].xyzx + add r16.xyz, r10.xyzx, -cb6[21].xyzx + add r17.xyz, r10.xyzx, -cb6[22].xyzx + add r18.xyz, r10.xyzx, -cb6[23].xyzx + dp3 r13.x, r13.xyzx, r13.xyzx + dp3 r13.y, r16.xyzx, r16.xyzx + dp3 r13.z, r17.xyzx, r17.xyzx + dp3 r13.w, r18.xyzx, r18.xyzx + lt r16.x, r13.x, cb6[20].w + lt r16.y, r13.y, cb6[21].w + lt r16.z, r13.z, cb6[22].w + lt r16.w, r13.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 r2.w, r17.xyzw, l(4.000000, 3.000000, 2.000000, 1.000000) + add r2.w, -r2.w, l(4.000000) + max r2.w, r2.w, l(0.000000) + min r2.w, r2.w, l(3.000000) + add r5.w, r2.w, l(1.000000) + min r5.w, r5.w, l(3.000000) + ftou r5.w, r5.w + dp3 r6.w, r13.yzwy, icb[r5.w + 0].yzwy + div r5.w, r6.w, cb6[r5.w + 20].w + ge r6.w, r5.w, l(0.000000) + ge r5.w, l(1.000000), r5.w + and r5.w, r5.w, r6.w + if_nz r5.w + ftou r5.w, r2.w + add r15.zw, r15.xxxy, l(0.000000, 0.000000, 2.083000, 4.867000) + dp2 r6.w, r15.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000) + frc r6.w, r6.w + mul r6.w, r6.w, l(52.982918) + frc r6.w, r6.w + dp4 r7.w, r13.xyzw, icb[r5.w + 0].xyzw + div r5.w, r7.w, cb6[r5.w + 20].w + sqrt r5.w, r5.w + add r5.w, r5.w, l(-0.900000) + mul r5.w, r5.w, l(12.000000) + ge r5.w, r5.w, r6.w + and r5.w, r5.w, l(0x3f800000) + add r2.w, r2.w, r5.w + endif + dp3 r5.w, r8.xyzx, cb5[0].xyzx + max r5.w, r5.w, l(0.000000) + min r5.w, r5.w, l(0.900000) + add r5.w, -r5.w, l(1.000000) + ftou r6.w, r2.w + ishl r7.w, r6.w, l(2) + mul r13.xy, r5.wwww, cb6[r6.w + 24].xyxx + max r5.w, r13.x, l(0.000000) + mad r13.xzw, -cb5[0].xxyz, r5.wwww, r10.xxyz + mad r13.xyz, r8.xyzx, r13.yyyy, r13.xzwx + mul r16.xyz, r13.yyyy, cb6[r7.w + 1].xyzx + mad r13.xyw, cb6[r7.w + 0].xyxz, r13.xxxx, r16.xyxz + mad r13.xyz, cb6[r7.w + 2].xyzx, r13.zzzz, r13.xywx + add r13.xyz, r13.xyzx, cb6[r7.w + 3].xyzx + ge r16.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xyzx + ge r17.xyz, r13.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + or r16.xyz, r16.xyzx, r17.xyzx + or r5.w, r16.y, r16.x + or r5.w, r16.z, r5.w + and r6.w, r13.z, l(0x7fffffff) + ult r6.w, l(0x7f800000), r6.w + or r16.z, r5.w, r6.w + ftoi r2.w, r2.w + mad r13.xy, r13.xyxx, cb6[r2.w + 28].zwzz, cb6[r2.w + 28].xyxx + mad r15.zw, r13.xxxy, cb6[32].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) + round_ni r15.zw, r15.zzzw + mad r13.xy, r13.xyxx, cb6[32].zwzz, -r15.zwzz + add r17.xyzw, r13.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r17.xz, r13.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r19.xy, r13.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.zw, r18.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, -r17.xzxx, r17.xzxx, r13.xyxx + mad r17.xy, -r19.xyxx, r19.xyxx, r17.ywyy + mov r20.x, r19.z + mov r20.y, r13.x + 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, r13.y + 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 r13.xy, r20.ywyy, r18.zwzz + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r20.xy, r13.xyxx, cb6[32].xxxx + div r13.xy, r17.ywyy, r19.ywyy + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r20.zw, r13.xxxy, cb6[32].yyyy + mul r17.xyzw, r18.xyzw, r19.xyzw + mad r18.xyzw, r15.zwzw, cb6[32].xyxy, r20.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r18.xyxx, t15.xxxx, s4, r13.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r18.zwzz, t15.xxxx, s4, r13.z + mul r5.w, r5.w, r17.y + mad r2.w, r17.x, r2.w, r5.w + mad r18.xyzw, r15.zwzw, cb6[32].xyxy, r20.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r18.xyxx, t15.xxxx, s4, r13.z + mad r2.w, r17.z, r5.w, r2.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r18.zwzz, t15.xxxx, s4, r13.z + mad r2.w, r17.w, r5.w, r2.w + movc r16.x, r16.z, l(1.000000), r2.w + else + mov r16.xz, l(1.000000,0,0,0) + endif + else + mov r16.xz, l(1.000000,0,0,0) + endif + lt r2.w, r4.w, l(1.000000) + if_nz r2.w + dp3 r2.w, r8.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) + mul r13.xy, r2.wwww, cb6[584].xyxx + mad r13.xzw, -cb5[0].xxyz, r13.xxxx, r10.xxyz + mad r13.xyz, r8.xyzx, r13.yyyy, r13.xzwx + mul r15.zw, r13.yyyy, cb6[581].xxxy + mad r15.zw, cb6[580].xxxy, r13.xxxx, r15.zzzw + mad r15.zw, cb6[582].xxxy, r13.zzzz, r15.zzzw + add r15.zw, r15.zzzw, cb6[583].xxxy + lt r17.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r15.zwzz + and r2.w, r17.y, r17.x + lt r17.xy, r15.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000) + and r5.w, r17.y, r17.x + and r2.w, r2.w, r5.w + if_nz r2.w + mul r2.w, r15.w, cb6[585].z + round_ni r2.w, r2.w + add r2.w, r15.z, r2.w + mul r2.w, r2.w, cb6[585].y + ftou r2.w, r2.w + umin r2.w, r2.w, l(127) + and r5.w, l(0x0000ffff), cb6[r2.w + 587].x + f16tof32 r17.x, r5.w + ge r5.w, r17.x, l(0.000000) + if_nz r5.w + mov r18.x, cb6[576].x + mov r18.y, cb6[577].x + mov r18.z, cb6[578].x + mov r18.w, cb6[r2.w + 587].y + mov r13.w, l(1.000000) + dp4 r18.x, r18.xyzw, r13.xyzw + mov r19.x, cb6[576].y + mov r19.y, cb6[577].y + mov r19.z, cb6[578].y + mov r19.w, cb6[r2.w + 587].z + dp4 r18.y, r19.xyzw, r13.xyzw + mov r19.x, cb6[576].z + mov r19.y, cb6[577].z + mov r19.z, cb6[578].z + mov r19.w, cb6[r2.w + 587].w + dp4 r5.w, r19.xyzw, r13.xyzw + lt r13.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyxx + lt r6.w, l(0.000000), r5.w + and r7.w, r13.y, r13.x + and r6.w, r6.w, r7.w + lt r13.xy, r18.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + lt r7.w, r5.w, l(1.000000) + and r8.w, r13.y, r13.x + and r7.w, r7.w, r8.w + and r6.w, r6.w, r7.w + if_nz r6.w + ushr r2.w, cb6[r2.w + 587].x, l(16) + f16tof32 r17.y, r2.w + mad r13.xy, r18.xyxx, cb6[584].zwzz, r17.xyxx + mad r13.zw, r13.xxxy, cb6[586].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000) + round_ni r13.zw, r13.zzzw + mad r13.xy, r13.xyxx, cb6[586].zwzz, -r13.zwzz + add r17.xyzw, r13.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r18.xw, r17.xxxz, r17.xxxz + min r15.zw, r13.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r17.xz, r13.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + mad r19.xy, r18.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, -r15.zwzz, r15.zwzz, r13.xyxx + mad r15.zw, -r17.xxxz, r17.xxxz, r17.yyyw + mov r17.x, r19.x + mov r17.y, r13.x + 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, r13.y + 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 r13.xy, r17.ywyy, r19.zwzz + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r17.xy, r13.xyxx, cb6[586].xxxx + div r13.xy, r18.ywyy, r20.ywyy + add r13.xy, r13.xyxx, l(-1.500000, 0.500000, 0.000000, 0.000000) + mul r17.zw, r13.xxxy, cb6[586].yyyy + mul r18.xyzw, r19.xyzw, r20.xyzw + mad r19.xyzw, r13.zwzw, cb6[586].xyxy, r17.xzyz + sample_c_lz_indexable(texture2d)(float,float,float,float) r2.w, r19.xyxx, t18.xxxx, s4, r5.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r19.zwzz, t18.xxxx, s4, r5.w + mul r6.w, r6.w, r18.y + mad r2.w, r18.x, r2.w, r6.w + mad r13.xyzw, r13.zwzw, cb6[586].xyxy, r17.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r13.xyxx, t18.xxxx, s4, r5.w + mad r2.w, r18.z, r6.w, r2.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r13.zwzz, t18.xxxx, s4, r5.w + mad r16.y, r18.w, r5.w, r2.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 r2.w, -r16.y, r16.x + mad r2.w, r4.w, r2.w, r16.y + lt r4.w, l(0.001000), r2.w + if_nz r4.w + add r10.xyz, r10.xyzx, -cb0[173].xyzx + mad r10.yw, cb0[176].xxxz, r10.yyyy, r10.xxxz + mul r13.xy, r10.ywyy, cb0[174].zzzz + mul r13.zw, cb0[175].xxxy, cb0[183].wwww + mad r10.yw, r10.yyyw, cb0[174].zzzz, r13.zzzw + sample_l_indexable(texture2d)(float,float,float,float) r4.w, r10.ywyy, t17.yzwx, s2, l(0.000000) + mad r10.yw, r13.xxxy, cb0[175].wwww, r13.zzzw + sample_l_indexable(texture2d)(float,float,float,float) r5.w, r10.ywyy, t17.yzwx, s2, l(0.000000) + dp2 r6.w, r10.xzxx, r10.xzxx + sqrt r6.w, r6.w + add r7.w, -cb0[174].x, cb0[174].y + add r6.w, r6.w, -cb0[174].x + div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w + mul_sat r6.w, r6.w, r7.w + mad r7.w, r6.w, l(-2.000000), l(3.000000) + mul r6.w, r6.w, r6.w + mul r6.w, r6.w, r7.w + add r5.w, -r4.w, r5.w + mad r4.w, r6.w, r5.w, r4.w + add r4.w, r4.w, l(-1.000000) + mad r4.w, cb0[175].z, r4.w, l(1.000000) + mul r2.w, r2.w, r4.w + endif + add r4.w, -r2.w, cb6[35].z + mad r2.w, cb6[35].w, r4.w, r2.w +else + mov r2.w, cb6[35].z +endif +min r2.w, r2.w, l(1.000000) +add r2.w, r2.w, l(-1.000000) +mad r10.x, cb6[34].x, r2.w, l(1.000000) +lt r2.w, l(0.001000), r10.x +if_nz r2.w + dp3 r2.w, -cb5[0].xyzx, r14.xyzx + mad r13.xyz, cb5[0].xyzx, r2.wwww, r14.xyzx + lt r2.w, r2.w, cb5[4].z + dp3 r4.w, r13.xyzx, r13.xyzx + max r4.w, r4.w, l(0.0000610351562) + rsq r4.w, r4.w + mul r13.xyz, r4.wwww, r13.xyzx + mul r13.xyz, r13.xyzx, cb5[4].yyyy + mad r13.xyz, -cb5[0].xyzx, cb5[4].zzzz, r13.xyzx + dp3 r4.w, r13.xyzx, r13.xyzx + rsq r4.w, r4.w + mul r13.xyz, r4.wwww, r13.xyzx + movc r13.xyz, r2.wwww, r13.xyzx, r14.xyzx + mad r16.xyz, r3.xyzx, r1.wwww, r13.xyzx + dp3 r2.w, r16.xyzx, r16.xyzx + max r2.w, r2.w, l(0.0000610351562) + rsq r2.w, r2.w + mul r16.xyz, r2.wwww, r16.xyzx + dp3 r2.w, r13.xyzx, r8.xyzx + mov_sat r17.z, r2.w + dp3_sat r4.w, r8.xyzx, r16.xyzx + min r17.x, r3.w, l(1.000000) + mul r5.w, cb2[28].w, cb2[28].w + mul r5.w, r5.w, r5.w + mad r6.w, r4.w, r5.w, -r4.w + mad r4.w, r6.w, r4.w, l(1.000000) + dp3_sat r6.w, r5.xyzx, r16.xyzx + add r6.w, -r6.w, l(1.000000) + mul r7.w, r6.w, r6.w + mul r7.w, r7.w, r7.w + mul r8.w, r6.w, r7.w + add r9.z, l(1.000000), -cb2[28].w + mad r10.z, -r9.z, l(0.383026), l(-0.0761947036) + mad r10.z, r9.z, r10.z, l(1.049970) + mad r9.z, r9.z, r10.z, l(0.409255) + min r9.z, r9.z, l(0.999000) + add r10.z, -r9.z, l(1.000000) + mad r10.w, -cb2[29].x, l(0.080000), l(1.000000) + mad r10.w, r10.w, l(0.0476190485), r9.w + mad_sat r12.w, -r0.y, r7.x, l(1.000000) + mad r6.w, -r7.w, r6.w, l(1.000000) + mad r6.w, r9.w, r6.w, r8.w + mul r4.w, r4.w, r4.w + div r4.w, r5.w, r4.w + mad r15.zw, -r17.xxxz, r5.wwww, r17.xxxz + mad r15.zw, r15.zzzw, r17.xxxz, r5.wwww + sqrt r15.zw, r15.zzzw + mul r15.zw, r15.zzzw, r17.zzzx + add r5.w, r15.w, r15.z + add r5.w, r5.w, l(0.000100) + div r5.w, l(0.500000), r5.w + mul r4.w, r4.w, r5.w + mul r4.w, r4.w, r6.w + min r4.w, r4.w, l(2048.000000) + mov r17.yw, cb2[28].wwww + mad r16.xyzw, r17.xyzw, 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) r5.w, r16.xyxx, t20.yzwx, s1, l(0.000000) + sample_l_indexable(texture2d)(float,float,float,float) r6.w, r16.zwzz, t20.yzwx, s1, l(0.000000) + mul r5.w, r5.w, r6.w + mul r5.w, r9.z, r5.w + div r5.w, r5.w, r10.z + mul r6.w, r10.w, r10.w + mul r5.w, r5.w, r6.w + mad r6.w, -r10.w, r10.z, l(1.000000) + div r5.w, r5.w, r6.w + add r4.w, r4.w, r5.w + mul r4.w, r4.w, cb5[4].x + // === Fog Mod: Reduce sun specular intensity === + lt r35.x, l(0.500000), cb13[12].y + if_nz r35.x + mul r4.w, r4.w, l(0.500000) + endif + max r4.w, r4.w, l(0.000000) + min r4.w, r4.w, l(1000.000000) + div r0.z, r4.w, r0.z + min r0.z, r0.z, l(1000.000000) + mul r0.z, r0.z, cb2[27].y + mad_sat r2.w, r2.w, l(0.666666687), l(0.333333343) + log r2.w, r2.w + mul r2.w, r2.w, l(1.500000) + exp r2.w, r2.w + mad r2.w, r2.w, l(1.66666663), l(-1.000000) + mad r2.w, r12.w, r2.w, l(1.000000) + mul r4.w, r2.w, l(0.159154937) + dp3 r5.w, r5.xyzx, r13.xyzx + mov_sat r5.w, -r5.w + log r5.w, r5.w + mul r5.w, r5.w, l(12.000000) + exp r5.w, r5.w + mad r6.w, r12.w, l(-2.900000), l(3.000000) + mul r5.w, r5.w, r6.w + mad r2.w, -r2.w, l(0.159154937), l(1.000000) + mad r2.w, r5.w, r2.w, r4.w + mul r13.xyz, r2.wwww, r12.xyzx + mad r13.xyz, r0.zzzz, r17.zzzz, r13.xyzx + mad r13.xyz, r7.xyzx, r17.zzzz, r13.xyzx + mul r13.xyz, r13.xyzx, cb5[1].xyzx + mov r10.y, l(0.500000) + sample_b_indexable(texture2d)(float,float,float,float) r10.yzw, r10.xyxx, t19.wxyz, s1, cb0[108].x + add r0.z, -r10.x, l(1.000000) + mad r10.xyz, r13.xyzx, r10.yzwy, -r13.xyzx + mad r10.xyz, r0.zzzz, r10.xyzx, r13.xyzx +else + mov r10.xyz, l(0,0,0,0) +endif +mul r13.xy, r15.xyxx, l(0.031250, 0.031250, 0.000000, 0.000000) +round_ni r13.xy, r13.xyxx +mad r0.z, r13.y, cb4[1].y, r13.x +mul r0.z, r0.z, l(8.000000) +ftoi r0.z, r0.z +mad r2.w, -cb0[85].y, cb4[2].w, r11.z +round_ni r2.w, r2.w +add r4.w, l(-1.000000), cb4[1].w +max r5.w, r2.w, l(0.000000) +min r4.w, r4.w, r5.w +mul r5.w, r4.w, l(8.000000) +ftoi r5.w, r5.w +ge r2.w, r4.w, r2.w +iadd r4.w, r5.w, cb0[110].y +mul r5.w, cb2[28].w, cb2[28].w +min r13.x, r3.w, l(1.000000) +add r13.zw, l(0.000000, 0.000000, 1.000000, 1.000000), -cb2[28].wwwy +mad r3.w, -r13.z, l(0.383026), l(-0.0761947036) +mad r3.w, r13.z, r3.w, l(1.049970) +mad r3.w, r13.z, r3.w, l(0.409255) +min r3.w, r3.w, l(0.999000) +add r6.w, -r3.w, l(1.000000) +mad r7.w, -cb2[29].x, l(0.080000), l(1.000000) +mad r7.w, r7.w, l(0.0476190485), r9.w +mad_sat r0.y, -r0.y, r7.x, l(1.000000) +mov r13.y, cb2[28].w +mad r13.yz, r13.xxyx, 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) r8.w, r13.yzyy, t20.yzwx, s1, l(0.000000) +mad r9.z, -r7.w, r6.w, l(1.000000) +mad r10.w, r0.y, l(-2.900000), l(3.000000) +mul r7.w, r7.w, r7.w +mov r16.w, l(1.000000) +mov r17.y, l(1.000000) +mov r18.z, cb2[28].w +mov r19.xyz, l(0,0,0,0) +mov r12.w, 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, r4.w, 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.w, r13.z + ishl r14.w, r13.y, l(5) + mov r20.xyz, l(0,0,0,0) + mov r15.z, r12.w + mov r15.w, r13.z + loop + breakc_z r15.w + firstbit_lo r17.z, r15.w + ishl r17.w, l(1), r17.z + xor r17.w, r15.w, r17.w + iadd r17.z, r14.w, r17.z + bfi r21.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r17.zzzz, l(1, 3, 5, 6) + bfi r18.w, l(29), l(3), r17.z, l(7) + ftou r19.w, cb5[r21.z + 6].w + ieq r19.w, r19.w, l(1) + if_nz r19.w + add r16.xyz, r2.xyzx, -cb5[r21.x + 6].xyzx + and r22.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r21.z + 6].xzyx + and r23.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb5[r21.w + 6].yxzy + ushr r24.xyz, cb5[r21.z + 6].xzyx, l(16, 16, 16, 0) + ushr r25.xyz, cb5[r21.w + 6].yxzy, l(16, 16, 16, 0) + f16tof32 r22.xyz, r22.xyzx + f16tof32 r23.xyz, r23.xyzx + f16tof32 r24.xyz, r24.xyzx + f16tof32 r25.xyw, r25.yxyz + mov r26.xz, r22.xxzx + mov r26.yw, r24.xxxz + dp4 r19.w, r16.xyzw, r26.xyzw + mov r24.x, r22.y + mov r24.z, r23.y + mov r24.w, r25.x + dp4 r20.w, r16.xyzw, r24.xyzw + mov r25.xz, r23.xxzx + dp4 r16.x, r16.xyzw, r25.xyzw + max r16.y, |r19.w|, |r20.w| + max r16.x, |r16.x|, r16.y + mad r16.y, cb5[r18.w + 6].x, l(0.500000), l(0.500000) + add r16.x, -r16.y, r16.x + mad r16.y, -cb5[r18.w + 6].x, l(0.500000), l(0.500000) + div_sat r16.x, r16.x, r16.y + add r16.x, -r16.x, l(1.000000) + mul r16.x, r16.x, r16.x + else + mov r16.x, l(1.000000) + endif + lt r16.y, l(0.500000), cb5[r21.y + 6].z + lt r16.z, r16.x, l(0.001000) + or r16.z, r16.y, r16.z + if_nz r16.z + mov r15.w, r17.w + continue + endif + ishl r16.z, r17.z, l(3) + bfi r17.z, l(29), l(3), r17.z, l(2) + lt r19.w, cb5[r16.z + 6].w, l(1.500000) + if_nz r19.w + mad r19.w, cb5[r17.z + 6].y, l(0.500000), l(0.500000) + add r22.x, r19.w, -|cb5[r17.z + 6].x| + add r22.y, -r22.x, cb5[r17.z + 6].y + add r19.w, -|r22.x|, l(1.000000) + add r19.w, -|r22.y|, r19.w + max r19.w, r19.w, l(0.000488281250) + ge r20.w, cb5[r17.z + 6].x, l(0.000000) + movc r22.z, r20.w, r19.w, -r19.w + dp3 r19.w, r22.xyzx, r22.xyzx + rsq r19.w, r19.w + mul r22.xyz, r19.wwww, r22.xyzx + add r23.xyz, -r2.xyzx, cb5[r21.x + 6].xyzx + dp3 r19.w, r23.xyzx, r23.xyzx + rsq r20.w, r19.w + mul r24.xyz, r20.wwww, r23.xyzx + ftoi r21.z, cb5[r18.w + 6].w + mul r25.xyz, r22.xyzx, cb5[r17.z + 6].zzzz + mad r26.xyz, -r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r23.xyzx + mad r27.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r23.xyzx + ftou r22.w, cb5[r16.z + 6].w + and r22.w, r22.w, l(1) + ieq r23.w, r22.w, l(0) + not r23.w, r23.w + lt r24.w, l(0.000000), cb5[r17.z + 6].z + and r23.w, r23.w, r24.w + dp3 r24.w, r26.xyzx, r26.xyzx + sqrt r24.w, r24.w + dp3 r25.w, r27.xyzx, r27.xyzx + sqrt r25.w, r25.w + dp3 r26.w, r8.xyzx, r26.xyzx + div r26.w, r26.w, r24.w + dp3 r27.w, r8.xyzx, r27.xyzx + div r27.w, r27.w, r25.w + add r26.w, r26.w, r27.w + mul_sat r28.x, r26.w, l(0.500000) + dp3 r26.w, r26.xyzx, r27.xyzx + mad r24.w, r24.w, r25.w, r26.w + mad r24.w, r24.w, l(0.500000), l(1.000000) + div r28.y, l(1.000000, 1.000000, 1.000000, 1.000000), r24.w + dp3_sat r17.x, r8.xyzx, r24.xyzx + movc r18.xy, r23.wwww, r28.xyxx, r17.xyxx + lt r17.x, cb5[r21.w + 6].w, l(0.000000) + if_nz r17.x + mul r17.x, cb5[r21.x + 6].w, cb5[r21.x + 6].w + mul r17.x, r17.x, r19.w + mad r17.x, -r17.x, r17.x, l(1.000000) + max r17.x, r17.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, r23.w, l(0x3f800000) + add r25.w, r18.y, -r19.w + mad r19.w, r24.w, r25.w, r19.w + mul r17.x, r17.x, r17.x + mul r17.x, r17.x, r19.w + else + mul r27.xyz, r23.xyzx, cb5[r21.x + 6].wwww + dp3 r19.w, r27.xyzx, r27.xyzx + min r19.w, r19.w, l(1.000000) + add r19.w, -r19.w, l(1.000000) + log r19.w, r19.w + mul r19.w, r19.w, cb5[r21.w + 6].w + exp r19.w, r19.w + mul r17.x, r18.y, r19.w + endif + dp3 r18.y, r24.xyzx, -r22.xyzx + add r18.y, r18.y, -cb5[r17.z + 6].z + mul_sat r18.y, r18.y, cb5[r17.z + 6].w + mul r18.y, r18.y, r18.y + movc r18.y, r22.w, l(1.000000), r18.y + mul r17.x, r17.x, r18.y + not r18.y, r23.w + ige r19.w, r21.z, l(0) + and r18.y, r18.y, r19.w + if_nz r18.y + if_z r22.w + ishl r18.y, r21.z, l(2) + mul r22.xyz, r2.yyyy, cb7[r18.y + 33].xywx + mad r22.xyz, cb7[r18.y + 32].xywx, r2.xxxx, r22.xyzx + mad r22.xyz, cb7[r18.y + 34].xywx, r2.zzzz, r22.xyzx + add r22.xyz, r22.xyzx, cb7[r18.y + 35].xywx + div_sat r22.xy, r22.xyxx, r22.zzzz + mad r22.xy, r22.xyxx, cb7[r21.z + 0].zwzz, cb7[r21.z + 0].xyxx + else + ishl r18.y, r21.z, l(2) + dp3 r27.x, -r23.xyzx, cb7[r18.y + 32].xyzx + dp3 r27.y, -r23.xyzx, cb7[r18.y + 33].xyzx + dp3 r27.z, -r23.xyzx, cb7[r18.y + 34].xyzx + lt r18.y, |r27.x|, |r27.y| + and r18.y, r18.y, l(1) + dp2 r19.w, |r27.xyxx|, icb[r18.y + 0].xyxx + lt r19.w, r19.w, |r27.z| + movc r18.y, r19.w, l(2), r18.y + dp3 r19.w, r27.xyzx, icb[r18.y + 0].xyzx + lt r19.w, r19.w, l(0.000000) + bfi r18.y, l(31), l(1), r18.y, r19.w + ushr r19.w, r18.y, l(1) + dp3 r19.w, r27.xyzx, icb[r19.w + 0].xyzx + div r22.z, l(0.000244140625), cb7[r21.z + 0].w + add r22.z, -r22.z, l(0.500000) + utof r23.x, r18.y + ult r23.y, r18.y, l(2) + and r23.y, r23.y, l(2) + dp2 r23.y, r27.xzxx, icb[r23.y + 0].xzxx + mul r23.y, r23.y, icb[r18.y + 4].z + div r23.y, r23.y, |r19.w| + mad r23.x, r23.y, r22.z, r23.x + add r23.x, r23.x, l(0.500000) + mul_sat r23.x, r23.x, l(0.166666672) + iadd r23.z, l(-1), icb[r18.y + 4].y + dp2 r23.z, r27.yzyy, icb[r23.z + 0].xyxx + mul r18.y, r23.z, icb[r18.y + 4].w + div r18.y, r18.y, |r19.w| + mad_sat r23.y, -r18.y, r22.z, l(0.500000) + mad r22.xy, r23.xyxx, cb7[r21.z + 0].zwzz, cb7[r21.z + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r18.y, r22.xyxx, t21.yxzw, s1, l(0.000000) + mul r17.x, r17.x, r18.y + endif + lt r18.y, l(0.000000), r17.x + if_nz r18.y + if_z r22.w + ftoi r19.w, cb5[r21.y + 6].x + else + add r22.xyz, r2.xyzx, -cb5[r21.x + 6].xyzx + lt r23.xyz, |r22.yzzy|, |r22.xxyx| + and r21.z, r23.y, r23.x + lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + ushr r22.w, cb5[r17.z + 6].w, l(24) + ubfe r23.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), cb5[r17.z + 6].wwww + movc r22.x, r22.x, r22.w, r23.x + and r22.w, l(255), cb5[r17.z + 6].w + movc r22.y, r22.y, r23.y, r22.w + ubfe r22.w, l(8), l(8), cb5[r21.y + 6].x + and r23.x, l(255), cb5[r21.y + 6].x + movc r22.z, r22.z, r22.w, r23.x + movc r22.y, r23.z, r22.y, r22.z + movc r21.z, r21.z, r22.x, r22.y + ilt r22.x, r21.z, l(80) + movc r19.w, r22.x, r21.z, l(-1) + endif + mad r22.xyz, r24.xyzx, cb6[r19.w + 288].xxxx, r2.xyzx + mul r21.z, l(5.000000), cb6[r19.w + 288].y + mad r22.xyz, r8.xyzx, r21.zzzz, r22.xyzx + ishl r21.z, r19.w, l(2) + mul r27.xyzw, r22.yyyy, cb6[r21.z + 65].xyzw + mad r27.xyzw, cb6[r21.z + 64].xyzw, r22.xxxx, r27.xyzw + mad r22.xyzw, cb6[r21.z + 66].xyzw, r22.zzzz, r27.xyzw + add r22.xyzw, r22.xyzw, cb6[r21.z + 67].xyzw + div r22.xyz, r22.xyzx, r22.wwww + ge r23.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx + ge r27.xyz, r22.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r28.xy, -cb6[r19.w + 344].xyxx, cb6[r19.w + 344].zwzz + mad r22.xy, r22.xyxx, r28.xyxx, cb6[r19.w + 344].xyxx + mad r28.xy, r22.xyxx, cb6[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000) + round_ni r28.xy, r28.xyxx + mad r22.xy, r22.xyxx, cb6[400].zwzz, -r28.xyxx + add r29.xyzw, r22.xxyy, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r30.xyzw, r29.xxzz, r29.xxzz + add r28.zw, -r22.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000) + min r29.xz, r22.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000) + max r31.xy, r22.xyxx, 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 r22.xy, r30.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000), -r22.xyxx + mul r33.xy, r22.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r22.xy, -r29.xzxx, r29.xzxx, r28.zwzz + add r22.xy, r22.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r34.xy, r22.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r22.xy, r29.ywyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mov r33.z, r34.x + mov r33.w, r22.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, r22.y + mov r31.z, r32.y + mov r31.w, r30.z + add r22.xyw, r31.zyzw, r34.zyzw + div r30.xyz, r32.xzwx, r29.zwyz + add r30.xyz, r30.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r30.xyz, r30.xyzx, cb6[400].xxxx + div r31.xyz, r31.zywz, r22.xywx + add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r31.xyw, r31.xyxz, cb6[400].yyyy + mul r32.xyzw, r22.xxxy, r29.zwyz + mov r30.w, r31.x + mad r33.xyzw, r28.xyxy, cb6[400].xyxy, r30.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r21.z, r33.xyxx, t16.xxxx, s4, r22.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r33.zwzz, t16.xxxx, s4, r22.z + mul r22.x, r22.x, r32.y + mad r21.z, r32.x, r21.z, r22.x + mad r28.zw, r28.xxxy, cb6[400].xxxy, r30.zzzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r28.zwzz, t16.xxxx, s4, r22.z + mad r21.z, r32.z, r22.x, r21.z + mov r31.z, r30.x + mad r33.xyzw, r28.xyxy, cb6[400].xyxy, r31.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r33.xyxx, t16.xxxx, s4, r22.z + mad r21.z, r32.w, r22.x, r21.z + mul r32.xyzw, r22.yyww, r29.xyzw + mov r31.xz, r30.yyzy + mad r30.xyzw, r28.xyxy, cb6[400].xyxy, r31.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r30.xyxx, t16.xxxx, s4, r22.z + mad r21.z, r32.x, r22.x, r21.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r30.zwzz, t16.xxxx, s4, r22.z + mad r21.z, r32.y, r22.x, r21.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.x, r33.zwzz, t16.xxxx, s4, r22.z + mad r21.z, r32.z, r22.x, r21.z + ige r22.x, r19.w, l(0) + or r23.xyz, r23.xyzx, r27.xyzx + or r22.y, r23.y, r23.x + or r22.y, r23.z, r22.y + and r23.x, r22.z, l(0x7fffffff) + ult r23.x, l(0x7f800000), r23.x + or r22.y, r22.y, r23.x + mad r27.xyzw, r28.xyxy, cb6[400].xyxy, r31.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r23.x, r27.xyxx, t16.xxxx, s4, r22.z + mad r21.z, r32.w, r23.x, r21.z + mul r22.w, r22.w, r29.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r22.z, r27.zwzz, t16.xxxx, s4, r22.z + mad r21.z, r22.w, r22.z, r21.z + add r21.z, r21.z, l(-1.000000) + mad r19.w, cb6[r19.w + 288].w, r21.z, l(1.000000) + movc r19.w, r22.y, l(1.000000), r19.w + movc r19.w, r22.x, r19.w, l(1.000000) + else + mov r19.w, l(1.000000) + endif + if_nz r23.w + dp3 r21.z, r14.xyzx, r25.xyzx + mul_sat r22.x, r20.w, cb5[r17.z + 6].z + mad r22.x, r22.x, l(0.500000), r5.w + min r22.x, r22.x, l(1.000000) + div r22.x, r5.w, r22.x + mad r22.yzw, r14.xxyz, r21.zzzz, -r25.xxyz + dp3 r22.y, r26.xyzx, r22.yzwy + mul r21.z, r21.z, r21.z + mad r21.z, cb5[r17.z + 6].z, cb5[r17.z + 6].z, -r21.z + div_sat r21.z, r22.y, r21.z + mad r22.yzw, r25.xxyz, r21.zzzz, r26.xxyz + dp3 r21.z, r22.yzwy, r22.yzwy + rsq r21.z, r21.z + mul r24.xyz, r21.zzzz, r22.yzwy + else + mov r22.x, l(1.000000) + endif + if_nz r18.y + mul_sat r18.y, r20.w, cb5[r18.w + 6].y + mad r22.yzw, r3.xxyz, r1.wwww, r24.xxyz + dp3 r20.w, r22.yzwy, r22.yzwy + max r20.w, r20.w, l(0.0000610351562) + rsq r20.w, r20.w + mul r22.yzw, r20.wwww, r22.yyzw + dp3_sat r20.w, r8.xyzx, r22.yzwy + dp3_sat r21.z, r5.xyzx, r22.yzwy + lt r22.y, l(0.000000), r18.y + mul r18.y, r18.y, r18.y + mad r22.z, r21.z, l(3.600000), l(0.400000) + div r18.y, r18.y, r22.z + mad r18.y, cb2[28].w, cb2[28].w, r18.y + min r18.y, r18.y, l(1.000000) + movc r18.y, r22.y, r18.y, r5.w + mul r18.y, r18.y, r18.y + mad r22.y, r20.w, r18.y, -r20.w + mad r20.w, r22.y, r20.w, l(1.000000) + add r21.z, -r21.z, l(1.000000) + mul r22.y, r21.z, r21.z + mul r22.y, r22.y, r22.y + mul r22.z, r21.z, r22.y + mad r21.z, -r22.y, r21.z, l(1.000000) + mad r21.z, r9.w, r21.z, r22.z + mul r20.w, r20.w, r20.w + div r20.w, r18.y, r20.w + mul r20.w, r22.x, r20.w + mad r22.x, -r13.x, r18.y, r13.x + mad r22.x, r22.x, r13.x, r18.y + sqrt r22.x, r22.x + mad r22.y, -r18.x, r18.y, r18.x + mad r18.y, r22.y, r18.x, r18.y + sqrt r18.y, r18.y + mul r18.y, r13.x, r18.y + mad r18.y, r18.x, r22.x, r18.y + add r18.y, r18.y, l(0.000100) + div r18.y, l(0.500000), r18.y + mul r18.y, r18.y, r20.w + mul r18.y, r18.y, r21.z + min r18.y, r18.y, l(2048.000000) + mad r22.xy, r18.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, r22.xyxx, t20.yzwx, s1, l(0.000000) + mul r20.w, r8.w, r20.w + mul r20.w, r3.w, r20.w + div r20.w, r20.w, r6.w + mul r20.w, r7.w, r20.w + div r20.w, r20.w, r9.z + add r18.y, r18.y, r20.w + mul r18.y, r18.y, cb5[r18.w + 6].z + max r18.y, r18.y, l(0.000000) + min r18.y, r18.y, l(1000.000000) + dp3 r20.w, r8.xyzx, r24.xyzx + mad_sat r20.w, r20.w, l(0.666666687), l(0.333333343) + log r20.w, r20.w + mul r20.w, r20.w, l(1.500000) + exp r20.w, r20.w + mad r20.w, r20.w, l(1.66666663), l(-1.000000) + mad r20.w, r0.y, r20.w, l(1.000000) + mul r21.z, r20.w, l(0.159154937) + dp3 r22.x, r5.xyzx, r24.xyzx + mov_sat r22.x, -r22.x + log r22.x, r22.x + mul r22.x, r22.x, l(12.000000) + exp r22.x, r22.x + mul r22.x, r10.w, r22.x + mad r20.w, -r20.w, l(0.159154937), l(1.000000) + mad r20.w, r22.x, r20.w, r21.z + mul r22.xyz, r12.xyzx, r20.wwww + mad r22.xyz, r18.yyyy, r18.xxxx, r22.xyzx + mad r22.xyz, r7.xyzx, r18.xxxx, r22.xyzx + mul r23.xyz, r17.xxxx, cb5[r16.z + 6].xyzx + mul r23.xyz, r19.wwww, r23.xyzx + mul r23.xyz, r16.xxxx, r23.xyzx + mul r22.xyz, r22.xyzx, r23.xyzx + else + mov r22.xyz, l(0,0,0,0) + endif + else + if_z r16.y + mad r16.x, cb5[r17.z + 6].y, l(0.500000), l(0.500000) + add r23.x, r16.x, -|cb5[r17.z + 6].x| + add r23.y, -r23.x, cb5[r17.z + 6].y + add r16.x, -|r23.x|, l(1.000000) + add r16.x, -|r23.y|, r16.x + max r16.x, r16.x, l(0.000488281250) + ge r16.y, cb5[r17.z + 6].x, l(0.000000) + movc r23.z, r16.y, r16.x, -r16.x + dp3 r16.x, r23.xyzx, r23.xyzx + rsq r16.x, r16.x + mul r23.xyz, r16.xxxx, r23.xyzx + add r24.xyz, -r2.xyzx, cb5[r21.x + 6].xyzx + dp3 r16.x, r24.xyzx, r24.xyzx + rsq r16.y, r16.x + mul r25.xyz, r16.yyyy, r24.xyzx + ftoi r16.y, cb5[r18.w + 6].w + mul r18.xyw, r23.xyxz, cb5[r17.z + 6].zzzz + mad r26.xyz, -r18.xywx, l(0.500000, 0.500000, 0.500000, 0.000000), r24.xyzx + mad r18.xyw, r18.xyxw, l(0.500000, 0.500000, 0.000000, 0.500000), r24.xyxz + ftou r16.z, cb5[r16.z + 6].w + and r16.z, r16.z, l(1) + ieq r17.x, r16.z, l(0) + not r17.x, r17.x + lt r19.w, l(0.000000), cb5[r17.z + 6].z + and r17.x, r17.x, r19.w + dp3 r19.w, r26.xyzx, r26.xyzx + sqrt r19.w, r19.w + dp3 r20.w, r18.xywx, r18.xywx + sqrt r20.w, r20.w + dp3 r18.x, r26.xyzx, r18.xywx + mad r18.x, r19.w, r20.w, 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, r17.x, r18.x, l(1.000000) + lt r18.y, cb5[r21.w + 6].w, l(0.000000) + if_nz r18.y + mul r18.y, cb5[r21.x + 6].w, cb5[r21.x + 6].w + mul r18.y, r16.x, r18.y + mad r18.y, -r18.y, r18.y, l(1.000000) + max r18.y, r18.y, l(0.000000) + add r16.x, r16.x, l(1.000000) + div r16.x, l(1.000000, 1.000000, 1.000000, 1.000000), r16.x + and r18.w, r17.x, l(0x3f800000) + add r19.w, -r16.x, r18.x + mad r16.x, r18.w, r19.w, r16.x + mul r18.y, r18.y, r18.y + mul r16.x, r16.x, r18.y + else + mul r26.xyz, r24.xyzx, cb5[r21.x + 6].wwww + dp3 r18.y, r26.xyzx, r26.xyzx + min r18.y, r18.y, l(1.000000) + add r18.y, -r18.y, l(1.000000) + log r18.y, r18.y + mul r18.y, r18.y, cb5[r21.w + 6].w + exp r18.y, r18.y + mul r16.x, r18.y, r18.x + endif + dp3 r18.x, r25.xyzx, -r23.xyzx + add r18.x, r18.x, -cb5[r17.z + 6].z + mul_sat r18.x, r18.x, cb5[r17.z + 6].w + mul r18.x, r18.x, r18.x + movc r18.x, r16.z, l(1.000000), r18.x + mul r16.x, r16.x, r18.x + not r17.x, r17.x + ige r18.x, r16.y, l(0) + and r17.x, r17.x, r18.x + if_nz r17.x + if_z r16.z + ishl r17.x, r16.y, l(2) + mul r18.xyw, r2.yyyy, cb7[r17.x + 33].xyxw + mad r18.xyw, cb7[r17.x + 32].xyxw, r2.xxxx, r18.xyxw + mad r18.xyw, cb7[r17.x + 34].xyxw, r2.zzzz, r18.xyxw + add r18.xyw, r18.xyxw, cb7[r17.x + 35].xyxw + div_sat r18.xy, r18.xyxx, r18.wwww + mad r18.xy, r18.xyxx, cb7[r16.y + 0].zwzz, cb7[r16.y + 0].xyxx + else + ishl r17.x, r16.y, l(2) + dp3 r23.x, -r24.xyzx, cb7[r17.x + 32].xyzx + dp3 r23.y, -r24.xyzx, cb7[r17.x + 33].xyzx + dp3 r23.z, -r24.xyzx, cb7[r17.x + 34].xyzx + lt r17.x, |r23.x|, |r23.y| + and r17.x, r17.x, l(1) + dp2 r18.w, |r23.xyxx|, icb[r17.x + 0].xyxx + lt r18.w, r18.w, |r23.z| + movc r17.x, r18.w, l(2), r17.x + dp3 r18.w, r23.xyzx, icb[r17.x + 0].xyzx + lt r18.w, r18.w, l(0.000000) + bfi r17.x, l(31), l(1), r17.x, r18.w + ushr r18.w, r17.x, l(1) + dp3 r18.w, r23.xyzx, icb[r18.w + 0].xyzx + div r19.w, l(0.000244140625), cb7[r16.y + 0].w + add r19.w, -r19.w, l(0.500000) + utof r20.w, r17.x + ult r21.z, r17.x, l(2) + and r21.z, r21.z, l(2) + dp2 r21.z, r23.xzxx, icb[r21.z + 0].xzxx + mul r21.z, r21.z, icb[r17.x + 4].z + div r21.z, r21.z, |r18.w| + mad r20.w, r21.z, r19.w, r20.w + add r20.w, r20.w, l(0.500000) + mul_sat r24.x, r20.w, l(0.166666672) + iadd r20.w, l(-1), icb[r17.x + 4].y + dp2 r20.w, r23.yzyy, icb[r20.w + 0].xyxx + mul r17.x, r20.w, icb[r17.x + 4].w + div r17.x, r17.x, |r18.w| + mad_sat r24.y, -r17.x, r19.w, l(0.500000) + mad r18.xy, r24.xyxx, cb7[r16.y + 0].zwzz, cb7[r16.y + 0].xyxx + endif + sample_l_indexable(texture2d)(float,float,float,float) r16.y, r18.xyxx, t21.yxzw, s1, l(0.000000) + mul r16.x, r16.y, r16.x + endif + lt r16.x, l(0.000000), r16.x + if_nz r16.x + if_z r16.z + ftoi r16.x, cb5[r21.y + 6].x + else + add r18.xyw, r2.xyxz, -cb5[r21.x + 6].xyxz + lt r21.xzw, |r18.yyww|, |r18.xxxy| + and r16.y, r21.z, r21.x + lt r18.xyw, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xyxw + ushr r16.z, cb5[r17.z + 6].w, l(24) + ubfe r21.xz, l(8, 0, 8, 0), l(16, 0, 8, 0), cb5[r17.z + 6].wwww + movc r16.z, r18.x, r16.z, r21.x + and r17.x, l(255), cb5[r17.z + 6].w + movc r17.x, r18.y, r21.z, r17.x + ubfe r17.z, l(8), l(8), cb5[r21.y + 6].x + and r18.x, l(255), cb5[r21.y + 6].x + movc r17.z, r18.w, r17.z, r18.x + movc r17.x, r21.w, r17.x, r17.z + movc r16.y, r16.y, r16.z, r17.x + ilt r16.z, r16.y, l(80) + movc r16.x, r16.z, r16.y, l(-1) + endif + mad r18.xyw, r25.xyxz, cb6[r16.x + 288].xxxx, r2.xyxz + mul r16.y, l(5.000000), cb6[r16.x + 288].y + mad r18.xyw, r8.xyxz, r16.yyyy, r18.xyxw + ishl r16.y, r16.x, l(2) + mul r21.xyzw, r18.yyyy, cb6[r16.y + 65].xyzw + mad r21.xyzw, cb6[r16.y + 64].xyzw, r18.xxxx, r21.xyzw + mad r21.xyzw, cb6[r16.y + 66].xyzw, r18.wwww, r21.xyzw + add r21.xyzw, r21.xyzw, cb6[r16.y + 67].xyzw + div r18.xyw, r21.xyxz, r21.wwww + ge r21.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r18.xywx + ge r23.xyz, r18.xywx, l(1.000000, 1.000000, 1.000000, 0.000000) + add r16.yz, -cb6[r16.x + 344].xxyx, cb6[r16.x + 344].zzwz + mad r16.yz, r18.xxyx, r16.yyzy, cb6[r16.x + 344].xxyx + mad r17.xz, r16.yyzy, cb6[400].zzwz, l(0.500000, 0.000000, 0.500000, 0.000000) + round_ni r17.xz, r17.xxzx + mad r16.yz, r16.yyzy, cb6[400].zzwz, -r17.xxzx + add r24.xyzw, r16.yyzz, l(0.500000, 1.000000, 0.500000, 1.000000) + mul r25.xyzw, r24.xxzz, r24.xxzz + add r18.xy, -r16.yzyy, l(1.000000, 1.000000, 0.000000, 0.000000) + min r24.xz, r16.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000) + max r26.xy, r16.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000) + mul r27.xy, r18.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r26.xy, -r26.xyxx, r26.xyxx, r24.ywyy + add r26.xy, r26.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) + mul r26.xy, r26.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r25.xz, r25.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000) + mad r16.yz, r25.yywy, l(0.000000, 0.500000, 0.500000, 0.000000), -r16.yyzy + mul r28.xy, r16.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mad r16.yz, -r24.xxzx, r24.xxzx, r18.xxyx + add r16.yz, r16.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000) + mul r29.xy, r16.yzyy, l(0.160000, 0.160000, 0.000000, 0.000000) + mul r16.yz, r24.yywy, l(0.000000, 0.160000, 0.160000, 0.000000) + mov r28.z, r29.x + mov r28.w, r16.y + mov r27.z, r26.x + mov r27.w, r25.x + add r24.xyzw, r27.zwxz, r28.zwxz + mov r29.z, r28.y + mov r29.w, r16.z + mov r26.z, r27.y + mov r26.w, r25.z + add r25.xyz, r26.zywz, r29.zywz + div r27.xyz, r27.xzwx, r24.zwyz + add r27.xyz, r27.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r27.xyz, r27.xyzx, cb6[400].xxxx + div r26.xyz, r26.zywz, r25.xyzx + add r26.xyz, r26.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000) + mul r26.xyw, r26.xyxz, cb6[400].yyyy + mul r28.xyzw, r24.zwyz, r25.xxxy + mov r27.w, r26.x + mad r29.xyzw, r17.xzxz, cb6[400].xyxy, r27.xwyw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.y, r29.xyxx, t16.xxxx, s4, r18.w + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r29.zwzz, t16.xxxx, s4, r18.w + mul r16.z, r16.z, r28.y + mad r16.y, r28.x, r16.y, r16.z + mad r18.xy, r17.xzxx, cb6[400].xyxx, r27.zwzz + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r18.xyxx, t16.xxxx, s4, r18.w + mad r16.y, r28.z, r16.z, r16.y + mov r26.z, r27.x + mad r29.xyzw, r17.xzxz, cb6[400].xyxy, r26.zyzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r29.xyxx, t16.xxxx, s4, r18.w + mad r16.y, r28.w, r16.z, r16.y + mul r28.xyzw, r24.xyzw, r25.yyzz + mov r26.xz, r27.yyzy + mad r27.xyzw, r17.xzxz, cb6[400].xyxy, r26.xyzy + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r27.xyxx, t16.xxxx, s4, r18.w + mad r16.y, r28.x, r16.z, r16.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r27.zwzz, t16.xxxx, s4, r18.w + mad r16.y, r28.y, r16.z, r16.y + sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r29.zwzz, t16.xxxx, s4, r18.w + mad r16.y, r28.z, r16.z, r16.y + ige r16.z, r16.x, l(0) + or r21.xyz, r21.xyzx, r23.xyzx + or r18.x, r21.y, r21.x + or r18.x, r21.z, r18.x + and r18.y, r18.w, l(0x7fffffff) + ult r18.y, l(0x7f800000), r18.y + or r18.x, r18.y, r18.x + mad r21.xyzw, r17.xzxz, cb6[400].xyxy, r26.xwzw + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.x, r21.xyxx, t16.xxxx, s4, r18.w + mad r16.y, r28.w, r17.x, r16.y + mul r17.x, r24.y, r25.z + sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r21.zwzz, t16.xxxx, s4, r18.w + mad r16.y, r17.x, r17.z, r16.y + add r16.y, r16.y, l(-1.000000) + mad r16.x, cb6[r16.x + 288].w, r16.y, l(1.000000) + movc r16.x, r18.x, l(1.000000), r16.x + movc r16.x, r16.z, r16.x, l(1.000000) + else + mov r16.x, l(1.000000) + endif + else + mov r16.x, l(1.000000) + endif + mul r15.z, r15.z, r16.x + mov r22.xyz, l(0,0,0,0) + endif + add r20.xyz, r20.xyzx, r22.xyzx + mov r15.w, r17.w + endloop + mov r12.w, r15.z + add r19.xyz, r19.xyzx, r20.xyzx + iadd r13.y, r13.y, l(1) +endloop +// === Fog Mod: Reduce clustered lights and overall brightness === +lt r35.x, l(0.500000), cb13[12].y +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) +endif +add r0.y, l(1.000000), -cb2[0].y +mad r0.z, r2.y, cb0[156].w, cb0[157].w +max r0.z, r0.z, l(0.010000) +mad r1.w, r0.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, r2.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, -r5.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 r11.w, l(7), cb0[108].w + imad r3.xyz, r11.xywx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0) + imad r3.x, r3.y, r3.z, r3.x + imad r3.y, r3.z, r3.x, r3.y + imad r3.z, r3.x, r3.y, r3.z + imad r7.x, r3.y, r3.z, r3.x + dp3 r3.x, -r5.xyzx, -r4.xyzx + add r3.w, r2.y, -cb0[44].y + lt r4.x, l(5.960464478E-08), r3.x + div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x + and r3.x, r3.x, r4.x + mul r3.x, r3.x, cb0[163].w + div r4.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w + mul r4.y, r3.x, r4.x + mad r4.z, r4.y, r3.w, cb0[44].y + mad r3.w, -r4.y, r3.w, r3.w + mul r4.y, r3.w, cb0[159].z + mul r3.w, r3.w, cb0[162].x + max r3.w, r3.w, l(-127.000000) + add r4.w, r4.z, -cb0[159].x + mul r4.w, r4.w, cb0[159].z + max r4.yw, r4.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000) + exp r4.w, -r4.w + mul r4.w, r4.w, cb0[159].y + lt r5.x, l(5.960464478E-08), |r4.y| + exp r5.y, -r4.y + add r5.y, -r5.y, l(1.000000) + div r5.y, r5.y, r4.y + mad r4.y, -r4.y, l(0.240226507), l(0.693147182) + movc r4.y, r5.x, r5.y, r4.y + 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), |r3.w| + exp r5.y, -r3.w + add r5.y, -r5.y, l(1.000000) + div r5.y, r5.y, r3.w + mad r3.w, -r3.w, l(0.240226507), l(0.693147182) + movc r3.w, r5.x, r5.y, r3.w + mul r3.w, r3.w, r4.z + mad r3.w, r4.w, r4.y, r3.w + mad r3.x, -r3.x, r4.x, l(1.000000) + mul r3.x, r0.w, r3.x + mul r3.x, r3.x, r3.w + exp r3.x, -r3.x + min r3.x, r3.x, l(1.000000) + max r3.x, r3.x, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r3.x, r3.x, r4.x + add r3.x, r4.y, r3.x + min r3.x, r3.x, l(1.000000) + imad r7.y, r3.z, r7.x, r3.y + ushr r3.yz, r7.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, r15.xxyx + mul r4.xy, r3.yzyy, cb0[165].xyxx + mad r3.y, r11.z, cb0[164].x, cb0[164].y + log r3.y, r3.y + mul r3.y, r3.y, cb0[164].z + div r4.z, r3.y, cb0[163].z + sample_l_indexable(texture3d)(float,float,float,float) r4.xyzw, r4.xyzx, t8.xyzw, s1, l(0.000000) + add r3.y, r11.z, -cb0[166].z + mul_sat r3.y, r3.y, l(1000000.000000) + add r4.xyzw, r4.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000) + mad r4.xyzw, r3.yyyy, r4.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000) + add r3.y, -r3.x, l(1.000000) + mul r3.yzw, r3.yyyy, cb0[161].xxyz + mad r3.yzw, r3.yyzw, r4.wwww, r4.xxyz + mul r3.x, r3.x, r4.w +else + add r2.y, r2.y, -cb0[44].y + mul r4.x, r2.y, cb0[159].z + mul r2.y, r2.y, cb0[162].x + max r2.y, r2.y, l(-127.000000) + add r4.y, cb0[44].y, -cb0[159].x + mul r4.y, r4.y, cb0[159].z + max r4.xy, r4.xyxx, l(-127.000000, -127.000000, 0.000000, 0.000000) + exp r4.y, -r4.y + mul r4.y, r4.y, cb0[159].y + lt r4.z, l(5.960464478E-08), |r4.x| + exp r4.w, -r4.x + add r4.w, -r4.w, l(1.000000) + div r4.w, r4.w, r4.x + mad r4.x, -r4.x, l(0.240226507), l(0.693147182) + movc r4.x, r4.z, r4.w, r4.x + add r4.z, cb0[44].y, -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 r4.w, l(5.960464478E-08), |r2.y| + exp r5.x, -r2.y + add r5.x, -r5.x, l(1.000000) + div r5.x, r5.x, r2.y + mad r2.y, -r2.y, l(0.240226507), l(0.693147182) + movc r2.y, r4.w, r5.x, r2.y + mul r2.y, r2.y, r4.z + mad r2.y, r4.y, r4.x, r2.y + mul r2.y, r0.w, r2.y + exp r2.y, -r2.y + min r2.y, r2.y, l(1.000000) + max r2.y, r2.y, cb0[161].w + mad_sat r4.xy, r0.wwww, cb0[160].ywyy, cb0[160].xzxx + add r0.w, r2.y, r4.x + add r0.w, r4.y, r0.w + min r3.x, r0.w, l(1.000000) + add r0.w, -r3.x, l(1.000000) + mul r3.yzw, r0.wwww, cb0[161].xxyz +endif +// === Fog Mod: Boost transmittance, reduce inscatter === +lt r35.x, l(0.500000), cb13[12].y +if_nz r35.x + add r35.x, -r3.x, l(1.000000) + mad r3.x, r35.x, l(0.500000), r3.x + mul r3.yzw, r3.yyzw, l(0.000000, 0.350000, 0.350000, 0.350000) +endif +dp3 r0.w, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +add r1.xyz, -r0.wwww, r1.xyzx +mad r1.xyz, cb0[184].wwww, r1.xyzx, r0.wwww +mul r4.xyz, r6.xyzx, r13.wwww +mad r1.xyz, r1.xyzx, cb0[184].xyzx, r4.xyzx +mad r4.xyz, r19.xyzx, r12.wwww, r10.xyzx +add r1.xyz, r1.xyzx, r4.xyzx +mul r4.xyz, r2.xzwx, r3.xxxx +mad r0.z, r0.z, r0.z, l(1.000000) +mul r0.z, r0.z, l(0.0596831031) +mad r5.xyz, cb0[156].xyzx, r0.zzzz, cb0[158].xyzx +mad r0.z, -cb0[155].w, cb0[155].w, l(1.000000) +mul r0.w, r1.w, l(12.566371) +sqrt r1.w, r1.w +mul r0.w, r0.w, r1.w +max r0.w, r0.w, l(0.001000) +div r0.z, r0.z, r0.w +mad_sat r5.xyz, cb0[157].xyzx, r0.zzzz, r5.xyzx +mul r5.xyz, r5.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000) +add r2.xyz, -r2.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000) +mul r2.xyz, r2.xyzx, r5.xyzx +mad r2.xyz, r2.xyzx, r3.xxxx, r3.yzwy +mul r2.xyz, r0.yyyy, r2.xyzx +mad r1.xyz, r1.xyzx, r4.xyzx, r2.xyzx +mul r1.xyz, r0.xxxx, r1.xyzx +mul r1.w, r0.y, r0.x +min o1.xy, r9.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000) +dp3 r0.x, r1.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000) +mul r0.x, r1.w, r0.x +max r0.x, r1.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) +// === Fog Mod: Highlight Compression === +lt r35.x, l(0.500000), cb13[12].y +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 + if_nz r35.z + add r35.w, r35.y, l(-0.500000) + mul r35.w, r35.w, l(-0.666667) + exp r35.w, r35.w + add r35.w, -r35.w, l(1.000000) + mad r35.w, r35.w, l(1.500000), l(0.500000) + max r36.x, r35.y, l(0.001000) + div r36.x, r35.w, r36.x + mul r1.xyz, r1.xyzx, r36.xxxx + endif +endif +mov o0.xyzw, r1.xyzw +mov o1.w, l(0) +ret +// Approximately 0 instruction slots used 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_