// File: Ciaxur[P]yagb-emu/include/imgui/imgui_draw.cpp
// Function: ImFontAtlas::GetMouseCursorTexData(int, ImVec2*, ImVec2*, ImVec2*, ImVec2*)
bool ImFontAtlas::GetMouseCursorTexData(ImGuiMouseCursor cursor_type, ImVec2* out_offset, ImVec2* out_size, ImVec2 out_uv_border[2], ImVec2 out_uv_fill[2])
{
    if (cursor_type <= ImGuiMouseCursor_None || cursor_type >= ImGuiMouseCursor_COUNT)
        return false;
    if (Flags & ImFontAtlasFlags_NoMouseCursors)
        return false;

    IM_ASSERT(PackIdMouseCursors != -1);
    ImFontAtlasCustomRect* r = GetCustomRectByIndex(PackIdMouseCursors);
    ImVec2 pos = FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[cursor_type][0] + ImVec2((float)r->X, (float)r->Y);
    ImVec2 size = FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[cursor_type][1];
    *out_size = size;
    *out_offset = FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[cursor_type][2];
    out_uv_border[0] = (pos) * TexUvScale;
    out_uv_border[1] = (pos + size) * TexUvScale;
    pos.x += FONT_ATLAS_DEFAULT_TEX_DATA_W + 1;
    out_uv_fill[0] = (pos) * TexUvScale;
    out_uv_fill[1] = (pos + size) * TexUvScale;
    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
cmpl $-0x1, -0x14(%rbp)
jle 0x1173e9
cmpl $0x9, -0x14(%rbp)
jl 0x1173f2
movb $0x0, -0x1(%rbp)
jmp 0x1175d3
movq -0x90(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x11740d
movb $0x0, -0x1(%rbp)
jmp 0x1175d3
movq -0x90(%rbp), %rax
cmpl $-0x1, 0x470(%rax)
je 0x11741f
jmp 0x11743e
leaq 0x73582(%rip), %rdi     # 0x18a9a8
leaq 0x72d49(%rip), %rsi     # 0x18a176
movl $0x813, %edx            # imm = 0x813
leaq 0x73588(%rip), %rcx     # 0x18a9c1
callq 0xd180
movq -0x90(%rbp), %rdi
movl 0x470(%rdi), %esi
callq 0x127c00
movq %rax, -0x40(%rbp)
movslq -0x14(%rbp), %rax
leaq (%rax,%rax,2), %rcx
leaq 0xfd06d(%rip), %rax     # 0x2144d0
movq %rax, -0xb0(%rbp)
leaq (%rax,%rcx,8), %rax
movq %rax, -0xc0(%rbp)
movq -0x40(%rbp), %rax
movzwl 0x4(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movzwl 0x6(%rax), %eax
cvtsi2ss %eax, %xmm1
leaq -0x50(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0xbf4c0
movq -0xc0(%rbp), %rdi
movq -0xb8(%rbp), %rsi
callq 0x111670
movq -0xb0(%rbp), %rcx
movq -0x90(%rbp), %rsi
movlpd %xmm0, -0x48(%rbp)
movslq -0x14(%rbp), %rax
leaq (%rax,%rax,2), %rax
movq 0x8(%rcx,%rax,8), %rax
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rax
movq -0x58(%rbp), %rdx
movq %rdx, (%rax)
movslq -0x14(%rbp), %rax
leaq (%rax,%rax,2), %rdx
movq -0x20(%rbp), %rax
movq 0x10(%rcx,%rdx,8), %rcx
movq %rcx, (%rax)
addq $0x30, %rsi
movq %rsi, -0x98(%rbp)
leaq -0x48(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x1175f0
movq -0xa8(%rbp), %rdi
movlpd %xmm0, -0x60(%rbp)
movq -0x30(%rbp), %rax
movq -0x60(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x58(%rbp), %rsi
movq %rsi, -0xa0(%rbp)
callq 0x111670
movq -0x98(%rbp), %rsi
movlpd %xmm0, -0x70(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x1175f0
movq -0xa8(%rbp), %rdi
movq -0x98(%rbp), %rsi
movlpd %xmm0, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq -0x68(%rbp), %rcx
movq %rcx, 0x8(%rax)
movss -0x48(%rbp), %xmm0
movss 0x6c4b6(%rip), %xmm1    # 0x183a28
addss %xmm1, %xmm0
movss %xmm0, -0x48(%rbp)
callq 0x1175f0
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
movlpd %xmm0, -0x78(%rbp)
movq -0x38(%rbp), %rax
movq -0x78(%rbp), %rcx
movq %rcx, (%rax)
callq 0x111670
movq -0x98(%rbp), %rsi
movlpd %xmm0, -0x88(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x1175f0
movlpd %xmm0, -0x80(%rbp)
movq -0x38(%rbp), %rax
movq -0x80(%rbp), %rcx
movq %rcx, 0x8(%rax)
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)