// File: Ciaxur[P]yagb-emu/include/imgui/imgui.cpp
// Function: ImGui::NavUpdateWindowingOverlay()
void ImGui::NavUpdateWindowingOverlay()
{
    ImGuiContext& g = *GImGui;
    IM_ASSERT(g.NavWindowingTarget != NULL);

    if (g.NavWindowingTimer < NAV_WINDOWING_LIST_APPEAR_DELAY)
        return;

    if (g.NavWindowingListWindow == NULL)
        g.NavWindowingListWindow = FindWindowByName("###NavWindowingList");
    SetNextWindowSizeConstraints(ImVec2(g.IO.DisplaySize.x * 0.20f, g.IO.DisplaySize.y * 0.20f), ImVec2(FLT_MAX, FLT_MAX));
    SetNextWindowPos(g.IO.DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f));
    PushStyleVar(ImGuiStyleVar_WindowPadding, g.Style.WindowPadding * 2.0f);
    Begin("###NavWindowingList", NULL, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoSavedSettings);
    for (int n = g.WindowsFocusOrder.Size - 1; n >= 0; n--)
    {
        ImGuiWindow* window = g.WindowsFocusOrder[n];
        if (!IsWindowNavFocusable(window))
            continue;
        const char* label = window->Name;
        if (label == FindRenderedTextEnd(label))
            label = GetFallbackWindowNameForWindowingList(window);
        Selectable(label, g.NavWindowingTarget == window);
    }
    End();
    PopStyleVar();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq 0x12b42e(%rip), %rax    # 0x212f40
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x1dc0(%rax)
je 0xe7b26
jmp 0xe7b45
leaq 0x8fca6(%rip), %rdi     # 0x1777d3
leaq 0x8b3d5(%rip), %rsi     # 0x172f09
movl $0x2503, %edx           # imm = 0x2503
leaq 0x8fcb2(%rip), %rcx     # 0x1777f2
callq 0xd180
movq -0x8(%rbp), %rax
movss 0x8aca7(%rip), %xmm0    # 0x1727f8
ucomiss 0x1dd8(%rax), %xmm0
jbe 0xe7b5f
jmp 0xe7d4a
movq -0x8(%rbp), %rax
cmpq $0x0, 0x1dd0(%rax)
jne 0xe7b87
leaq 0x8fca6(%rip), %rdi     # 0x17781a
callq 0xd6500
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1dd0(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm0
movss 0x14(%rax), %xmm1
movss 0x8a433(%rip), %xmm2    # 0x171fd0
mulss %xmm2, %xmm0
mulss %xmm2, %xmm1
leaq -0x10(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0xbf4c0
leaq -0x18(%rbp), %rdi
movq %rdi, -0x68(%rbp)
movss 0x8a3f2(%rip), %xmm1    # 0x171fb4
movaps %xmm1, %xmm0
callq 0xbf4c0
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0xdac00
movq -0x8(%rbp), %rdi
addq $0x10, %rdi
movss 0x8a3ea(%rip), %xmm0    # 0x171fd8
movss %xmm0, -0x5c(%rbp)
callq 0xc2f50
movss -0x5c(%rbp), %xmm1
movlpd %xmm0, -0x20(%rbp)
leaq -0x28(%rbp), %rdi
movq %rdi, -0x58(%rbp)
movaps %xmm1, %xmm0
callq 0xbf4c0
movq -0x58(%rbp), %rdx
leaq -0x20(%rbp), %rdi
movl $0x1, %esi
callq 0xdab40
movq -0x8(%rbp), %rdi
addq $0x1564, %rdi           # imm = 0x1564
movss 0x8a395(%rip), %xmm0    # 0x171fcc
callq 0xc2f50
movlpd %xmm0, -0x30(%rbp)
movl $0x1, %edi
leaq -0x30(%rbp), %rsi
callq 0xc7b50
leaq 0x8fbc4(%rip), %rdi     # 0x17781a
xorl %eax, %eax
movl %eax, %esi
movl $0xc1347, %edx          # imm = 0xC1347
callq 0xd0170
movq -0x8(%rbp), %rax
movl 0x1a98(%rax), %eax
subl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
jl 0xe7d3b
movq -0x8(%rbp), %rdi
addq $0x1a98, %rdi           # imm = 0x1A98
movl -0x34(%rbp), %esi
callq 0xea8d0
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0xda6d0
testb $0x1, %al
jne 0xe7caa
jmp 0xe7d2d
movq -0x40(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xc8090
movq %rax, %rcx
movq -0x78(%rbp), %rax
cmpq %rcx, %rax
jne 0xe7ce3
movq -0x40(%rbp), %rdi
callq 0xe7d60
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x8(%rbp), %rax
movq 0x1dc0(%rax), %rax
cmpq -0x40(%rbp), %rax
sete %al
movb %al, -0x81(%rbp)
leaq -0x50(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0xbf4c0
movb -0x81(%rbp), %al
movq -0x80(%rbp), %rdi
movzbl %al, %esi
andl $0x1, %esi
xorl %edx, %edx
leaq -0x50(%rbp), %rcx
callq 0x13f2b0
movl -0x34(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xe7c74
callq 0xd3b60
movl $0x1, %edi
callq 0xc7c10
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)