// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_triangle_from_direction
NK_API void
nk_triangle_from_direction(struct nk_vec2 *result, struct nk_rect r,
    float pad_x, float pad_y, enum nk_heading direction)
{
    float w_half, h_half;
    NK_ASSERT(result);

    r.w = NK_MAX(2 * pad_x, r.w);
    r.h = NK_MAX(2 * pad_y, r.h);
    r.w = r.w - 2 * pad_x;
    r.h = r.h - 2 * pad_y;

    r.x = r.x + pad_x;
    r.y = r.y + pad_y;

    w_half = r.w / 2.0f;
    h_half = r.h / 2.0f;

    if (direction == NK_UP) {
        result[0] = nk_vec2(r.x + w_half, r.y);
        result[1] = nk_vec2(r.x + r.w, r.y + r.h);
        result[2] = nk_vec2(r.x, r.y + r.h);
    } else if (direction == NK_RIGHT) {
        result[0] = nk_vec2(r.x, r.y);
        result[1] = nk_vec2(r.x + r.w, r.y + h_half);
        result[2] = nk_vec2(r.x, r.y + r.h);
    } else if (direction == NK_DOWN) {
        result[0] = nk_vec2(r.x, r.y);
        result[1] = nk_vec2(r.x + r.w, r.y);
        result[2] = nk_vec2(r.x + w_half, r.y + r.h);
    } else {
        result[0] = nk_vec2(r.x, r.y + h_half);
        result[1] = nk_vec2(r.x + r.w, r.y);
        result[2] = nk_vec2(r.x + r.w, r.y + r.h);
    }
}

