// File: /workspace/github_cpp_makefile_star2_O2/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 0x7e941
movl %edi, %eax
leaq 0x39a4c(%rip), %rdi     # 0xb8218
movslq (%rdi,%rax,4), %rax
addq %rdi, %rax
jmpq *%rax
testq %rdx, %rdx
je 0x7e7e4
movb (%rdx), %al
cmpb %al, (%rsi)
jl 0x7e8da
testq %rcx, %rcx
je 0x7e93e
movb (%rcx), %al
cmpb %al, (%rsi)
jg 0x7e8da
jmp 0x7e93e
testq %rdx, %rdx
je 0x7e80b
movl (%rdx), %eax
cmpl %eax, (%rsi)
jl 0x7e8f4
testq %rcx, %rcx
je 0x7e93e
movl (%rcx), %eax
cmpl %eax, (%rsi)
jle 0x7e93e
jmp 0x7e8f4
testq %rdx, %rdx
je 0x7e832
movsd (%rdx), %xmm0
ucomisd (%rsi), %xmm0
ja 0x7e84d
testq %rcx, %rcx
je 0x7e93e
movsd (%rsi), %xmm1
movsd (%rcx), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x7e93e
movsd %xmm0, (%rsi)
jmp 0x7e93b
testq %rdx, %rdx
je 0x7e863
movzwl (%rdx), %eax
cmpw %ax, (%rsi)
jl 0x7e89c
testq %rcx, %rcx
je 0x7e93e
movzwl (%rcx), %eax
cmpw %ax, (%rsi)
jle 0x7e93e
jmp 0x7e89c
testq %rdx, %rdx
je 0x7e887
movzwl (%rdx), %eax
cmpw %ax, (%rsi)
jb 0x7e89c
testq %rcx, %rcx
je 0x7e93e
movzwl (%rcx), %eax
cmpw %ax, (%rsi)
jbe 0x7e93e
movw %ax, (%rsi)
jmp 0x7e93b
testq %rdx, %rdx
je 0x7e8b1
movq (%rdx), %rax
cmpq %rax, (%rsi)
jb 0x7e912
testq %rcx, %rcx
je 0x7e93e
movq (%rcx), %rax
cmpq %rax, (%rsi)
jbe 0x7e93e
jmp 0x7e912
testq %rdx, %rdx
je 0x7e8cf
movb (%rdx), %al
cmpb %al, (%rsi)
jb 0x7e8da
testq %rcx, %rcx
je 0x7e93e
movb (%rcx), %al
cmpb %al, (%rsi)
jbe 0x7e93e
movb %al, (%rsi)
jmp 0x7e93b
testq %rdx, %rdx
je 0x7e8e9
movl (%rdx), %eax
cmpl %eax, (%rsi)
jb 0x7e8f4
testq %rcx, %rcx
je 0x7e93e
movl (%rcx), %eax
cmpl %eax, (%rsi)
jbe 0x7e93e
movl %eax, (%rsi)
jmp 0x7e93b
testq %rdx, %rdx
je 0x7e905
movq (%rdx), %rax
cmpq %rax, (%rsi)
jl 0x7e912
testq %rcx, %rcx
je 0x7e93e
movq (%rcx), %rax
cmpq %rax, (%rsi)
jle 0x7e93e
movq %rax, (%rsi)
jmp 0x7e93b
testq %rdx, %rdx
je 0x7e925
movss (%rdx), %xmm0
ucomiss (%rsi), %xmm0
ja 0x7e937
testq %rcx, %rcx
je 0x7e93e
movss (%rsi), %xmm1
movss (%rcx), %xmm0
ucomiss %xmm0, %xmm1
jbe 0x7e93e
movss %xmm0, (%rsi)
movb $0x1, %al
retq
xorl %eax, %eax
retq
pushq %rbp
movq %rsp, %rbp
leaq 0x207d0(%rip), %rdi     # 0x9f11c
leaq 0x39a35(%rip), %rsi     # 0xb8388
leaq 0x3a0d4(%rip), %rcx     # 0xb8a2e
movl $0x7f4, %edx            # imm = 0x7F4
callq 0xc140