// File: Ciaxur[P]yagb-emu/include/imgui/imgui_draw.cpp
// Function: ImGui::RenderRectFilledWithHole(ImDrawList*, ImRect, ImRect, unsigned int, float)
void ImGui::RenderRectFilledWithHole(ImDrawList* draw_list, ImRect outer, ImRect inner, ImU32 col, float rounding)
{
    const bool fill_L = (inner.Min.x > outer.Min.x);
    const bool fill_R = (inner.Max.x < outer.Max.x);
    const bool fill_U = (inner.Min.y > outer.Min.y);
    const bool fill_D = (inner.Max.y < outer.Max.y);
    if (fill_L) draw_list->AddRectFilled(ImVec2(outer.Min.x, inner.Min.y), ImVec2(inner.Min.x, inner.Max.y), col, rounding, (fill_U ? 0 : ImDrawCornerFlags_TopLeft) | (fill_D ? 0 : ImDrawCornerFlags_BotLeft));
    if (fill_R) draw_list->AddRectFilled(ImVec2(inner.Max.x, inner.Min.y), ImVec2(outer.Max.x, inner.Max.y), col, rounding, (fill_U ? 0 : ImDrawCornerFlags_TopRight) | (fill_D ? 0 : ImDrawCornerFlags_BotRight));
    if (fill_U) draw_list->AddRectFilled(ImVec2(inner.Min.x, outer.Min.y), ImVec2(inner.Max.x, inner.Min.y), col, rounding, (fill_L ? 0 : ImDrawCornerFlags_TopLeft) | (fill_R ? 0 : ImDrawCornerFlags_TopRight));
    if (fill_D) draw_list->AddRectFilled(ImVec2(inner.Min.x, inner.Max.y), ImVec2(inner.Max.x, outer.Max.y), col, rounding, (fill_L ? 0 : ImDrawCornerFlags_BotLeft) | (fill_R ? 0 : ImDrawCornerFlags_BotRight));
    if (fill_L && fill_U) draw_list->AddRectFilled(ImVec2(outer.Min.x, outer.Min.y), ImVec2(inner.Min.x, inner.Min.y), col, rounding, ImDrawCornerFlags_TopLeft);
    if (fill_R && fill_U) draw_list->AddRectFilled(ImVec2(inner.Max.x, outer.Min.y), ImVec2(outer.Max.x, inner.Min.y), col, rounding, ImDrawCornerFlags_TopRight);
    if (fill_L && fill_D) draw_list->AddRectFilled(ImVec2(outer.Min.x, inner.Max.y), ImVec2(inner.Min.x, outer.Max.y), col, rounding, ImDrawCornerFlags_BotLeft);
    if (fill_R && fill_D) draw_list->AddRectFilled(ImVec2(inner.Max.x, inner.Max.y), ImVec2(outer.Max.x, outer.Max.y), col, rounding, ImDrawCornerFlags_BotRight);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movlpd %xmm0, -0x10(%rbp)
movlpd %xmm1, -0x8(%rbp)
movlpd %xmm2, -0x20(%rbp)
movlpd %xmm3, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movl %esi, -0x2c(%rbp)
movss %xmm4, -0x30(%rbp)
movss -0x20(%rbp), %xmm0
ucomiss -0x10(%rbp), %xmm0
seta %al
andb $0x1, %al
movb %al, -0x31(%rbp)
movss -0x18(%rbp), %xmm1
movss -0x8(%rbp), %xmm0
ucomiss %xmm1, %xmm0
seta %al
andb $0x1, %al
movb %al, -0x32(%rbp)
movss -0x1c(%rbp), %xmm0
ucomiss -0xc(%rbp), %xmm0
seta %al
andb $0x1, %al
movb %al, -0x33(%rbp)
movss -0x14(%rbp), %xmm1
movss -0x4(%rbp), %xmm0
ucomiss %xmm1, %xmm0
seta %al
andb $0x1, %al
movb %al, -0x34(%rbp)
testb $0x1, -0x31(%rbp)
je 0x11dee1
movq -0x28(%rbp), %rax
movq %rax, -0xc0(%rbp)
movss -0x10(%rbp), %xmm0
movss -0x1c(%rbp), %xmm1
leaq -0x3c(%rbp), %rdi
callq 0xbf4c0
movss -0x20(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
leaq -0x44(%rbp), %rdi
callq 0xbf4c0
movq -0xc0(%rbp), %rdi
movl -0x2c(%rbp), %ecx
movss -0x30(%rbp), %xmm0
movb -0x33(%rbp), %dl
movl $0x1, %r8d
xorl %eax, %eax
testb $0x1, %dl
cmovnel %eax, %r8d
movb -0x34(%rbp), %sil
movl $0x4, %eax
xorl %edx, %edx
testb $0x1, %sil
cmovnel %edx, %eax
orl %eax, %r8d
leaq -0x3c(%rbp), %rsi
leaq -0x44(%rbp), %rdx
callq 0x113090
testb $0x1, -0x32(%rbp)
je 0x11df5b
movq -0x28(%rbp), %rax
movq %rax, -0xc8(%rbp)
movss -0x18(%rbp), %xmm0
movss -0x1c(%rbp), %xmm1
leaq -0x4c(%rbp), %rdi
callq 0xbf4c0
movss -0x8(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
leaq -0x54(%rbp), %rdi
callq 0xbf4c0
movq -0xc8(%rbp), %rdi
movl -0x2c(%rbp), %ecx
movss -0x30(%rbp), %xmm0
movb -0x33(%rbp), %dl
movl $0x2, %r8d
xorl %eax, %eax
testb $0x1, %dl
cmovnel %eax, %r8d
movb -0x34(%rbp), %sil
movl $0x8, %eax
xorl %edx, %edx
testb $0x1, %sil
cmovnel %edx, %eax
orl %eax, %r8d
leaq -0x4c(%rbp), %rsi
leaq -0x54(%rbp), %rdx
callq 0x113090
testb $0x1, -0x33(%rbp)
je 0x11dfd5
movq -0x28(%rbp), %rax
movq %rax, -0xd0(%rbp)
movss -0x20(%rbp), %xmm0
movss -0xc(%rbp), %xmm1
leaq -0x5c(%rbp), %rdi
callq 0xbf4c0
movss -0x18(%rbp), %xmm0
movss -0x1c(%rbp), %xmm1
leaq -0x64(%rbp), %rdi
callq 0xbf4c0
movq -0xd0(%rbp), %rdi
movl -0x2c(%rbp), %ecx
movss -0x30(%rbp), %xmm0
movb -0x31(%rbp), %dl
movl $0x1, %r8d
xorl %eax, %eax
testb $0x1, %dl
cmovnel %eax, %r8d
movb -0x32(%rbp), %sil
movl $0x2, %eax
xorl %edx, %edx
testb $0x1, %sil
cmovnel %edx, %eax
orl %eax, %r8d
leaq -0x5c(%rbp), %rsi
leaq -0x64(%rbp), %rdx
callq 0x113090
testb $0x1, -0x34(%rbp)
je 0x11e04f
movq -0x28(%rbp), %rax
movq %rax, -0xd8(%rbp)
movss -0x20(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
leaq -0x6c(%rbp), %rdi
callq 0xbf4c0
movss -0x18(%rbp), %xmm0
movss -0x4(%rbp), %xmm1
leaq -0x74(%rbp), %rdi
callq 0xbf4c0
movq -0xd8(%rbp), %rdi
movl -0x2c(%rbp), %ecx
movss -0x30(%rbp), %xmm0
movb -0x31(%rbp), %dl
movl $0x4, %r8d
xorl %eax, %eax
testb $0x1, %dl
cmovnel %eax, %r8d
movb -0x32(%rbp), %sil
movl $0x8, %eax
xorl %edx, %edx
testb $0x1, %sil
cmovnel %edx, %eax
orl %eax, %r8d
leaq -0x6c(%rbp), %rsi
leaq -0x74(%rbp), %rdx
callq 0x113090
testb $0x1, -0x31(%rbp)
je 0x11e0b4
testb $0x1, -0x33(%rbp)
je 0x11e0b4
movq -0x28(%rbp), %rax
movq %rax, -0xe0(%rbp)
movss -0x10(%rbp), %xmm0
movss -0xc(%rbp), %xmm1
leaq -0x7c(%rbp), %rdi
callq 0xbf4c0
movss -0x20(%rbp), %xmm0
movss -0x1c(%rbp), %xmm1
leaq -0x84(%rbp), %rdi
callq 0xbf4c0
movq -0xe0(%rbp), %rdi
movl -0x2c(%rbp), %ecx
movss -0x30(%rbp), %xmm0
leaq -0x7c(%rbp), %rsi
leaq -0x84(%rbp), %rdx
movl $0x1, %r8d
callq 0x113090
testb $0x1, -0x32(%rbp)
je 0x11e11f
testb $0x1, -0x33(%rbp)
je 0x11e11f
movq -0x28(%rbp), %rax
movq %rax, -0xe8(%rbp)
movss -0x18(%rbp), %xmm0
movss -0xc(%rbp), %xmm1
leaq -0x8c(%rbp), %rdi
callq 0xbf4c0
movss -0x8(%rbp), %xmm0
movss -0x1c(%rbp), %xmm1
leaq -0x94(%rbp), %rdi
callq 0xbf4c0
movq -0xe8(%rbp), %rdi
movl -0x2c(%rbp), %ecx
movss -0x30(%rbp), %xmm0
leaq -0x8c(%rbp), %rsi
leaq -0x94(%rbp), %rdx
movl $0x2, %r8d
callq 0x113090
testb $0x1, -0x31(%rbp)
je 0x11e18a
testb $0x1, -0x34(%rbp)
je 0x11e18a
movq -0x28(%rbp), %rax
movq %rax, -0xf0(%rbp)
movss -0x10(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
leaq -0x9c(%rbp), %rdi
callq 0xbf4c0
movss -0x20(%rbp), %xmm0
movss -0x4(%rbp), %xmm1
leaq -0xa4(%rbp), %rdi
callq 0xbf4c0
movq -0xf0(%rbp), %rdi
movl -0x2c(%rbp), %ecx
movss -0x30(%rbp), %xmm0
leaq -0x9c(%rbp), %rsi
leaq -0xa4(%rbp), %rdx
movl $0x4, %r8d
callq 0x113090
testb $0x1, -0x32(%rbp)
je 0x11e1f5
testb $0x1, -0x34(%rbp)
je 0x11e1f5
movq -0x28(%rbp), %rax
movq %rax, -0xf8(%rbp)
movss -0x18(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
leaq -0xac(%rbp), %rdi
callq 0xbf4c0
movss -0x8(%rbp), %xmm0
movss -0x4(%rbp), %xmm1
leaq -0xb4(%rbp), %rdi
callq 0xbf4c0
movq -0xf8(%rbp), %rdi
movl -0x2c(%rbp), %ecx
movss -0x30(%rbp), %xmm0
leaq -0xac(%rbp), %rsi
leaq -0xb4(%rbp), %rdx
movl $0x8, %r8d
callq 0x113090
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nop