// File: /workspace/github_c_makefile_star2_O2/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 %edx, %r14d
movslq 0x30(%rdi), %rcx
xorl %r12d, %r12d
testq %rcx, %rcx
je 0x476c
movq 0x8(%rdi), %rax
movzwl (%rax,%rcx), %edx
rolw $0x8, %dx
cmpw $0x1, %dx
jne 0x476c
addq %rcx, %rax
movb 0x3(%rax), %cl
orb 0x2(%rax), %cl
jne 0x476c
movzwl 0x8(%rax), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
movzwl (%rax,%rcx), %edx
rolw $0x8, %dx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movzwl %dx, %eax
xorl %r12d, %r12d
xorl %edx, %edx
movq %rdi, -0x38(%rbp)
movq %rax, -0x60(%rbp)
movl %r14d, -0x54(%rbp)
cmpq %rax, %rdx
je 0x476c
movq -0x40(%rbp), %rcx
movq %rdx, -0x70(%rbp)
movzwl 0x2(%rcx,%rdx,2), %eax
rolw $0x8, %ax
movzwl %ax, %r15d
movzwl (%rcx,%r15), %eax
rolw $0x8, %ax
cmpw $0x2, %ax
jne 0x473c
addq -0x40(%rbp), %r15
movzwl 0x4(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movq %rax, -0x48(%rbp)
xorl %edi, %edi
cmpq -0x48(%rbp), %rdi
je 0x473c
movzwl 0x6(%r15,%rdi,2), %eax
rolw $0x8, %ax
movzwl %ax, %ecx
leaq (%r15,%rcx), %r13
movzwl (%r15,%rcx), %eax
movzwl 0x2(%r15,%rcx), %ecx
rolw $0x8, %cx
movzwl %cx, %edx
leaq (%rdx,%r13), %rcx
movzwl (%rdx,%r13), %edx
rolw $0x8, %dx
cmpw $0x2, %dx
movq %rdi, -0x50(%rbp)
je 0x4559
movzwl %dx, %edx
cmpl $0x1, %edx
jne 0x485f
movzwl 0x2(%rcx), %edx
rolw $0x8, %dx
movzwl %dx, %r10d
xorl %edi, %edi
leal -0x1(%r10), %r8d
cmpl %r10d, %edi
jge 0x4730
leal (%rdi,%r8), %edx
movslq %edx, %r9
sarl %edx
andq $-0x2, %r9
movzwl 0x4(%rcx,%r9), %r9d
rolw $0x8, %r9w
movzwl %r9w, %r9d
cmpl %esi, %r9d
jg 0x4554
jae 0x45c6
incl %edx
movl %edx, %edi
jmp 0x4522
movl %edx, %r10d
jmp 0x451e
movzwl 0x2(%rcx), %edx
rolw $0x8, %dx
movzwl %dx, %ebx
xorl %r8d, %r8d
leal -0x1(%rbx), %edi
cmpl %ebx, %r8d
jge 0x4730
leal (%r8,%rdi), %r9d
sarl %r9d
movslq %r9d, %rdx
imulq $0x6, %rdx, %r10
movzwl 0x4(%rcx,%r10), %edx
rolw $0x8, %dx
movzwl %dx, %r11d
movl %esi, %edx
subl %r11d, %edx
jl 0x45b2
movzwl 0x6(%rcx,%r10), %r8d
rolw $0x8, %r8w
movzwl %r8w, %r8d
cmpl %esi, %r8d
jae 0x45b7
incl %r9d
movl %r9d, %r8d
jmp 0x456a
movl %r9d, %ebx
jmp 0x4567
movzwl 0x8(%rcx,%r10), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
addl %ecx, %edx
cmpl $-0x1, %edx
je 0x4730
rolw $0x8, %ax
movzwl %ax, %eax
cmpl $0x2, %eax
je 0x468d
cmpl $0x1, %eax
jne 0x48bc
movzwl 0x4(%r13), %eax
rolw $0x8, %ax
cmpw $0x4, %ax
jne 0x4768
movzwl 0x6(%r13), %eax
rolw $0x8, %ax
testw %ax, %ax
jne 0x4768
movzwl 0x8(%r13), %eax
rolw $0x8, %ax
movzwl %ax, %eax
cmpl %eax, %edx
jge 0x48db
movslq %edx, %rax
movzwl 0xa(%r13,%rax,2), %eax
rolw $0x8, %ax
movzwl %ax, %eax
addq %r13, %rax
addq $0x2, %rax
movzwl -0x2(%rax), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
xorl %edx, %edx
leal -0x1(%rcx), %r10d
cmpl %ecx, %edx
jge 0x4730
leal (%rdx,%r10), %r8d
sarl %r8d
leal (,%r8,4), %edi
movslq %edi, %r9
leaq (%rax,%r9), %rdi
movzwl (%rax,%r9), %r9d
rolw $0x8, %r9w
movzwl %r9w, %r9d
cmpl %r14d, %r9d
jg 0x4688
jae 0x4750
incl %r8d
movl %r8d, %edx
jmp 0x4649
movl %r8d, %ecx
jmp 0x4645
movzwl 0x4(%r13), %r12d
movzwl 0x6(%r13), %eax
movw %ax, -0x2a(%rbp)
movzwl 0x8(%r13), %eax
rolw $0x8, %ax
movzwl %ax, %edi
movzwl 0xa(%r13), %eax
rolw $0x8, %ax
movzwl %ax, %r14d
addq %r13, %rdi
movl %esi, %ebx
callq 0xb09e
movq %rax, -0x68(%rbp)
addq %r13, %r14
movq %r14, %rdi
movl -0x54(%rbp), %esi
movl %esi, %r14d
callq 0xb09e
movq -0x68(%rbp), %rdi
movzwl 0xc(%r13), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
cmpl %ecx, %edi
jge 0x487e
movzwl 0xe(%r13), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
cmpl %ecx, %eax
jge 0x489d
rolw $0x8, %r12w
cmpw $0x4, %r12w
jne 0x4855
movzwl -0x2a(%rbp), %edx
rolw $0x8, %dx
testw %dx, %dx
movl %ebx, %esi
movl $0x0, %r12d
jne 0x4768
testl %edi, %edi
js 0x4730
testl %eax, %eax
jns 0x481a
movq -0x50(%rbp), %rdi
incq %rdi
jmp 0x44c0
movq -0x70(%rbp), %rdx
incq %rdx
movq -0x38(%rbp), %rdi
movq -0x60(%rbp), %rax
jmp 0x4479
leaq 0x2(%rdi), %rax
addq $0x3, %rdi
movzbl (%rax), %eax
shll $0x8, %eax
movzbl (%rdi), %ecx
movswl %ax, %r12d
orl %ecx, %r12d
movq -0x38(%rbp), %rdi
movslq 0x2c(%rdi), %rcx
testq %rcx, %rcx
je 0x4808
movq 0x8(%rdi), %rdi
movb 0x3(%rdi,%rcx), %dl
xorl %eax, %eax
orb 0x2(%rdi,%rcx), %dl
je 0x4802
addq %rcx, %rdi
movzwl 0x8(%rdi), %ecx
rolw $0x8, %cx
cmpw $0x1, %cx
jne 0x4802
movq %r12, -0x48(%rbp)
movzwl 0xa(%rdi), %eax
rolw $0x8, %ax
movzwl %ax, %r15d
decl %r15d
shll $0x10, %esi
orl %r14d, %esi
movl %esi, %r12d
movq %rdi, -0x40(%rbp)
leaq 0x12(%rdi), %rax
movq %rax, -0x50(%rbp)
xorl %r13d, %r13d
cmpl %r15d, %r13d
jg 0x47fc
leal (%r15,%r13), %r14d
sarl %r14d
movslq %r14d, %rax
imulq $0x6, %rax, %rbx
movq -0x50(%rbp), %rax
leaq (%rax,%rbx), %rdi
callq 0x37ad
cmpl %eax, %r12d
jae 0x47f2
decl %r14d
movl %r14d, %r15d
jmp 0x47c5
jbe 0x483f
incl %r14d
movl %r14d, %r13d
jmp 0x47c5
xorl %eax, %eax
movq -0x48(%rbp), %r12
addl %r12d, %eax
movl %eax, %r12d
movl %r12d, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
imull %ecx, %edi
addl %edi, %edi
addq %rdi, %r13
movl %eax, %ecx
leaq 0x10(,%rcx,2), %rax
addq %r13, %rax
leaq 0x11(,%rcx,2), %rdi
addq %r13, %rdi
jmp 0x4758
movq -0x40(%rbp), %rcx
movzbl 0x16(%rcx,%rbx), %eax
shll $0x8, %eax
movzbl 0x17(%rcx,%rbx), %ecx
cwtl
orl %ecx, %eax
jmp 0x47fe
movl %ebx, %esi
xorl %r12d, %r12d
jmp 0x4768
leaq 0x9500(%rip), %rdi      # 0xdd66
leaq 0x93fb(%rip), %rsi      # 0xdc68
leaq 0x99e0(%rip), %rcx      # 0xe254
movl $0x92e, %edx            # imm = 0x92E
callq 0x10c0
leaq 0x999b(%rip), %rdi      # 0xe220
leaq 0x93dc(%rip), %rsi      # 0xdc68
leaq 0x9940(%rip), %rcx      # 0xe1d3
movl $0x9c5, %edx            # imm = 0x9C5
callq 0x10c0
leaq 0x9996(%rip), %rdi      # 0xe23a
leaq 0x93bd(%rip), %rsi      # 0xdc68
leaq 0x9921(%rip), %rcx      # 0xe1d3
movl $0x9c6, %edx            # imm = 0x9C6
callq 0x10c0
leaq 0x94a3(%rip), %rdi      # 0xdd66
leaq 0x939e(%rip), %rsi      # 0xdc68
leaq 0x9902(%rip), %rcx      # 0xe1d3
movl $0x9d8, %edx            # imm = 0x9D8
callq 0x10c0
leaq 0x98d4(%rip), %rdi      # 0xe1b6
leaq 0x937f(%rip), %rsi      # 0xdc68
leaq 0x98e3(%rip), %rcx      # 0xe1d3
movl $0x9a0, %edx            # imm = 0x9A0
callq 0x10c0