// File: /workspace/github_cpp_makefile_star2_O2/Ciaxur[P]yagb-emu/include/imgui/imgui_demo.cpp
// Function: ImGui::ShowStyleEditor(ImGuiStyle*)
void ImGui::ShowStyleEditor(ImGuiStyle* ref)
{
    // You can pass in a reference ImGuiStyle structure to compare to, revert to and save to
    // (without a reference style pointer, we will use one compared locally as a reference)
    ImGuiStyle& style = ImGui::GetStyle();
    static ImGuiStyle ref_saved_style;

    // Default to using internal storage as reference
    static bool init = true;
    if (init && ref == NULL)
        ref_saved_style = style;
    init = false;
    if (ref == NULL)
        ref = &ref_saved_style;

    ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.50f);

    if (ImGui::ShowStyleSelector("Colors##Selector"))
        ref_saved_style = style;
    ImGui::ShowFontSelector("Fonts##Selector");

    // Simplified Settings (expose floating-pointer border sizes as boolean representing 0.0f or 1.0f)
    if (ImGui::SliderFloat("FrameRounding", &style.FrameRounding, 0.0f, 12.0f, "%.0f"))
        style.GrabRounding = style.FrameRounding; // Make GrabRounding always the same value as FrameRounding
    { bool border = (style.WindowBorderSize > 0.0f); if (ImGui::Checkbox("WindowBorder", &border)) { style.WindowBorderSize = border ? 1.0f : 0.0f; } }
    ImGui::SameLine();
    { bool border = (style.FrameBorderSize > 0.0f);  if (ImGui::Checkbox("FrameBorder",  &border)) { style.FrameBorderSize  = border ? 1.0f : 0.0f; } }
    ImGui::SameLine();
    { bool border = (style.PopupBorderSize > 0.0f);  if (ImGui::Checkbox("PopupBorder",  &border)) { style.PopupBorderSize  = border ? 1.0f : 0.0f; } }

    // Save/Revert button
    if (ImGui::Button("Save Ref"))
        *ref = ref_saved_style = style;
    ImGui::SameLine();
    if (ImGui::Button("Revert Ref"))
        style = *ref;
    ImGui::SameLine();
    HelpMarker(
        "Save/Revert in local non-persistent storage. Default Colors definition are not affected. "
        "Use \"Export\" below to save them somewhere.");

    ImGui::Separator();

    if (ImGui::BeginTabBar("##tabs", ImGuiTabBarFlags_None))
    {
        if (ImGui::BeginTabItem("Sizes"))
        {
            ImGui::Text("Main");
            ImGui::SliderFloat2("WindowPadding", (float*)&style.WindowPadding, 0.0f, 20.0f, "%.0f");
            ImGui::SliderFloat2("FramePadding", (float*)&style.FramePadding, 0.0f, 20.0f, "%.0f");
            ImGui::SliderFloat2("CellPadding", (float*)&style.CellPadding, 0.0f, 20.0f, "%.0f");
            ImGui::SliderFloat2("ItemSpacing", (float*)&style.ItemSpacing, 0.0f, 20.0f, "%.0f");
            ImGui::SliderFloat2("ItemInnerSpacing", (float*)&style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f");
            ImGui::SliderFloat2("TouchExtraPadding", (float*)&style.TouchExtraPadding, 0.0f, 10.0f, "%.0f");
            ImGui::SliderFloat("IndentSpacing", &style.IndentSpacing, 0.0f, 30.0f, "%.0f");
            ImGui::SliderFloat("ScrollbarSize", &style.ScrollbarSize, 1.0f, 20.0f, "%.0f");
            ImGui::SliderFloat("GrabMinSize", &style.GrabMinSize, 1.0f, 20.0f, "%.0f");
            ImGui::Text("Borders");
            ImGui::SliderFloat("WindowBorderSize", &style.WindowBorderSize, 0.0f, 1.0f, "%.0f");
            ImGui::SliderFloat("ChildBorderSize", &style.ChildBorderSize, 0.0f, 1.0f, "%.0f");
            ImGui::SliderFloat("PopupBorderSize", &style.PopupBorderSize, 0.0f, 1.0f, "%.0f");
            ImGui::SliderFloat("FrameBorderSize", &style.FrameBorderSize, 0.0f, 1.0f, "%.0f");
            ImGui::SliderFloat("TabBorderSize", &style.TabBorderSize, 0.0f, 1.0f, "%.0f");
            ImGui::Text("Rounding");
            ImGui::SliderFloat("WindowRounding", &style.WindowRounding, 0.0f, 12.0f, "%.0f");
            ImGui::SliderFloat("ChildRounding", &style.ChildRounding, 0.0f, 12.0f, "%.0f");
            ImGui::SliderFloat("FrameRounding", &style.FrameRounding, 0.0f, 12.0f, "%.0f");
            ImGui::SliderFloat("PopupRounding", &style.PopupRounding, 0.0f, 12.0f, "%.0f");
            ImGui::SliderFloat("ScrollbarRounding", &style.ScrollbarRounding, 0.0f, 12.0f, "%.0f");
            ImGui::SliderFloat("GrabRounding", &style.GrabRounding, 0.0f, 12.0f, "%.0f");
            ImGui::SliderFloat("LogSliderDeadzone", &style.LogSliderDeadzone, 0.0f, 12.0f, "%.0f");
            ImGui::SliderFloat("TabRounding", &style.TabRounding, 0.0f, 12.0f, "%.0f");
            ImGui::Text("Alignment");
            ImGui::SliderFloat2("WindowTitleAlign", (float*)&style.WindowTitleAlign, 0.0f, 1.0f, "%.2f");
            int window_menu_button_position = style.WindowMenuButtonPosition + 1;
            if (ImGui::Combo("WindowMenuButtonPosition", (int*)&window_menu_button_position, "None\0Left\0Right\0"))
                style.WindowMenuButtonPosition = window_menu_button_position - 1;
            ImGui::Combo("ColorButtonPosition", (int*)&style.ColorButtonPosition, "Left\0Right\0");
            ImGui::SliderFloat2("ButtonTextAlign", (float*)&style.ButtonTextAlign, 0.0f, 1.0f, "%.2f");
            ImGui::SameLine(); HelpMarker("Alignment applies when a button is larger than its text content.");
            ImGui::SliderFloat2("SelectableTextAlign", (float*)&style.SelectableTextAlign, 0.0f, 1.0f, "%.2f");
            ImGui::SameLine(); HelpMarker("Alignment applies when a selectable is larger than its text content.");
            ImGui::Text("Safe Area Padding");
            ImGui::SameLine(); HelpMarker("Adjust if you cannot see the edges of your screen (e.g. on a TV where scaling has not been configured).");
            ImGui::SliderFloat2("DisplaySafeAreaPadding", (float*)&style.DisplaySafeAreaPadding, 0.0f, 30.0f, "%.0f");
            ImGui::EndTabItem();
        }

        if (ImGui::BeginTabItem("Colors"))
        {
            static int output_dest = 0;
            static bool output_only_modified = true;
            if (ImGui::Button("Export"))
            {
                if (output_dest == 0)
                    ImGui::LogToClipboard();
                else
                    ImGui::LogToTTY();
                ImGui::LogText("ImVec4* colors = ImGui::GetStyle().Colors;" IM_NEWLINE);
                for (int i = 0; i < ImGuiCol_COUNT; i++)
                {
                    const ImVec4& col = style.Colors[i];
                    const char* name = ImGui::GetStyleColorName(i);
                    if (!output_only_modified || memcmp(&col, &ref->Colors[i], sizeof(ImVec4)) != 0)
                        ImGui::LogText("colors[ImGuiCol_%s]%*s= ImVec4(%.2ff, %.2ff, %.2ff, %.2ff);" IM_NEWLINE,
                            name, 23 - (int)strlen(name), "", col.x, col.y, col.z, col.w);
                }
                ImGui::LogFinish();
            }
            ImGui::SameLine(); ImGui::SetNextItemWidth(120); ImGui::Combo("##output_type", &output_dest, "To Clipboard\0To TTY\0");
            ImGui::SameLine(); ImGui::Checkbox("Only Modified Colors", &output_only_modified);

            static ImGuiTextFilter filter;
            filter.Draw("Filter colors", ImGui::GetFontSize() * 16);

            static ImGuiColorEditFlags alpha_flags = 0;
            if (ImGui::RadioButton("Opaque", alpha_flags == ImGuiColorEditFlags_None))             { alpha_flags = ImGuiColorEditFlags_None; } ImGui::SameLine();
            if (ImGui::RadioButton("Alpha",  alpha_flags == ImGuiColorEditFlags_AlphaPreview))     { alpha_flags = ImGuiColorEditFlags_AlphaPreview; } ImGui::SameLine();
            if (ImGui::RadioButton("Both",   alpha_flags == ImGuiColorEditFlags_AlphaPreviewHalf)) { alpha_flags = ImGuiColorEditFlags_AlphaPreviewHalf; } ImGui::SameLine();
            HelpMarker(
                "In the color list:\n"
                "Left-click on color square to open color picker,\n"
                "Right-click to open edit options menu.");

            ImGui::BeginChild("##colors", ImVec2(0, 0), true, ImGuiWindowFlags_AlwaysVerticalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar | ImGuiWindowFlags_NavFlattened);
            ImGui::PushItemWidth(-160);
            for (int i = 0; i < ImGuiCol_COUNT; i++)
            {
                const char* name = ImGui::GetStyleColorName(i);
                if (!filter.PassFilter(name))
                    continue;
                ImGui::PushID(i);
                ImGui::ColorEdit4("##color", (float*)&style.Colors[i], ImGuiColorEditFlags_AlphaBar | alpha_flags);
                if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
                {
                    // Tips: in a real user application, you may want to merge and use an icon font into the main font,
                    // so instead of "Save"/"Revert" you'd use icons!
                    // Read the FAQ and docs/FONTS.md about using icon fonts. It's really easy and super convenient!
                    ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) { ref->Colors[i] = style.Colors[i]; }
                    ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) { style.Colors[i] = ref->Colors[i]; }
                }
                ImGui::SameLine(0.0f, style.ItemInnerSpacing.x);
                ImGui::TextUnformatted(name);
                ImGui::PopID();
            }
            ImGui::PopItemWidth();
            ImGui::EndChild();

            ImGui::EndTabItem();
        }

        if (ImGui::BeginTabItem("Fonts"))
        {
            ImGuiIO& io = ImGui::GetIO();
            ImFontAtlas* atlas = io.Fonts;
            HelpMarker("Read FAQ and docs/FONTS.md for details on font loading.");
            ImGui::PushItemWidth(120);
            for (int i = 0; i < atlas->Fonts.Size; i++)
            {
                ImFont* font = atlas->Fonts[i];
                ImGui::PushID(font);
                NodeFont(font);
                ImGui::PopID();
            }
            if (ImGui::TreeNode("Atlas texture", "Atlas texture (%dx%d pixels)", atlas->TexWidth, atlas->TexHeight))
            {
                ImVec4 tint_col = ImVec4(1.0f, 1.0f, 1.0f, 1.0f);
                ImVec4 border_col = ImVec4(1.0f, 1.0f, 1.0f, 0.5f);
                ImGui::Image(atlas->TexID, ImVec2((float)atlas->TexWidth, (float)atlas->TexHeight), ImVec2(0, 0), ImVec2(1, 1), tint_col, border_col);
                ImGui::TreePop();
            }

            // Post-baking font scaling. Note that this is NOT the nice way of scaling fonts, read below.
            // (we enforce hard clamping manually as by default DragFloat/SliderFloat allows CTRL+Click text to get out of bounds).
            const float MIN_SCALE = 0.3f;
            const float MAX_SCALE = 2.0f;
            HelpMarker(
                "Those are old settings provided for convenience.\n"
                "However, the _correct_ way of scaling your UI is currently to reload your font at the designed size, "
                "rebuild the font atlas, and call style.ScaleAllSizes() on a reference ImGuiStyle structure.\n"
                "Using those settings here will give you poor quality results.");
            static float window_scale = 1.0f;
            if (ImGui::DragFloat("window scale", &window_scale, 0.005f, MIN_SCALE, MAX_SCALE, "%.2f", ImGuiSliderFlags_AlwaysClamp)) // Scale only this window
                ImGui::SetWindowFontScale(window_scale);
            ImGui::DragFloat("global scale", &io.FontGlobalScale, 0.005f, MIN_SCALE, MAX_SCALE, "%.2f", ImGuiSliderFlags_AlwaysClamp); // Scale everything
            ImGui::PopItemWidth();

            ImGui::EndTabItem();
        }

        if (ImGui::BeginTabItem("Rendering"))
        {
            ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines);
            ImGui::SameLine();
            HelpMarker("When disabling anti-aliasing lines, you'll probably want to disable borders in your style as well.");

            ImGui::Checkbox("Anti-aliased lines use texture", &style.AntiAliasedLinesUseTex);
            ImGui::SameLine();
            HelpMarker("Faster lines using texture data. Require backend to render with bilinear filtering (not point/nearest filtering).");

            ImGui::Checkbox("Anti-aliased fill", &style.AntiAliasedFill);
            ImGui::PushItemWidth(100);
            ImGui::DragFloat("Curve Tessellation Tolerance", &style.CurveTessellationTol, 0.02f, 0.10f, 10.0f, "%.2f");
            if (style.CurveTessellationTol < 0.10f) style.CurveTessellationTol = 0.10f;

            // When editing the "Circle Segment Max Error" value, draw a preview of its effect on auto-tessellated circles.
            ImGui::DragFloat("Circle Segment Max Error", &style.CircleSegmentMaxError, 0.01f, 0.10f, 10.0f, "%.2f");
            if (ImGui::IsItemActive())
            {
                ImGui::SetNextWindowPos(ImGui::GetCursorScreenPos());
                ImGui::BeginTooltip();
                ImVec2 p = ImGui::GetCursorScreenPos();
                ImDrawList* draw_list = ImGui::GetWindowDrawList();
                float RAD_MIN = 10.0f, RAD_MAX = 80.0f;
                float off_x = 10.0f;
                for (int n = 0; n < 7; n++)
                {
                    const float rad = RAD_MIN + (RAD_MAX - RAD_MIN) * (float)n / (7.0f - 1.0f);
                    draw_list->AddCircle(ImVec2(p.x + off_x + rad, p.y + RAD_MAX), rad, ImGui::GetColorU32(ImGuiCol_Text), 0);
                    off_x += 10.0f + rad * 2.0f;
                }
                ImGui::Dummy(ImVec2(off_x, RAD_MAX * 2.0f));
                ImGui::EndTooltip();
            }
            ImGui::SameLine();
            HelpMarker("When drawing circle primitives with \"num_segments == 0\" tesselation will be calculated automatically.");

            ImGui::DragFloat("Global Alpha", &style.Alpha, 0.005f, 0.20f, 1.0f, "%.2f"); // Not exposing zero here so user doesn't "lose" the UI (zero alpha clips all widgets). But application code could have a toggle to switch between zero and non-zero.
            ImGui::PopItemWidth();

            ImGui::EndTabItem();
        }

        ImGui::EndTabBar();
    }

    ImGui::PopItemWidth();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdi, %rbx
