// File: /workspace/github_cpp_makefile_star2_O3/Ciaxur[P]yagb-emu/include/imgui/imgui_widgets.cpp
// Function: ImGui::DataTypeClamp(int, void*, void const*, void const*)
bool ImGui::DataTypeClamp(ImGuiDataType data_type, void* p_data, const void* p_min, const void* p_max)
{
    switch (data_type)
    {
    case ImGuiDataType_S8:     return DataTypeClampT<ImS8  >((ImS8*  )p_data, (const ImS8*  )p_min, (const ImS8*  )p_max);
    case ImGuiDataType_U8:     return DataTypeClampT<ImU8  >((ImU8*  )p_data, (const ImU8*  )p_min, (const ImU8*  )p_max);
    case ImGuiDataType_S16:    return DataTypeClampT<ImS16 >((ImS16* )p_data, (const ImS16* )p_min, (const ImS16* )p_max);
    case ImGuiDataType_U16:    return DataTypeClampT<ImU16 >((ImU16* )p_data, (const ImU16* )p_min, (const ImU16* )p_max);
    case ImGuiDataType_S32:    return DataTypeClampT<ImS32 >((ImS32* )p_data, (const ImS32* )p_min, (const ImS32* )p_max);
    case ImGuiDataType_U32:    return DataTypeClampT<ImU32 >((ImU32* )p_data, (const ImU32* )p_min, (const ImU32* )p_max);
    case ImGuiDataType_S64:    return DataTypeClampT<ImS64 >((ImS64* )p_data, (const ImS64* )p_min, (const ImS64* )p_max);
    case ImGuiDataType_U64:    return DataTypeClampT<ImU64 >((ImU64* )p_data, (const ImU64* )p_min, (const ImU64* )p_max);
    case ImGuiDataType_Float:  return DataTypeClampT<float >((float* )p_data, (const float* )p_min, (const float* )p_max);
    case ImGuiDataType_Double: return DataTypeClampT<double>((double*)p_data, (const double*)p_min, (const double*)p_max);
    case ImGuiDataType_COUNT:  break;
    }
    IM_ASSERT(0);
    return false;
}

// Assembly:
cmpl $0x9, %edi
ja 0x95829
movl %edi, %eax
leaq 0x3b7f4(%rip), %rdi     # 0xd0ea8
movslq (%rdi,%rax,4), %rax
addq %rdi, %rax
jmpq *%rax
testq %rdx, %rdx
je 0x956cc
movb (%rdx), %al
cmpb %al, (%rsi)
jl 0x957c2
testq %rcx, %rcx
je 0x95826
movb (%rcx), %al
cmpb %al, (%rsi)
jg 0x957c2
jmp 0x95826
testq %rdx, %rdx
je 0x956f3
movl (%rdx), %eax
cmpl %eax, (%rsi)
jl 0x957dc
testq %rcx, %rcx
je 0x95826
movl (%rcx), %eax
cmpl %eax, (%rsi)
jle 0x95826
jmp 0x957dc
testq %rdx, %rdx
je 0x9571a
movsd (%rdx), %xmm0
ucomisd (%rsi), %xmm0
ja 0x95735
testq %rcx, %rcx
je 0x95826
movsd (%rsi), %xmm1
movsd (%rcx), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x95826
movsd %xmm0, (%rsi)
jmp 0x95823
testq %rdx, %rdx
je 0x9574b
movzwl (%rdx), %eax
cmpw %ax, (%rsi)
jl 0x95784
testq %rcx, %rcx
je 0x95826
movzwl (%rcx), %eax
cmpw %ax, (%rsi)
jle 0x95826
jmp 0x95784
testq %rdx, %rdx
je 0x9576f
movzwl (%rdx), %eax
cmpw %ax, (%rsi)
jb 0x95784
testq %rcx, %rcx
je 0x95826
movzwl (%rcx), %eax
cmpw %ax, (%rsi)
jbe 0x95826
movw %ax, (%rsi)
jmp 0x95823
testq %rdx, %rdx
je 0x95799
movq (%rdx), %rax
cmpq %rax, (%rsi)
jb 0x957fa
testq %rcx, %rcx
je 0x95826
movq (%rcx), %rax
cmpq %rax, (%rsi)
jbe 0x95826
jmp 0x957fa
testq %rdx, %rdx
je 0x957b7
movb (%rdx), %al
cmpb %al, (%rsi)
jb 0x957c2
testq %rcx, %rcx
je 0x95826
movb (%rcx), %al
cmpb %al, (%rsi)
jbe 0x95826
movb %al, (%rsi)
jmp 0x95823
testq %rdx, %rdx
je 0x957d1
movl (%rdx), %eax
cmpl %eax, (%rsi)
jb 0x957dc
testq %rcx, %rcx
je 0x95826
movl (%rcx), %eax
cmpl %eax, (%rsi)
jbe 0x95826
movl %eax, (%rsi)
jmp 0x95823
testq %rdx, %rdx
je 0x957ed
movq (%rdx), %rax
cmpq %rax, (%rsi)
jl 0x957fa
testq %rcx, %rcx
je 0x95826
movq (%rcx), %rax
cmpq %rax, (%rsi)
jle 0x95826
movq %rax, (%rsi)
jmp 0x95823
testq %rdx, %rdx
je 0x9580d
movss (%rdx), %xmm0
ucomiss (%rsi), %xmm0
ja 0x9581f
testq %rcx, %rcx
je 0x95826
movss (%rsi), %xmm1
movss (%rcx), %xmm0
ucomiss %xmm0, %xmm1
jbe 0x95826
movss %xmm0, (%rsi)
movb $0x1, %al
retq
xorl %eax, %eax
retq
pushq %rbp
movq %rsp, %rbp
leaq 0x228b8(%rip), %rdi     # 0xb80ec
leaq 0x3b7dd(%rip), %rsi     # 0xd1018
leaq 0x3be7c(%rip), %rcx     # 0xd16be
movl $0x7f4, %edx            # imm = 0x7F4
callq 0xc140