// File: Ciaxur[P]yagb-emu/src/../include/imgui_club/imgui_memory_editor/imgui_memory_editor.h
// Function: MemoryEditor::DrawPreviewLine(MemoryEditor::Sizes const&, void*, unsigned long, unsigned long)
void DrawPreviewLine(const Sizes& s, void* mem_data_void, size_t mem_size, size_t base_display_addr)
    {
        IM_UNUSED(base_display_addr);
        ImU8* mem_data = (ImU8*)mem_data_void;
        ImGuiStyle& style = ImGui::GetStyle();
        ImGui::AlignTextToFramePadding();
        ImGui::Text("Preview as:");
        ImGui::SameLine();
        ImGui::PushItemWidth((s.GlyphWidth * 10.0f) + style.FramePadding.x * 2.0f + style.ItemInnerSpacing.x);
        if (ImGui::BeginCombo("##combo_type", DataTypeGetDesc(PreviewDataType), ImGuiComboFlags_HeightLargest))
        {
            for (int n = 0; n < ImGuiDataType_COUNT; n++)
                if (ImGui::Selectable(DataTypeGetDesc((ImGuiDataType)n), PreviewDataType == n))
                    PreviewDataType = (ImGuiDataType)n;
            ImGui::EndCombo();
        }
        ImGui::PopItemWidth();
        ImGui::SameLine();
        ImGui::PushItemWidth((s.GlyphWidth * 6.0f) + style.FramePadding.x * 2.0f + style.ItemInnerSpacing.x);
        ImGui::Combo("##combo_endianess", &PreviewEndianess, "LE\0BE\0\0");
        ImGui::PopItemWidth();

        char buf[128] = "";
        float x = s.GlyphWidth * 6.0f;
        bool has_value = DataPreviewAddr != (size_t)-1;
        if (has_value)
            DrawPreviewData(DataPreviewAddr, mem_data, mem_size, PreviewDataType, DataFormat_Dec, buf, (size_t)IM_ARRAYSIZE(buf));
        ImGui::Text("Dec"); ImGui::SameLine(x); ImGui::TextUnformatted(has_value ? buf : "N/A");
        if (has_value)
            DrawPreviewData(DataPreviewAddr, mem_data, mem_size, PreviewDataType, DataFormat_Hex, buf, (size_t)IM_ARRAYSIZE(buf));
        ImGui::Text("Hex"); ImGui::SameLine(x); ImGui::TextUnformatted(has_value ? buf : "N/A");
        if (has_value)
            DrawPreviewData(DataPreviewAddr, mem_data, mem_size, PreviewDataType, DataFormat_Bin, buf, (size_t)IM_ARRAYSIZE(buf));
        buf[IM_ARRAYSIZE(buf) - 1] = 0;
        ImGui::Text("Bin"); ImGui::SameLine(x); ImGui::TextUnformatted(has_value ? buf : "N/A");
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
callq 0xc7680
movq %rax, -0x38(%rbp)
callq 0x13da10
leaq 0xb0e9b(%rip), %rdi     # 0x1724e2
movb $0x0, %al
callq 0x139160
xorps %xmm0, %xmm0
movss 0xb0927(%rip), %xmm1    # 0x171f80
callq 0xdc1c0
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x38(%rbp), %rax
movss 0xb0959(%rip), %xmm1    # 0x171fcc
mulss 0x38(%rax), %xmm1
movss 0xb095c(%rip), %xmm2    # 0x171fdc
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x38(%rbp), %rax
addss 0x50(%rax), %xmm0
callq 0xdcb10
movq -0xe0(%rbp), %rdi
movl 0xb4(%rdi), %esi
callq 0xc1a20
movq %rax, %rsi
leaq 0xb0e3c(%rip), %rdi     # 0x1724ee
movl $0x10, %edx
callq 0x13e6c0
testb $0x1, %al
jne 0xc16c5
jmp 0xc1760
movl $0x0, -0x3c(%rbp)
cmpl $0xa, -0x3c(%rbp)
jge 0xc175b
movq -0xe0(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0xc1a20
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0xe8(%rbp)
movl 0xb4(%rax), %eax
cmpl -0x3c(%rbp), %eax
sete %al
movb %al, -0xe9(%rbp)
leaq -0x44(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0xbf4c0
movb -0xe9(%rbp), %al
movq -0xe8(%rbp), %rdi
movzbl %al, %esi
andl $0x1, %esi
xorl %edx, %edx
leaq -0x44(%rbp), %rcx
callq 0x13f2b0
testb $0x1, %al
jne 0xc173b
jmp 0xc174b
movq -0xe0(%rbp), %rax
movl -0x3c(%rbp), %ecx
movl %ecx, 0xb4(%rax)
jmp 0xc174d
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xc16cc
callq 0x13f0d0
callq 0xdcd30
xorps %xmm0, %xmm0
movss 0xb0810(%rip), %xmm1    # 0x171f80
callq 0xdc1c0
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x38(%rbp), %rax
movss 0xb0842(%rip), %xmm1    # 0x171fcc
mulss 0x38(%rax), %xmm1
movss 0xb0849(%rip), %xmm2    # 0x171fe0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x38(%rbp), %rax
addss 0x50(%rax), %xmm0
callq 0xdcb10
movq -0xe0(%rbp), %rsi
addq $0xb0, %rsi
leaq 0xb0d39(%rip), %rdi     # 0x1724fb
leaq 0xb0f57(%rip), %rdx     # 0x172720
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x13fb50
callq 0xdcd30
leaq -0xd0(%rbp), %rdi
xorl %esi, %esi
movl $0x80, %edx
callq 0xd2f0
movq -0xe0(%rbp), %rax
movq -0x10(%rbp), %rcx
movss 0xb07e2(%rip), %xmm0    # 0x171fe0
mulss 0x8(%rcx), %xmm0
movss %xmm0, -0xd4(%rbp)
cmpq $-0x1, 0x40(%rax)
setne %al
andb $0x1, %al
movb %al, -0xd5(%rbp)
testb $0x1, -0xd5(%rbp)
je 0xc185d
movq -0xe0(%rbp), %rdi
movq 0x40(%rdi), %rsi
movq -0x30(%rbp), %rdx
movq -0x20(%rbp), %rcx
movl 0xb4(%rdi), %r8d
leaq -0xd0(%rbp), %rax
movl $0x1, %r9d
movq %rax, (%rsp)
movq $0x80, 0x8(%rsp)
callq 0xc1aa0
leaq 0xb0ca9(%rip), %rdi     # 0x17250d
movb $0x0, %al
callq 0x139160
movss -0xd4(%rbp), %xmm0
movss 0xb0705(%rip), %xmm1    # 0x171f80
callq 0xdc1c0
testb $0x1, -0xd5(%rbp)
je 0xc1899
leaq -0xd0(%rbp), %rax
movq %rax, -0xf8(%rbp)
jmp 0xc18a9
leaq 0xb0c71(%rip), %rax     # 0x172511
movq %rax, -0xf8(%rbp)
jmp 0xc18a9
movq -0xf8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x139130
testb $0x1, -0xd5(%rbp)
je 0xc18fb
movq -0xe0(%rbp), %rdi
movq 0x40(%rdi), %rsi
movq -0x30(%rbp), %rdx
movq -0x20(%rbp), %rcx
movl 0xb4(%rdi), %r8d
leaq -0xd0(%rbp), %rax
movl $0x2, %r9d
movq %rax, (%rsp)
movq $0x80, 0x8(%rsp)
callq 0xc1aa0
leaq 0xb0bd1(%rip), %rdi     # 0x1724d3
movb $0x0, %al
callq 0x139160
movss -0xd4(%rbp), %xmm0
movss 0xb0667(%rip), %xmm1    # 0x171f80
callq 0xdc1c0
testb $0x1, -0xd5(%rbp)
je 0xc1937
leaq -0xd0(%rbp), %rax
movq %rax, -0x100(%rbp)
jmp 0xc1947
leaq 0xb0bd3(%rip), %rax     # 0x172511
movq %rax, -0x100(%rbp)
jmp 0xc1947
movq -0x100(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x139130
testb $0x1, -0xd5(%rbp)
je 0xc1996
movq -0xe0(%rbp), %rdi
movq 0x40(%rdi), %rsi
movq -0x30(%rbp), %rdx
movq -0x20(%rbp), %rcx
movl 0xb4(%rdi), %r8d
leaq -0xd0(%rbp), %rax
xorl %r9d, %r9d
movq %rax, (%rsp)
movq $0x80, 0x8(%rsp)
callq 0xc1aa0
movb $0x0, -0x51(%rbp)
leaq 0xb0b74(%rip), %rdi     # 0x172515
movb $0x0, %al
callq 0x139160
movss -0xd4(%rbp), %xmm0
movss 0xb05c8(%rip), %xmm1    # 0x171f80
callq 0xdc1c0
testb $0x1, -0xd5(%rbp)
je 0xc19d6
leaq -0xd0(%rbp), %rax
movq %rax, -0x108(%rbp)
jmp 0xc19e6
leaq 0xb0b34(%rip), %rax     # 0x172511
movq %rax, -0x108(%rbp)
jmp 0xc19e6
movq -0x108(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x139130
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
nop