// File: /workspace/github_c_makefile_star2_O0/lecram[P]congif/mbf2c.c
// Function: main
int
main(int argc, char *argv[])
{
    Font *font;
    int i;

    if (argc != 2) {
        fprintf(stderr, "Usage: %s font.mbf\n", argv[0]);
        return 1;
    }
    font = load_font(argv[1]);
    if (font == NULL) {
        fprintf(stderr, "Failed to load font '%s'.\n", argv[1]);
        return 1;
    }

    printf("static Range "FN"_ranges[%d] = {\n", font->header.nr);
    for(i=0; i<font->header.nr; i++) {
        printf("    { %d, %d }%s\n",
            (int) font->ranges[i].offset,
            (int) font->ranges[i].length,
            i+1 == font->header.nr?"":",");
    }
    printf("};\n\n");

    printf("static uint8_t "FN"_data[] = {\n");
    for (i = 0; i < font->header.ng * font->stride * font->header.h; i++) {
        if (i%12 == 0) {
            if (i) printf(",\n");
            printf("    ");
        } else
            printf(", ");
        printf("0x%02x", font->data[i]);
    }
    printf("\n};\n\n");

    printf("Font "FN"[1] = {{ ");

    printf("{ %d, %d, %d, %d }, ",
        (int) font->header.ng,
        (int) font->header.w,
        (int) font->header.h,
        (int) font->header.nr);

    printf("%d, "FN"_ranges, "FN"_data }};\n",
        (int) font->stride);

    free(font);
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x2, -0x8(%rbp)
je 0x1497
movq 0x2b85(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0xb80(%rip), %rsi       # 0x2004
movb $0x0, %al
callq 0x1070
movl $0x1, -0x4(%rbp)
jmp 0x1686
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x11a0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x14db
movq 0x2b42(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0xb50(%rip), %rsi       # 0x2018
movb $0x0, %al
callq 0x1070
movl $0x1, -0x4(%rbp)
jmp 0x1686
movq -0x18(%rbp), %rax
movzwl 0x4(%rax), %esi
leaq 0xb49(%rip), %rdi       # 0x2033
movb $0x0, %al
callq 0x1040
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl 0x4(%rcx), %ecx
cmpl %ecx, %eax
jge 0x1565
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x1c(%rbp), %rcx
movzwl (%rax,%rcx,4), %esi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x1c(%rbp), %rcx
movzwl 0x2(%rax,%rcx,4), %edx
movl -0x1c(%rbp), %edi
addl $0x1, %edi
movq -0x18(%rbp), %rax
movzwl 0x4(%rax), %r8d
leaq 0xb31(%rip), %rcx       # 0x206f
leaq 0xb68(%rip), %rax       # 0x20ad
cmpl %r8d, %edi
cmoveq %rax, %rcx
leaq 0xb0a(%rip), %rdi       # 0x205d
movb $0x0, %al
callq 0x1040
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x14f8
leaq 0xb3d(%rip), %rdi       # 0x20a9
movb $0x0, %al
callq 0x1040
leaq 0xaf7(%rip), %rdi       # 0x2071
movb $0x0, %al
callq 0x1040
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl (%rcx), %ecx
movq -0x18(%rbp), %rdx
imull 0x8(%rdx), %ecx
movq -0x18(%rbp), %rdx
movzbl 0x3(%rdx), %edx
imull %edx, %ecx
cmpl %ecx, %eax
jge 0x1617
movl -0x1c(%rbp), %eax
movl $0xc, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x15dd
cmpl $0x0, -0x1c(%rbp)
je 0x15cd
leaq 0xad3(%rip), %rdi       # 0x2099
movb $0x0, %al
callq 0x1040
leaq 0xac8(%rip), %rdi       # 0x209c
movb $0x0, %al
callq 0x1040
jmp 0x15eb
leaq 0xaf7(%rip), %rdi       # 0x20db
movb $0x0, %al
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x1c(%rbp), %rcx
movzbl (%rax,%rcx), %esi
leaq 0xa9f(%rip), %rdi       # 0x20a1
movb $0x0, %al
callq 0x1040
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1588
leaq 0xa8a(%rip), %rdi       # 0x20a8
movb $0x0, %al
callq 0x1040
leaq 0xa82(%rip), %rdi       # 0x20ae
movb $0x0, %al
callq 0x1040
movq -0x18(%rbp), %rax
movzwl (%rax), %esi
movq -0x18(%rbp), %rax
movzbl 0x2(%rax), %edx
movq -0x18(%rbp), %rax
movzbl 0x3(%rax), %ecx
movq -0x18(%rbp), %rax
movzwl 0x4(%rax), %r8d
leaq 0xa6f(%rip), %rdi       # 0x20c9
movb $0x0, %al
callq 0x1040
movq -0x18(%rbp), %rax
movl 0x8(%rax), %esi
leaq 0xa6f(%rip), %rdi       # 0x20de
movb $0x0, %al
callq 0x1040
movq -0x18(%rbp), %rdi
callq 0x1030
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq