// File: /workspace/github_c_makefile_star2_O0/ggerganov[P]font-rasterizer/./stb_truetype.h
// Function: stbtt_GetPackedQuad
STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int align_to_integer)
{
   float ipw = 1.0f / pw, iph = 1.0f / ph;
   const stbtt_packedchar *b = chardata + char_index;

   if (align_to_integer) {
      float x = (float) STBTT_ifloor((*xpos + b->xoff) + 0.5f);
      float y = (float) STBTT_ifloor((*ypos + b->yoff) + 0.5f);
      q->x0 = x;
      q->y0 = y;
      q->x1 = x + b->xoff2 - b->xoff;
      q->y1 = y + b->yoff2 - b->yoff;
   } else {
      q->x0 = *xpos + b->xoff;
      q->y0 = *ypos + b->yoff;
      q->x1 = *xpos + b->xoff2;
      q->y1 = *ypos + b->yoff2;
   }

   q->s0 = b->x0 * ipw;
   q->t0 = b->y0 * iph;
   q->s1 = b->x1 * ipw;
   q->t1 = b->y1 * iph;

   *xpos += b->xadvance;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl 0x18(%rbp), %eax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq %r8, -0x20(%rbp)
movq %r9, -0x28(%rbp)
cvtsi2ssl -0xc(%rbp), %xmm1
movss 0xcc4b(%rip), %xmm0     # 0x1661c
divss %xmm1, %xmm0
movss %xmm0, -0x2c(%rbp)
cvtsi2ssl -0x10(%rbp), %xmm1
movss 0xcc35(%rip), %xmm0     # 0x1661c
divss %xmm1, %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
imulq $0x1c, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
cmpl $0x0, 0x18(%rbp)
je 0x9ad0
movq -0x20(%rbp), %rax
movss (%rax), %xmm0
movq -0x38(%rbp), %rax
addss 0x8(%rax), %xmm0
movss 0xcbd6(%rip), %xmm1     # 0x165fc
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1190
cvttsd2si %xmm0, %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x3c(%rbp)
movq -0x28(%rbp), %rax
movss (%rax), %xmm0
movq -0x38(%rbp), %rax
addss 0xc(%rax), %xmm0
movss 0xcba3(%rip), %xmm1     # 0x165fc
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1190
cvttsd2si %xmm0, %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x40(%rbp)
movss -0x3c(%rbp), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, (%rax)
movss -0x40(%rbp), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x4(%rax)
movss -0x3c(%rbp), %xmm0
movq -0x38(%rbp), %rax
addss 0x14(%rax), %xmm0
movq -0x38(%rbp), %rax
subss 0x8(%rax), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x10(%rax)
movss -0x40(%rbp), %xmm0
movq -0x38(%rbp), %rax
addss 0x18(%rax), %xmm0
movq -0x38(%rbp), %rax
subss 0xc(%rax), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x14(%rax)
jmp 0x9b37
movq -0x20(%rbp), %rax
movss (%rax), %xmm0
movq -0x38(%rbp), %rax
addss 0x8(%rax), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, (%rax)
movq -0x28(%rbp), %rax
movss (%rax), %xmm0
movq -0x38(%rbp), %rax
addss 0xc(%rax), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x4(%rax)
movq -0x20(%rbp), %rax
movss (%rax), %xmm0
movq -0x38(%rbp), %rax
addss 0x14(%rax), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x28(%rbp), %rax
movss (%rax), %xmm0
movq -0x38(%rbp), %rax
addss 0x18(%rax), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x14(%rax)
movq -0x38(%rbp), %rax
movzwl (%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x2c(%rbp), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x8(%rax)
movq -0x38(%rbp), %rax
movzwl 0x2(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x30(%rbp), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x38(%rbp), %rax
movzwl 0x4(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x2c(%rbp), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x18(%rax)
movq -0x38(%rbp), %rax
movzwl 0x6(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x30(%rbp), %xmm0
movq 0x10(%rbp), %rax
movss %xmm0, 0x1c(%rax)
movq -0x38(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x20(%rbp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)