// Assembly:
subq $0xf8, %rsp
movlpd %xmm0, 0xe8(%rsp)
movlpd %xmm1, 0xf0(%rsp)
movq %rdi, 0xe0(%rsp)
movss %xmm2, 0xdc(%rsp)
movss %xmm3, 0xd8(%rsp)
movl %esi, 0xd4(%rsp)
cmpq $0x0, 0xe0(%rsp)
jne 0x2b008
movq 0x9a014(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
leaq 0x863ba(%rip), %rsi     # 0xb13a0
leaq 0x863d1(%rip), %rdx     # 0xb13be
movl $0x194c, %ecx           # imm = 0x194C
movb $0x0, %al
callq 0x13ec0
movq 0x99ff0(%rip), %rax     # 0xc4ff0
movq (%rax), %rdi
callq 0x149a0
jmp 0x2b00a
movss 0x824d2(%rip), %xmm1    # 0xad4e4
mulss 0xdc(%rsp), %xmm1
movss 0xf0(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x2b03a
movss 0xf0(%rsp), %xmm0
movss %xmm0, 0x68(%rsp)
jmp 0x2b051
movss 0x824a2(%rip), %xmm0    # 0xad4e4
mulss 0xdc(%rsp), %xmm0
movss %xmm0, 0x68(%rsp)
movss 0x68(%rsp), %xmm0
movss %xmm0, 0xf0(%rsp)
movss 0x8247c(%rip), %xmm1    # 0xad4e4
mulss 0xd8(%rsp), %xmm1
movss 0xf4(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x2b090
movss 0xf4(%rsp), %xmm0
movss %xmm0, 0x64(%rsp)
jmp 0x2b0a7
movss 0x8244c(%rip), %xmm0    # 0xad4e4
mulss 0xd8(%rsp), %xmm0
movss %xmm0, 0x64(%rsp)
movss 0x64(%rsp), %xmm0
movss %xmm0, 0xf4(%rsp)
movss 0xf0(%rsp), %xmm0
movss 0xdc(%rsp), %xmm1
addss %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xf0(%rsp)
movss 0xf4(%rsp), %xmm0
movss 0xd8(%rsp), %xmm1
addss %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xf4(%rsp)
movss 0xe8(%rsp), %xmm0
addss 0xdc(%rsp), %xmm0
movss %xmm0, 0xe8(%rsp)
movss 0xec(%rsp), %xmm0
addss 0xd8(%rsp), %xmm0
movss %xmm0, 0xec(%rsp)
movss 0xf0(%rsp), %xmm0
movss 0x823a1(%rip), %xmm1    # 0xad4e4
divss %xmm1, %xmm0
movss %xmm0, 0xd0(%rsp)
movss 0xf4(%rsp), %xmm0
movss 0x82383(%rip), %xmm1    # 0xad4e4
divss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
cmpl $0x0, 0xd4(%rsp)
jne 0x2b26e
movq 0xe0(%rsp), %rax
movq %rax, 0x48(%rsp)
movss 0xd0(%rsp), %xmm2
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
addss %xmm2, %xmm0
callq 0x13460
movq 0x48(%rsp), %rax
movlpd %xmm0, 0xc4(%rsp)
movq 0xc4(%rsp), %rcx
movq %rcx, (%rax)
movq 0xe0(%rsp), %rax
movq %rax, 0x50(%rsp)
movss 0xf0(%rsp), %xmm2
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
addss %xmm2, %xmm0
movss 0xf4(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq 0x50(%rsp), %rax
movlpd %xmm0, 0xbc(%rsp)
movq 0xbc(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq 0xe0(%rsp), %rax
movq %rax, 0x58(%rsp)
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
movss 0xf4(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq 0x58(%rsp), %rax
movlpd %xmm0, 0xb4(%rsp)
movq 0xb4(%rsp), %rcx
movq %rcx, 0x10(%rax)
jmp 0x2b531
cmpl $0x1, 0xd4(%rsp)
jne 0x2b361
movq 0xe0(%rsp), %rax
movq %rax, 0x30(%rsp)
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
callq 0x13460
movq 0x30(%rsp), %rax
movlpd %xmm0, 0xac(%rsp)
movq 0xac(%rsp), %rcx
movq %rcx, (%rax)
movq 0xe0(%rsp), %rax
movq %rax, 0x38(%rsp)
movss 0xf0(%rsp), %xmm2
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
addss %xmm2, %xmm0
movss 0xcc(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq 0x38(%rsp), %rax
movlpd %xmm0, 0xa4(%rsp)
movq 0xa4(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq 0xe0(%rsp), %rax
movq %rax, 0x40(%rsp)
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
movss 0xf4(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq 0x40(%rsp), %rax
movlpd %xmm0, 0x9c(%rsp)
movq 0x9c(%rsp), %rcx
movq %rcx, 0x10(%rax)
jmp 0x2b52f
cmpl $0x2, 0xd4(%rsp)
jne 0x2b454
movq 0xe0(%rsp), %rax
movq %rax, 0x18(%rsp)
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
callq 0x13460
movq 0x18(%rsp), %rax
movlpd %xmm0, 0x94(%rsp)
movq 0x94(%rsp), %rcx
movq %rcx, (%rax)
movq 0xe0(%rsp), %rax
movq %rax, 0x20(%rsp)
movss 0xf0(%rsp), %xmm2
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
addss %xmm2, %xmm0
callq 0x13460
movq 0x20(%rsp), %rax
movlpd %xmm0, 0x8c(%rsp)
movq 0x8c(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq 0xe0(%rsp), %rax
movq %rax, 0x28(%rsp)
movss 0xd0(%rsp), %xmm2
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
addss %xmm2, %xmm0
movss 0xf4(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq 0x28(%rsp), %rax
movlpd %xmm0, 0x84(%rsp)
movq 0x84(%rsp), %rcx
movq %rcx, 0x10(%rax)
jmp 0x2b52d
movq 0xe0(%rsp), %rax
movq %rax, (%rsp)
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
movss 0xcc(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq (%rsp), %rax
movlpd %xmm0, 0x7c(%rsp)
movq 0x7c(%rsp), %rcx
movq %rcx, (%rax)
movq 0xe0(%rsp), %rax
movq %rax, 0x8(%rsp)
movss 0xf0(%rsp), %xmm2
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
addss %xmm2, %xmm0
callq 0x13460
movq 0x8(%rsp), %rax
movlpd %xmm0, 0x74(%rsp)
movq 0x74(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq 0xe0(%rsp), %rax
movq %rax, 0x10(%rsp)
movss 0xf0(%rsp), %xmm2
movss 0xe8(%rsp), %xmm0
movss 0xec(%rsp), %xmm1
addss %xmm2, %xmm0
movss 0xf4(%rsp), %xmm2
addss %xmm2, %xmm1
callq 0x13460
movq 0x10(%rsp), %rax
movlpd %xmm0, 0x6c(%rsp)
movq 0x6c(%rsp), %rcx
movq %rcx, 0x10(%rax)
jmp 0x2b52f
jmp 0x2b531
addq $0xf8, %rsp
retq
nopl (%rax)