// File: /workspace/github_c_makefile_star2_O0/ggerganov[P]font-rasterizer/./stb_truetype.h
// Function: stbtt__handle_clipped_edge
static void stbtt__handle_clipped_edge(float *scanline, int x, stbtt__active_edge *e, float x0, float y0, float x1, float y1)
{
   if (y0 == y1) return;
   STBTT_assert(y0 < y1);
   STBTT_assert(e->sy <= e->ey);
   if (y0 > e->ey) return;
   if (y1 < e->sy) return;
   if (y0 < e->sy) {
      x0 += (x1-x0) * (e->sy - y0) / (y1-y0);
      y0 = e->sy;
   }
   if (y1 > e->ey) {
      x1 += (x1-x0) * (e->ey - y1) / (y1-y0);
      y1 = e->ey;
   }

   if (x0 == x)
      STBTT_assert(x1 <= x+1);
   else if (x0 == x+1)
      STBTT_assert(x1 >= x);
   else if (x0 <= x)
      STBTT_assert(x1 <= x);
   else if (x0 >= x+1)
      STBTT_assert(x1 >= x+1);
   else
      STBTT_assert(x1 >= x && x1 <= x+1);

   if (x0 <= x && x1 <= x)
      scanline[x] += e->direction * (y1-y0);
   else if (x0 >= x+1 && x1 >= x+1)
      ;
   else {
      STBTT_assert(x0 >= x && x0 <= x+1 && x1 >= x && x1 <= x+1);
      scanline[x] += e->direction * (y1-y0) * (1-((x0-x)+(x1-x))/2); // coverage = 1 - average x position
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movss %xmm0, -0x1c(%rbp)
movss %xmm1, -0x20(%rbp)
movss %xmm2, -0x24(%rbp)
movss %xmm3, -0x28(%rbp)
movss -0x20(%rbp), %xmm0
ucomiss -0x28(%rbp), %xmm0
jne 0x13059
jp 0x13059
jmp 0x13453
movss -0x20(%rbp), %xmm1
movss -0x28(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x1306a
jmp 0x13089
leaq 0x41cf(%rip), %rdi      # 0x17240
leaq 0x373f(%rip), %rsi      # 0x167b7
movl $0xb68, %edx            # imm = 0xB68
leaq 0x41c4(%rip), %rcx      # 0x17248
callq 0x10a0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm1
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
ucomiss %xmm1, %xmm0
jb 0x130a2
jmp 0x130c1
leaq 0x41ff(%rip), %rdi      # 0x172a8
leaq 0x3707(%rip), %rsi      # 0x167b7
movl $0xb69, %edx            # imm = 0xB69
leaq 0x418c(%rip), %rcx      # 0x17248
callq 0x10a0
movss -0x20(%rbp), %xmm0
movq -0x18(%rbp), %rax
ucomiss 0x1c(%rax), %xmm0
jbe 0x130d5
jmp 0x13453
movss -0x28(%rbp), %xmm1
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x130ed
jmp 0x13453
movss -0x20(%rbp), %xmm1
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x13142
movss -0x24(%rbp), %xmm0
subss -0x1c(%rbp), %xmm0
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm1
subss -0x20(%rbp), %xmm1
mulss %xmm1, %xmm0
movss -0x28(%rbp), %xmm1
subss -0x20(%rbp), %xmm1
divss %xmm1, %xmm0
addss -0x1c(%rbp), %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movss 0x18(%rax), %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x28(%rbp), %xmm0
movq -0x18(%rbp), %rax
ucomiss 0x1c(%rax), %xmm0
jbe 0x13193
movss -0x24(%rbp), %xmm0
subss -0x1c(%rbp), %xmm0
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm1
subss -0x28(%rbp), %xmm1
mulss %xmm1, %xmm0
movss -0x28(%rbp), %xmm1
subss -0x20(%rbp), %xmm1
divss %xmm1, %xmm0
addss -0x24(%rbp), %xmm0
movss %xmm0, -0x24(%rbp)
movq -0x18(%rbp), %rax
movss 0x1c(%rax), %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x1c(%rbp), %xmm0
cvtsi2ssl -0xc(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jne 0x131de
jp 0x131de
movss -0x24(%rbp), %xmm1
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
ucomiss %xmm1, %xmm0
jb 0x131ba
jmp 0x131d9
leaq 0x4133(%rip), %rdi      # 0x172f4
leaq 0x35ef(%rip), %rsi      # 0x167b7
movl $0xb76, %edx            # imm = 0xB76
leaq 0x4074(%rip), %rcx      # 0x17248
callq 0x10a0
jmp 0x13304
movss -0x1c(%rbp), %xmm0
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm1
ucomiss %xmm1, %xmm0
jne 0x13229
jp 0x13229
movss -0x24(%rbp), %xmm0
cvtsi2ssl -0xc(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jb 0x13205
jmp 0x13224
leaq 0x40ab(%rip), %rdi      # 0x172b7
leaq 0x35a4(%rip), %rsi      # 0x167b7
movl $0xb78, %edx            # imm = 0xB78
leaq 0x4029(%rip), %rcx      # 0x17248
callq 0x10a0
jmp 0x13302
movss -0x1c(%rbp), %xmm1
cvtsi2ssl -0xc(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jb 0x1326d
movss -0x24(%rbp), %xmm1
cvtsi2ssl -0xc(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jb 0x13249
jmp 0x13268
leaq 0x406f(%rip), %rdi      # 0x172bf
leaq 0x3560(%rip), %rsi      # 0x167b7
movl $0xb7a, %edx            # imm = 0xB7A
leaq 0x3fe5(%rip), %rcx      # 0x17248
callq 0x10a0
jmp 0x13300
movss -0x1c(%rbp), %xmm0
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm1
ucomiss %xmm1, %xmm0
jb 0x132b8
movss -0x24(%rbp), %xmm0
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm1
ucomiss %xmm1, %xmm0
jb 0x13297
jmp 0x132b6
leaq 0x4029(%rip), %rdi      # 0x172c7
leaq 0x3512(%rip), %rsi      # 0x167b7
movl $0xb7c, %edx            # imm = 0xB7C
leaq 0x3f97(%rip), %rcx      # 0x17248
callq 0x10a0
jmp 0x132fe
movss -0x24(%rbp), %xmm0
cvtsi2ssl -0xc(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jb 0x132dd
movss -0x24(%rbp), %xmm1
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
ucomiss %xmm1, %xmm0
jb 0x132dd
jmp 0x132fc
leaq 0x4005(%rip), %rdi      # 0x172e9
leaq 0x34cc(%rip), %rsi      # 0x167b7
movl $0xb7e, %edx            # imm = 0xB7E
leaq 0x3f51(%rip), %rcx      # 0x17248
callq 0x10a0
jmp 0x132fe
jmp 0x13300
jmp 0x13302
jmp 0x13304
movss -0x1c(%rbp), %xmm1
cvtsi2ssl -0xc(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jb 0x13354
movss -0x24(%rbp), %xmm1
cvtsi2ssl -0xc(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jb 0x13354
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm0
movss -0x28(%rbp), %xmm2
subss -0x20(%rbp), %xmm2
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movss (%rax,%rcx,4), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax,%rcx,4)
jmp 0x13453
movss -0x1c(%rbp), %xmm0
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm1
ucomiss %xmm1, %xmm0
jb 0x13381
movss -0x24(%rbp), %xmm0
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm1
ucomiss %xmm1, %xmm0
jb 0x13381
jmp 0x13451
movss -0x1c(%rbp), %xmm0
cvtsi2ssl -0xc(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jb 0x133c9
movss -0x1c(%rbp), %xmm1
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
ucomiss %xmm1, %xmm0
jb 0x133c9
movss -0x24(%rbp), %xmm0
cvtsi2ssl -0xc(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jb 0x133c9
movss -0x24(%rbp), %xmm1
movl -0xc(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
ucomiss %xmm1, %xmm0
jb 0x133c9
jmp 0x133e8
leaq 0x3f01(%rip), %rdi      # 0x172d1
leaq 0x33e0(%rip), %rsi      # 0x167b7
movl $0xb85, %edx            # imm = 0xB85
leaq 0x3e65(%rip), %rcx      # 0x17248
callq 0x10a0
movq -0x18(%rbp), %rax
movss 0x14(%rax), %xmm0
movss -0x28(%rbp), %xmm1
subss -0x20(%rbp), %xmm1
mulss %xmm1, %xmm0
movss -0x1c(%rbp), %xmm1
cvtsi2ssl -0xc(%rbp), %xmm2
subss %xmm2, %xmm1
movss -0x24(%rbp), %xmm2
cvtsi2ssl -0xc(%rbp), %xmm3
subss %xmm3, %xmm2
addss %xmm2, %xmm1
movss 0x3205(%rip), %xmm2     # 0x1662c
divss %xmm2, %xmm1
movss 0x31e9(%rip), %xmm2     # 0x1661c
subss %xmm1, %xmm2
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movss (%rax,%rcx,4), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax,%rcx,4)
jmp 0x13453
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)