// File: Ciaxur[P]yagb-emu/include/imgui/imgui.cpp
// Function: ImGuiStackSizes::CompareWithCurrentState()
void ImGuiStackSizes::CompareWithCurrentState()
{
    ImGuiContext& g = *GImGui;
    ImGuiWindow* window = g.CurrentWindow;
    IM_UNUSED(window);

    // Window stacks
    // NOT checking: DC.ItemWidth, DC.TextWrapPos (per window) to allow user to conveniently push once and not pop (they are cleared on Begin)
    IM_ASSERT(SizeOfIDStack         == window->IDStack.Size     && "PushID/PopID or TreeNode/TreePop Mismatch!");

    // Global stacks
    // For color, style and font stacks there is an incentive to use Push/Begin/Pop/.../End patterns, so we relax our checks a little to allow them.
    IM_ASSERT(SizeOfGroupStack      == g.GroupStack.Size        && "BeginGroup/EndGroup Mismatch!");
    IM_ASSERT(SizeOfBeginPopupStack == g.BeginPopupStack.Size   && "BeginPopup/EndPopup or BeginMenu/EndMenu Mismatch!");
    IM_ASSERT(SizeOfColorStack      >= g.ColorStack.Size        && "PushStyleColor/PopStyleColor Mismatch!");
    IM_ASSERT(SizeOfStyleVarStack   >= g.StyleVarStack.Size     && "PushStyleVar/PopStyleVar Mismatch!");
    IM_ASSERT(SizeOfFontStack       >= g.FontStack.Size         && "PushFont/PopFont Mismatch!");
    IM_ASSERT(SizeOfFocusScopeStack == g.FocusScopeStack.Size   && "PushFocusScope/PopFocusScope Mismatch!");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq 0x139545(%rip), %rcx    # 0x212f40
movq %rcx, -0x10(%rbp)
movq -0x10(%rbp), %rcx
movq 0x1ae0(%rcx), %rcx
movq %rcx, -0x18(%rbp)
movswl (%rax), %ecx
movq -0x18(%rbp), %rdx
xorl %eax, %eax
cmpl 0xc8(%rdx), %ecx
movb %al, -0x19(%rbp)
jne 0xd9a29
movb $0x1, %al
movb %al, -0x19(%rbp)
jmp 0xd9a29
movb -0x19(%rbp), %al
testb $0x1, %al
jne 0xd9a32
jmp 0xd9a34
jmp 0xd9a53
leaq 0x9b0f6(%rip), %rdi     # 0x174b31
leaq 0x994c7(%rip), %rsi     # 0x172f09
movl $0x1bcd, %edx           # imm = 0x1BCD
leaq 0x9b139(%rip), %rcx     # 0x174b87
callq 0xd180
movq -0x28(%rbp), %rax
movswl 0xa(%rax), %ecx
movq -0x10(%rbp), %rdx
xorl %eax, %eax
cmpl 0x1c60(%rdx), %ecx
movb %al, -0x29(%rbp)
jne 0xd9a73
movb $0x1, %al
movb %al, -0x29(%rbp)
jmp 0xd9a73
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0xd9a7c
jmp 0xd9a7e
jmp 0xd9a9d
leaq 0x9b150(%rip), %rdi     # 0x174bd5
leaq 0x9947d(%rip), %rsi     # 0x172f09
movl $0x1bd1, %edx           # imm = 0x1BD1
leaq 0x9b0ef(%rip), %rcx     # 0x174b87
callq 0xd180
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %ecx
movq -0x10(%rbp), %rdx
xorl %eax, %eax
cmpl 0x1c80(%rdx), %ecx
movb %al, -0x2a(%rbp)
jne 0xd9abd
movb $0x1, %al
movb %al, -0x2a(%rbp)
jmp 0xd9abd
movb -0x2a(%rbp), %al
testb $0x1, %al
jne 0xd9ac6
jmp 0xd9ac8
jmp 0xd9ae7
leaq 0x9b182(%rip), %rdi     # 0x174c51
leaq 0x99433(%rip), %rsi     # 0x172f09
movl $0x1bd2, %edx           # imm = 0x1BD2
leaq 0x9b0a5(%rip), %rcx     # 0x174b87
callq 0xd180
movq -0x28(%rbp), %rax
movswl 0x2(%rax), %ecx
movq -0x10(%rbp), %rdx
xorl %eax, %eax
cmpl 0x1c10(%rdx), %ecx
movb %al, -0x2b(%rbp)
jl 0xd9b07
movb $0x1, %al
movb %al, -0x2b(%rbp)
jmp 0xd9b07
movb -0x2b(%rbp), %al
testb $0x1, %al
jne 0xd9b10
jmp 0xd9b12
jmp 0xd9b31
leaq 0x9b1c7(%rip), %rdi     # 0x174ce0
leaq 0x993e9(%rip), %rsi     # 0x172f09
movl $0x1bd3, %edx           # imm = 0x1BD3
leaq 0x9b05b(%rip), %rcx     # 0x174b87
callq 0xd180
movq -0x28(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x10(%rbp), %rdx
xorl %eax, %eax
cmpl 0x1c20(%rdx), %ecx
movb %al, -0x2c(%rbp)
jl 0xd9b51
movb $0x1, %al
movb %al, -0x2c(%rbp)
jmp 0xd9b51
movb -0x2c(%rbp), %al
testb $0x1, %al
jne 0xd9b5a
jmp 0xd9b5c
jmp 0xd9b7b
leaq 0x9b1f2(%rip), %rdi     # 0x174d55
leaq 0x9939f(%rip), %rsi     # 0x172f09
movl $0x1bd4, %edx           # imm = 0x1BD4
leaq 0x9b011(%rip), %rcx     # 0x174b87
callq 0xd180
movq -0x28(%rbp), %rax
movswl 0x6(%rax), %ecx
movq -0x10(%rbp), %rdx
xorl %eax, %eax
cmpl 0x1c30(%rdx), %ecx
movb %al, -0x2d(%rbp)
jl 0xd9b9b
movb $0x1, %al
movb %al, -0x2d(%rbp)
jmp 0xd9b9b
movb -0x2d(%rbp), %al
testb $0x1, %al
jne 0xd9ba4
jmp 0xd9ba6
jmp 0xd9bc5
leaq 0x9b217(%rip), %rdi     # 0x174dc4
leaq 0x99355(%rip), %rsi     # 0x172f09
movl $0x1bd5, %edx           # imm = 0x1BD5
leaq 0x9afc7(%rip), %rcx     # 0x174b87
callq 0xd180
movq -0x28(%rbp), %rax
movswl 0x8(%rax), %ecx
movq -0x10(%rbp), %rdx
xorl %eax, %eax
cmpl 0x1c40(%rdx), %ecx
movb %al, -0x2e(%rbp)
jne 0xd9be5
movb $0x1, %al
movb %al, -0x2e(%rbp)
jmp 0xd9be5
movb -0x2e(%rbp), %al
testb $0x1, %al
jne 0xd9bee
jmp 0xd9bf0
jmp 0xd9c0f
leaq 0x9b238(%rip), %rdi     # 0x174e2f
leaq 0x9930b(%rip), %rsi     # 0x172f09
movl $0x1bd6, %edx           # imm = 0x1BD6
leaq 0x9af7d(%rip), %rcx     # 0x174b87
callq 0xd180
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)