// File: stetre[P]moonfonts/src/fonts.c
// Function: pushfontchar
static int pushfontchar(lua_State *L, stb_fontchar *p, unsigned int codepoint)
    { 
    lua_newtable(L);
    lua_pushinteger(L, codepoint);
    lua_setfield(L, -2, "codepoint");
#define Set(x, s) do { lua_pushnumber(L, p->x); lua_setfield(L, -2, s); } while(0)
    // coordinates if using integer positioning
    Set(s0, "s0");
    Set(t0, "t0");
    Set(s1, "s1");
    Set(t1, "t1");
    Set(x0, "x0");
    Set(y0, "y0");
    Set(x1, "x1");
    Set(y1, "y1");
    Set(advance_int, "advance");
    // coordinates if using floating positioning
    Set(s0f, "s0f");
    Set(t0f, "t0f");
    Set(s1f, "s1f");
    Set(t1f, "t1f");
    Set(x0f, "x0f");
    Set(y0f, "y0f");
    Set(x1f, "x1f");
    Set(y1f, "y1f");
    Set(advance, "advancef");
#undef Set
    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl %edx, 0x4(%rsp)
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x1090
movq 0x10(%rsp), %rdi
movl 0x4(%rsp), %eax
movl %eax, %esi
callq 0x10c0
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198cff(%rip), %rdx    # 0x1ac060
callq 0x10a0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198cdc(%rip), %rdx    # 0x1ac06a
callq 0x10a0
jmp 0x13395
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x4(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198caf(%rip), %rdx    # 0x1ac06d
callq 0x10a0
jmp 0x133c5
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198c82(%rip), %rdx    # 0x1ac070
callq 0x10a0
jmp 0x133f5
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0xc(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198c55(%rip), %rdx    # 0x1ac073
callq 0x10a0
jmp 0x13425
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movswl 0x10(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198c29(%rip), %rdx    # 0x1ac076
callq 0x10a0
jmp 0x13454
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movswl 0x12(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198bfd(%rip), %rdx    # 0x1ac079
callq 0x10a0
jmp 0x13483
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movswl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198bd1(%rip), %rdx    # 0x1ac07c
callq 0x10a0
jmp 0x134b2
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movswl 0x16(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198ba5(%rip), %rdx    # 0x1ac07f
callq 0x10a0
jmp 0x134e1
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
cvtsi2sdl 0x18(%rax), %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198b7c(%rip), %rdx    # 0x1ac082
callq 0x10a0
jmp 0x1350d
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x1c(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198b54(%rip), %rdx    # 0x1ac08a
callq 0x10a0
jmp 0x1353d
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x20(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198b28(%rip), %rdx    # 0x1ac08e
callq 0x10a0
jmp 0x1356d
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x24(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198afc(%rip), %rdx    # 0x1ac092
callq 0x10a0
jmp 0x1359d
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x28(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198ad0(%rip), %rdx    # 0x1ac096
callq 0x10a0
jmp 0x135cd
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x2c(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198aa4(%rip), %rdx    # 0x1ac09a
callq 0x10a0
jmp 0x135fd
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x30(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198a78(%rip), %rdx    # 0x1ac09e
callq 0x10a0
jmp 0x1362d
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x34(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198a4c(%rip), %rdx    # 0x1ac0a2
callq 0x10a0
jmp 0x1365d
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x38(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x198a20(%rip), %rdx    # 0x1ac0a6
callq 0x10a0
jmp 0x1368d
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movss 0x3c(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1130
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x1989f4(%rip), %rdx    # 0x1ac0aa
callq 0x10a0
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)