// File: /workspace/github_c_makefile_star2_O1/stetre[P]moonnuklear/src/./nuklear/nuklear.h
// Function: nk_font_atlas_add_compressed_base85
NK_API struct nk_font*
nk_font_atlas_add_compressed_base85(struct nk_font_atlas *atlas,
    const char *data_base85, float height, const struct nk_font_config *config)
{
    int compressed_size;
    void *compressed_data;
    struct nk_font *font;

    NK_ASSERT(atlas);
    NK_ASSERT(atlas->temporary.alloc);
    NK_ASSERT(atlas->temporary.free);
    NK_ASSERT(atlas->permanent.alloc);
    NK_ASSERT(atlas->permanent.free);

    NK_ASSERT(data_base85);
    if (!atlas || !data_base85 || !atlas->temporary.alloc || !atlas->temporary.free ||
        !atlas->permanent.alloc || !atlas->permanent.free)
        return 0;

    compressed_size = (((int)nk_strlen(data_base85) + 4) / 5) * 4;
    compressed_data = atlas->temporary.alloc(atlas->temporary.userdata,0, (nk_size)compressed_size);
    NK_ASSERT(compressed_data);
    if (!compressed_data) return 0;
    nk_decode_85((unsigned char*)compressed_data, (const unsigned char*)data_base85);
    font = nk_font_atlas_add_compressed(atlas, compressed_data,
                    (nk_size)compressed_size, height, config);
    atlas->temporary.free(atlas->temporary.userdata, compressed_data);
    return font;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdx, %r14
movss %xmm0, 0xc(%rsp)
movq %rsi, %r15
movq %rdi, %rbx
testq %rdi, %rdi
jne 0x34d1f
movq 0x532f8(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x3d089(%rip), %rsi     # 0x71d8c
leaq 0x3d0a0(%rip), %rdx     # 0x71daa
movl $0x44f2, %ecx           # imm = 0x44F2
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
cmpq $0x0, 0x30(%rbx)
jne 0x34d54
movq 0x532c3(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x3d054(%rip), %rsi     # 0x71d8c
leaq 0x3d06b(%rip), %rdx     # 0x71daa
movl $0x44f3, %ecx           # imm = 0x44F3
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
cmpq $0x0, 0x38(%rbx)
jne 0x34d89
movq 0x5328e(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x3d01f(%rip), %rsi     # 0x71d8c
leaq 0x3d036(%rip), %rdx     # 0x71daa
movl $0x44f4, %ecx           # imm = 0x44F4
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
cmpq $0x0, 0x18(%rbx)
jne 0x34dbe
movq 0x53259(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x3cfea(%rip), %rsi     # 0x71d8c
leaq 0x3d001(%rip), %rdx     # 0x71daa
movl $0x44f5, %ecx           # imm = 0x44F5
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
cmpq $0x0, 0x20(%rbx)
jne 0x34df3
movq 0x53224(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x3cfb5(%rip), %rsi     # 0x71d8c
leaq 0x3cfcc(%rip), %rdx     # 0x71daa
movl $0x44f6, %ecx           # imm = 0x44F6
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
testq %r15, %r15
jne 0x34e26
movq 0x531f1(%rip), %r12     # 0x87ff0
movq (%r12), %rdi
leaq 0x3cf82(%rip), %rsi     # 0x71d8c
leaq 0x3cf99(%rip), %rdx     # 0x71daa
movl $0x44f8, %ecx           # imm = 0x44F8
xorl %eax, %eax
callq 0x12d80
movq (%r12), %rdi
callq 0x13780
testq %r15, %r15
sete %al
testq %rbx, %rbx
sete %cl
orb %al, %cl
jne 0x34fa1
cmpq $0x0, 0x30(%rbx)
je 0x34fa1
cmpq $0x0, 0x38(%rbx)
je 0x34fa1
cmpq $0x0, 0x18(%rbx)
je 0x34fa1
cmpq $0x0, 0x20(%rbx)
je 0x34fa1
cmpb $0x0, (%r15)
je 0x34e93
movl $0x1, %eax
cmpb $0x0, (%r15,%rax)
leaq 0x1(%rax), %rax
jne 0x34e71
addl $0x3, %eax
movl $0xcccccccd, %r12d      # imm = 0xCCCCCCCD
imulq %rax, %r12
shrq $0x20, %r12
andl $-0x4, %r12d
jmp 0x34e96
xorl %r12d, %r12d
movq 0x28(%rbx), %rdi
xorl %esi, %esi
movq %r12, %rdx
callq *0x30(%rbx)
testq %rax, %rax
je 0x34f75
movq %rax, %r13
movb (%r15), %cl
testb %cl, %cl
je 0x34f4c
addq $0x5, %r15
movq %r13, %rax
movsbl %cl, %edx
xorl %ecx, %ecx
cmpb $0x5c, %dl
setge %cl
xorl $-0x23, %ecx
addl %edx, %ecx
movsbl -0x4(%r15), %esi
xorl %edx, %edx
cmpl $0x5c, %esi
setge %dl
xorl $-0x23, %edx
addl %esi, %edx
movsbl -0x3(%r15), %edi
xorl %esi, %esi
cmpl $0x5c, %edi
setge %sil
xorl $-0x23, %esi
addl %edi, %esi
movsbl -0x2(%r15), %edi
xorl %r8d, %r8d
cmpl $0x5c, %edi
setge %r8b
xorl $-0x23, %r8d
addl %edi, %r8d
movsbl -0x1(%r15), %edi
xorl %r9d, %r9d
cmpl $0x5c, %edi
setge %r9b
xorl $-0x23, %r9d
addl %edi, %r9d
imull $0x55, %r9d, %edi
addl %r8d, %edi
imull $0x55, %edi, %edi
addl %esi, %edi
imull $0x55, %edi, %esi
addl %edx, %esi
imull $0x55, %esi, %edx
addl %ecx, %edx
movl %edx, (%rax)
addq $0x4, %rax
movb (%r15), %cl
addq $0x5, %r15
testb %cl, %cl
jne 0x34ec0
movq %rbx, %rdi
movq %r13, %rsi
movq %r12, %rdx
movss 0xc(%rsp), %xmm0
movq %r14, %rcx
callq 0x13140
movq %rax, %r14
movq 0x28(%rbx), %rdi
movq %r13, %rsi
callq *0x38(%rbx)
movq %r14, %rax
jmp 0x34fa3
movq 0x53074(%rip), %rbx     # 0x87ff0
movq (%rbx), %rdi
leaq 0x3ce06(%rip), %rsi     # 0x71d8c
leaq 0x3ce1d(%rip), %rdx     # 0x71daa
movl $0x44ff, %ecx           # imm = 0x44FF
xorl %eax, %eax
callq 0x12d80
movq (%rbx), %rdi
callq 0x13780
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq