// File: /workspace/github_cpp_makefile_star2_O1/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 0x97466
movl %edi, %eax
leaq 0x3bce7(%rip), %rdi     # 0xd2fd8
movslq (%rdi,%rax,4), %rax
addq %rdi, %rax
jmpq *%rax
testq %rdx, %rdx
je 0x97309
movb (%rdx), %al
cmpb %al, (%rsi)
jl 0x973ff
testq %rcx, %rcx
je 0x97463
movb (%rcx), %al
cmpb %al, (%rsi)
jg 0x973ff
jmp 0x97463
testq %rdx, %rdx
je 0x97330
movl (%rdx), %eax
cmpl %eax, (%rsi)
jl 0x97419
testq %rcx, %rcx
je 0x97463
movl (%rcx), %eax
cmpl %eax, (%rsi)
jle 0x97463
jmp 0x97419
testq %rdx, %rdx
je 0x97357
movsd (%rdx), %xmm0
ucomisd (%rsi), %xmm0
ja 0x97372
testq %rcx, %rcx
je 0x97463
movsd (%rsi), %xmm1
movsd (%rcx), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x97463
movsd %xmm0, (%rsi)
jmp 0x97460
testq %rdx, %rdx
je 0x97388
movzwl (%rdx), %eax
cmpw %ax, (%rsi)
jl 0x973c1
testq %rcx, %rcx
je 0x97463
movzwl (%rcx), %eax
cmpw %ax, (%rsi)
jle 0x97463
jmp 0x973c1
testq %rdx, %rdx
je 0x973ac
movzwl (%rdx), %eax
cmpw %ax, (%rsi)
jb 0x973c1
testq %rcx, %rcx
je 0x97463
movzwl (%rcx), %eax
cmpw %ax, (%rsi)
jbe 0x97463
movw %ax, (%rsi)
jmp 0x97460
testq %rdx, %rdx
je 0x973d6
movq (%rdx), %rax
cmpq %rax, (%rsi)
jb 0x97437
testq %rcx, %rcx
je 0x97463
movq (%rcx), %rax
cmpq %rax, (%rsi)
jbe 0x97463
jmp 0x97437
testq %rdx, %rdx
je 0x973f4
movb (%rdx), %al
cmpb %al, (%rsi)
jb 0x973ff
testq %rcx, %rcx
je 0x97463
movb (%rcx), %al
cmpb %al, (%rsi)
jbe 0x97463
movb %al, (%rsi)
jmp 0x97460
testq %rdx, %rdx
je 0x9740e
movl (%rdx), %eax
cmpl %eax, (%rsi)
jb 0x97419
testq %rcx, %rcx
je 0x97463
movl (%rcx), %eax
cmpl %eax, (%rsi)
jbe 0x97463
movl %eax, (%rsi)
jmp 0x97460
testq %rdx, %rdx
je 0x9742a
movq (%rdx), %rax
cmpq %rax, (%rsi)
jl 0x97437
testq %rcx, %rcx
je 0x97463
movq (%rcx), %rax
cmpq %rax, (%rsi)
jle 0x97463
movq %rax, (%rsi)
jmp 0x97460
testq %rdx, %rdx
je 0x9744a
movss (%rdx), %xmm0
ucomiss (%rsi), %xmm0
ja 0x9745c
testq %rcx, %rcx
je 0x97463
movss (%rsi), %xmm1
movss (%rcx), %xmm0
ucomiss %xmm0, %xmm1
jbe 0x97463
movss %xmm0, (%rsi)
movb $0x1, %al
retq
xorl %eax, %eax
retq
pushq %rbp
movq %rsp, %rbp
leaq 0x22c7b(%rip), %rdi     # 0xba0ec
leaq 0x3bcd0(%rip), %rsi     # 0xd3148
leaq 0x3c36f(%rip), %rcx     # 0xd37ee
movl $0x7f4, %edx            # imm = 0x7F4
callq 0xc140