// File: Ciaxur[P]yagb-emu/include/imgui/imgui_demo.cpp
// Function: ImGui::ShowAboutWindow(bool*)
void ImGui::ShowAboutWindow(bool* p_open)
{
    if (!ImGui::Begin("About Dear ImGui", p_open, ImGuiWindowFlags_AlwaysAutoResize))
    {
        ImGui::End();
        return;
    }
    ImGui::Text("Dear ImGui %s", ImGui::GetVersion());
    ImGui::Separator();
    ImGui::Text("By Omar Cornut and all Dear ImGui contributors.");
    ImGui::Text("Dear ImGui is licensed under the MIT License, see LICENSE for more information.");

    static bool show_config_info = false;
    ImGui::Checkbox("Config/Build Information", &show_config_info);
    if (show_config_info)
    {
        ImGuiIO& io = ImGui::GetIO();
        ImGuiStyle& style = ImGui::GetStyle();

        bool copy_to_clipboard = ImGui::Button("Copy to clipboard");
        ImVec2 child_size = ImVec2(0, ImGui::GetTextLineHeightWithSpacing() * 18);
        ImGui::BeginChildFrame(ImGui::GetID("cfg_infos"), child_size, ImGuiWindowFlags_NoMove);
        if (copy_to_clipboard)
        {
            ImGui::LogToClipboard();
            ImGui::LogText("```\n"); // Back quotes will make text appears without formatting when pasting on GitHub
        }

        ImGui::Text("Dear ImGui %s (%d)", IMGUI_VERSION, IMGUI_VERSION_NUM);
        ImGui::Separator();
        ImGui::Text("sizeof(size_t): %d, sizeof(ImDrawIdx): %d, sizeof(ImDrawVert): %d", (int)sizeof(size_t), (int)sizeof(ImDrawIdx), (int)sizeof(ImDrawVert));
        ImGui::Text("define: __cplusplus=%d", (int)__cplusplus);
#ifdef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
        ImGui::Text("define: IMGUI_DISABLE_OBSOLETE_FUNCTIONS");
#endif
#ifdef IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS
        ImGui::Text("define: IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS");
#endif
#ifdef IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS
        ImGui::Text("define: IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS");
#endif
#ifdef IMGUI_DISABLE_WIN32_FUNCTIONS
        ImGui::Text("define: IMGUI_DISABLE_WIN32_FUNCTIONS");
#endif
#ifdef IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS
        ImGui::Text("define: IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS");
#endif
#ifdef IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS
        ImGui::Text("define: IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS");
#endif
#ifdef IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS
        ImGui::Text("define: IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS");
#endif
#ifdef IMGUI_DISABLE_FILE_FUNCTIONS
        ImGui::Text("define: IMGUI_DISABLE_FILE_FUNCTIONS");
#endif
#ifdef IMGUI_DISABLE_DEFAULT_ALLOCATORS
        ImGui::Text("define: IMGUI_DISABLE_DEFAULT_ALLOCATORS");
#endif
#ifdef IMGUI_USE_BGRA_PACKED_COLOR
        ImGui::Text("define: IMGUI_USE_BGRA_PACKED_COLOR");
#endif
#ifdef _WIN32
        ImGui::Text("define: _WIN32");
#endif
#ifdef _WIN64
        ImGui::Text("define: _WIN64");
#endif
#ifdef __linux__
        ImGui::Text("define: __linux__");
#endif
#ifdef __APPLE__
        ImGui::Text("define: __APPLE__");
#endif
#ifdef _MSC_VER
        ImGui::Text("define: _MSC_VER=%d", _MSC_VER);
#endif
#ifdef _MSVC_LANG
        ImGui::Text("define: _MSVC_LANG=%d", (int)_MSVC_LANG);
#endif
#ifdef __MINGW32__
        ImGui::Text("define: __MINGW32__");
#endif
#ifdef __MINGW64__
        ImGui::Text("define: __MINGW64__");
#endif
#ifdef __GNUC__
        ImGui::Text("define: __GNUC__=%d", (int)__GNUC__);
#endif
#ifdef __clang_version__
        ImGui::Text("define: __clang_version__=%s", __clang_version__);
#endif
        ImGui::Separator();
        ImGui::Text("io.BackendPlatformName: %s", io.BackendPlatformName ? io.BackendPlatformName : "NULL");
        ImGui::Text("io.BackendRendererName: %s", io.BackendRendererName ? io.BackendRendererName : "NULL");
        ImGui::Text("io.ConfigFlags: 0x%08X", io.ConfigFlags);
        if (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard)        ImGui::Text(" NavEnableKeyboard");
        if (io.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad)         ImGui::Text(" NavEnableGamepad");
        if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos)     ImGui::Text(" NavEnableSetMousePos");
        if (io.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard)     ImGui::Text(" NavNoCaptureKeyboard");
        if (io.ConfigFlags & ImGuiConfigFlags_NoMouse)                  ImGui::Text(" NoMouse");
        if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange)      ImGui::Text(" NoMouseCursorChange");
        if (io.MouseDrawCursor)                                         ImGui::Text("io.MouseDrawCursor");
        if (io.ConfigMacOSXBehaviors)                                   ImGui::Text("io.ConfigMacOSXBehaviors");
        if (io.ConfigInputTextCursorBlink)                              ImGui::Text("io.ConfigInputTextCursorBlink");
        if (io.ConfigWindowsResizeFromEdges)                            ImGui::Text("io.ConfigWindowsResizeFromEdges");
        if (io.ConfigWindowsMoveFromTitleBarOnly)                       ImGui::Text("io.ConfigWindowsMoveFromTitleBarOnly");
        if (io.ConfigMemoryCompactTimer >= 0.0f)                        ImGui::Text("io.ConfigMemoryCompactTimer = %.1f", io.ConfigMemoryCompactTimer);
        ImGui::Text("io.BackendFlags: 0x%08X", io.BackendFlags);
        if (io.BackendFlags & ImGuiBackendFlags_HasGamepad)             ImGui::Text(" HasGamepad");
        if (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors)        ImGui::Text(" HasMouseCursors");
        if (io.BackendFlags & ImGuiBackendFlags_HasSetMousePos)         ImGui::Text(" HasSetMousePos");
        if (io.BackendFlags & ImGuiBackendFlags_RendererHasVtxOffset)   ImGui::Text(" RendererHasVtxOffset");
        ImGui::Separator();
        ImGui::Text("io.Fonts: %d fonts, Flags: 0x%08X, TexSize: %d,%d", io.Fonts->Fonts.Size, io.Fonts->Flags, io.Fonts->TexWidth, io.Fonts->TexHeight);
        ImGui::Text("io.DisplaySize: %.2f,%.2f", io.DisplaySize.x, io.DisplaySize.y);
        ImGui::Text("io.DisplayFramebufferScale: %.2f,%.2f", io.DisplayFramebufferScale.x, io.DisplayFramebufferScale.y);
        ImGui::Separator();
        ImGui::Text("style.WindowPadding: %.2f,%.2f", style.WindowPadding.x, style.WindowPadding.y);
        ImGui::Text("style.WindowBorderSize: %.2f", style.WindowBorderSize);
        ImGui::Text("style.FramePadding: %.2f,%.2f", style.FramePadding.x, style.FramePadding.y);
        ImGui::Text("style.FrameRounding: %.2f", style.FrameRounding);
        ImGui::Text("style.FrameBorderSize: %.2f", style.FrameBorderSize);
        ImGui::Text("style.ItemSpacing: %.2f,%.2f", style.ItemSpacing.x, style.ItemSpacing.y);
        ImGui::Text("style.ItemInnerSpacing: %.2f,%.2f", style.ItemInnerSpacing.x, style.ItemInnerSpacing.y);

        if (copy_to_clipboard)
        {
            ImGui::LogText("\n```\n");
            ImGui::LogFinish();
        }
        ImGui::EndChildFrame();
    }
    ImGui::End();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
