LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_insert_char
st_s* st_s_insert_char( st_s* o, uz_t start, char c )
{
    if( start > o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    if( o->space == 0 )
    {
        o->space = 8;
        o->data = bcore_b_alloc( NULL, o->space, &o->space );
    }
    else if( o->space < o->size + 2 )
    {
        o->data = bcore_bn_alloc( o->data, o->space, o->space * 2, &o->space );
    }
    bcore_memmove( o->data + start + 1, o->data + start, o->size - start );
    o->data[ start ] = c;
    o->size++;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x100d20
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x100e2a
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x100d34
movq -0x10(%rbp), %rdi
callq 0xff830
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x100d71
movq -0x10(%rbp), %rax
movq $0x8, 0x18(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x10(%rbp), %rdx
addq $0x18, %rdx
xorl %eax, %eax
movl %eax, %edi
callq 0x9d2c0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x100dbf
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
addq $0x2, %rcx
cmpq %rcx, %rax
jae 0x100dbd
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdx
shlq %rdx
movq -0x10(%rbp), %rcx
addq $0x18, %rcx
callq 0x9d2f0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x100dbf
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
addq -0x18(%rbp), %rdi
addq $0x1, %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
addq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
subq -0x18(%rbp), %rdx
callq 0x9d670
movb -0x19(%rbp), %dl
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
movb $0x0, (%rax,%rcx)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_insert_st
st_s* st_s_insert_st( st_s* o, uz_t start, const st_s* string )
{
    if( o == string )
    {
        st_s* string_l = st_s_clone( string );
        st_s_insert_st( o, start, string_l );
        st_s_discard( string_l );
        return o;
    }
    if( start > o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    if( o->space == 0 )
    {
        st_s_copy( o, string );
        return o;
    }
    if( o->space < o->size + string->size + 1 )
    {
        o->data = bcore_bn_alloc( o->data, o->space, o->size + string->size + 1, &o->space );
    }
    bcore_memmove( o->data + start + string->size, o->data + start, o->size - start );
    bcore_memcpy(  o->data + start, string->sc, string->size );
    o->size += string->size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0x100e92
movq -0x20(%rbp), %rdi
callq 0xff990
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x100e40
movq -0x28(%rbp), %rdi
callq 0xff600
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x100fc5
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x100ead
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x100fc5
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x100ec1
movq -0x10(%rbp), %rdi
callq 0xff830
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x100ee6
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xfe850
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x100fc5
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x20(%rbp), %rdx
addq 0x10(%rdx), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jae 0x100f43
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
movq -0x20(%rbp), %rax
addq 0x10(%rax), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
addq $0x18, %rcx
callq 0x9d2f0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
addq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rax
addq 0x10(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
addq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
subq -0x18(%rbp), %rdx
callq 0x9d670
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
addq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x9d5e0
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rbp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
movb $0x0, (%rax,%rcx)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_insert_sc
st_s* st_s_insert_sc( st_s* o, uz_t start, sc_t sc )
{
    if( start > o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    if( o->space == 0 )
    {
        st_s_copy_sc( o, sc );
        return o;
    }

    uz_t src_size = bcore_strlen( sc );
    if( o->space < o->size + src_size + 1 )
    {
        o->data = bcore_bn_alloc( o->data, o->space, o->size + src_size + 1, &o->space );
    }
    bcore_memmove( o->data + start + src_size, o->data + start, o->size - start );
    bcore_memcpy(  o->data + start, sc, src_size );
    o->size += src_size;
    o->data[ o->size ] = 0;
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x10103f
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10114c
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x101053
movq -0x10(%rbp), %rdi
callq 0xff830
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x101078
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xfea50
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x10114c
movq -0x20(%rbp), %rdi
callq 0x9d770
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
addq -0x28(%rbp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jae 0x1010da
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
addq -0x28(%rbp), %rdx
addq $0x1, %rdx
movq -0x10(%rbp), %rcx
addq $0x18, %rcx
callq 0x9d2f0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
addq -0x18(%rbp), %rdi
addq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
addq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
subq -0x18(%rbp), %rdx
callq 0x9d670
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
addq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x9d5e0
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
movb $0x0, (%rax,%rcx)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_insert_fv
st_s* st_s_insert_fv( st_s* o, uz_t start, sc_t format, va_list args )
{
    st_s* st = st_s_create_fv( format, args );
    st_s_insert_st( o, start, st );
    st_s_discard( st );
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xff3f0
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x100e40
movq -0x28(%rbp), %rdi
callq 0xff600
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_char
st_s* st_s_replace_char( st_s* o, uz_t start, char c )
{
    if( start >= o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    o->data[ start ] = c;
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jb 0x10127d
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x1012ab
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x101291
movq -0x10(%rbp), %rdi
callq 0xff830
movb -0x19(%rbp), %dl
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_st
st_s* st_s_replace_st( st_s* o, uz_t start, const st_s* string )
{
    if( o == string )
    {
        st_s* string_l = st_s_clone( string );
        st_s_replace_st( o, start, string_l );
        st_s_discard( string_l );
        return o;
    }
    if( start >= o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    for( uz_t i = 0; i < string->size; i++ )
    {
        uz_t idx = i + start;
        if( idx == o->size ) break;
        o->data[ idx ] = string->data[ i ];
    }
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0x101312
movq -0x20(%rbp), %rdi
callq 0xff990
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x1012c0
movq -0x28(%rbp), %rdi
callq 0xff600
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x1013a4
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jb 0x10132a
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x1013a4
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x10133e
movq -0x10(%rbp), %rdi
callq 0xff830
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x10139c
movq -0x30(%rbp), %rax
addq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jne 0x101370
jmp 0x10139c
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x38(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x101346
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_sc
st_s* st_s_replace_sc( st_s* o, uz_t start, sc_t sc )
{
    if( start >= o->size ) return o;
    if( o->space == 0 ) st_s_make_strong( o );
    for( uz_t i = 0; *sc != 0; i++ )
    {
        uz_t idx = i + start;
        if( idx == o->size ) break;
        o->data[ idx ] = *sc++;
    }
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jb 0x10141c
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x101496
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x101430
movq -0x10(%rbp), %rdi
callq 0xff830
movq $0x0, -0x28(%rbp)
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x10148e
movq -0x28(%rbp), %rax
addq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jne 0x101460
jmp 0x10148e
movq -0x20(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rbp)
movb (%rax), %dl
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x101438
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_char_sc
st_s* st_s_replace_char_sc( st_s* o, char c, sc_t sc )
{
    uz_t start = 0;
    uz_t sz_sc = bcore_strlen( sc );
    if( o->space == 0 ) st_s_make_strong( o );

    while( ( start = st_s_find_char( o, start, o->size, c ) ) < o->size )
    {
        st_s_remove(    o, start, 1 );
        st_s_insert_sc( o, start, sc );
        start += sz_sc;
    }
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x9d770
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x10156f
movq -0x8(%rbp), %rdi
callq 0xff830
jmp 0x101571
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
movsbl -0x9(%rbp), %ecx
callq 0x100390
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x1015c9
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0x1, %edx
callq 0x100a30
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x101010
movq -0x28(%rbp), %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x101571
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_sc_sc
st_s* st_s_replace_sc_sc( st_s* o, sc_t match, sc_t replace )
{
    uz_t start = 0;
    uz_t sz_match = bcore_strlen( match );
    uz_t sz_replace = bcore_strlen( replace );
    if( o->space == 0 ) st_s_make_strong( o );
    while( ( start = st_s_find_sc( o, start, o->size, match ) ) < o->size )
    {
        st_s_remove(    o, start, sz_match );
        st_s_insert_sc( o, start, replace );
        start += sz_replace;
    }
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x9d770
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x9d770
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1016aa
movq -0x8(%rbp), %rdi
callq 0xff830
jmp 0x1016ac
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
movq -0x10(%rbp), %rcx
callq 0x1004e0
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x101703
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x100a30
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x101010
movq -0x30(%rbp), %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x1016ac
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_replace_st_d_st_d
st_s* st_s_replace_st_d_st_d( st_s* o, st_s* match, st_s* replace )
{
    st_s_replace_st_st( o, match, replace );
    st_s_discard( match );
    st_s_discard( replace );
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x101710
movq -0x10(%rbp), %rdi
callq 0xff600
movq -0x18(%rbp), %rdi
callq 0xff600
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_colof
uz_t st_s_colof( const st_s* o, uz_t pos )
{
    uz_t pos_l = pos < o->size ? pos : o->size;
    uz_t count = 0;
    while( pos_l > 0 )
    {
        if( o->data[ pos_l - 1 ] == '\n' ) break;
        count++;
        pos_l--;
    }
    return count + 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x101914
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x101920
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jbe 0x10196c
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
subq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x101952
jmp 0x10196c
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x101930
movq -0x20(%rbp), %rax
addq $0x1, %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_posof
uz_t st_s_posof( const st_s* o, uz_t line, uz_t col )
{
    if( line == 0 ) return 0;
    uz_t pos = 0;
    uz_t count = 1;
    if( line > 1 )
    {
        for( pos = 0; pos < o->size; pos++ )
        {
            if( o->data[ pos ] == '\n' )
            {
                count++;
                if( count == line ) break;
            }
        }
    }
    return pos + col;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x1019a1
movq $0x0, -0x8(%rbp)
jmp 0x101a1b
movq $0x0, -0x28(%rbp)
movq $0x1, -0x30(%rbp)
cmpq $0x1, -0x18(%rbp)
jbe 0x101a0f
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x101a0d
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x1019fd
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq -0x18(%rbp), %rax
jne 0x1019fb
jmp 0x101a0d
jmp 0x1019fd
jmp 0x1019ff
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x1019c0
jmp 0x101a0f
movq -0x28(%rbp), %rax
addq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_posofline
uz_t st_s_posofline( const st_s* o, uz_t pos )
{
    uz_t pos_l = ( pos > o->size ) ? o->size : pos;
    while( pos_l > 0 )
    {
        if( o->data[ pos_l - 1 ] == '\n' ) break;
        pos_l--;
    }
    return pos_l;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x101a58
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x101a60
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jbe 0x101a98
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
subq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x101a8a
jmp 0x101a98
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x101a68
movq -0x18(%rbp), %rax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_show_line_context
st_s* st_s_show_line_context( const st_s* o, uz_t pos )
{
    uz_t start = st_s_posofline( o, pos );
    uz_t end = st_s_find_char( o, pos, o->size, '\n' );
    st_s* s = st_s_create();
    st_s_push_st_d( s, st_s_crop( o, start, end ) );
    st_s_push_char( s, '\n' );
    st_s_push_char_n( s, ' ', pos - start );
    st_s_push_char(   s, '^' );
    st_s_push_char( s, '\n' );
    return s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x101a30
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
movl $0xa, %ecx
callq 0x100390
movq %rax, -0x20(%rbp)
callq 0xff2e0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xff9e0
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0xfff40
movq -0x28(%rbp), %rdi
movl $0xa, %esi
callq 0xffba0
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rdx
subq -0x18(%rbp), %rdx
movl $0x20, %esi
callq 0xffca0
movq -0x28(%rbp), %rdi
movl $0x5e, %esi
callq 0xffba0
movq -0x28(%rbp), %rdi
movl $0xa, %esi
callq 0xffba0
movq -0x28(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_parse_errorf
static uz_t st_s_parse_errorf( const st_s* o, fp_st_s_parse_err errfp, vd_t arg, sz_t idx, sc_t format, ... )
{
    va_list args;
    va_start( args, format );
    st_s* msg = st_s_createvf( format, args );
    errfp( arg, o, idx, msg );
    st_s_discard( msg );
    va_end( args );
    return idx;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
testb %al, %al
je 0x104f2e
movaps %xmm0, -0xd0(%rbp)
movaps %xmm1, -0xc0(%rbp)
movaps %xmm2, -0xb0(%rbp)
movaps %xmm3, -0xa0(%rbp)
movaps %xmm4, -0x90(%rbp)
movaps %xmm5, -0x80(%rbp)
movaps %xmm6, -0x70(%rbp)
movaps %xmm7, -0x60(%rbp)
movq %r9, -0xd8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
leaq -0x100(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movl $0x30, -0x3c(%rbp)
movl $0x28, -0x40(%rbp)
movq -0x28(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0xff310
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x48(%rbp), %rcx
callq *%rax
movq -0x48(%rbp), %rdi
callq 0xff600
movq -0x20(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_parse_em_fv
er_t st_s_parse_em_fv( const st_s* o, uz_t start, uz_t end, uz_t* out_idx, sc_t format, va_list args )
{
    er_t err = 0;
    uz_t idx = st_s_parse_efv( o, start, end, st_s_parse_em_callback, &err, format, args );
    if( out_idx ) *out_idx = idx;
    return err;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x28(%rbp), %r9
movq -0x30(%rbp), %rax
leaq 0x2d(%rip), %rcx        # 0x105670
leaq -0x38(%rbp), %r8
movq %rax, (%rsp)
callq 0x101ef0
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x105666
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_parse_em_callback
static uz_t st_s_parse_em_callback( vd_t arg, const st_s* o, uz_t idx, st_s* msg )
{
    ASSERT( arg );
    er_t id = TYPEOF_parse_error;
    ( *( er_t* )arg ) = id;
    bcore_error_push_sc( id, msg->sc );
    return idx;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x1056b8
leaq 0x2e309(%rip), %rdi     # 0x13399f
leaq 0x52432(%rip), %rsi     # 0x157acf
leaq 0x514ac(%rip), %rdx     # 0x156b50
leaq 0x50f8d(%rip), %rcx     # 0x156638
movl $0x877, %r8d            # imm = 0x877
movb $0x0, %al
callq 0x9cea0
movabsq $0x690af8765815ec4d, %rax # imm = 0x690AF8765815EC4D
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x9df70
movq -0x18(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: bcore_st_signal_handler
vd_t bcore_st_signal_handler( const bcore_signal_s* o )
{
    switch( bcore_signal_s_handle_type( o, typeof( "bcore_st" ) ) )
    {
        case TYPEOF_init1:
        {
            bcore_flect_define_creator( typeof( "st_s"  ), st_s_create_self  );
            st_s_quicktest();
        }
        break;

        case TYPEOF_selftest:
        {
            st_s_selftest();
        }
        break;

        default: break;
    }
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq 0x51212(%rip), %rdi     # 0x1569cd
callq 0x105830
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0xc7f40
movq %rax, %rcx
movq %rcx, -0x10(%rbp)
movabsq $0x6a72ce8f8250efc6, %rcx # imm = 0x6A72CE8F8250EFC6
subq %rcx, %rax
je 0x1057f9
jmp 0x1057e4
movq -0x10(%rbp), %rax
movabsq $0x7ee758bbfced33e3, %rcx # imm = 0x7EE758BBFCED33E3
subq %rcx, %rax
je 0x10581b
jmp 0x105822
leaq 0x513c2(%rip), %rdi     # 0x156bc2
callq 0x105830
movq %rax, %rdi
leaq 0x41(%rip), %rsi        # 0x105850
callq 0xa7b60
callq 0x105be0
jmp 0x105824
callq 0x1067e0
jmp 0x105824
jmp 0x105824
xorl %eax, %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: flow_src
static uz_t flow_src( vd_t o, vd_t data, uz_t size )
{
    if( *( aware_t*)o != TYPEOF_st_s ) ERR( "object 'o' of type %u ('%s') must be st_s", *( aware_t*)o, ifnameof( *( aware_t*)o ) );
    st_s* s = o;
    if( s->space > 0 ) ERR( "String is strong. Only weak strings can be used as flow-source." );
    size = ( size > s->size ) ? s->size : size;
    bcore_memcpy( data, s->data, size );
    s->data += size;
    s->size -= size;
    return size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movabsq $-0x503db0e6e1c2e704, %rcx # imm = 0xAFC24F191E3D18FC
cmpq %rcx, (%rax)
je 0x107116
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0xff220
movq -0x28(%rbp), %r8
movq %rax, %r9
leaq 0x4af0e(%rip), %rdi     # 0x15200a
leaq 0x4f535(%rip), %rsi     # 0x156638
movl $0x8ad, %edx            # imm = 0x8AD
leaq 0x4fa8e(%rip), %rcx     # 0x156b9d
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0x10714a
leaq 0x4aeda(%rip), %rdi     # 0x15200a
leaq 0x4f501(%rip), %rsi     # 0x156638
movl $0x8af, %edx            # imm = 0x8AF
leaq 0x4fa84(%rip), %rcx     # 0x156bc7
movb $0x0, %al
callq 0x9cf40
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x107166
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x10716e
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x9d5e0
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rcx
subq %rdx, %rcx
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: p_errorvf
static void p_errorvf( const st_s* o, sc_t format, va_list args )
{
    st_s* context = st_s_show_line_context( o, 0 );
    st_s* msg     = st_s_createvf( format, args );
    bcore_err( "st_s source parse error:\n%s%s\n", context->sc, msg->sc );
    st_s_discard( msg );
    st_s_discard( context );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x101d20
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xff310
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x4f9fa(%rip), %rdi     # 0x156c07
movb $0x0, %al
callq 0x9cea0
movq -0x28(%rbp), %rdi
callq 0xff600
movq -0x20(%rbp), %rdi
callq 0xff600
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: parse_fv
static void parse_fv( st_s* o, sc_t format, va_list args )
{
    if( o->space > 0 ) ERR( "String is strong. Only weak strings can be used as flow-source." );
    uz_t size = st_s_parse_fv( o, 0, o->size, format, args );
    o->data += size;
    o->size -= size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0x107270
leaq 0x3aac6(%rip), %rdi     # 0x141d1c
leaq 0x4f3db(%rip), %rsi     # 0x156638
movl $0x8c6, %edx            # imm = 0x8C6
leaq 0x4f95e(%rip), %rcx     # 0x156bc7
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %r8
xorl %eax, %eax
movl %eax, %esi
callq 0x105500
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
subq %rdx, %rcx
movq %rcx, 0x10(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: parse_em_fv
static er_t parse_em_fv( st_s* o, sc_t format, va_list args )
{
    if( o->space > 0 ) ERR( "String is strong. Only weak strings can be used as flow-source." );
    uz_t size = 0;
    er_t er = st_s_parse_em_fv( o, 0, o->size, &size, format, args );
    o->data += size;
    o->size -= size;
    return er;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0x107300
leaq 0x4af83(%rip), %rdi     # 0x152269
leaq 0x4f34b(%rip), %rsi     # 0x156638
movl $0x8d0, %edx            # imm = 0x8D0
leaq 0x4f8ce(%rip), %rcx     # 0x156bc7
movb $0x0, %al
callq 0x9cf40
movq $0x0, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
movq -0x10(%rbp), %r8
movq -0x18(%rbp), %r9
xorl %eax, %eax
movl %eax, %esi
leaq -0x20(%rbp), %rcx
callq 0x105600
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
subq %rdx, %rcx
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: set_index
static void set_index( st_s* o, s3_t index )
{
    if( o->space > 0 ) ERR( "String is strong. Only weak strings can be used as flow-source." );
    if( index > 0    ) ERR( "Index is out of range." );

    vd_t root = NULL;
    uz_t granted_space = 0;
    bcore_tbman_get_instance( o->data, &root, &granted_space );

    vd_t new_data = o->data + o->size + index;

    if( ( uz_t )( ptrdiff_t )( ( u0_t* )new_data - ( u0_t* )root ) >= granted_space )
    {
        ERR( "Index exceeds range of memory instance." );
    }

    o->data = new_data;
    o->size = -index;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0x10743c
leaq 0x3a8d5(%rip), %rdi     # 0x141cf7
leaq 0x4f20f(%rip), %rsi     # 0x156638
movl $0x8ec, %edx            # imm = 0x8EC
leaq 0x4f792(%rip), %rcx     # 0x156bc7
movb $0x0, %al
callq 0x9cf40
cmpq $0x0, -0x10(%rbp)
jle 0x107464
leaq 0x3a8ad(%rip), %rdi     # 0x141cf7
leaq 0x4f1e7(%rip), %rsi     # 0x156638
movl $0x8ed, %edx            # imm = 0x8ED
leaq 0x4a9bd(%rip), %rcx     # 0x151e1a
movb $0x0, %al
callq 0x9cf40
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
leaq -0x18(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0x109620
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
addq 0x10(%rcx), %rax
addq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
cmpq -0x20(%rbp), %rax
jb 0x1074d3
leaq 0x3a83e(%rip), %rdi     # 0x141cf7
leaq 0x4f178(%rip), %rsi     # 0x156638
movl $0x8f7, %edx            # imm = 0x8F7
leaq 0x4f75a(%rip), %rcx     # 0x156c26
movb $0x0, %al
callq 0x9cf40
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
xorl %eax, %eax
movl %eax, %ecx
subq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: check_sanity
static void check_sanity( vc_t o )
{
    bcore_inst_t_check_sizeof( TYPEOF_st_s, sizeof( st_s ) );

    if( TYPEOF_st_s != *(aware_t *)o ) ERR( "incorrect type value (%"PRItp_t") (expected st_s)", *(aware_t *)o );
    const st_s* s = o;

    if( ( s->space > 0 ) && ( s->space < s->size ) ) ERR( "space (%zu) < size (%zu)", s->space, s->size );
    if( s->data[ s->size ] != 0 )  ERR( "data section does not terminate in zero" );

    for( uz_t i = 0; i < s->size; i++ )
    {
        u0_t c = s->data[ i ];
        if( c < 10 || c >= 128 ) ERR( "invalid character '%c' in string", c );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movabsq $-0x503db0e6e1c2e704, %rdi # imm = 0xAFC24F191E3D18FC
movl $0x20, %esi
callq 0xe50a0
movq -0x8(%rbp), %rcx
movabsq $-0x503db0e6e1c2e704, %rax # imm = 0xAFC24F191E3D18FC
cmpq (%rcx), %rax
je 0x10755b
movq -0x8(%rbp), %rax
movq (%rax), %r8
leaq 0x4f648(%rip), %rdi     # 0x156b89
leaq 0x4f0f0(%rip), %rsi     # 0x156638
movl $0x906, %edx            # imm = 0x906
leaq 0x4f6fa(%rip), %rcx     # 0x156c4e
movb $0x0, %al
callq 0x9cf40
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0x1075b1
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x1075b1
movq -0x10(%rbp), %rax
movq 0x18(%rax), %r8
movq -0x10(%rbp), %rax
movq 0x10(%rax), %r9
leaq 0x4f5f2(%rip), %rdi     # 0x156b89
leaq 0x4f09a(%rip), %rsi     # 0x156638
movl $0x909, %edx            # imm = 0x909
leaq 0x4f6cf(%rip), %rcx     # 0x156c79
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x1075eb
leaq 0x4f5b8(%rip), %rdi     # 0x156b89
leaq 0x4f060(%rip), %rsi     # 0x156638
movl $0x90a, %edx            # imm = 0x90A
leaq 0x4f6ae(%rip), %rcx     # 0x156c92
movb $0x0, %al
callq 0x9cf40
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x10765d
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0xa, %eax
jl 0x107627
movzbl -0x19(%rbp), %eax
cmpl $0x80, %eax
jl 0x10764d
movzbl -0x19(%rbp), %r8d
leaq 0x4f556(%rip), %rdi     # 0x156b89
leaq 0x4effe(%rip), %rsi     # 0x156638
movl $0x90f, %edx            # imm = 0x90F
leaq 0x4f674(%rip), %rcx     # 0x156cba
movb $0x0, %al
callq 0x9cf40
jmp 0x10764f
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x1075f3
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: bcore_tbman_external_b_alloc
vd_t bcore_tbman_external_b_alloc( vd_t current_ptr, uz_t requested_bytes, uz_t* granted_bytes )
{
    if( requested_bytes == 0 )
    {
        if( current_ptr ) free( current_ptr );
        current_ptr = NULL;
        if( granted_bytes ) *granted_bytes = 0;
    }
    else
    {
        if( current_ptr )
        {
            current_ptr = realloc( current_ptr, requested_bytes );
        }
        else
        {
            current_ptr = malloc( requested_bytes );
        }
        if( !current_ptr ) ERR( "Failed allocating %zu bytes", requested_bytes );
        if( granted_bytes ) *granted_bytes = requested_bytes;
    }
    return current_ptr;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x1077b7
cmpq $0x0, -0x8(%rbp)
je 0x10779b
movq -0x8(%rbp), %rdi
callq 0x4200
movq $0x0, -0x8(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x1077b5
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
jmp 0x10781e
cmpq $0x0, -0x8(%rbp)
je 0x1077d1
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x43a0
movq %rax, -0x8(%rbp)
jmp 0x1077de
movq -0x10(%rbp), %rdi
callq 0x4150
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x10780a
movq -0x10(%rbp), %r8
leaq 0x4fb90(%rip), %rdi     # 0x157380
leaq 0x4fba6(%rip), %rsi     # 0x15739d
movl $0xa2, %edx
leaq 0x4fba8(%rip), %rcx     # 0x1573ab
movb $0x0, %al
callq 0x9cf40
cmpq $0x0, -0x18(%rbp)
je 0x10781c
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
jmp 0x10781e
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: block_manager_s_create
static block_manager_s* block_manager_s_create
    (
        vd_t parent,
        uz_t pool_size,
        uz_t block_size,
        bl_t align,
        fp_lost_alignment lost_alignment_fp,
        bcore_btree_vd_s* internal_btree,
        down_manager_s* down_manager,
        bcore_mutex_s* mutex
    )
{
    block_manager_s* o = malloc( sizeof( block_manager_s ) );
    if( !o ) ERR( "Failed allocating %zu bytes", sizeof( block_manager_s ) );
    block_manager_s_init( o, parent, pool_size, block_size, align, lost_alignment_fp, internal_btree, down_manager, mutex );
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %cl, %al
movq 0x18(%rbp), %rcx
movq 0x10(%rbp), %rcx
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movl $0x70, %edi
callq 0x4150
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x107da7
leaq 0x4fb2c(%rip), %rdi     # 0x1578b3
leaq 0x4f60f(%rip), %rsi     # 0x15739d
movl $0x33a, %edx            # imm = 0x33A
leaq 0x4f611(%rip), %rcx     # 0x1573ab
movl $0x70, %r8d
movb $0x0, %al
callq 0x9cf40
movq -0x38(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x19(%rbp), %r8b
movq -0x28(%rbp), %r9
movq -0x30(%rbp), %r11
movq 0x10(%rbp), %r10
movq 0x18(%rbp), %rax
andb $0x1, %r8b
movzbl %r8b, %r8d
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x10c9a0
movq -0x38(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: external_manager_s_init
static void external_manager_s_init
    (
        external_manager_s* o,
        uz_t pool_size,
        bl_t full_align,
        down_manager_s* down_manager,
        bcore_mutex_s* mutex
    )
{
    bcore_memzero( o, sizeof( *o ) );
    o->pool_size = pool_size;
    o->tm_btree = bcore_btree_vd_s_create( bcore_tbman_external_alloc );
    o->ex_btree = bcore_btree_pp_s_create( bcore_tbman_external_alloc );
    block_manager_s_init
        (
            &o->bm_ext,
            o,
            pool_size,
            sizeof( ext_s ),
            full_align,
            ( fp_lost_alignment )external_manager_s_lost_alignment,
            o->tm_btree,
            NULL,
            mutex
        );
    o->aligned = true;
    o->down_manager = down_manager;
    o->mutex = mutex;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movl $0xa0, %esi
callq 0x9d4f0
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x80(%rax)
leaq -0x5f3(%rip), %rdi      # 0x107860
callq 0x127d30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x70(%rax)
leaq -0x60a(%rip), %rdi      # 0x107860
callq 0x125920
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x78(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movb -0x11(%rbp), %r8b
movq -0x8(%rbp), %rax
movq 0x70(%rax), %r10
movq -0x28(%rbp), %rax
movl $0x18, %ecx
leaq 0x4bbe(%rip), %r9       # 0x10ca60
xorl %r11d, %r11d
andb $0x1, %r8b
movzbl %r8b, %r8d
movq %r10, (%rsp)
movq $0x0, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x10c9a0
movq -0x8(%rbp), %rax
movb $0x1, 0x88(%rax)
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x90(%rax)
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x98(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: bcore_tbman_s_down
void bcore_tbman_s_down( bcore_tbman_s* o )
{
    tbman_s_lock( o );
    external_manager_s_down( &o->external_manager );
    down_manager_s_down( &o->down_manager );

    if( o->data )
    {
        for( uz_t i = 0; i < o->size; i++ ) block_manager_s_discard( o->data[ i ] );
        free( o->data );
    }

    bcore_btree_vd_s_discard( o->internal_btree );

    if( o->block_size_array ) free( o->block_size_array );

    tbman_s_unlock( o );
    bcore_mutex_s_down( &o->mutex );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x108180
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
callq 0x1081b0
movq -0x8(%rbp), %rdi
addq $0xe0, %rdi
callq 0x1081f0
movq -0x8(%rbp), %rax
cmpq $0x0, (%rax)
je 0x108130
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x108124
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x108250
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x1080f4
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x4200
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x127de0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0x108155
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x4200
movq -0x8(%rbp), %rdi
callq 0x108280
movq -0x8(%rbp), %rdi
addq $0x2c0, %rdi            # imm = 0x2C0
callq 0x10fa50
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: down_manager_s_down
static void down_manager_s_down( down_manager_s* o )
{
    block_manager_s_down( &o->bm_down_obj );
    block_manager_s_down( &o->bm_down_arg );
    block_manager_s_down( &o->bm_down_obj_arr );
    block_manager_s_down( &o->bm_down_arg_arr );
    bcore_btree_vd_s_discard( o->tm_btree );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x10caa0
movq -0x8(%rbp), %rdi
addq $0x70, %rdi
callq 0x10caa0
movq -0x8(%rbp), %rdi
addq $0xe0, %rdi
callq 0x10caa0
movq -0x8(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0x10caa0
movq -0x8(%rbp), %rax
movq 0x1c0(%rax), %rdi
callq 0x127de0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: bcore_tbman_s_create
bcore_tbman_s* bcore_tbman_s_create( uz_t pool_size, uz_t min_block_size, uz_t max_block_size, uz_t stepping_method, bl_t full_align )
{
    bcore_tbman_s* o = malloc( sizeof( bcore_tbman_s ) );
    if( !o ) ERR( "Failed allocating %zu bytes", sizeof( bcore_tbman_s ) );
    bcore_tbman_s_init( o, pool_size, min_block_size, max_block_size, stepping_method, full_align );
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
andb $0x1, %al
movb %al, -0x21(%rbp)
movl $0x2e8, %edi            # imm = 0x2E8
callq 0x4150
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x10830c
leaq 0x4f0ee(%rip), %rdi     # 0x1573da
leaq 0x4f0aa(%rip), %rsi     # 0x15739d
movl $0x71d, %edx            # imm = 0x71D
leaq 0x4f0ac(%rip), %rcx     # 0x1573ab
movl $0x2e8, %r8d            # imm = 0x2E8
movb $0x0, %al
callq 0x9cf40
movq -0x30(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %r9d
callq 0x1079a0
movq -0x30(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: bcore_tbman_s_fork
vd_t bcore_tbman_s_fork( bcore_tbman_s* o, vd_t ptr )
{
    if( !ptr ) return NULL;
    tbman_s_lock( o );
    tbman_s_fork( o, ptr );
    tbman_s_unlock( o );
    return ptr;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x1083c1
movq $0x0, -0x8(%rbp)
jmp 0x1083e8
movq -0x10(%rbp), %rdi
callq 0x108180
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x108400
movq -0x10(%rbp), %rdi
callq 0x108280
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: tbman_s_fork
static void tbman_s_fork( bcore_tbman_s* o, vd_t ptr )
{
    vd_t block_ptr = bcore_btree_vd_s_largest_below_equal( o->internal_btree, ptr );
    if( block_ptr && ( ( ptrdiff_t )( (u0_t*)ptr - (u0_t*)block_ptr ) < o->pool_size ) )
    {
        token_manager_s_fork( block_ptr, ptr );
    }
    else
    {
        external_manager_s_fork( &o->external_manager, ptr );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x1288a0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x108450
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x108450
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x10cbb0
jmp 0x108461
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
movq -0x10(%rbp), %rsi
callq 0x10cc10
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: bcore_tbman_s_release
void bcore_tbman_s_release( bcore_tbman_s* o, vd_t ptr )
{
    if( !ptr ) return;
    tbman_s_lock( o );
    tbman_s_release( o, ptr );
    tbman_s_unlock( o );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x108489
jmp 0x1084a8
movq -0x8(%rbp), %rdi
callq 0x108180
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x1084b0
movq -0x8(%rbp), %rdi
callq 0x108280
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: tbman_s_release
static void tbman_s_release( bcore_tbman_s* o, vd_t ptr )
{
    vd_t block_ptr = bcore_btree_vd_s_largest_below_equal( o->internal_btree, ptr );
    if( block_ptr && ( ( ptrdiff_t )( (u0_t*)ptr - (u0_t*)block_ptr ) < o->pool_size ) )
    {
        token_manager_s_release( block_ptr, ptr );
    }
    else
    {
        external_manager_s_release( &o->external_manager, ptr );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x1288a0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x108500
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x108500
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x10cd10
jmp 0x108511
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
movq -0x10(%rbp), %rsi
callq 0x10cd40
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)