// File: /workspace/github_c_makefile_star2_O1/ggerganov[P]font-rasterizer/./stb_truetype.h
// Function: stbtt_GetGlyphKernAdvance
STBTT_DEF int  stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int g1, int g2)
{
   int xAdvance = 0;

   if (info->gpos)
      xAdvance += stbtt__GetGlyphGPOSInfoAdvance(info, g1, g2);

   if (info->kern)
      xAdvance += stbtt__GetGlyphKernInfoAdvance(info, g1, g2);

   return xAdvance;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %esi, %ebx
movslq 0x30(%rdi), %rax
xorl %r14d, %r14d
testq %rax, %rax
movq %rdi, -0x58(%rbp)
je 0x46a2
movq 0x8(%rdi), %rsi
movzwl (%rsi,%rax), %ecx
rolw $0x8, %cx
cmpw $0x1, %cx
jne 0x46a2
addq %rax, %rsi
movb 0x3(%rsi), %al
orb 0x2(%rsi), %al
je 0x4732
movq -0x58(%rbp), %rax
movslq 0x2c(%rax), %rdi
testq %rdi, %rdi
je 0x4b7e
movq 0x8(%rax), %rax
movb 0x3(%rax,%rdi), %sil
xorl %ecx, %ecx
orb 0x2(%rax,%rdi), %sil
je 0x4b7b
addq %rdi, %rax
movzwl 0x8(%rax), %esi
rolw $0x8, %si
cmpw $0x1, %si
jne 0x4b7b
movzwl 0xa(%rax), %esi
rolw $0x8, %si
testw %si, %si
je 0x4b7b
movzwl %si, %ecx
shll $0x10, %ebx
orl %edx, %ebx
decl %ecx
xorl %edx, %edx
leal (%rdx,%rcx), %esi
sarl %esi
movslq %esi, %rdi
addq %rdi, %rdi
leaq (%rdi,%rdi,2), %rdi
movl 0x12(%rax,%rdi), %r8d
bswapl %r8d
cmpl %r8d, %ebx
jae 0x471d
decl %esi
movl %esi, %ecx
jmp 0x4727
jbe 0x4b69
incl %esi
movl %esi, %edx
cmpl %ecx, %edx
jle 0x46fb
xorl %ecx, %ecx
jmp 0x4b7b
movzwl 0x8(%rsi), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movzwl (%rsi,%rax), %ecx
rolw $0x8, %cx
testw %cx, %cx
je 0x46a2
addq %rax, %rsi
movzwl %cx, %eax
movl %eax, %eax
movq %rax, -0x50(%rbp)
xorl %eax, %eax
movl %edx, -0x2c(%rbp)
movq %rsi, -0x40(%rbp)
movq %rax, -0x60(%rbp)
movzwl 0x2(%rsi,%rax,2), %eax
rolw $0x8, %ax
movzwl %ax, %r15d
movzwl (%rsi,%r15), %ecx
rolw $0x8, %cx
movb $0x1, %al
cmpw $0x2, %cx
jne 0x4b48
addq %rsi, %r15
movzwl 0x4(%r15), %eax
rolw $0x8, %ax
testw %ax, %ax
je 0x4b30
movzwl %ax, %eax
movl %eax, %r13d
xorl %eax, %eax
movq %r15, -0x48(%rbp)
movq %r13, -0x68(%rbp)
movq %rax, -0x70(%rbp)
movzwl 0x6(%r15,%rax,2), %eax
rolw $0x8, %ax
movzwl %ax, %ecx
leaq (%r15,%rcx), %r12
movzwl (%r15,%rcx), %eax
movzwl 0x2(%r15,%rcx), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
leaq (%r12,%rcx), %rdx
movzwl (%rcx,%r12), %ecx
rolw $0x8, %cx
cmpw $0x2, %cx
je 0x486f
movzwl %cx, %ecx
cmpl $0x1, %ecx
jne 0x4b90
movzwl 0x2(%rdx), %ecx
rolw $0x8, %cx
movzwl %cx, %r8d
decl %r8d
xorl %r10d, %r10d
movl %r10d, %esi
movl %r8d, %edi
cmpl %r8d, %r10d
jg 0x4906
leal (%rsi,%rdi), %r9d
movslq %r9d, %r8
sarl %r9d
andq $-0x2, %r8
movzwl 0x4(%rdx,%r8), %r8d
rolw $0x8, %r8w
movzwl %r8w, %r8d
cmpl %ebx, %r8d
jle 0x4849
decl %r9d
movb $0x1, %r11b
movl %r9d, %r8d
movl %esi, %r10d
jmp 0x4865
jge 0x4859
incl %r9d
movb $0x1, %r11b
movl %edi, %r8d
movl %r9d, %r10d
jmp 0x4865
xorl %r11d, %r11d
movl %edi, %r8d
movl %esi, %r10d
movl %r9d, %ecx
testb %r11b, %r11b
jne 0x480a
jmp 0x4906
movzwl 0x2(%rdx), %ecx
rolw $0x8, %cx
movzwl %cx, %r8d
decl %r8d
xorl %r9d, %r9d
movl %r9d, %esi
movl %r8d, %edi
cmpl %r8d, %r9d
jg 0x4906
leal (%rsi,%rdi), %r8d
sarl %r8d
movslq %r8d, %r9
addq %r9, %r9
leaq (%r9,%r9,2), %r9
movzwl 0x4(%rdx,%r9), %r10d
rolw $0x8, %r10w
movzwl %r10w, %r11d
movl %ebx, %r10d
subl %r11d, %r10d
jge 0x48bf
decl %r8d
movb $0x1, %r11b
movl %esi, %r9d
jmp 0x48fd
movzwl 0x6(%rdx,%r9), %r11d
rolw $0x8, %r11w
movzwl %r11w, %r11d
cmpl %ebx, %r11d
jge 0x48e1
movl %r8d, %r9d
incl %r9d
movb $0x1, %r11b
movl %edi, %r8d
jmp 0x48fd
movzwl 0x8(%rdx,%r9), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
addl %ecx, %r10d
xorl %r11d, %r11d
movl %edi, %r8d
movl %esi, %r9d
movl %r10d, %ecx
testb %r11b, %r11b
jne 0x4881
cmpl %edi, %esi
jle 0x490f
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpl $-0x1, %ecx
je 0x49fc
rolw $0x8, %ax
movzwl %ax, %eax
cmpl $0x2, %eax
je 0x4a09
cmpl $0x1, %eax
jne 0x4bce
movzwl 0x4(%r12), %eax
rolw $0x8, %ax
xorl %esi, %esi
cmpw $0x4, %ax
movl -0x2c(%rbp), %edx
jne 0x4ae2
movzwl 0x6(%r12), %eax
rolw $0x8, %ax
movl $0x0, %r8d
testw %ax, %ax
jne 0x4ae5
movzwl 0x8(%r12), %eax
rolw $0x8, %ax
movzwl %ax, %eax
cmpl %eax, %ecx
jge 0x4c0c
movslq %ecx, %rax
movzwl 0xa(%r12,%rax,2), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movzwl (%r12,%rax), %ecx
rolw $0x8, %cx
addq %r12, %rax
movzwl %cx, %ecx
decl %ecx
xorl %r9d, %r9d
cmpl %ecx, %r9d
setg %sil
jg 0x49f4
leal (%r9,%rcx), %esi
sarl %esi
movslq %esi, %rdi
movzwl 0x2(%rax,%rdi,4), %r8d
rolw $0x8, %r8w
movzwl %r8w, %r8d
cmpl %edx, %r8d
jle 0x49cb
decl %esi
movb $0x1, %dil
movl %esi, %ecx
jmp 0x49ed
jge 0x49d7
incl %esi
movb $0x1, %dil
movl %esi, %r9d
jmp 0x49ed
movzbl 0x4(%rax,%rdi,4), %esi
shll $0x8, %esi
movzbl 0x5(%rax,%rdi,4), %edi
movswl %si, %r14d
orl %edi, %r14d
xorl %edi, %edi
testb %dil, %dil
jne 0x499c
xorl %esi, %esi
movl %r14d, %r8d
jmp 0x4ae5
movl $0x8, %eax
movl -0x2c(%rbp), %edx
jmp 0x4af7
movl %r14d, -0x34(%rbp)
movzwl 0x4(%r12), %r14d
movzwl 0x6(%r12), %eax
movw %ax, -0x2e(%rbp)
movzwl 0x8(%r12), %eax
rolw $0x8, %ax
movzwl %ax, %edi
movzwl 0xa(%r12), %eax
rolw $0x8, %ax
movzwl %ax, %r15d
addq %r12, %rdi
movl %ebx, %esi
callq 0xc1ba
movl %eax, %r13d
addq %r12, %r15
movq %r15, %rdi
movl -0x2c(%rbp), %esi
movl %esi, %r15d
callq 0xc1ba
movzwl 0xc(%r12), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
cmpl %ecx, %r13d
jge 0x4baf
movzwl 0xe(%r12), %ecx
rolw $0x8, %cx
movzwl %cx, %esi
cmpl %esi, %eax
jge 0x4bed
rolw $0x8, %r14w
xorl %ecx, %ecx
cmpw $0x4, %r14w
movl %r15d, %edx
jne 0x4b0d
movzwl -0x2e(%rbp), %r9d
rolw $0x8, %r9w
movl $0x0, %r8d
testw %r9w, %r9w
movq -0x48(%rbp), %r15
jne 0x4b1a
movb $0x1, %cl
testl %r13d, %r13d
js 0x4b16
movl -0x34(%rbp), %r8d
testl %eax, %eax
js 0x4b1a
movq %r12, %rdi
imull %esi, %r13d
addl %r13d, %r13d
addq %r13, %rdi
movl %eax, %eax
movzbl 0x10(%rdi,%rax,2), %ecx
shll $0x8, %ecx
movzbl 0x11(%rdi,%rax,2), %eax
movswl %cx, %r8d
orl %eax, %r8d
xorl %ecx, %ecx
jmp 0x4b1a
xorl %r8d, %r8d
movl $0x1, %eax
movl %r8d, %r14d
testb %sil, %sil
je 0x4af7
xorl %eax, %eax
movl %r8d, %r14d
testb $0x7, %al
jne 0x4b37
movq -0x70(%rbp), %rax
incq %rax
cmpq %r13, %rax
jne 0x47ae
jmp 0x4b2c
xorl %r8d, %r8d
movq -0x48(%rbp), %r15
jmp 0x4b1a
movl -0x34(%rbp), %r8d
movl $0x1, %eax
movl %r8d, %r14d
testb %cl, %cl
movq -0x68(%rbp), %r13
jne 0x4af2
jmp 0x4af7
movq -0x40(%rbp), %rsi
movl $0x5, %eax
jmp 0x4b3b
movq -0x40(%rbp), %rsi
cmpl $0x5, %eax
sete %cl
testl %eax, %eax
sete %al
orb %cl, %al
testb %al, %al
je 0x46a2
movq -0x60(%rbp), %rax
incq %rax
cmpq -0x50(%rbp), %rax
jne 0x4763
xorl %r14d, %r14d
jmp 0x46a2
movzbl 0x16(%rax,%rdi), %ecx
shll $0x8, %ecx
movzbl 0x17(%rax,%rdi), %eax
movswl %cx, %ecx
orl %eax, %ecx
addl %ecx, %r14d
movl %r14d, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xa1cf(%rip), %rdi      # 0xed66
leaq 0xa0ca(%rip), %rsi      # 0xec68
leaq 0xa6e3(%rip), %rcx      # 0xf288
movl $0x92e, %edx            # imm = 0x92E
callq 0x10c0
leaq 0xa69e(%rip), %rdi      # 0xf254
leaq 0xa0ab(%rip), %rsi      # 0xec68
leaq 0xa643(%rip), %rcx      # 0xf207
movl $0x9c5, %edx            # imm = 0x9C5
callq 0x10c0
leaq 0xa191(%rip), %rdi      # 0xed66
leaq 0xa08c(%rip), %rsi      # 0xec68
leaq 0xa624(%rip), %rcx      # 0xf207
movl $0x9d8, %edx            # imm = 0x9D8
callq 0x10c0
leaq 0xa67a(%rip), %rdi      # 0xf26e
leaq 0xa06d(%rip), %rsi      # 0xec68
leaq 0xa605(%rip), %rcx      # 0xf207
movl $0x9c6, %edx            # imm = 0x9C6
callq 0x10c0
leaq 0xa5d7(%rip), %rdi      # 0xf1ea
leaq 0xa04e(%rip), %rsi      # 0xec68
leaq 0xa5e6(%rip), %rcx      # 0xf207
movl $0x9a0, %edx            # imm = 0x9A0
callq 0x10c0