// File: donfreiday[P]gb/./imgui/imgui_demo.cpp
// Function: ImGui::ShowStyleEditor(ImGuiStyle*)
void ImGui::ShowStyleEditor(ImGuiStyle* ref)
{
    ImGuiStyle& style = ImGui::GetStyle();

    const ImGuiStyle def; // Default style
    if (ImGui::Button("Revert Style"))
        style = ref ? *ref : def;
    if (ref)
    {
        ImGui::SameLine();
        if (ImGui::Button("Save Style"))
            *ref = style;
    }

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

    if (ImGui::TreeNode("Rendering"))
    {
        ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines);
        ImGui::Checkbox("Anti-aliased shapes", &style.AntiAliasedShapes);
        ImGui::PushItemWidth(100);
        ImGui::DragFloat("Curve Tessellation Tolerance", &style.CurveTessellationTol, 0.02f, 0.10f, FLT_MAX, NULL, 2.0f);
        if (style.CurveTessellationTol < 0.0f) style.CurveTessellationTol = 0.10f;
        ImGui::PopItemWidth();
        ImGui::TreePop();
    }

    if (ImGui::TreeNode("Sizes"))
    {
        ImGui::SliderFloat("Alpha", &style.Alpha, 0.20f, 1.0f, "%.2f");                 // Not exposing zero here so user doesn't "lose" the UI. But application code could have a toggle to switch between zero and non-zero.
        ImGui::SliderFloat2("WindowPadding", (float*)&style.WindowPadding, 0.0f, 20.0f, "%.0f");
        ImGui::SliderFloat("WindowRounding", &style.WindowRounding, 0.0f, 16.0f, "%.0f");
        ImGui::SliderFloat("ChildWindowRounding", &style.ChildWindowRounding, 0.0f, 16.0f, "%.0f");
        ImGui::SliderFloat2("FramePadding", (float*)&style.FramePadding, 0.0f, 20.0f, "%.0f");
        ImGui::SliderFloat("FrameRounding", &style.FrameRounding, 0.0f, 16.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("ScrollbarWidth", &style.ScrollbarSize, 1.0f, 20.0f, "%.0f");
        ImGui::SliderFloat("ScrollbarRounding", &style.ScrollbarRounding, 0.0f, 16.0f, "%.0f");
        ImGui::SliderFloat("GrabMinSize", &style.GrabMinSize, 1.0f, 20.0f, "%.0f");
        ImGui::SliderFloat("GrabRounding", &style.GrabRounding, 0.0f, 16.0f, "%.0f");
        ImGui::TreePop();
    }

    if (ImGui::TreeNode("Colors"))
    {
        static int output_dest = 0;
        static bool output_only_modified = false;
        if (ImGui::Button("Output Colors"))
        {
            if (output_dest == 0)
                ImGui::LogToClipboard();
            else
                ImGui::LogToTTY();
            ImGui::LogText("ImGuiStyle& style = ImGui::GetStyle();" IM_NEWLINE);
            for (int i = 0; i < ImGuiCol_COUNT; i++)
            {
                const ImVec4& col = style.Colors[i];
                const char* name = ImGui::GetStyleColName(i);
                if (!output_only_modified || memcmp(&col, (ref ? &ref->Colors[i] : &def.Colors[i]), sizeof(ImVec4)) != 0)
                    ImGui::LogText("style.Colors[ImGuiCol_%s]%*s= ImVec4(%.2ff, %.2ff, %.2ff, %.2ff);" IM_NEWLINE, name, 22 - (int)strlen(name), "", col.x, col.y, col.z, col.w);
            }
            ImGui::LogFinish();
        }
        ImGui::SameLine(); ImGui::PushItemWidth(120); ImGui::Combo("##output_type", &output_dest, "To Clipboard\0To TTY"); ImGui::PopItemWidth();
        ImGui::SameLine(); ImGui::Checkbox("Only Modified Fields", &output_only_modified);

        static ImGuiColorEditMode edit_mode = ImGuiColorEditMode_RGB;
        ImGui::RadioButton("RGB", &edit_mode, ImGuiColorEditMode_RGB);
        ImGui::SameLine();
        ImGui::RadioButton("HSV", &edit_mode, ImGuiColorEditMode_HSV);
        ImGui::SameLine();
        ImGui::RadioButton("HEX", &edit_mode, ImGuiColorEditMode_HEX);
        //ImGui::Text("Tip: Click on colored square to change edit mode.");

        static ImGuiTextFilter filter;
        filter.Draw("Filter colors", 200);

        ImGui::BeginChild("#colors", ImVec2(0, 300), true);
        ImGui::PushItemWidth(-160);
        ImGui::ColorEditMode(edit_mode);
        for (int i = 0; i < ImGuiCol_COUNT; i++)
        {
            const char* name = ImGui::GetStyleColName(i);
            if (!filter.PassFilter(name))
                continue;
            ImGui::PushID(i);
            ImGui::ColorEdit4(name, (float*)&style.Colors[i], true);
            if (memcmp(&style.Colors[i], (ref ? &ref->Colors[i] : &def.Colors[i]), sizeof(ImVec4)) != 0)
            {
                ImGui::SameLine(); if (ImGui::Button("Revert")) style.Colors[i] = ref ? ref->Colors[i] : def.Colors[i];
                if (ref) { ImGui::SameLine(); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i]; }
            }
            ImGui::PopID();
        }
        ImGui::PopItemWidth();
        ImGui::EndChild();

        ImGui::TreePop();
    }

    ImGui::PopItemWidth();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3d0, %rsp            # imm = 0x3D0
