// File: lunasorcery[P]brailify/./stb/stb_image_resize.h
// Function: stbir_resize_subpixel
STBIRDEF int stbir_resize_subpixel(const void *input_pixels , int input_w , int input_h , int input_stride_in_bytes,
                                         void *output_pixels, int output_w, int output_h, int output_stride_in_bytes,
                                   stbir_datatype datatype,
                                   int num_channels, int alpha_channel, int flags,
                                   stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, 
                                   stbir_filter filter_horizontal,  stbir_filter filter_vertical,
                                   stbir_colorspace space, void *alloc_context,
                                   float x_scale, float y_scale,
                                   float x_offset, float y_offset)
{
    float transform[4];
    transform[0] = x_scale;
    transform[1] = y_scale;
    transform[2] = x_offset;
    transform[3] = y_offset;
    return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes,
        output_pixels, output_w, output_h, output_stride_in_bytes,
        0,0,1,1,transform,num_channels,alpha_channel,flags, datatype, filter_horizontal, filter_vertical,
        edge_mode_horizontal, edge_mode_vertical, space);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq 0x68(%rbp), %rax
movl 0x60(%rbp), %eax
movl 0x58(%rbp), %eax
movl 0x50(%rbp), %eax
movl 0x48(%rbp), %eax
movl 0x40(%rbp), %eax
movl 0x38(%rbp), %eax
movl 0x30(%rbp), %eax
movl 0x28(%rbp), %eax
movl 0x20(%rbp), %eax
movl 0x18(%rbp), %eax
movl 0x10(%rbp), %eax
movq %rdi, -0x30(%rbp)
movl %esi, -0x34(%rbp)
movl %edx, -0x38(%rbp)
movl %ecx, -0x3c(%rbp)
movq %r8, -0x48(%rbp)
movl %r9d, -0x4c(%rbp)
movss %xmm0, -0x50(%rbp)
movss %xmm1, -0x54(%rbp)
movss %xmm2, -0x58(%rbp)
movss %xmm3, -0x5c(%rbp)
movss -0x50(%rbp), %xmm0
movss %xmm0, -0x70(%rbp)
movss -0x54(%rbp), %xmm0
movss %xmm0, -0x6c(%rbp)
movss -0x58(%rbp), %xmm0
movss %xmm0, -0x68(%rbp)
movss -0x5c(%rbp), %xmm0
movss %xmm0, -0x64(%rbp)
movq 0x68(%rbp), %rdi
movq -0x30(%rbp), %rsi
movl -0x34(%rbp), %edx
movl -0x38(%rbp), %ecx
movl -0x3c(%rbp), %r8d
movq -0x48(%rbp), %r9
movl -0x4c(%rbp), %eax
movl %eax, -0x8c(%rbp)
movl 0x10(%rbp), %eax
movl %eax, -0x88(%rbp)
movl 0x18(%rbp), %eax
movl %eax, -0x84(%rbp)
leaq -0x70(%rbp), %rax
movq %rax, -0x80(%rbp)
movl 0x28(%rbp), %eax
movl %eax, -0x78(%rbp)
movl 0x30(%rbp), %r13d
movl 0x38(%rbp), %r12d
movl 0x20(%rbp), %r15d
movl 0x50(%rbp), %r14d
movl 0x58(%rbp), %ebx
movl 0x40(%rbp), %r11d
movl 0x48(%rbp), %r10d
movl 0x60(%rbp), %eax
movl %eax, -0x74(%rbp)
movl -0x8c(%rbp), %eax
xorps %xmm1, %xmm1
movss 0x1cd79(%rip), %xmm3    # 0x20004
movl %eax, (%rsp)
movl -0x88(%rbp), %eax
movl %eax, 0x8(%rsp)
movl -0x84(%rbp), %eax
movl %eax, 0x10(%rsp)
movq -0x80(%rbp), %rax
movaps %xmm1, %xmm0
movaps %xmm3, %xmm2
movq %rax, 0x18(%rsp)
movl -0x78(%rbp), %eax
movl %eax, 0x20(%rsp)
movl -0x74(%rbp), %eax
movl %r13d, 0x28(%rsp)
movl %r12d, 0x30(%rsp)
movl %r15d, 0x38(%rsp)
movl %r14d, 0x40(%rsp)
movl %ebx, 0x48(%rsp)
movl %r11d, 0x50(%rsp)
movl %r10d, 0x58(%rsp)
movl %eax, 0x60(%rsp)
callq 0x2910
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax,%rax)