leaq 0x847fb(%rip), %rdi     # 0x178cb2
movl $0x40, %edx
callq 0xd0170
testb $0x1, %al
jne 0xf44cf
callq 0xd3b60
jmp 0xf4a75
callq 0xcaaf0
movq %rax, %rsi
leaq 0x81460(%rip), %rdi     # 0x17593e
movb $0x0, %al
callq 0x139160
callq 0x13dec0
leaq 0x853cf(%rip), %rdi     # 0x1798c0
movb $0x0, %al
callq 0x139160
leaq 0x853f1(%rip), %rdi     # 0x1798f0
movb $0x0, %al
callq 0x139160
leaq 0x85433(%rip), %rdi     # 0x179940
leaq 0x11eb35(%rip), %rsi    # 0x213049
callq 0x13c7c0
testb $0x1, 0x11eb29(%rip)    # 0x213049
je 0xf4a70
callq 0xcb1a0
movq %rax, -0x10(%rbp)
callq 0xc7680
movq %rax, -0x18(%rbp)
leaq -0x24(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0xbf4c0
leaq 0x8540b(%rip), %rdi     # 0x179959
leaq -0x24(%rbp), %rsi
callq 0x13a930
andb $0x1, %al
movb %al, -0x19(%rbp)
callq 0xdd020
movaps %xmm0, %xmm1
movss 0x84040(%rip), %xmm0    # 0x1785ac
mulss %xmm0, %xmm1
leaq -0x2c(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0xbf4c0
leaq 0x853e8(%rip), %rdi     # 0x17996b
callq 0xdb6a0
movl %eax, %edi
leaq -0x2c(%rbp), %rsi
movl $0x4, %edx
callq 0xd6400
testb $0x1, -0x19(%rbp)
je 0xf45b6
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xe0dc0
leaq 0x856ce(%rip), %rdi     # 0x179c7d
movb $0x0, %al
callq 0xe0a30
leaq 0x853b8(%rip), %rdi     # 0x179975
leaq 0x7db03(%rip), %rsi     # 0x1720c7
movl $0x4651, %edx           # imm = 0x4651
movb $0x0, %al
callq 0x139160
callq 0x13dec0
leaq 0x853ac(%rip), %rdi     # 0x179988
movl $0x8, %esi
movl $0x2, %edx
movl $0x14, %ecx
movb $0x0, %al
callq 0x139160
leaq 0x853d1(%rip), %rdi     # 0x1799ca
movl $0x313e7, %esi          # imm = 0x313E7
movb $0x0, %al
callq 0x139160
leaq 0x853d5(%rip), %rdi     # 0x1799e1
movb $0x0, %al
callq 0x139160
leaq 0x853d9(%rip), %rdi     # 0x1799f3
movl $0x4, %esi
movb $0x0, %al
callq 0x139160
leaq 0x853da(%rip), %rdi     # 0x179a07
leaq 0x853f0(%rip), %rsi     # 0x179a24
movb $0x0, %al
callq 0x139160
callq 0x13dec0
movq -0x10(%rbp), %rax
cmpq $0x0, 0xd0(%rax)
je 0xf465f
movq -0x10(%rbp), %rax
movq 0xd0(%rax), %rax
movq %rax, -0x38(%rbp)
jmp 0xf466c
leaq 0x81d28(%rip), %rax     # 0x17638e
movq %rax, -0x38(%rbp)
jmp 0xf466c
movq -0x38(%rbp), %rsi
leaq 0x8540d(%rip), %rdi     # 0x179a84
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
cmpq $0x0, 0xd8(%rax)
je 0xf469d
movq -0x10(%rbp), %rax
movq 0xd8(%rax), %rax
movq %rax, -0x40(%rbp)
jmp 0xf46aa
leaq 0x81cea(%rip), %rax     # 0x17638e
movq %rax, -0x40(%rbp)
jmp 0xf46aa
movq -0x40(%rbp), %rsi
leaq 0x853ea(%rip), %rdi     # 0x179a9f
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl (%rax), %esi
leaq 0x853f1(%rip), %rdi     # 0x179aba
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xf46ec
leaq 0x84891(%rip), %rdi     # 0x178f76
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xf4708
leaq 0x848b1(%rip), %rdi     # 0x178fb2
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0xf4724
leaq 0x84944(%rip), %rdi     # 0x179061
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0xf4740
leaq 0x85398(%rip), %rdi     # 0x179ad1
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0xf475c
leaq 0x84996(%rip), %rdi     # 0x1790eb
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0xf4778
leaq 0x849ad(%rip), %rdi     # 0x17911e
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
testb $0x1, 0xc0(%rax)
je 0xf4793
leaq 0x84bd2(%rip), %rdi     # 0x17935e
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
testb $0x1, 0xc1(%rax)
je 0xf47ae
leaq 0x85340(%rip), %rdi     # 0x179ae7
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
testb $0x1, 0xc2(%rax)
je 0xf47c9
leaq 0x849b2(%rip), %rdi     # 0x179174
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
testb $0x1, 0xc4(%rax)
je 0xf47e4
leaq 0x84a84(%rip), %rdi     # 0x179261
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
testb $0x1, 0xc5(%rax)
je 0xf47ff
leaq 0x84b41(%rip), %rdi     # 0x179339
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movss 0xc8(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jb 0xf4831
movq -0x10(%rbp), %rax
movss 0xc8(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x852d6(%rip), %rdi     # 0x179b00
movb $0x1, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl 0x4(%rax), %esi
leaq 0x852e4(%rip), %rdi     # 0x179b23
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xf4863
leaq 0x84d72(%rip), %rdi     # 0x1795ce
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0xf4880
leaq 0x84d71(%rip), %rdi     # 0x1795ea
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0xf489d
leaq 0x84d75(%rip), %rdi     # 0x17960b
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0xf48ba
leaq 0x84d78(%rip), %rdi     # 0x17962b
movb $0x0, %al
callq 0x139160
callq 0x13dec0
movq -0x10(%rbp), %rax
movq 0xa0(%rax), %rax
movl 0x40(%rax), %esi
movq -0x10(%rbp), %rax
movq 0xa0(%rax), %rax
movl 0x4(%rax), %edx
movq -0x10(%rbp), %rax
movq 0xa0(%rax), %rax
movl 0x28(%rax), %ecx
movq -0x10(%rbp), %rax
movq 0xa0(%rax), %rax
movl 0x2c(%rax), %r8d
leaq 0x8523c(%rip), %rdi     # 0x179b3b
movb $0x0, %al
callq 0x139160
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x10(%rbp), %rax
movss 0xc(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0x85246(%rip), %rdi     # 0x179b6d
movb $0x2, %al
callq 0x139160
movq -0x10(%rbp), %rax
movss 0xb8(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x10(%rbp), %rax
movss 0xbc(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0x85232(%rip), %rdi     # 0x179b87
movb $0x2, %al
callq 0x139160
callq 0x13dec0
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0x8522b(%rip), %rdi     # 0x179bad
movb $0x2, %al
callq 0x139160
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x8522f(%rip), %rdi     # 0x179bcc
movb $0x1, %al
callq 0x139160
movq -0x18(%rbp), %rax
movss 0x38(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss 0x3c(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0x85224(%rip), %rdi     # 0x179be9
movb $0x2, %al
callq 0x139160
movq -0x18(%rbp), %rax
movss 0x40(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x85227(%rip), %rdi     # 0x179c07
movb $0x1, %al
callq 0x139160
movq -0x18(%rbp), %rax
movss 0x44(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x85226(%rip), %rdi     # 0x179c21
movb $0x1, %al
callq 0x139160
movq -0x18(%rbp), %rax
movss 0x48(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss 0x4c(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0x8521a(%rip), %rdi     # 0x179c3d
movb $0x2, %al
callq 0x139160
movq -0x18(%rbp), %rax
movss 0x50(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss 0x54(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
leaq 0x8520f(%rip), %rdi     # 0x179c5a
movb $0x2, %al
callq 0x139160
testb $0x1, -0x19(%rbp)
je 0xf4a6b
leaq 0x8521d(%rip), %rdi     # 0x179c7c
movb $0x0, %al
callq 0xe0a30
callq 0xd98d0
callq 0xd64c0
callq 0xd3b60
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)