movq %rdi, -0x8(%rbp)
callq 0xcab0
movq %rax, -0x10(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x7c80
leaq -0x340(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x2d280
leaq 0x25a79(%rip), %rdi     # 0x5f946
leaq -0x340(%rbp), %rsi
callq 0x1ad10
testb $0x1, %al
jne 0x39edf
jmp 0x39f18
cmpq $0x0, -0x8(%rbp)
je 0x39ef3
movq -0x8(%rbp), %rax
movq %rax, -0x3a0(%rbp)
jmp 0x39f03
leaq -0x338(%rbp), %rax
movq %rax, -0x3a0(%rbp)
jmp 0x39f03
movq -0x3a0(%rbp), %rsi
movq -0x10(%rbp), %rdi
movl $0x328, %edx            # imm = 0x328
callq 0x7080
cmpq $0x0, -0x8(%rbp)
je 0x39f6e
xorps %xmm0, %xmm0
movss 0x21152(%rip), %xmm1    # 0x5b07c
callq 0x1a5e0
leaq -0x348(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x2d280
leaq 0x25a0b(%rip), %rdi     # 0x5f953
leaq -0x348(%rbp), %rsi
callq 0x1ad10
testb $0x1, %al
jne 0x39f5a
jmp 0x39f6c
movq -0x10(%rbp), %rsi
movq -0x8(%rbp), %rdi
movl $0x328, %edx            # imm = 0x328
callq 0x7080
jmp 0x39f6e
callq 0x19040
movss 0x210d1(%rip), %xmm1    # 0x5b04c
mulss %xmm1, %xmm0
callq 0xafc0
leaq 0x259d3(%rip), %rdi     # 0x5f95e
callq 0x1cba0
testb $0x1, %al
jne 0x39f99
jmp 0x3a02e
movq -0x10(%rbp), %rsi
addq $0x70, %rsi
leaq 0x259c0(%rip), %rdi     # 0x5f968
callq 0x23a60
movq -0x10(%rbp), %rsi
addq $0x71, %rsi
leaq 0x259bf(%rip), %rdi     # 0x5f97b
callq 0x23a60
movss 0x2115f(%rip), %xmm0    # 0x5b128
callq 0xafc0
movq -0x10(%rbp), %rsi
addq $0x74, %rsi
leaq 0x259b2(%rip), %rdi     # 0x5f98f
movss 0x23623(%rip), %xmm0    # 0x5d608
movss 0x21023(%rip), %xmm1    # 0x5b010
movss 0x210a7(%rip), %xmm2    # 0x5b09c
xorl %eax, %eax
movl %eax, %edx
movss 0x210b7(%rip), %xmm3    # 0x5b0b8
callq 0x21e10
movq -0x10(%rbp), %rax
xorps %xmm0, %xmm0
ucomiss 0x74(%rax), %xmm0
jbe 0x3a024
movq -0x10(%rbp), %rax
movss 0x20ff1(%rip), %xmm0    # 0x5b010
movss %xmm0, 0x74(%rax)
callq 0xb0f0
callq 0x2a440
leaq 0x25977(%rip), %rdi     # 0x5f9ac
callq 0x1cba0
testb $0x1, %al
jne 0x3a043
jmp 0x3a2c8
movq -0x10(%rbp), %rsi
leaq 0x25964(%rip), %rdi     # 0x5f9b2
movss 0x20fae(%rip), %xmm0    # 0x5b004
movss 0x20fba(%rip), %xmm2    # 0x5b018
leaq 0x24731(%rip), %rdx     # 0x5e796
movaps %xmm2, %xmm1
callq 0x20790
movq -0x10(%rbp), %rsi
addq $0x4, %rsi
leaq 0x2593c(%rip), %rdi     # 0x5f9b8
xorps %xmm0, %xmm0
movss 0x2354d(%rip), %xmm1    # 0x5d5d4
leaq 0x24c02(%rip), %rdx     # 0x5ec90
movss 0x20f82(%rip), %xmm2    # 0x5b018
callq 0x21670
movq -0x10(%rbp), %rsi
addq $0x14, %rsi
leaq 0x25921(%rip), %rdi     # 0x5f9cb
xorps %xmm0, %xmm0
movss 0x20fb3(%rip), %xmm1    # 0x5b068
leaq 0x24bd4(%rip), %rdx     # 0x5ec90
movss 0x20f54(%rip), %xmm2    # 0x5b018
callq 0x20790
movq -0x10(%rbp), %rsi
addq $0x1c, %rsi
leaq 0x258ee(%rip), %rdi     # 0x5f9c6
xorps %xmm0, %xmm0
movss 0x20f85(%rip), %xmm1    # 0x5b068
leaq 0x24ba6(%rip), %rdx     # 0x5ec90
movss 0x20f26(%rip), %xmm2    # 0x5b018
callq 0x20790
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
leaq 0x258d4(%rip), %rdi     # 0x5f9da
xorps %xmm0, %xmm0
movss 0x234c3(%rip), %xmm1    # 0x5d5d4
leaq 0x24b78(%rip), %rdx     # 0x5ec90
movss 0x20ef8(%rip), %xmm2    # 0x5b018
callq 0x21670
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq 0x258b3(%rip), %rdi     # 0x5f9e7
xorps %xmm0, %xmm0
movss 0x20f29(%rip), %xmm1    # 0x5b068
leaq 0x24b4a(%rip), %rdx     # 0x5ec90
movss 0x20eca(%rip), %xmm2    # 0x5b018
callq 0x20790
movq -0x10(%rbp), %rsi
addq $0x2c, %rsi
leaq 0x25893(%rip), %rdi     # 0x5f9f5
xorps %xmm0, %xmm0
movss 0x23467(%rip), %xmm1    # 0x5d5d4
leaq 0x24b1c(%rip), %rdx     # 0x5ec90
movss 0x20e9c(%rip), %xmm2    # 0x5b018
callq 0x21670
movq -0x10(%rbp), %rsi
addq $0x34, %rsi
leaq 0x25871(%rip), %rdi     # 0x5fa01
xorps %xmm0, %xmm0
movss 0x23439(%rip), %xmm1    # 0x5d5d4
leaq 0x24aee(%rip), %rdx     # 0x5ec90
movss 0x20e6e(%rip), %xmm2    # 0x5b018
callq 0x21670
movq -0x10(%rbp), %rsi
addq $0x3c, %rsi
leaq 0x25854(%rip), %rdi     # 0x5fa12
xorps %xmm0, %xmm0
movss 0x20e97(%rip), %xmm1    # 0x5b060
leaq 0x24ac0(%rip), %rdx     # 0x5ec90
movss 0x20e40(%rip), %xmm2    # 0x5b018
callq 0x21670
movq -0x10(%rbp), %rsi
addq $0x48, %rsi
leaq 0x25838(%rip), %rdi     # 0x5fa24
xorps %xmm0, %xmm0
movss 0x20f39(%rip), %xmm1    # 0x5b130
leaq 0x24a92(%rip), %rdx     # 0x5ec90
movss 0x20e12(%rip), %xmm2    # 0x5b018
callq 0x20790
movq -0x10(%rbp), %rsi
addq $0x50, %rsi
leaq 0x25818(%rip), %rdi     # 0x5fa32
movss 0x20df6(%rip), %xmm2    # 0x5b018
movss 0x233aa(%rip), %xmm1    # 0x5d5d4
leaq 0x24a5f(%rip), %rdx     # 0x5ec90
movaps %xmm2, %xmm0
callq 0x20790
movq -0x10(%rbp), %rsi
addq $0x54, %rsi
leaq 0x257f9(%rip), %rdi     # 0x5fa41
xorps %xmm0, %xmm0
movss 0x20e15(%rip), %xmm1    # 0x5b068
leaq 0x24a36(%rip), %rdx     # 0x5ec90
movss 0x20db6(%rip), %xmm2    # 0x5b018
callq 0x20790
movq -0x10(%rbp), %rsi
addq $0x58, %rsi
leaq 0x257dd(%rip), %rdi     # 0x5fa53
movss 0x20d9a(%rip), %xmm2    # 0x5b018
movss 0x2334e(%rip), %xmm1    # 0x5d5d4
leaq 0x24a03(%rip), %rdx     # 0x5ec90
movaps %xmm2, %xmm0
callq 0x20790
movq -0x10(%rbp), %rsi
addq $0x5c, %rsi
leaq 0x257bb(%rip), %rdi     # 0x5fa5f
xorps %xmm0, %xmm0
movss 0x20db9(%rip), %xmm1    # 0x5b068
leaq 0x249da(%rip), %rdx     # 0x5ec90
movss 0x20d5a(%rip), %xmm2    # 0x5b018
callq 0x20790
callq 0x2a440
leaq 0x257a4(%rip), %rdi     # 0x5fa73
callq 0x1cba0
testb $0x1, %al
jne 0x3a2dd
jmp 0x3a8a9
leaq -0x350(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x2d280
leaq 0x25776(%rip), %rdi     # 0x5fa6c
leaq -0x350(%rbp), %rsi
callq 0x1ad10
testb $0x1, %al
jne 0x3a30b
jmp 0x3a4a2
cmpl $0x0, 0x494f6(%rip)     # 0x83808
jne 0x3a320
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1b6f0
jmp 0x3a32a
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x1b580
leaq 0x25749(%rip), %rdi     # 0x5fa7a
movb $0x0, %al
callq 0x10010
movl $0x0, -0x354(%rbp)
cmpl $0x2b, -0x354(%rbp)
jge 0x3a49d
movq -0x10(%rbp), %rax
addq $0x78, %rax
movslq -0x354(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x360(%rbp)
movl -0x354(%rbp), %edi
callq 0x18c20
movq %rax, -0x368(%rbp)
testb $0x1, 0x49487(%rip)     # 0x8380c
je 0x3a40b
movq -0x360(%rbp), %rax
movq %rax, -0x3a8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x3a3bf
movq -0x8(%rbp), %rax
addq $0x78, %rax
movslq -0x354(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x3b0(%rbp)
jmp 0x3a3df
leaq -0x338(%rbp), %rax
addq $0x78, %rax
movslq -0x354(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x3b0(%rbp)
movq -0x3a8(%rbp), %rax
movq -0x3b0(%rbp), %rcx
movups (%rcx), %xmm1
movups (%rax), %xmm0
pcmpeqb %xmm1, %xmm0
pmovmskb %xmm0, %eax
subl $0xffff, %eax           # imm = 0xFFFF
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x3a487
movq -0x368(%rbp), %rax
movq %rax, -0x3b8(%rbp)
movq -0x368(%rbp), %rdi
callq 0x7330
movq -0x3b8(%rbp), %rsi
movl $0x16, %edx
subl %eax, %edx
movq -0x360(%rbp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x360(%rbp), %rax
movss 0x4(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
movq -0x360(%rbp), %rax
movss 0x8(%rax), %xmm2
cvtss2sd %xmm2, %xmm2
movq -0x360(%rbp), %rax
movss 0xc(%rax), %xmm3
cvtss2sd %xmm3, %xmm3
leaq 0x25629(%rip), %rdi     # 0x5faa2
leaq 0x24dce(%rip), %rcx     # 0x5f24e
movb $0x4, %al
callq 0x10010
jmp 0x3a489
movl -0x354(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x354(%rbp)
jmp 0x3a342
callq 0x184e0
xorps %xmm0, %xmm0
movss 0x20bcf(%rip), %xmm1    # 0x5b07c
callq 0x1a5e0
movss 0x20bf2(%rip), %xmm0    # 0x5b0ac
callq 0xafc0
leaq 0x2561f(%rip), %rdi     # 0x5fae5
leaq 0x4933b(%rip), %rsi     # 0x83808
leaq 0x26050(%rip), %rdx     # 0x60524
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x27000
callq 0xb0f0
xorps %xmm0, %xmm0
movss 0x20b8e(%rip), %xmm1    # 0x5b07c
callq 0x1a5e0
leaq 0x255f9(%rip), %rdi     # 0x5faf3
leaq 0x4930b(%rip), %rsi     # 0x8380c
callq 0x23a60
leaq 0x21ec8(%rip), %rdi     # 0x5c3d5
leaq 0x492fc(%rip), %rsi     # 0x83810
xorl %edx, %edx
callq 0x246e0
xorps %xmm0, %xmm0
movss 0x20b56(%rip), %xmm1    # 0x5b07c
callq 0x1a5e0
leaq 0x21ea7(%rip), %rdi     # 0x5c3d9
leaq 0x492d7(%rip), %rsi     # 0x83810
movl $0x1, %edx
callq 0x246e0
xorps %xmm0, %xmm0
movss 0x20b2e(%rip), %xmm1    # 0x5b07c
callq 0x1a5e0
leaq 0x21e83(%rip), %rdi     # 0x5c3dd
leaq 0x492af(%rip), %rsi     # 0x83810
movl $0x2, %edx
callq 0x246e0
cmpb $0x0, 0x493be(%rip)     # 0x83930
jne 0x3a5c0
leaq 0x493b5(%rip), %rdi     # 0x83930
callq 0x72e0
cmpl $0x0, %eax
je 0x3a5c0
leaq 0x4928c(%rip), %rdi     # 0x83818
leaq 0x24cbb(%rip), %rsi     # 0x5f24e
callq 0xad90
jmp 0x3a59a
leaq 0x49f(%rip), %rdi       # 0x3aa40
leaq 0x49270(%rip), %rsi     # 0x83818
leaq 0x3ef09(%rip), %rdx     # 0x794b8
callq 0x76b0
leaq 0x49375(%rip), %rdi     # 0x83930
callq 0x7460
leaq 0x49251(%rip), %rdi     # 0x83818
leaq 0x2553a(%rip), %rsi     # 0x5fb08
movss 0x2300e(%rip), %xmm0    # 0x5d5e4
callq 0xaf30
leaq -0x37c(%rbp), %rdi
xorps %xmm0, %xmm0
movss 0x22fb7(%rip), %xmm1    # 0x5d5a4
callq 0x2d280
leaq 0x2551d(%rip), %rdi     # 0x5fb16
leaq -0x37c(%rbp), %rsi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x15bc0
movss 0x22ff8(%rip), %xmm0    # 0x5d60c
callq 0xafc0
movl 0x491f1(%rip), %edi     # 0x83810
callq 0x29bd0
movl $0x0, -0x380(%rbp)
cmpl $0x2b, -0x380(%rbp)
jge 0x3a89a
movl -0x380(%rbp), %edi
callq 0x18c20
movq %rax, -0x388(%rbp)
movq -0x388(%rbp), %rsi
leaq 0x491bd(%rip), %rdi     # 0x83818
xorl %eax, %eax
movl %eax, %edx
callq 0xb250
testb $0x1, %al
jne 0x3a690
jmp 0x3a886
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x370(%rbp)
movl %eax, -0x374(%rbp)
leaq 0x492aa(%rip), %rdi     # 0x83930
callq 0x7380
jmp 0x3a8b7
movl -0x380(%rbp), %edi
callq 0x1cc80
movq -0x388(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x78, %rsi
movslq -0x380(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rsi
movl $0x1, %edx
callq 0x29320
movq -0x10(%rbp), %rax
addq $0x78, %rax
movslq -0x380(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x3c0(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x3a705
movq -0x8(%rbp), %rax
addq $0x78, %rax
movslq -0x380(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x3c8(%rbp)
jmp 0x3a725
leaq -0x338(%rbp), %rax
addq $0x78, %rax
movslq -0x380(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x3c8(%rbp)
movq -0x3c0(%rbp), %rax
movq -0x3c8(%rbp), %rcx
movups (%rcx), %xmm1
movups (%rax), %xmm0
pcmpeqb %xmm1, %xmm0
pmovmskb %xmm0, %eax
subl $0xffff, %eax           # imm = 0xFFFF
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x3a881
xorps %xmm0, %xmm0
movss 0x2091c(%rip), %xmm1    # 0x5b07c
callq 0x1a5e0
leaq -0x390(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x2d280
leaq 0x253a0(%rip), %rdi     # 0x5fb1e
leaq -0x390(%rbp), %rsi
callq 0x1ad10
testb $0x1, %al
jne 0x3a790
jmp 0x3a801
cmpq $0x0, -0x8(%rbp)
je 0x3a7b6
movq -0x8(%rbp), %rax
addq $0x78, %rax
movslq -0x380(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x3d0(%rbp)
jmp 0x3a7d6
leaq -0x338(%rbp), %rax
addq $0x78, %rax
movslq -0x380(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x3d0(%rbp)
movq -0x3d0(%rbp), %rcx
movq -0x10(%rbp), %rax
addq $0x78, %rax
movslq -0x380(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x8(%rax)
cmpq $0x0, -0x8(%rbp)
je 0x3a87f
xorps %xmm0, %xmm0
movss 0x20869(%rip), %xmm1    # 0x5b07c
callq 0x1a5e0
leaq -0x398(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x2d280
leaq 0x252f4(%rip), %rdi     # 0x5fb25
leaq -0x398(%rbp), %rsi
callq 0x1ad10
testb $0x1, %al
jne 0x3a843
jmp 0x3a87d
movq -0x10(%rbp), %rcx
addq $0x78, %rcx
movslq -0x380(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rcx
movq -0x8(%rbp), %rax
addq $0x78, %rax
movslq -0x380(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x3a87f
jmp 0x3a881
callq 0x1b550
movl -0x380(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x380(%rbp)
jmp 0x3a62e
callq 0xb0f0
callq 0x15e60
callq 0x2a440
callq 0xb0f0
addq $0x3d0, %rsp            # imm = 0x3D0
popq %rbp
retq
movq -0x370(%rbp), %rdi
callq 0x74f0
nopw %cs:(%rax,%rax)