callq 0x35cfd
movq %rax, %r15
movb 0x92819(%rip), %al      # 0xe4130
testb %al, %al
movq %r15, -0x30(%rbp)
je 0x52c91
testq %rbx, %rbx
jne 0x51945
testb $0x1, 0x92809(%rip)     # 0xe4138
jne 0x51945
leaq 0x923e4(%rip), %rdi     # 0xe3d1c
movl $0x414, %edx            # imm = 0x414
movq %r15, %rsi
callq 0xc080
testq %rbx, %rbx
movb $0x1, 0x927e9(%rip)     # 0xe4138
leaq 0x923c6(%rip), %r14     # 0xe3d1c
cmovneq %rbx, %r14
callq 0x42777
mulss 0x4a6b1(%rip), %xmm0    # 0x9c018
callq 0x43b8c
leaq 0x521f5(%rip), %rdi     # 0xa3b68
callq 0x5ec2a
testb %al, %al
je 0x51990
leaq 0x92399(%rip), %rdi     # 0xe3d1c
movl $0x414, %edx            # imm = 0x414
movq %r15, %rsi
callq 0xc080
leaq 0x521e2(%rip), %rdi     # 0xa3b79
callq 0x5ec82
leaq 0x40(%r15), %r12
leaq 0x521e2(%rip), %rdi     # 0xa3b89
leaq 0x56998(%rip), %rdx     # 0xa8346
movss 0x4af82(%rip), %xmm1    # 0x9c938
xorps %xmm0, %xmm0
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x80384
testb %al, %al
je 0x519d3
movss 0x40(%r15), %xmm0
movss %xmm0, 0x7c(%r15)
movq %r15, %rax
addq $0x10, %r15
movss 0x10(%rax), %xmm0
ucomiss 0x4aede(%rip), %xmm0    # 0x9c8c4
leaq -0x40(%rbp), %rsi
seta (%rsi)
leaq 0x521a3(%rip), %rdi     # 0xa3b97
callq 0x7bae6
testb %al, %al
je 0x51a15
cmpb $0x0, -0x40(%rbp)
jne 0x51a08
xorps %xmm0, %xmm0
jmp 0x51a10
movss 0x4a5e8(%rip), %xmm0    # 0x9bff8
movss %xmm0, (%r15)
movss 0x4a5d3(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
movq -0x30(%rbp), %rax
leaq 0x44(%rax), %rbx
movss 0x44(%rax), %xmm0
ucomiss 0x4ae8b(%rip), %xmm0    # 0x9c8c4
leaq -0x40(%rbp), %rsi
seta (%rsi)
leaq 0x5215d(%rip), %rdi     # 0xa3ba4
callq 0x7bae6
testb %al, %al
je 0x51a67
cmpb $0x0, -0x40(%rbp)
jne 0x51a5b
xorps %xmm0, %xmm0
jmp 0x51a63
movss 0x4a595(%rip), %xmm0    # 0x9bff8
movss %xmm0, (%rbx)
movq %rbx, -0x48(%rbp)
movss 0x4a57d(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
movq -0x30(%rbp), %rax
leaq 0x34(%rax), %r13
movss 0x34(%rax), %xmm0
ucomiss 0x4ae35(%rip), %xmm0    # 0x9c8c4
leaq -0x40(%rbp), %rsi
seta (%rsi)
leaq 0x52113(%rip), %rdi     # 0xa3bb0
callq 0x7bae6
testb %al, %al
je 0x51abf
cmpb $0x0, -0x40(%rbp)
jne 0x51ab1
xorps %xmm0, %xmm0
jmp 0x51ab9
movss 0x4a53f(%rip), %xmm0    # 0x9bff8
movss %xmm0, (%r13)
leaq -0x40(%rbp), %rsi
andq $0x0, (%rsi)
leaq 0x520ee(%rip), %rdi     # 0xa3bbc
callq 0x7a64b
testb %al, %al
je 0x51aff
leaq 0x9223e(%rip), %rdi     # 0xe3d1c
movl $0x414, %edx            # imm = 0x414
movq -0x30(%rbp), %rbx
movq %rbx, %rsi
callq 0xc080
movl $0x414, %edx            # imm = 0x414
movq %r14, %rdi
movq %rbx, %rsi
callq 0xc130
movss 0x4a4e9(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
leaq -0x40(%rbp), %rsi
andq $0x0, (%rsi)
leaq 0x520a7(%rip), %rdi     # 0xa3bc5
callq 0x7a64b
testb %al, %al
je 0x51b38
movl $0x414, %edx            # imm = 0x414
movq -0x30(%rbp), %rdi
movq %r14, %rsi
callq 0xc080
movd 0x4a4b0(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
leaq 0x52081(%rip), %rdi     # 0xa3bd0
callq 0x530bc
callq 0x7cad7
leaq 0x520f4(%rip), %rdi     # 0xa3c54
xorl %esi, %esi
callq 0x8b8b6
testb %al, %al
je 0x52c7a
leaq 0x520e5(%rip), %rdi     # 0xa3c5b
xorl %esi, %esi
xorl %edx, %edx
callq 0x8ccd3
testb %al, %al
je 0x52003
leaq 0x520d3(%rip), %rdi     # 0xa3c61
xorl %eax, %eax
callq 0x795ac
movq %r12, -0x50(%rbp)
movq -0x30(%rbp), %r12
leaq 0x4(%r12), %rsi
leaq 0x520bd(%rip), %rdi     # 0xa3c66
leaq 0x56796(%rip), %rbx     # 0xa8346
movss 0x4ad84(%rip), %xmm1    # 0x9c93c
xorps %xmm0, %xmm0
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x803b7
leaq 0x38(%r12), %rsi
leaq 0x520a3(%rip), %rdi     # 0xa3c74
xorps %xmm0, %xmm0
movss 0x4ad60(%rip), %xmm1    # 0x9c93c
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x803b7
leaq 0x58(%r12), %rsi
leaq 0x5208f(%rip), %rdi     # 0xa3c81
xorps %xmm0, %xmm0
movss 0x4ad3f(%rip), %xmm1    # 0x9c93c
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x803b7
leaq 0x48(%r12), %rsi
leaq 0x5207a(%rip), %rdi     # 0xa3c8d
xorps %xmm0, %xmm0
movss 0x4ad1e(%rip), %xmm1    # 0x9c93c
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x803b7
leaq 0x50(%r12), %rsi
leaq 0x52065(%rip), %rdi     # 0xa3c99
xorps %xmm0, %xmm0
movss 0x4acfd(%rip), %xmm1    # 0x9c93c
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x803b7
leaq 0x60(%r12), %rsi
leaq 0x52055(%rip), %rdi     # 0xa3caa
movss 0x4a3bf(%rip), %xmm1    # 0x9c01c
xorps %xmm0, %xmm0
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x803b7
leaq 0x68(%r12), %rsi
leaq 0x52046(%rip), %rdi     # 0xa3cbc
movss 0x50596(%rip), %xmm1    # 0xa2214
xorps %xmm0, %xmm0
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x70(%r12), %rsi
leaq 0x52033(%rip), %rdi     # 0xa3cca
movss 0x4a359(%rip), %xmm0    # 0x9bff8
movss 0x4ac95(%rip), %xmm1    # 0x9c93c
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x78(%r12), %rsi
leaq 0x5201b(%rip), %rdi     # 0xa3cd8
movss 0x4a333(%rip), %xmm0    # 0x9bff8
movss 0x4ac6f(%rip), %xmm1    # 0x9c93c
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x57333(%rip), %rdi     # 0xa9011
xorl %eax, %eax
callq 0x795ac
leaq 0x51ff8(%rip), %rdi     # 0xa3ce4
xorps %xmm0, %xmm0
movq %r15, %rsi
movss 0x4a2fe(%rip), %xmm1    # 0x9bff8
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x2c(%r12), %rsi
leaq 0x51fe5(%rip), %rdi     # 0xa3cf5
xorps %xmm0, %xmm0
movss 0x4a2dd(%rip), %xmm1    # 0x9bff8
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x51fd9(%rip), %rdi     # 0xa3d05
xorps %xmm0, %xmm0
movq %r13, %rsi
movss 0x4a2be(%rip), %xmm1    # 0x9bff8
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x51fca(%rip), %rdi     # 0xa3d15
xorps %xmm0, %xmm0
movq -0x48(%rbp), %rsi
movss 0x4a29e(%rip), %xmm1    # 0x9bff8
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x88(%r12), %rsi
leaq 0x51fb2(%rip), %rdi     # 0xa3d25
xorps %xmm0, %xmm0
movss 0x4a27a(%rip), %xmm1    # 0x9bff8
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x52003(%rip), %rdi     # 0xa3d92
xorl %eax, %eax
callq 0x795ac
leaq 0xc(%r12), %rsi
leaq 0x51f91(%rip), %rdi     # 0xa3d33
movss 0x4ab8e(%rip), %xmm1    # 0x9c938
xorps %xmm0, %xmm0
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x28(%r12), %rsi
leaq 0x51f7f(%rip), %rdi     # 0xa3d42
xorps %xmm0, %xmm0
movss 0x4ab6a(%rip), %xmm1    # 0x9c938
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x51daa(%rip), %rdi     # 0xa3b89
xorps %xmm0, %xmm0
movq -0x50(%rbp), %rsi
movss 0x4ab4a(%rip), %xmm1    # 0x9c938
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x30(%r12), %rsi
leaq 0x51f4c(%rip), %rdi     # 0xa3d50
xorps %xmm0, %xmm0
movss 0x4ab29(%rip), %xmm1    # 0x9c938
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x74(%r12), %rsi
leaq 0x51f39(%rip), %rdi     # 0xa3d5e
xorps %xmm0, %xmm0
movss 0x4ab08(%rip), %xmm1    # 0x9c938
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x7c(%r12), %rsi
leaq 0x51f2a(%rip), %rdi     # 0xa3d70
xorps %xmm0, %xmm0
movss 0x4aae7(%rip), %xmm1    # 0x9c938
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x80(%r12), %rsi
leaq 0x51f13(%rip), %rdi     # 0xa3d7d
xorps %xmm0, %xmm0
movss 0x4aac3(%rip), %xmm1    # 0x9c938
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x84(%r12), %rsi
leaq 0x51f01(%rip), %rdi     # 0xa3d8f
xorps %xmm0, %xmm0
movss 0x4aa9f(%rip), %xmm1    # 0x9c938
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x80384
leaq 0x55fd6(%rip), %rdi     # 0xa7e80
xorl %eax, %eax
callq 0x795ac
leaq 0x1c(%r12), %rsi
leaq 0x51ede(%rip), %rdi     # 0xa3d9b
leaq 0x51b2f(%rip), %rdx     # 0xa39f3
xorps %xmm0, %xmm0
movss 0x4a129(%rip), %xmm1    # 0x9bff8
xorl %ecx, %ecx
callq 0x803b7
movl 0x24(%r12), %eax
incl %eax
leaq -0x40(%rbp), %rsi
movl %eax, (%rsi)
leaq 0x51ec2(%rip), %rdi     # 0xa3dac
leaq 0x5053f(%rip), %rdx     # 0xa2430
pushq $-0x1
popq %rcx
callq 0x7dd48
testb %al, %al
je 0x51f07
movl -0x40(%rbp), %eax
decl %eax
movl %eax, 0x24(%r12)
leaq 0x90(%r12), %rsi
leaq 0x51eaf(%rip), %rdi     # 0xa3dc5
leaq 0x50524(%rip), %rdx     # 0xa2441
pushq $-0x1
popq %rcx
callq 0x7dd48
leaq 0x94(%r12), %rsi
leaq 0x51ea5(%rip), %rdi     # 0xa3dd9
leaq 0x51ab8(%rip), %rbx     # 0xa39f3
movss 0x4a0b5(%rip), %xmm1    # 0x9bff8
xorps %xmm0, %xmm0
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x803b7
movss 0x4a098(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
leaq 0x51e82(%rip), %rdi     # 0xa3de9
callq 0x530bc
leaq 0x9c(%r12), %rsi
leaq 0x51eaf(%rip), %rdi     # 0xa3e2a
xorps %xmm0, %xmm0
movss 0x4a072(%rip), %xmm1    # 0x9bff8
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x803b7
xorps %xmm0, %xmm0
movss 0x4a055(%rip), %xmm1    # 0x9bff0
callq 0x437ec
leaq 0x51e97(%rip), %rdi     # 0xa3e3e
callq 0x530bc
leaq 0x51ed0(%rip), %rdi     # 0xa3e83
xorl %eax, %eax
callq 0x795ac
xorps %xmm0, %xmm0
movss 0x4a02b(%rip), %xmm1    # 0x9bff0
callq 0x437ec
leaq 0x51ec4(%rip), %rdi     # 0xa3e95
callq 0x530bc
leaq 0xac(%r12), %rsi
leaq 0x51f18(%rip), %rdi     # 0xa3efd
leaq 0x5635a(%rip), %rdx     # 0xa8346
movd 0x50220(%rip), %xmm1    # 0xa2214
xorps %xmm0, %xmm0
xorl %ecx, %ecx
callq 0x803b7
callq 0x8d56f
leaq 0x51f96(%rip), %rdi     # 0xa3fa0
xorl %esi, %esi
xorl %edx, %edx
callq 0x8ccd3
testb %al, %al
je 0x5238a
leaq -0x40(%rbp), %rsi
andq $0x0, (%rsi)
leaq 0x51eea(%rip), %rdi     # 0xa3f14
callq 0x7a64b
testb %al, %al
movq -0x30(%rbp), %r12
je 0x520fb
cmpl $0x0, 0x920fa(%rip)     # 0xe413c
je 0x5204e
pushq $-0x1
popq %rdi
callq 0x464df
jmp 0x52056
pushq $-0x1
popq %rdi
callq 0x4659c
leaq 0x51ebe(%rip), %rdi     # 0xa3f1b
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x462f3
movl $0xc4, %r15d
addq %r15, %r12
addq %r14, %r15
cmpq $0x35, %rbx
je 0x520f2
movl %ebx, %edi
callq 0x360ea
movq %rax, %r13
cmpb $0x1, 0x8d4ab(%rip)     # 0xdf534
jne 0x520a5
movdqu (%r15), %xmm0
movdqu (%r12), %xmm1
pcmpeqb %xmm0, %xmm1
pmovmskb %xmm1, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0x520e5
movq %r13, %rdi
callq 0xc380
pushq $0x17
popq %rdx
subl %eax, %edx
cvtss2sd (%r12), %xmm0
cvtss2sd 0x4(%r12), %xmm1
cvtss2sd 0x8(%r12), %xmm2
cvtss2sd 0xc(%r12), %xmm3
leaq 0x51e73(%rip), %rdi     # 0xa3f47
movq %r13, %rsi
leaq 0x49e43(%rip), %rcx     # 0x9bf21
movb $0x4, %al
callq 0x462f3
incq %rbx
addq $0x10, %r15
addq $0x10, %r12
jmp 0x52072
callq 0x41ef0
movq -0x30(%rbp), %r12
movss 0x49eed(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
movss 0x4a789(%rip), %xmm0    # 0x9c89c
callq 0x35469
leaq 0x51e65(%rip), %rdi     # 0xa3f84
leaq 0x92016(%rip), %rsi     # 0xe413c
leaq 0x50320(%rip), %rdx     # 0xa244d
pushq $-0x1
popq %rcx
callq 0x7dd48
xorps %xmm0, %xmm0
movss 0x49eb0(%rip), %xmm1    # 0x9bff0
callq 0x437ec
leaq 0x51e46(%rip), %rdi     # 0xa3f92
leaq 0x8d3e1(%rip), %rsi     # 0xdf534
callq 0x7bae6
movb 0x920fa(%rip), %al      # 0xe4258
testb %al, %al
je 0x52cc6
callq 0x42b2e
mulss 0x4a775(%rip), %xmm0    # 0x9c8e8
leaq 0x91fc6(%rip), %rdi     # 0xe4140
leaq 0x51e26(%rip), %rsi     # 0xa3fa7
callq 0x35410
xorl %esi, %esi
cmpl $0x0, 0x920d1(%rip)     # 0xe4260
sete %sil
leaq 0x51e1b(%rip), %rdi     # 0xa3fb5
callq 0x7bea5
testb %al, %al
je 0x521aa
andl $0x0, 0x920b6(%rip)     # 0xe4260
movss 0x49e3e(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
xorl %esi, %esi
cmpl $0x20000, 0x9209a(%rip) # imm = 0x20000
sete %sil
leaq 0x53f67(%rip), %rdi     # 0xa6138
callq 0x7bea5
testb %al, %al
je 0x521e4
movl $0x20000, 0x9207c(%rip) # imm = 0x20000
movss 0x49e04(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
xorl %esi, %esi
cmpl $0x40000, 0x92060(%rip) # imm = 0x40000
sete %sil
leaq 0x51db1(%rip), %rdi     # 0xa3fbc
callq 0x7bea5
testb %al, %al
je 0x5221e
movl $0x40000, 0x92042(%rip) # imm = 0x40000
movd 0x49dca(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
leaq 0x51d8c(%rip), %rdi     # 0xa3fc1
callq 0x530bc
leaq -0x40(%rbp), %rsi
andq $0x0, (%rsi)
leaq 0x51de3(%rip), %rdi     # 0xa402c
pushq $0x1
popq %rdx
movl $0x80c000, %ecx         # imm = 0x80C000
callq 0x40abf
movd 0x4ffba(%rip), %xmm0    # 0xa2218
callq 0x43b8c
movl $0xc4, %eax
leaq (%r12,%rax), %r15
addq %rax, %r14
xorl %r12d, %r12d
leaq 0x91ec7(%rip), %r13     # 0xe4140
cmpq $0x35, %r12
je 0x5237b
movl %r12d, %edi
callq 0x360ea
movq %rax, %rbx
movq %r13, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x35504
testb %al, %al
je 0x5236b
movl %r12d, %edi
callq 0x42f5a
movl 0x91faf(%rip), %edx     # 0xe4260
movl $0x10000, %eax          # imm = 0x10000
orl %eax, %edx
leaq 0x51d76(%rip), %rdi     # 0xa4035
movq %r15, %rsi
callq 0x850a1
movdqu (%r14), %xmm0
movdqu (%r15), %xmm1
pcmpeqb %xmm0, %xmm1
pmovmskb %xmm1, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0x5234a
movq -0x30(%rbp), %rax
movss 0x50(%rax), %xmm1
pxor %xmm0, %xmm0
callq 0x437ec
andq $0x0, -0x40(%rbp)
leaq 0x51d3f(%rip), %rdi     # 0xa403d
leaq -0x40(%rbp), %rsi
callq 0x7a64b
testb %al, %al
je 0x52315
movdqu (%r15), %xmm0
movdqu %xmm0, (%r14)
movq -0x30(%rbp), %rax
movd 0x50(%rax), %xmm1
pxor %xmm0, %xmm0
callq 0x437ec
andq $0x0, -0x40(%rbp)
leaq 0x51d0f(%rip), %rdi     # 0xa4042
leaq -0x40(%rbp), %rsi
callq 0x7a64b
testb %al, %al
je 0x5234a
movdqu (%r14), %xmm0
movdqu %xmm0, (%r15)
movq -0x30(%rbp), %rax
movd 0x50(%rax), %xmm1
pxor %xmm0, %xmm0
callq 0x437ec
movq %rbx, %rdi
xorl %esi, %esi
callq 0x7959d
callq 0x42fea
incq %r12
addq $0x10, %r14
addq $0x10, %r15
jmp 0x52279
callq 0x43cbe
callq 0x40b4b
callq 0x8d56f
leaq 0x51cb8(%rip), %rdi     # 0xa4049
xorl %esi, %esi
xorl %edx, %edx
callq 0x8ccd3
testb %al, %al
movq -0x30(%rbp), %r12
je 0x529e4
callq 0x37e82
movq %rax, -0x98(%rbp)
movq 0xa0(%rax), %rbx
leaq 0x51c8f(%rip), %rdi     # 0xa404f
callq 0x530bc
movss 0x4a4cf(%rip), %xmm0    # 0x9c89c
callq 0x43b8c
leaq 0x40(%rbx), %rdi
leaq 0x5a08d(%rip), %r13     # 0xac46a
xorl %esi, %esi
movq %rbx, -0xa8(%rbp)
movq %rdi, -0xa0(%rbp)
cmpl (%rdi), %esi
jge 0x528c8
movl %esi, -0x54(%rbp)
callq 0x4c056
movq (%rax), %r14
movq %r14, %rdi
callq 0x42f1f
callq 0x37e82
movq %rax, %rbx
callq 0x35cfd
movq %rax, -0xb0(%rbp)
movq 0x48(%r14), %rax
leaq 0x56(%rax), %rdx
testq %rax, %rax
leaq 0x49af3(%rip), %rax     # 0x9bf21
cmoveq %rax, %rdx
cvtss2sd 0x14(%r14), %xmm0
movl 0x28(%r14), %ecx
movswl 0x50(%r14), %r8d
movq %r14, %rdi
leaq 0x59dc3(%rip), %rsi     # 0xac20e
movb $0x1, %al
callq 0x88935
movl %eax, %r15d
xorps %xmm0, %xmm0
movss 0x49b90(%rip), %xmm1    # 0x9bff0
callq 0x437ec
leaq 0x59dcc(%rip), %rdi     # 0xac238
callq 0x7a657
testb %al, %al
je 0x5247c
movq %r14, 0xb0(%rbx)
testb %r15b, %r15b
je 0x528ab
movq %r14, %rdi
callq 0x4231c
leaq 0x5a8fa(%rip), %rdi     # 0xacd8e
xorl %eax, %eax
callq 0x795ac
callq 0x42382
leaq 0x58(%r14), %rsi
leaq 0x59d9c(%rip), %rdi     # 0xac247
movss 0x4fd69(%rip), %xmm0    # 0xa221c
movss 0x4a465(%rip), %xmm1    # 0x9c920
movss 0x4a3d1(%rip), %xmm2    # 0x9c894
leaq 0x577df(%rip), %rdx     # 0xa9ca9
xorl %ecx, %ecx
callq 0x7f52a
xorps %xmm0, %xmm0
movss 0x49b14(%rip), %xmm1    # 0x9bff0
callq 0x437ec
leaq 0x59d6a(%rip), %rdi     # 0xac252
callq 0x530bc
movss 0x5c(%r14), %xmm2
movss 0x60(%r14), %xmm3
cvtss2sd %xmm2, %xmm0
cvtss2sd %xmm3, %xmm1
subss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
leaq 0x59ece(%rip), %rdi     # 0xac3de
movb $0x3, %al
callq 0x795ac
movzwl 0x52(%r14), %edx
leaq 0x59edf(%rip), %rdi     # 0xac402
movl %edx, %esi
xorl %eax, %eax
callq 0x795ac
movzwl 0x54(%r14), %edx
leaq 0x59eec(%rip), %rdi     # 0xac424
movl %edx, %esi
xorl %eax, %eax
callq 0x795ac
cvtsi2ssl 0x64(%r14), %xmm0
ucomiss 0x4a376(%rip), %xmm0    # 0x9c8c4
jb 0x52556
sqrtss %xmm0, %xmm0
jmp 0x5255b
callq 0xc8a0
cvttss2si %xmm0, %ecx
movl 0x64(%r14), %esi
leaq 0x59edc(%rip), %rdi     # 0xac446
movl %ecx, %edx
xorl %eax, %eax
callq 0x795ac
pushq $0x56
popq %r15
xorl %ebx, %ebx
movswq 0x50(%r14), %rax
cmpq %rax, %rbx
jge 0x525c6
movq 0x48(%r14), %rax
testq %rax, %rax
je 0x525ba
leaq (%rax,%r15), %rdx
movl -0x3e(%rax,%r15), %ecx
movl -0x3a(%rax,%r15), %r8d
movzbl -0x36(%rax,%r15), %r9d
cvtss2sd -0x2a(%rax,%r15), %xmm0
cvtss2sd -0x26(%rax,%r15), %xmm1
movq %r13, %rdi
movl %ebx, %esi
movb $0x2, %al
callq 0x79bb3
incq %rbx
addq $0x88, %r15
jmp 0x52579
movl 0x28(%r14), %edx
leaq 0x59ee2(%rip), %rdi     # 0xac4b3
leaq 0x59ee2(%rip), %rsi     # 0xac4ba
xorl %eax, %eax
callq 0x88825
testb %al, %al
je 0x528a6
xorl %r12d, %r12d
xorl %edi, %edi
movss 0x49a04(%rip), %xmm0    # 0x9bff8
callq 0x35d33
movl %eax, -0x58(%rbp)
cmpl $0x10000, %r12d         # imm = 0x10000
jae 0x5289d
testw $0xfff, %r12w           # imm = 0xFFF
jne 0x52635
movl %r12d, %edx
orl $0xfff, %edx            # imm = 0xFFF
movq %r14, %rdi
movl %r12d, %esi
callq 0x6b2b8
testb %al, %al
je 0x52635
orl $0xf00, %r12d           # imm = 0xF00
jmp 0x52891
xorl %r15d, %r15d
xorl %ebx, %ebx
cmpl $0x100, %r15d           # imm = 0x100
je 0x5265e
leal (%r12,%r15), %eax
movzwl %ax, %esi
movq %r14, %rdi
callq 0x6aef2
cmpq $0x1, %rax
sbbl $-0x1, %ebx
incl %r15d
jmp 0x5263a
testl %ebx, %ebx
je 0x52891
movl %r12d, %edi
leal 0xff(%r12), %ecx
cmpl $0x1, %ebx
leaq 0x59e62(%rip), %r9      # 0xac4dd
leaq 0x59e62(%rip), %rax     # 0xac4e4
cmoveq %rax, %r9
leaq 0x59e39(%rip), %rsi     # 0xac4c6
movl %r12d, %edx
movl %ebx, %r8d
xorl %eax, %eax
callq 0x88935
testb %al, %al
je 0x52891
movss 0x14(%r14), %xmm1
movq -0xb0(%rbp), %rax
movss 0x4c(%rax), %xmm0
movss %xmm1, -0x48(%rbp)
addss %xmm1, %xmm0
movss %xmm0, -0x70(%rbp)
callq 0x438bd
movaps %xmm0, -0x90(%rbp)
callq 0x42af8
movq %rax, -0x50(%rbp)
movaps -0x90(%rbp), %xmm0
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
movaps %xmm0, -0xc0(%rbp)
xorl %ebx, %ebx
movl %r12d, %r13d
cmpl $0x100, %ebx            # imm = 0x100
je 0x52865
movl %ebx, %eax
andl $0xf, %eax
cvtsi2ss %eax, %xmm0
movss -0x70(%rbp), %xmm2
mulss %xmm2, %xmm0
addss -0x90(%rbp), %xmm0
movl %ebx, %eax
shrl $0x4, %eax
cvtsi2ss %eax, %xmm1
mulss %xmm2, %xmm1
addss -0xc0(%rbp), %xmm1
movss %xmm0, -0x40(%rbp)
movss %xmm1, -0x3c(%rbp)
movss -0x48(%rbp), %xmm2
addss %xmm2, %xmm0
addss %xmm2, %xmm1
movss %xmm0, -0x80(%rbp)
movss %xmm1, -0x7c(%rbp)
movzwl %r13w, %esi
movq %r14, %rdi
callq 0x6aef2
movq %rax, %r15
testq %rax, %rax
movl $0x64ffffff, %ecx       # imm = 0x64FFFFFF
movl $0x32ffffff, %eax       # imm = 0x32FFFFFF
cmovel %eax, %ecx
xorps %xmm0, %xmm0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rsi
leaq -0x80(%rbp), %rdx
pushq $0xf
popq %r8
movss 0x49874(%rip), %xmm1    # 0x9bff8
callq 0x63f6c
testq %r15, %r15
je 0x5285b
movsd -0x40(%rbp), %xmm1
movzwl %r13w, %ecx
movq %r14, %rdi
movq -0x50(%rbp), %rsi
movss -0x48(%rbp), %xmm0
movl -0x58(%rbp), %edx
callq 0x6b794
leaq -0x40(%rbp), %rdi
leaq -0x80(%rbp), %rsi
pushq $0x1
popq %rdx
callq 0x37779
testb %al, %al
je 0x5285b
callq 0x44503
leaq 0x59d17(%rip), %rdi     # 0xac4ea
movl %r13d, %esi
xorl %eax, %eax
callq 0x795ac
callq 0x7cad7
movl (%r15), %esi
shrl $0x1f, %esi
leaq 0x4d7cb(%rip), %rdi     # 0x9ffba
xorl %eax, %eax
callq 0x795ac
cvtss2sd 0x4(%r15), %xmm0
leaq 0x59cf9(%rip), %rdi     # 0xac4fc
movb $0x1, %al
callq 0x795ac
cvtss2sd 0x8(%r15), %xmm0
cvtss2sd 0xc(%r15), %xmm1
cvtss2sd 0x10(%r15), %xmm2
cvtss2sd 0x14(%r15), %xmm3
leaq 0x59ce2(%rip), %rdi     # 0xac50b
movb $0x4, %al
callq 0x795ac
cvtss2sd 0x18(%r15), %xmm0
cvtss2sd 0x1c(%r15), %xmm1
cvtss2sd 0x20(%r15), %xmm2
cvtss2sd 0x24(%r15), %xmm3
leaq 0x59cda(%rip), %rdi     # 0xac529
movb $0x4, %al
callq 0x795ac
callq 0x4463b
incl %ebx
incl %r13d
jmp 0x526ee
movss -0x70(%rbp), %xmm0
mulss 0x4a076(%rip), %xmm0    # 0x9c8e8
movss %xmm0, -0x40(%rbp)
movss %xmm0, -0x3c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x7c685
callq 0x89637
leaq 0x59bd9(%rip), %r13     # 0xac46a
addl $0x100, %r12d           # imm = 0x100
jmp 0x525fc
callq 0x89637
movq -0x30(%rbp), %r12
callq 0x89637
callq 0x42fea
movl -0x54(%rbp), %esi
incl %esi
movq -0xa8(%rbp), %rbx
movq -0xa0(%rbp), %rdi
jmp 0x523ed
movl 0x28(%rbx), %edx
movl 0x2c(%rbx), %ecx
leaq 0x517b2(%rip), %rdi     # 0xa4087
leaq 0x517b9(%rip), %rsi     # 0xa4095
xorl %eax, %eax
callq 0x88825
testb %al, %al
je 0x5294c
movaps 0x49682(%rip), %xmm0    # 0x9bf70
leaq -0x40(%rbp), %r8
movups %xmm0, (%r8)
movaps 0x4f9b3(%rip), %xmm0    # 0xa22b0
leaq -0x80(%rbp), %r9
movups %xmm0, (%r9)
cvtsi2ssl 0x28(%rbx), %xmm0
cvtsi2ssl 0x2c(%rbx), %xmm1
movq 0x8(%rbx), %rdi
leaq -0xd8(%rbp), %rsi
movss %xmm0, (%rsi)
leaq -0xd0(%rbp), %rdx
andq $0x0, (%rdx)
movss %xmm1, 0x4(%rsi)
movabsq $0x3f8000003f800000, %rax # imm = 0x3F8000003F800000
leaq -0xc8(%rbp), %rcx
movq %rax, (%rcx)
callq 0x7b620
callq 0x89637
leaq 0x5175f(%rip), %rdi     # 0xa40b2
callq 0x530bc
leaq 0x51883(%rip), %rdi     # 0xa41e2
leaq 0x8cbd2(%rip), %rsi     # 0xdf538
leaq 0x51086(%rip), %rdx     # 0xa39f3
movss 0x4f8a7(%rip), %xmm0    # 0xa221c
movss 0x49fa3(%rip), %xmm1    # 0x9c920
movss 0x49f0f(%rip), %xmm2    # 0x9c894
pushq $0x10
popq %rcx
callq 0x7f52a
testb %al, %al
je 0x5299e
movss 0x8cb9f(%rip), %xmm0    # 0xdf538
callq 0x42b58
movq -0x98(%rbp), %rsi
addq $0xa8, %rsi
leaq 0x5183c(%rip), %rdi     # 0xa41ef
leaq 0x51039(%rip), %rdx     # 0xa39f3
movss 0x4f85a(%rip), %xmm0    # 0xa221c
movd 0x49f56(%rip), %xmm1    # 0x9c920
movss 0x49ec2(%rip), %xmm2    # 0x9c894
pushq $0x10
popq %rcx
callq 0x7f52a
callq 0x43cbe
callq 0x8d56f
leaq 0x51811(%rip), %rdi     # 0xa41fc
xorl %esi, %esi
xorl %edx, %edx
callq 0x8ccd3
testb %al, %al
je 0x52c75
leaq 0xb8(%r12), %rsi
leaq 0x517fb(%rip), %rdi     # 0xa4206
callq 0x7bae6
movss 0x495d8(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
leaq 0x517f2(%rip), %rdi     # 0xa4219
callq 0x530bc
leaq 0xb9(%r12), %rsi
leaq 0x51841(%rip), %rdi     # 0xa427c
callq 0x7bae6
xorps %xmm0, %xmm0
movss 0x495a5(%rip), %xmm1    # 0x9bff0
callq 0x437ec
leaq 0x51844(%rip), %rdi     # 0xa429b
callq 0x530bc
leaq 0xba(%r12), %rsi
leaq 0x518a2(%rip), %rdi     # 0xa430d
callq 0x7bae6
movss 0x49e38(%rip), %xmm0    # 0x9c8b0
callq 0x43b8c
leaq 0xbc(%r12), %rbx
leaq 0x51893(%rip), %rdi     # 0xa431f
leaq 0x50f60(%rip), %rdx     # 0xa39f3
movss 0x4f785(%rip), %xmm0    # 0xa2220
movss 0x49e11(%rip), %xmm1    # 0x9c8b4
movss 0x49571(%rip), %xmm2    # 0x9c01c
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0x7f52a
movss 0x49df7(%rip), %xmm0    # 0x9c8b4
ucomiss 0xbc(%r12), %xmm0
jbe 0x52ace
movl $0x3dcccccd, (%rbx)     # imm = 0x3DCCCCCD
movq %r12, %rsi
addq $0xc0, %rsi
leaq 0x5185d(%rip), %rdi     # 0xa433c
leaq 0x50f0d(%rip), %rdx     # 0xa39f3
movss 0x4f736(%rip), %xmm0    # 0xa2224
movss 0x49dbe(%rip), %xmm1    # 0x9c8b4
movss 0x4951e(%rip), %xmm2    # 0x9c01c
xorl %r15d, %r15d
xorl %ecx, %ecx
callq 0x7f52a
callq 0x40529
testb %al, %al
je 0x52c1f
callq 0x438bd
leaq -0x40(%rbp), %rbx
movlps %xmm0, (%rbx)
leaq -0x80(%rbp), %rdx
andq $0x0, (%rdx)
movq %rbx, %rdi
xorl %esi, %esi
callq 0x42997
callq 0x44503
callq 0x438bd
movaps %xmm0, -0x70(%rbp)
callq 0x42af8
movq %rax, %r14
movaps -0x70(%rbp), %xmm0
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
addss 0x4f6cf(%rip), %xmm0    # 0xa2228
movaps %xmm0, -0x90(%rbp)
movss 0x494b4(%rip), %xmm0    # 0x9c01c
movaps %xmm0, %xmm1
cmpl $0x7, %r15d
je 0x52c06
cvtsi2ss %r15d, %xmm2
mulss 0x4f6aa(%rip), %xmm2    # 0xa222c
divss 0x49496(%rip), %xmm2    # 0x9c020
addss %xmm0, %xmm2
movss %xmm2, -0x48(%rbp)
movaps -0x70(%rbp), %xmm0
addss %xmm1, %xmm0
addss %xmm2, %xmm0
movss %xmm0, -0x40(%rbp)
movaps -0x90(%rbp), %xmm0
movss %xmm0, -0x3c(%rbp)
xorl %edi, %edi
movss 0x4943e(%rip), %xmm0    # 0x9bff8
movss %xmm1, -0x50(%rbp)
callq 0x35d33
movq %r14, %rdi
movq %rbx, %rsi
movss -0x48(%rbp), %xmm0
movl %eax, %edx
xorl %ecx, %ecx
movss 0x4941d(%rip), %xmm1    # 0x9bff8
callq 0x6436a
movss -0x50(%rbp), %xmm1
movss 0x4942f(%rip), %xmm0    # 0x9c01c
movss -0x48(%rbp), %xmm2
addss %xmm2, %xmm2
addss %xmm0, %xmm2
addss %xmm2, %xmm1
incl %r15d
jmp 0x52b6b
leaq -0x40(%rbp), %rdi
movss %xmm1, (%rdi)
movl $0x43200000, 0x4(%rdi)  # imm = 0x43200000
callq 0x7c685
callq 0x4463b
movss 0x493c9(%rip), %xmm1    # 0x9bff0
xorps %xmm0, %xmm0
callq 0x437ec
leaq 0x5171f(%rip), %rdi     # 0xa4355
callq 0x530bc
leaq 0x51779(%rip), %rdi     # 0xa43bb
leaq 0x50daa(%rip), %rdx     # 0xa39f3
movss 0x4f5cb(%rip), %xmm0    # 0xa221c
movd 0x493bb(%rip), %xmm1    # 0x9c014
movss 0x49397(%rip), %xmm2    # 0x9bff8
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x7f52a
callq 0x43cbe
callq 0x8d56f
callq 0x8bbdb
callq 0x43cbe
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x91498(%rip), %rdi     # 0xe4130
callq 0xc2e0
testl %eax, %eax
je 0x51923
leaq 0x91070(%rip), %rdi     # 0xe3d1c
callq 0x33338
leaq 0x91478(%rip), %rdi     # 0xe4130
callq 0xc4e0
movq -0x30(%rbp), %r15
jmp 0x51923
leaq 0x9158b(%rip), %rdi     # 0xe4258
callq 0xc2e0
testl %eax, %eax
je 0x52166
leaq 0x9145f(%rip), %rdi     # 0xe4140
leaq 0x49239(%rip), %rsi     # 0x9bf21
callq 0x352ee
leaq 0xc8ac(%rip), %rdi      # 0x5f5a0
leaq 0x91445(%rip), %rsi     # 0xe4140
leaq 0x8c806(%rip), %rdx     # 0xdf508
callq 0xc7a0
leaq 0x9154a(%rip), %rdi     # 0xe4258
callq 0xc4e0
movq -0x30(%rbp), %r12
jmp 0x52166
movq %rax, %rbx
leaq 0x91532(%rip), %rdi     # 0xe4258
jmp 0x52d32
movq %rax, %rbx
leaq 0x913fe(%rip), %rdi     # 0xe4130
callq 0xc3e0
movq %rbx, %rdi
callq 0xc580