// File: Ciaxur[P]yagb-emu/include/imgui/imgui_widgets.cpp
// Function: ImGui::DragFloatRange2(char const*, float*, float*, float, float, float, char const*, char const*, int)
bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const char* format, const char* format_max, ImGuiSliderFlags flags)
{
    ImGuiWindow* window = GetCurrentWindow();
    if (window->SkipItems)
        return false;

    ImGuiContext& g = *GImGui;
    PushID(label);
    BeginGroup();
    PushMultiItemsWidths(2, CalcItemWidth());

    float min_min = (v_min >= v_max) ? -FLT_MAX : v_min;
    float min_max = (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max);
    ImGuiSliderFlags min_flags = flags | ((min_min == min_max) ? ImGuiSliderFlags_ReadOnly : 0);
    bool value_changed = DragScalar("##min", ImGuiDataType_Float, v_current_min, v_speed, &min_min, &min_max, format, min_flags);
    PopItemWidth();
    SameLine(0, g.Style.ItemInnerSpacing.x);

    float max_min = (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min);
    float max_max = (v_min >= v_max) ? FLT_MAX : v_max;
    ImGuiSliderFlags max_flags = flags | ((max_min == max_max) ? ImGuiSliderFlags_ReadOnly : 0);
    value_changed |= DragScalar("##max", ImGuiDataType_Float, v_current_max, v_speed, &max_min, &max_max, format_max ? format_max : format, max_flags);
    PopItemWidth();
    SameLine(0, g.Style.ItemInnerSpacing.x);

    TextEx(label, FindRenderedTextEnd(label));
    EndGroup();
    PopID();
    return value_changed;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movss %xmm0, -0x24(%rbp)
movss %xmm1, -0x28(%rbp)
movss %xmm2, -0x2c(%rbp)
movq %rcx, -0x38(%rbp)
movq %r8, -0x40(%rbp)
movl %r9d, -0x44(%rbp)
callq 0xeb270
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
testb $0x1, 0x93(%rax)
je 0x143101
movb $0x0, -0x1(%rbp)
jmp 0x14337f
leaq 0xcfe38(%rip), %rax     # 0x212f40
movq (%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rdi
callq 0xdb440
callq 0xdd220
callq 0xdcdc0
movl $0x2, %edi
callq 0xdcbc0
movss -0x28(%rbp), %xmm0
ucomiss -0x2c(%rbp), %xmm0
jb 0x143146
movss 0x2f619(%rip), %xmm0    # 0x172758
movss %xmm0, -0x78(%rbp)
jmp 0x143150
movss -0x28(%rbp), %xmm0
movss %xmm0, -0x78(%rbp)
movss -0x78(%rbp), %xmm0
movss %xmm0, -0x5c(%rbp)
movss -0x28(%rbp), %xmm0
ucomiss -0x2c(%rbp), %xmm0
jb 0x143174
movq -0x20(%rbp), %rax
movss (%rax), %xmm0
movss %xmm0, -0x7c(%rbp)
jmp 0x14318b
movss -0x2c(%rbp), %xmm0
movq -0x20(%rbp), %rax
movss (%rax), %xmm1
callq 0x13c690
movss %xmm0, -0x7c(%rbp)
movss -0x7c(%rbp), %xmm0
movss %xmm0, -0x60(%rbp)
movl -0x44(%rbp), %eax
movss -0x5c(%rbp), %xmm0
movss -0x60(%rbp), %xmm1
xorl %ecx, %ecx
movl $0x200000, %edx         # imm = 0x200000
ucomiss %xmm1, %xmm0
setnp %dil
sete %sil
testb %dil, %sil
cmovnel %edx, %ecx
orl %ecx, %eax
movl %eax, -0x64(%rbp)
movq -0x18(%rbp), %rdx
movss -0x24(%rbp), %xmm0
movq -0x38(%rbp), %r9
movl -0x64(%rbp), %eax
leaq 0x4baf5(%rip), %rdi     # 0x18eccb
movl $0x8, %esi
leaq -0x5c(%rbp), %rcx
leaq -0x60(%rbp), %r8
movl %eax, (%rsp)
callq 0x1422c0
andb $0x1, %al
movb %al, -0x65(%rbp)
callq 0xdcd30
movq -0x58(%rbp), %rax
movss 0x15b0(%rax), %xmm1
xorps %xmm0, %xmm0
callq 0xdc1c0
movss -0x28(%rbp), %xmm0
ucomiss -0x2c(%rbp), %xmm0
jb 0x143223
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movss %xmm0, -0x80(%rbp)
jmp 0x14323a
movss -0x28(%rbp), %xmm0
movq -0x18(%rbp), %rax
movss (%rax), %xmm1
callq 0x139050
movss %xmm0, -0x80(%rbp)
movss -0x80(%rbp), %xmm0
movss %xmm0, -0x6c(%rbp)
movss -0x28(%rbp), %xmm0
ucomiss -0x2c(%rbp), %xmm0
jb 0x143261
movss 0x2ed5d(%rip), %xmm0    # 0x171fb4
movss %xmm0, -0x84(%rbp)
jmp 0x14326e
movss -0x2c(%rbp), %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x84(%rbp), %xmm0
movss %xmm0, -0x70(%rbp)
movl -0x44(%rbp), %eax
movss -0x6c(%rbp), %xmm0
movss -0x70(%rbp), %xmm1
xorl %ecx, %ecx
movl $0x200000, %edx         # imm = 0x200000
ucomiss %xmm1, %xmm0
setnp %dil
sete %sil
testb %dil, %sil
cmovnel %edx, %ecx
orl %ecx, %eax
movl %eax, -0x74(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x90(%rbp)
movss -0x24(%rbp), %xmm0
movss %xmm0, -0x88(%rbp)
cmpq $0x0, -0x40(%rbp)
je 0x1432d1
movq -0x40(%rbp), %rax
movq %rax, -0x98(%rbp)
jmp 0x1432dc
movq -0x38(%rbp), %rax
movq %rax, -0x98(%rbp)
movss -0x88(%rbp), %xmm0
movq -0x90(%rbp), %rdx
movq -0x98(%rbp), %r9
movl -0x74(%rbp), %eax
leaq 0x4b9d5(%rip), %rdi     # 0x18ecd1
movl $0x8, %esi
leaq -0x6c(%rbp), %rcx
leaq -0x70(%rbp), %r8
movl %eax, (%rsp)
callq 0x1422c0
andb $0x1, %al
movzbl %al, %ecx
movb -0x65(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
orl %ecx, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, -0x65(%rbp)
callq 0xdcd30
movq -0x58(%rbp), %rax
movss 0x15b0(%rax), %xmm1
xorps %xmm0, %xmm0
callq 0xdc1c0
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xc8090
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x138a30
callq 0xdbe80
callq 0xdb640
movb -0x65(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax)