// File: /workspace/github_cpp_makefile_star2_O2/lunasorcery[P]brailify/./stb/stb_image_resize.h
// Function: stbir__calculate_filters(stbir__info*, stbir__contributors*, float*, stbir_filter, float, float, int, int)
static void stbir__calculate_filters(stbir__info* stbir_info, stbir__contributors* contributors, float* coefficients, stbir_filter filter, float scale_ratio, float shift, int input_size, int output_size)
{
    int n;
    int total_contributors = stbir__get_contributors(scale_ratio, filter, input_size, output_size);

    if (stbir__use_upsampling(scale_ratio))
    {
        float out_pixels_radius = stbir__filter_info_table[filter].support(1 / scale_ratio) * scale_ratio;

        // Looping through out pixels
        for (n = 0; n < total_contributors; n++)
        {
            float in_center_of_out; // Center of the current out pixel in the in pixel space
            int in_first_pixel, in_last_pixel;

            stbir__calculate_sample_range_upsample(n, out_pixels_radius, scale_ratio, shift, &in_first_pixel, &in_last_pixel, &in_center_of_out);

            stbir__calculate_coefficients_upsample(stbir_info, filter, scale_ratio, in_first_pixel, in_last_pixel, in_center_of_out, stbir__get_contributor(contributors, n), stbir__get_coefficient(coefficients, filter, scale_ratio, n, 0));
        }
    }
    else
    {
        float in_pixels_radius = stbir__filter_info_table[filter].support(scale_ratio) / scale_ratio;

        // Looping through in pixels
        for (n = 0; n < total_contributors; n++)
        {
            float out_center_of_in; // Center of the current out pixel in the in pixel space
            int out_first_pixel, out_last_pixel;
            int n_adjusted = n - stbir__get_filter_pixel_margin(filter, scale_ratio);

            stbir__calculate_sample_range_downsample(n_adjusted, in_pixels_radius, scale_ratio, shift, &out_first_pixel, &out_last_pixel, &out_center_of_in);

            stbir__calculate_coefficients_downsample(stbir_info, filter, scale_ratio, out_first_pixel, out_last_pixel, out_center_of_in, stbir__get_contributor(contributors, n), stbir__get_coefficient(coefficients, filter, scale_ratio, n, 0));
        }

        stbir__normalize_downsample_coefficients(stbir_info, contributors, coefficients, filter, scale_ratio, shift, input_size, output_size);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movl %ecx, %r15d
movss %xmm1, -0x84(%rbp)
movss %xmm0, -0x2c(%rbp)
movl %edx, %ebx
movq %rsi, %r13
movq %rdi, %r14
movl %edx, %edi
movl %ecx, %esi
movl %r8d, -0x4c(%rbp)
movl %r8d, %edx
callq 0xcc23
movq %r14, %rcx
movss -0x2c(%rbp), %xmm0
movl %ebx, %edx
shlq $0x4, %rdx
ucomiss 0x30a0(%rip), %xmm0     # 0x10008
movl %eax, %r14d
leaq 0x8dde(%rip), %r12      # 0x15d50
movq %rdx, -0x40(%rbp)
movq 0x8(%rdx,%r12), %rax
movq %rcx, -0x60(%rbp)
movl %ebx, -0x34(%rbp)
movq %r13, -0x80(%rbp)
movq %rax, -0xa0(%rbp)
ja 0xd156
movl %r15d, -0x94(%rbp)
movq %rcx, %r15
callq *%rax
movss -0x2c(%rbp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0x64(%rbp)
addq -0x40(%rbp), %r12
xorl %edx, %edx
testl %r14d, %r14d
cmovlel %edx, %r14d
movq %r14, -0x90(%rbp)
movq %r12, -0x40(%rbp)
cmpq %r14, %rdx
je 0xd3a2
movl %ebx, %edi
movaps %xmm1, %xmm0
movq %rdx, %r15
callq 0xcb6f
movl %r15d, %edi
subl %eax, %edi
movss -0x64(%rbp), %xmm0
movss -0x2c(%rbp), %xmm1
movss -0x84(%rbp), %xmm2
leaq -0x6c(%rbp), %rsi
leaq -0x68(%rbp), %rdx
leaq -0x70(%rbp), %rcx
callq 0xd7c7
movl -0x6c(%rbp), %r12d
movl -0x68(%rbp), %eax
movss -0x70(%rbp), %xmm0
movss %xmm0, -0x48(%rbp)
movl %ebx, %edi
movl %eax, %ebx
movss -0x2c(%rbp), %xmm0
callq 0xced9
movl %eax, %r13d
movl %ebx, %r14d
subl %r12d, %r14d
movss -0x2c(%rbp), %xmm0
callq *-0xa0(%rbp)
addss %xmm0, %xmm0
callq 0x1070
cvttss2si %xmm0, %eax
cmpl %eax, %r14d
jg 0xd60f
movq -0x60(%rbp), %rax
movl %r12d, (%rax,%r15,8)
movl %ebx, 0x4(%rax,%r15,8)
movl %ebx, -0x30(%rbp)
cmpl %r12d, %ebx
jl 0xd62e
movq %r12, %rdx
movl %r13d, %eax
imull %r15d, %eax
cltq
movq -0x80(%rbp), %rcx
leaq (%rcx,%rax,4), %rax
movq %rax, -0x78(%rbp)
movslq %r14d, %rbx
movq %r15, -0x58(%rbp)
movl %r15d, %eax
imull %r13d, %eax
cltq
leaq (%rcx,%rax,4), %r15
xorl %r12d, %r12d
movss -0x2c(%rbp), %xmm1
cmpq %rbx, %r12
jg 0xd0d3
leal (%rdx,%r12), %eax
cvtsi2ss %eax, %xmm0
addss 0x2f66(%rip), %xmm0     # 0x10014
subss -0x48(%rbp), %xmm0
movq %rdx, %r13
movq -0x40(%rbp), %rax
callq *(%rax)
movq %r13, %rdx
movss -0x2c(%rbp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, (%r15,%r12,4)
incq %r12
jmp 0xd099
movl -0x30(%rbp), %eax
incl %eax
cvtsi2ss %eax, %xmm0
addss 0x2f30(%rip), %xmm0     # 0x10014
subss -0x48(%rbp), %xmm0
movq -0x40(%rbp), %r12
callq *(%r12)
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
movq -0x60(%rbp), %r15
movl -0x34(%rbp), %ebx
movq -0x80(%rbp), %r13
movq -0x58(%rbp), %rdx
movq -0x78(%rbp), %rsi
jne 0xd64d
jp 0xd64d
testl %r14d, %r14d
js 0xd142
movl %r14d, %eax
movss (%rsi,%rax,4), %xmm0
ucomiss %xmm1, %xmm0
jne 0xd142
jp 0xd142
movl (%r15,%rdx,8), %eax
addl %r14d, %eax
decl %eax
movl %r14d, %ecx
decl %ecx
movl %eax, 0x4(%r15,%rdx,8)
movl %ecx, %r14d
jmp 0xd116
incq %rdx
movss -0x2c(%rbp), %xmm1
movq -0x90(%rbp), %r14
jmp 0xcfc5
movq %r14, %r15
movl %ebx, %r14d
movss 0x2ea4(%rip), %xmm1     # 0x10008
divss %xmm0, %xmm1
movss %xmm1, -0x30(%rbp)
movaps %xmm1, %xmm0
callq *%rax
movss -0x2c(%rbp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, -0x4c(%rbp)
addq -0x40(%rbp), %r12
movq %r12, -0x40(%rbp)
xorl %r12d, %r12d
testl %r15d, %r15d
cmovlel %r12d, %r15d
movq %r15, %rax
movq %r15, -0x90(%rbp)
cmpq %rax, %r12
je 0xd600
movl %r12d, %edi
movss -0x4c(%rbp), %xmm0
movss -0x84(%rbp), %xmm2
leaq -0x6c(%rbp), %rsi
leaq -0x68(%rbp), %rdx
leaq -0x70(%rbp), %rcx
callq 0xd745
movl -0x6c(%rbp), %r13d
movl -0x68(%rbp), %ebx
movss -0x70(%rbp), %xmm0
movss %xmm0, -0x58(%rbp)
movl %r14d, %edi
movss -0x2c(%rbp), %xmm0
callq 0xced9
movl %eax, %r15d
movl %ebx, %r14d
subl %r13d, %r14d
movss -0x30(%rbp), %xmm0
callq *-0xa0(%rbp)
addss %xmm0, %xmm0
callq 0x1070
cvttss2si %xmm0, %eax
cmpl %eax, %r14d
jg 0xd68b
movq -0x60(%rbp), %rax
movl %r13d, (%rax,%r12,8)
movl %ebx, 0x4(%rax,%r12,8)
cmpl %r13d, %ebx
jl 0xd6c9
movl %ebx, %r14d
movl %r15d, -0x64(%rbp)
imull %r12d, %r15d
movslq %r15d, %rax
movq -0x80(%rbp), %rcx
leaq (%rcx,%rax,4), %rax
movq %rax, -0x48(%rbp)
xorl %ebx, %ebx
xorps %xmm1, %xmm1
movl %r14d, %r15d
subl %r13d, %r15d
movss %xmm1, -0x78(%rbp)
cmpl %r15d, %ebx
jg 0xd2b1
leal (%rbx,%r13), %eax
cvtsi2ss %eax, %xmm1
addss 0x2db1(%rip), %xmm1     # 0x10014
movss -0x58(%rbp), %xmm0
subss %xmm1, %xmm0
movss -0x30(%rbp), %xmm1
movq -0x40(%rbp), %rax
callq *(%rax)
movslq %ebx, %rax
movq -0x48(%rbp), %rcx
movss %xmm0, (%rcx,%rax,4)
testl %ebx, %ebx
jne 0xd2a4
ucomiss 0x2d8e(%rip), %xmm0     # 0x1001c
jne 0xd2a4
jp 0xd2a4
incl %r13d
movq -0x60(%rbp), %rax
movl %r13d, (%rax,%r12,8)
decl %r15d
xorl %ebx, %ebx
jmp 0xd24e
movss -0x78(%rbp), %xmm1
addss %xmm0, %xmm1
incl %ebx
jmp 0xd243
incl %r14d
cvtsi2ss %r14d, %xmm0
addss 0x2d53(%rip), %xmm0     # 0x10014
subss -0x58(%rbp), %xmm0
movss -0x30(%rbp), %xmm1
movq -0x40(%rbp), %rax
callq *(%rax)
ucomiss 0x2d44(%rip), %xmm0     # 0x1001c
jne 0xd66c
jp 0xd66c
movss -0x78(%rbp), %xmm2
cvtss2sd %xmm2, %xmm0
ucomisd 0x3973(%rip), %xmm0     # 0x10c68
movq -0x60(%rbp), %rsi
movss -0x2c(%rbp), %xmm1
movq -0x80(%rbp), %rdx
jbe 0xd726
movss 0x2d5c(%rip), %xmm0     # 0x1006c
ucomiss %xmm2, %xmm0
jbe 0xd707
movss 0x2ce7(%rip), %xmm0     # 0x10008
divss %xmm2, %xmm0
movslq %r15d, %rax
testq %rax, %rax
pushq $-0x1
popq %rcx
cmovsq %rcx, %rax
incq %rax
movl -0x64(%rbp), %ecx
imull %r12d, %ecx
movslq %ecx, %rcx
leaq (%rdx,%rcx,4), %rcx
xorl %edx, %edx
cmpq %rdx, %rax
je 0xd373
movss (%rcx,%rdx,4), %xmm2
mulss %xmm0, %xmm2
movss %xmm2, (%rcx,%rdx,4)
incq %rdx
jmp 0xd345
movl (%rsi,%r12,8), %eax
addl %r15d, %eax
decl %eax
movl %r15d, %ecx
decl %ecx
movl %eax, 0x4(%rsi,%r12,8)
movl %ecx, %r15d
testl %r15d, %r15d
js 0xd38f
movl %r15d, %eax
movq -0x48(%rbp), %rcx
movss (%rcx,%rax,4), %xmm0
ucomiss 0x2c91(%rip), %xmm0     # 0x1001c
jne 0xd38f
jnp 0xd35d
incq %r12
movl -0x34(%rbp), %r14d
movq -0x90(%rbp), %rax
jmp 0xd19c
movaps %xmm1, %xmm0
movl %ebx, %edi
movl -0x94(%rbp), %esi
movl -0x4c(%rbp), %r12d
movl %r12d, %edx
callq 0xcc23
movl %eax, %r14d
movl %ebx, %edi
movss -0x2c(%rbp), %xmm0
callq 0xced9
movq %r14, %rdi
movq %r15, %rsi
movss -0x2c(%rbp), %xmm0
xorl %r14d, %r14d
testl %edi, %edi
cmovlel %r14d, %edi
testl %r12d, %r12d
movl $0x0, %ecx
cmovgl %r12d, %ecx
movl %ecx, -0x48(%rbp)
movl %eax, -0x78(%rbp)
movq %rdi, -0x58(%rbp)
cmpl -0x48(%rbp), %r14d
je 0xd4d0
xorps %xmm2, %xmm2
xorl %ebx, %ebx
cmpq %rbx, %rdi
je 0xd44b
movl %r14d, %r12d
subl (%rsi,%rbx,8), %r12d
jl 0xd44b
cmpl 0x4(%rsi,%rbx,8), %r14d
jg 0xd446
movl -0x34(%rbp), %edi
movss %xmm2, -0x40(%rbp)
callq 0xced9
movss -0x40(%rbp), %xmm2
movq -0x58(%rbp), %rdi
movq %r15, %rsi
movss -0x2c(%rbp), %xmm0
movl %ebx, %ecx
imull %eax, %ecx
addl %ecx, %r12d
movslq %r12d, %rax
addss (%r13,%rax,4), %xmm2
incq %rbx
jmp 0xd401
ucomiss 0x2c1e(%rip), %xmm2     # 0x10070
jbe 0xd6e8
movss 0x2c0c(%rip), %xmm1     # 0x1006c
ucomiss %xmm2, %xmm1
jbe 0xd6aa
movss 0x2b97(%rip), %xmm1     # 0x10008
divss %xmm2, %xmm1
movss %xmm1, -0x40(%rbp)
xorl %ebx, %ebx
cmpq %rbx, %rdi
je 0xd4c8
movl %r14d, %r12d
subl (%rsi,%rbx,8), %r12d
jl 0xd4c8
cmpl 0x4(%rsi,%rbx,8), %r14d
jg 0xd4c3
movl -0x34(%rbp), %edi
callq 0xced9
movq -0x58(%rbp), %rdi
movq %r15, %rsi
movss -0x2c(%rbp), %xmm0
movl %ebx, %ecx
imull %eax, %ecx
addl %ecx, %r12d
movslq %r12d, %rax
movss (%r13,%rax,4), %xmm1
mulss -0x40(%rbp), %xmm1
movss %xmm1, (%r13,%rax,4)
incq %rbx
jmp 0xd47c
incl %r14d
jmp 0xd3f2
xorl %r14d, %r14d
cmpq %rdi, %r14
je 0xd5e2
xorl %eax, %eax
pushq $0x1
popq %rcx
pushq $-0x1
popq %rdx
movl %edx, %ebx
movl -0x34(%rbp), %r13d
movl %ecx, %r12d
movl %eax, %r15d
movl %r13d, %edi
callq 0xced9
movss -0x2c(%rbp), %xmm0
imull %r14d, %eax
addl %ebx, %eax
incl %eax
cltq
movq -0x80(%rbp), %rcx
movss (%rcx,%rax,4), %xmm1
incl %ebx
leal 0x1(%r12), %ecx
leal -0x1(%r15), %eax
ucomiss 0x2afa(%rip), %xmm1     # 0x1001c
jne 0xd526
jnp 0xd4ea
movq -0x60(%rbp), %rcx
movl (%rcx,%r14,8), %eax
addl %eax, %ebx
movl %ebx, (%rcx,%r14,8)
addl %eax, %r12d
negl %r15d
movl %r12d, %eax
decl %eax
jns 0xd54d
movl %r12d, (%rcx,%r14,8)
incl %r12d
incl %r15d
jmp 0xd53a
movl 0x4(%rcx,%r14,8), %ecx
subl %r12d, %ecx
addl $0x2, %ecx
movl -0x78(%rbp), %eax
cmpl %ecx, %eax
cmovll %eax, %ecx
movl %ecx, -0x48(%rbp)
movl -0x34(%rbp), %edi
callq 0xced9
movl %eax, -0x30(%rbp)
xorl %r13d, %r13d
cmpl -0x48(%rbp), %r13d
jge 0xd5cd
cmpl -0x30(%rbp), %r15d
jge 0xd5cd
movl -0x34(%rbp), %r12d
movl %r12d, %edi
movss -0x2c(%rbp), %xmm0
callq 0xced9
imull %r14d, %eax
addl %r15d, %eax
cltq
movq -0x80(%rbp), %rbx
movss (%rbx,%rax,4), %xmm0
movss %xmm0, -0x40(%rbp)
movl %r12d, %edi
movss -0x2c(%rbp), %xmm0
callq 0xced9
imull %r14d, %eax
addl %r13d, %eax
cltq
movss -0x40(%rbp), %xmm0
movss %xmm0, (%rbx,%rax,4)
incl %r13d
incl %r15d
jmp 0xd571
incq %r14
movq -0x60(%rbp), %rsi
movss -0x2c(%rbp), %xmm0
movq -0x58(%rbp), %rdi
jmp 0xd4d3
movl -0x4c(%rbp), %edx
decl %edx
xorl %eax, %eax
cmpq %rax, %rdi
je 0xd600
movl 0x4(%rsi,%rax,8), %ecx
cmpl %edx, %ecx
cmovgel %edx, %ecx
movl %ecx, 0x4(%rsi,%rax,8)
incq %rax
jmp 0xd5e9
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4713(%rip), %rdi      # 0x11d29
leaq 0x4177(%rip), %rsi      # 0x11794
leaq 0x476e(%rip), %rcx      # 0x11d92
movl $0x43a, %edx            # imm = 0x43A
callq 0x1080
leaq 0x463e(%rip), %rdi      # 0x11c73
leaq 0x4158(%rip), %rsi      # 0x11794
leaq 0x474f(%rip), %rcx      # 0x11d92
movl $0x43f, %edx            # imm = 0x43F
callq 0x1080
leaq 0x47c1(%rip), %rdi      # 0x11e15
leaq 0x4139(%rip), %rsi      # 0x11794
leaq 0x4730(%rip), %rcx      # 0x11d92
movl $0x448, %edx            # imm = 0x448
callq 0x1080
leaq 0x4623(%rip), %rdi      # 0x11c96
leaq 0x411a(%rip), %rsi      # 0x11794
leaq 0x4571(%rip), %rcx      # 0x11bf2
movl $0x421, %edx            # imm = 0x421
callq 0x1080
leaq 0x44fd(%rip), %rdi      # 0x11b8f
leaq 0x40fb(%rip), %rsi      # 0x11794
leaq 0x4552(%rip), %rcx      # 0x11bf2
movl $0x40a, %edx            # imm = 0x40A
callq 0x1080
leaq 0x4865(%rip), %rdi      # 0x11f16
leaq 0x40dc(%rip), %rsi      # 0x11794
leaq 0x47d4(%rip), %rcx      # 0x11e93
movl $0x46c, %edx            # imm = 0x46C
callq 0x1080
leaq 0x45a3(%rip), %rdi      # 0x11c73
leaq 0x40bd(%rip), %rsi      # 0x11794
leaq 0x4514(%rip), %rcx      # 0x11bf2
movl $0x40f, %edx            # imm = 0x40F
callq 0x1080
leaq 0x4797(%rip), %rdi      # 0x11e86
leaq 0x409e(%rip), %rsi      # 0x11794
leaq 0x4796(%rip), %rcx      # 0x11e93
movl $0x46b, %edx            # imm = 0x46B
callq 0x1080
leaq 0x4607(%rip), %rdi      # 0x11d15
leaq 0x407f(%rip), %rsi      # 0x11794
leaq 0x44d6(%rip), %rcx      # 0x11bf2
movl $0x424, %edx            # imm = 0x424
callq 0x1080
leaq 0x45d5(%rip), %rdi      # 0x11d02
leaq 0x4060(%rip), %rsi      # 0x11794
leaq 0x44b7(%rip), %rcx      # 0x11bf2
movl $0x423, %edx            # imm = 0x423
callq 0x1080