// File: /workspace/github_c_makefile_star2_O0/ggerganov[P]font-rasterizer/./stb_truetype.h
// Function: stbtt__tesselate_curve
static int stbtt__tesselate_curve(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float objspace_flatness_squared, int n)
{
   // midpoint
   float mx = (x0 + 2*x1 + x2)/4;
   float my = (y0 + 2*y1 + y2)/4;
   // versus directly drawn line
   float dx = (x0+x2)/2 - mx;
   float dy = (y0+y2)/2 - my;
   if (n > 16) // 65536 segments on one curve better be enough!
      return 1;
   if (dx*dx+dy*dy > objspace_flatness_squared) { // half-pixel error allowed... need to be smaller if AA
      stbtt__tesselate_curve(points, num_points, x0,y0, (x0+x1)/2.0f,(y0+y1)/2.0f, mx,my, objspace_flatness_squared,n+1);
      stbtt__tesselate_curve(points, num_points, mx,my, (x1+x2)/2.0f,(y1+y2)/2.0f, x2,y2, objspace_flatness_squared,n+1);
   } else {
      stbtt__add_point(points, *num_points,x2,y2);
      *num_points = *num_points+1;
   }
   return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movss %xmm0, -0x1c(%rbp)
movss %xmm1, -0x20(%rbp)
movss %xmm2, -0x24(%rbp)
movss %xmm3, -0x28(%rbp)
movss %xmm4, -0x2c(%rbp)
movss %xmm5, -0x30(%rbp)
movss %xmm6, -0x34(%rbp)
movl %edx, -0x38(%rbp)
movss -0x1c(%rbp), %xmm1
movss -0x24(%rbp), %xmm0
addss %xmm0, %xmm0
addss %xmm1, %xmm0
addss -0x2c(%rbp), %xmm0
movss 0x5337(%rip), %xmm1     # 0x1663c
divss %xmm1, %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x20(%rbp), %xmm1
movss -0x28(%rbp), %xmm0
addss %xmm0, %xmm0
addss %xmm1, %xmm0
addss -0x30(%rbp), %xmm0
movss 0x530f(%rip), %xmm1     # 0x1663c
divss %xmm1, %xmm0
movss %xmm0, -0x40(%rbp)
movss -0x1c(%rbp), %xmm0
addss -0x2c(%rbp), %xmm0
movss 0x52e4(%rip), %xmm1     # 0x1662c
divss %xmm1, %xmm0
subss -0x3c(%rbp), %xmm0
movss %xmm0, -0x44(%rbp)
movss -0x20(%rbp), %xmm0
addss -0x30(%rbp), %xmm0
movss 0x52c4(%rip), %xmm1     # 0x1662c
divss %xmm1, %xmm0
subss -0x40(%rbp), %xmm0
movss %xmm0, -0x48(%rbp)
cmpl $0x10, -0x38(%rbp)
jle 0x11388
movl $0x1, -0x4(%rbp)
jmp 0x1148f
movss -0x44(%rbp), %xmm0
movss -0x44(%rbp), %xmm2
movss -0x48(%rbp), %xmm1
mulss -0x48(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
ucomiss -0x34(%rbp), %xmm0
jbe 0x11460
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movss -0x1c(%rbp), %xmm0
movss -0x20(%rbp), %xmm1
movss -0x1c(%rbp), %xmm2
addss -0x24(%rbp), %xmm2
movss 0x525a(%rip), %xmm3     # 0x1662c
divss %xmm3, %xmm2
movss -0x20(%rbp), %xmm3
addss -0x28(%rbp), %xmm3
movss 0x5244(%rip), %xmm4     # 0x1662c
divss %xmm4, %xmm3
movss -0x3c(%rbp), %xmm4
movss -0x40(%rbp), %xmm5
movss -0x34(%rbp), %xmm6
movl -0x38(%rbp), %edx
addl $0x1, %edx
callq 0x112b0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movss -0x3c(%rbp), %xmm0
movss -0x40(%rbp), %xmm1
movss -0x24(%rbp), %xmm2
addss -0x2c(%rbp), %xmm2
movss 0x5202(%rip), %xmm3     # 0x1662c
divss %xmm3, %xmm2
movss -0x28(%rbp), %xmm3
addss -0x30(%rbp), %xmm3
movss 0x51ec(%rip), %xmm4     # 0x1662c
divss %xmm4, %xmm3
movss -0x2c(%rbp), %xmm4
movss -0x30(%rbp), %xmm5
movss -0x34(%rbp), %xmm6
movl -0x38(%rbp), %edx
addl $0x1, %edx
callq 0x112b0
jmp 0x11488
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %esi
movss -0x2c(%rbp), %xmm0
movss -0x30(%rbp), %xmm1
callq 0x11260
movq -0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)