LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_pp_s_create
bcore_btree_pp_s* bcore_btree_pp_s_create( vd_t (*alloc)( vd_t, uz_t size ) )
{
    bcore_btree_pp_s* o = NULL;
    if( alloc )
    {
        o = alloc( NULL, sizeof( bcore_btree_pp_s ) );
        o->alloc = alloc;
    }
    else
    {
        o = bcore_alloc( NULL, sizeof( bcore_btree_pp_s ) );
        o->alloc = bcore_alloc;
    }
    o->root      = NULL;
    o->chain_beg = NULL;
    o->chain_end = NULL;
    o->chain_ins = NULL;
    o->del_chain = NULL;
    o->block_size = 1024;
    return o;
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x130344
movq %rdi, %rbx
movl $0x38, %esi
xorl %edi, %edi
callq *%rbx
jmp 0x130357
movl $0x38, %esi
xorl %edi, %edi
callq 0xc8315
leaq -0x68042(%rip), %rbx    # 0xc8315
movq %rbx, 0x28(%rax)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movups %xmm0, 0x10(%rax)
movq $0x0, 0x20(%rax)
movq $0x400, 0x30(%rax)      # imm = 0x400
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_pp_s_discard
void bcore_btree_pp_s_discard( bcore_btree_pp_s* o )
{
    o->root = NULL;

    bcore_btree_node_pp_s* chain_beg = o->chain_beg;
    while( chain_beg )
    {
        bcore_btree_node_pp_s* new_beg = *( bcore_btree_node_pp_s** )( chain_beg + o->block_size );
        o->alloc( chain_beg, 0 );
        chain_beg = new_beg;
    }

    o->alloc( o, 0 );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq $0x0, (%rdi)
movq 0x8(%rdi), %rdi
testq %rdi, %rdi
je 0x1303a7
movq 0x30(%rbx), %rax
shlq $0x6, %rax
movq (%rdi,%rax), %r14
xorl %esi, %esi
callq *0x28(%rbx)
movq %r14, %rdi
testq %r14, %r14
jne 0x13038e
movq 0x28(%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_pp_s_new_node
bcore_btree_node_pp_s* bcore_btree_pp_s_new_node( bcore_btree_pp_s* o )
{
    if( o->del_chain )
    {
        bcore_btree_node_pp_s* new_node = o->del_chain;
        o->del_chain = new_node->parent;
        bcore_btree_node_pp_s_init( new_node );
        return new_node;
    }
    else
    {
        if( o->chain_ins == o->chain_end )
        {
            bcore_btree_node_pp_s* new_ptr = o->alloc( NULL, o->block_size * sizeof( bcore_btree_node_pp_s ) + sizeof( bcore_btree_node_pp_s* ) );
            if( !o->chain_beg )
            {
                o->chain_beg = new_ptr;
            }
            else
            {
                ( ( bcore_btree_node_pp_s** )( o->chain_end ) )[ 0 ] = new_ptr;
            }
            o->chain_ins = new_ptr;
            o->chain_end = new_ptr + o->block_size;
            *( bcore_btree_node_pp_s** )( o->chain_end ) = NULL;
        }
        bcore_btree_node_pp_s* new_node = o->chain_ins;
        bcore_btree_node_pp_s_init( new_node );
        o->chain_ins++;
        return new_node;
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x20(%rdi), %rax
testq %rax, %rax
je 0x1303e2
movq 0x20(%rax), %rcx
movq %rcx, 0x20(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
jmp 0x13044a
movq 0x18(%rbx), %rax
cmpq 0x10(%rbx), %rax
jne 0x13042f
movq 0x30(%rbx), %rsi
shlq $0x6, %rsi
orq $0x8, %rsi
xorl %edi, %edi
callq *0x28(%rbx)
cmpq $0x0, 0x8(%rbx)
je 0x13040a
movq 0x10(%rbx), %rcx
jmp 0x13040e
leaq 0x8(%rbx), %rcx
movq %rax, (%rcx)
movq %rax, 0x18(%rbx)
movq 0x30(%rbx), %rcx
shlq $0x6, %rcx
movq %rax, %rdx
addq %rcx, %rdx
movq %rdx, 0x10(%rbx)
movq $0x0, (%rax,%rcx)
movq 0x18(%rbx), %rax
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
addq $0x40, 0x18(%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_pp_s_exists
bl_t bcore_btree_pp_s_exists( const bcore_btree_pp_s* o, bcore_btree_pp_key_t key )
{
    if( !o ) return false;
    bcore_btree_node_pp_s* node = bcore_btree_node_pp_s_find( o->root, key );
    if( !node ) return false;
    if( node->kv1.key == key ) return true;
    if( node->child2 && node->kv2.key == key ) return true;
    return false;
}

// Assembly:
testq %rdi, %rdi
je 0x130a33
pushq %rbx
movq %rsi, %rbx
movq (%rdi), %rdi
callq 0x12f9dd
testq %rax, %rax
je 0x130a2f
movq %rax, %rcx
movb $0x1, %al
cmpq %rbx, (%rcx)
je 0x130a31
cmpq $0x0, 0x38(%rcx)
je 0x130a2f
cmpq %rbx, 0x10(%rcx)
je 0x130a31
xorl %eax, %eax
popq %rbx
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_pp_s_val
bcore_btree_pp_val_t* bcore_btree_pp_s_val( const bcore_btree_pp_s* o, bcore_btree_pp_key_t key )
{
    if( !o )    return NULL;
    bcore_btree_node_pp_s* node = bcore_btree_node_pp_s_find( o->root, key );
    if( !node ) return NULL;
    if( node->kv1.key == key ) return &node->kv1.val;
    if( node->child2 && node->kv2.key == key ) return &node->kv2.val;
    return NULL;
}

// Assembly:
testq %rdi, %rdi
je 0x130a76
pushq %rbx
movq %rsi, %rbx
movq (%rdi), %rdi
callq 0x12f9dd
testq %rax, %rax
je 0x130a79
cmpq %rbx, (%rax)
je 0x130a7d
cmpq $0x0, 0x38(%rax)
je 0x130a79
movq %rax, %rcx
addq $0x18, %rcx
xorl %edx, %edx
cmpq %rbx, 0x10(%rax)
cmoveq %rcx, %rdx
movq %rdx, %rax
jmp 0x130a81
xorl %eax, %eax
retq
xorl %eax, %eax
jmp 0x130a81
addq $0x8, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_pp_s_set
int bcore_btree_pp_s_set( bcore_btree_pp_s* o, bcore_btree_pp_key_t key, bcore_btree_pp_val_t val )
{
    if( !o ) return -2;
    if( !o->root )
    {
        o->root = bcore_btree_pp_s_new_node( o );
        o->root->child0 = o->root->child1 = BNUL_PP;
        o->root->child2 = NULL;
        o->root->kv1.key = key;
        o->root->kv1.val = val;
        return 1;
    }

    bcore_btree_node_pp_s* node = bcore_btree_node_pp_s_find( o->root, key );
    if( !node ) return -2;

    if( node->kv1.key == key )
    {
        if( node->kv1.val == val ) return 0;
        node->kv1.val = val;
        return -1;
    }
    else if( node->child2 && node->kv2.key == key )
    {
        if( node->kv2.val == val ) return 0;
        node->kv2.val = val;
        return -1;
    }
    else
    {
        bcore_btree_pp_kv_s kv = { key, val };
        bcore_btree_pp_s_push( o, node, &kv, BNUL_PP, BNUL_PP );
        return 1;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movl $0xfffffffe, %ebp       # imm = 0xFFFFFFFE
testq %rdi, %rdi
je 0x130b1c
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq (%rdi), %rdi
testq %rdi, %rdi
je 0x130aee
movq %r14, %rsi
callq 0x12f9dd
testq %rax, %rax
je 0x130b1c
cmpq %r14, (%rax)
je 0x130b29
cmpq $0x0, 0x38(%rax)
je 0x130acb
cmpq %r14, 0x10(%rax)
je 0x130b35
leaq 0x8(%rsp), %rdx
movq %r14, (%rdx)
movq %rbx, 0x8(%rdx)
leaq 0x798d2(%rip), %rcx     # 0x1aa3b0
movq %r15, %rdi
movq %rax, %rsi
movq %rcx, %r8
callq 0x130468
jmp 0x130b17
movq %r15, %rdi
callq 0x1303b9
movq %rax, (%r15)
leaq 0x798b0(%rip), %rcx     # 0x1aa3b0
movq %rcx, 0x30(%rax)
movq %rcx, 0x28(%rax)
movq $0x0, 0x38(%rax)
movq %r14, (%rax)
movq %rbx, 0x8(%rax)
movl $0x1, %ebp
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
cmpq %rbx, 0x8(%rax)
je 0x130b46
movq %rbx, 0x8(%rax)
jmp 0x130b3f
cmpq %rbx, 0x18(%rax)
je 0x130b46
movq %rbx, 0x18(%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x130b1c
xorl %ebp, %ebp
jmp 0x130b1c
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_pp_s_show
st_s* bcore_btree_pp_s_show( bcore_btree_pp_s* o )
{
    bcore_btree_node_pp_s_check_consistency( o->root );
    st_s* s = bcore_btree_node_pp_s_show( o->root, 0 );
    st_s_pushf( s, "\n" );
    return s;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq (%rdi), %rdi
callq 0x12fd72
movq (%rbx), %rdi
xorl %esi, %esi
callq 0x1301dd
movq %rax, %rbx
leaq 0x22a05(%rip), %rsi     # 0x1536ee
movq %rax, %rdi
xorl %eax, %eax
callq 0x1156f6
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_node_vd_s_find
bcore_btree_node_vd_s* bcore_btree_node_vd_s_find( bcore_btree_node_vd_s* root, bcore_btree_vd_key_t key )
{
    if( !root ) return NULL;
    bcore_btree_node_vd_s* node = NULL;
    while( root->child0 != BNUL_VP && root != node )
    {
        node = root;
        root = ( key < node->kv1.key )                                         ? node->child0 :
               ( !node->child2 && key > node->kv1.key )                        ? node->child1 :
               (  node->child2 && key > node->kv2.key )                        ? node->child2 :
               (  node->child2 && key > node->kv1.key && key < node->kv2.key ) ? node->child1 : node;
    }
    return root;
}

// Assembly:
testq %rdi, %rdi
je 0x130efa
movq 0x18(%rdi), %rdx
leaq 0x79568(%rip), %rcx     # 0x1aa3f0
cmpq %rcx, %rdx
je 0x130efd
movq (%rdi), %r8
movq %rdx, %rax
cmpq %rsi, %r8
ja 0x130ee8
movq 0x28(%rdi), %rdx
testq %rdx, %rdx
sete %al
cmpq %rsi, %r8
setb %r9b
testb %al, %r9b
je 0x130eb4
movq 0x20(%rdi), %rax
jmp 0x130ee8
movq %rdi, %rax
testq %rdx, %rdx
je 0x130ee8
cmpq %rsi, %r8
setae %al
testq %rdx, %rdx
sete %r8b
orb %al, %r8b
cmpq %rsi, 0x8(%rdi)
setb %al
cmovaeq %rdi, %rdx
orb %r8b, %al
movq %rdx, %rax
jne 0x130ee8
movq %rdi, %rax
cmpq %rsi, 0x8(%rdi)
ja 0x130eae
cmpq %rdi, %rax
je 0x130ef9
movq 0x18(%rax), %rdx
movq %rax, %rdi
cmpq %rcx, %rdx
jne 0x130e8d
retq
xorl %eax, %eax
retq
movq %rdi, %rax
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_node_vd_s_largest_below_equal
bcore_btree_vd_key_t bcore_btree_node_vd_s_largest_below_equal( bcore_btree_node_vd_s* root, bcore_btree_vd_key_t key )
{
    if( !root ) return 0;
    if( root->child0 == BNUL_VP )
    {
        if( ( root->child2 ) && key >= root->kv2.key ) return root->kv2.key;
        return ( key >= root->kv1.key ) ? root->kv1.key : 0;
    }
    else if( ( root->child2 ) && key >= root->kv2.key )
    {
        bcore_btree_vd_key_t branch_key = bcore_btree_node_vd_s_largest_below_equal( root->child2, key );
        return ( branch_key >= root->kv2.key ) ? branch_key : root->kv2.key;
    }
    else if( key >= root->kv1.key )
    {
        bcore_btree_vd_key_t branch_key = bcore_btree_node_vd_s_largest_below_equal( root->child1, key );
        return ( branch_key >= root->kv1.key ) ? branch_key : root->kv1.key;
    }
    else
    {
        return bcore_btree_node_vd_s_largest_below_equal( root->child0, key );
    }
}

// Assembly:
pushq %rbx
xorl %eax, %eax
leaq 0x794e5(%rip), %r8      # 0x1aa3f0
testq %rdi, %rdi
je 0x130f67
movq %rdi, %rdx
movq 0x18(%rdi), %rdi
movq 0x28(%rdx), %rcx
cmpq %r8, %rdi
je 0x130f3c
testq %rcx, %rcx
je 0x130f2e
movq 0x8(%rdx), %rbx
cmpq %rsi, %rbx
jbe 0x130f58
movq (%rdx), %rbx
cmpq %rsi, %rbx
ja 0x130f0b
movq 0x20(%rdx), %rdi
jmp 0x130f5b
testq %rcx, %rcx
je 0x130f4a
movq 0x8(%rdx), %rax
cmpq %rsi, %rax
jbe 0x130f67
movq (%rdx), %rcx
xorl %eax, %eax
cmpq %rsi, %rcx
cmovbeq %rcx, %rax
jmp 0x130f67
movq %rcx, %rdi
callq 0x130f01
cmpq %rbx, %rax
cmovbq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_node_vd_s_run
void bcore_btree_node_vd_s_run( const bcore_btree_node_vd_s* root, void(*func)( vd_t arg, bcore_btree_vd_key_t key ), vd_t arg )
{
    if( !root ) return;
    if( !func ) return;
    if( root->child0 )
    {
        if( root->child0 != BNUL_VP ) bcore_btree_node_vd_s_run( root->child0, func, arg );
    }
    if( root->child1 )
    {
        func( arg, root->kv1.key );
        if( root->child1 != BNUL_VP ) bcore_btree_node_vd_s_run( root->child1, func, arg );
    }
    if( root->child2 )
    {
        func( arg, root->kv2.key );
        if( root->child2 != BNUL_VP ) bcore_btree_node_vd_s_run( root->child2, func, arg );
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
leaq 0x7946f(%rip), %r12     # 0x1aa3f0
testq %r15, %r15
je 0x130fe8
testq %r14, %r14
je 0x130fe8
movq 0x18(%r15), %rdi
testq %rdi, %rdi
sete %al
cmpq %r12, %rdi
sete %cl
orb %al, %cl
jne 0x130faa
movq %r14, %rsi
movq %rbx, %rdx
callq 0x130f69
cmpq $0x0, 0x20(%r15)
je 0x130fce
movq (%r15), %rsi
movq %rbx, %rdi
callq *%r14
movq 0x20(%r15), %rdi
cmpq %r12, %rdi
je 0x130fce
movq %r14, %rsi
movq %rbx, %rdx
callq 0x130f69
cmpq $0x0, 0x28(%r15)
je 0x130fe8
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq *%r14
movq 0x28(%r15), %r15
cmpq %r12, %r15
jne 0x130f81
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_node_vd_s_count
uz_t bcore_btree_node_vd_s_count( const bcore_btree_node_vd_s* root, bl_t (*func)( vd_t arg, bcore_btree_vd_key_t key ), vd_t arg )
{
    uz_t count = 0;
    if( !root ) return count;
    if( root->child0 )
    {
        if( root->child0 != BNUL_VP ) count += bcore_btree_node_vd_s_count( root->child0, func, arg );
    }
    if( root->child1 )
    {
        count += ( func ) ? func( arg, root->kv1.key ) : 1;
        if( root->child1 != BNUL_VP ) count += bcore_btree_node_vd_s_count( root->child1, func, arg );
    }
    if( root->child2 )
    {
        count += ( func ) ? func( arg, root->kv2.key ) : 1;
        if( root->child2 != BNUL_VP ) count += bcore_btree_node_vd_s_count( root->child2, func, arg );
    }
    return count;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
xorl %ebx, %ebx
leaq 0x793df(%rip), %rbp     # 0x1aa3f0
testq %r12, %r12
je 0x1310b5
movq 0x18(%r12), %rdi
testq %rdi, %rdi
sete %al
cmpq %rbp, %rdi
sete %cl
orb %al, %cl
je 0x131034
xorl %r13d, %r13d
jmp 0x131042
movq %r15, %rsi
movq %r14, %rdx
callq 0x130ff4
movq %rax, %r13
cmpq $0x0, 0x20(%r12)
je 0x13107e
testq %r15, %r15
je 0x13105e
movq (%r12), %rsi
movq %r14, %rdi
callq *%r15
movzbl %al, %eax
jmp 0x131063
movl $0x1, %eax
addq %rax, %r13
movq 0x20(%r12), %rdi
cmpq %rbp, %rdi
je 0x13107e
movq %r15, %rsi
movq %r14, %rdx
callq 0x130ff4
addq %rax, %r13
cmpq $0x0, 0x28(%r12)
je 0x1310b8
testq %r15, %r15
je 0x13109b
movq 0x8(%r12), %rsi
movq %r14, %rdi
callq *%r15
movzbl %al, %eax
jmp 0x1310a0
movl $0x1, %eax
addq %rax, %r13
movq 0x28(%r12), %r12
cmpq %rbp, %r12
je 0x1310b8
addq %r13, %rbx
jmp 0x131011
xorl %r13d, %r13d
addq %r13, %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_node_vd_s_keys
uz_t bcore_btree_node_vd_s_keys( bcore_btree_node_vd_s* root )
{
    if( !root || root == BNUL_VP ) return 0;
    uz_t keys = root->child2 ? 2 : 1;
    keys += bcore_btree_node_vd_s_keys( root->child0 );
    keys += bcore_btree_node_vd_s_keys( root->child1 );
    if( root->child2 ) keys += bcore_btree_node_vd_s_keys( root->child2 );
    return keys;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r14
movq $0x0, (%rsp)
leaq 0x79306(%rip), %r13     # 0x1aa3f0
xorl %ebx, %ebx
testq %r14, %r14
je 0x131134
cmpq %r13, %r14
je 0x131134
movq 0x18(%r14), %rdi
movq 0x28(%r14), %rbp
xorl %r12d, %r12d
testq %rbp, %rbp
sete %r12b
callq 0x1310cd
movq %rax, %r15
subq %r12, %r15
movq 0x20(%r14), %rdi
callq 0x1310cd
addq %r15, %rax
addq $0x2, %rax
testq %rbp, %rbp
je 0x131130
addq %rax, %rbx
movq %rbp, %r14
jmp 0x1310ec
movq %rax, (%rsp)
addq (%rsp), %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_node_vd_s_show
st_s* bcore_btree_node_vd_s_show( bcore_btree_node_vd_s* o, uz_t depth )
{
    st_s* string = st_s_create();
    if( !o )
    {
        st_s_pushf( string, "()\n" );
        return string;
    }
    if( o->child1 )
    {
        if( o->child0 && o->child0 != BNUL_VP ) st_s_push_st_d( string, bcore_btree_node_vd_s_show( o->child0, depth + 1 ) );
        for( uz_t i = 0; i < depth; i++ ) st_s_pushf( string, "    " );
        st_s_pushf( string, "(%lu)\n", ( int64_t )(intptr_t)o->kv1.key );
        if( o->child1 && o->child1 != BNUL_VP ) st_s_pushf( string, "    " );
    }
    if( o->child2 )
    {
        for( uz_t i = 0; i < depth; i++ ) st_s_pushf( string, "    " );
        st_s_pushf( string, "(%lu)\n", ( int64_t )(intptr_t)o->kv2.key );
        if( o->child2 && o->child2 != BNUL_VP ) st_s_push_st_d( string, bcore_btree_node_vd_s_show( o->child2, depth + 1 ) );
    }
    return string;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %r15
xorl %eax, %eax
callq 0x114bbb
movq %rax, %rbx
testq %r15, %r15
je 0x13172b
cmpq $0x0, 0x20(%r15)
je 0x1316bb
movq 0x18(%r15), %rdi
testq %rdi, %rdi
sete %al
leaq 0x78dad(%rip), %r13     # 0x1aa3f0
cmpq %r13, %rdi
sete %cl
orb %al, %cl
jne 0x131661
leaq 0x1(%r14), %rsi
callq 0x131603
movq %rbx, %rdi
movq %rax, %rsi
callq 0x11556c
testq %r14, %r14
je 0x131682
leaq 0x1d33d(%rip), %r12     # 0x14e9aa
movq %r14, %rbp
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x1156f6
decq %rbp
jne 0x131670
movq (%r15), %rdx
leaq 0x283df(%rip), %rsi     # 0x159a6b
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x20(%r15), %rax
testq %rax, %rax
sete %cl
cmpq %r13, %rax
sete %al
orb %cl, %al
jne 0x1316bb
leaq 0x1d2f9(%rip), %rsi     # 0x14e9aa
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1156f6
cmpq $0x0, 0x28(%r15)
je 0x13173c
testq %r14, %r14
je 0x1316e3
leaq 0x1d2dc(%rip), %r12     # 0x14e9aa
movq %r14, %r13
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x1156f6
decq %r13
jne 0x1316d1
movq 0x8(%r15), %rdx
leaq 0x2837d(%rip), %rsi     # 0x159a6b
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x28(%r15), %rdi
testq %rdi, %rdi
sete %al
leaq 0x78ce7(%rip), %rcx     # 0x1aa3f0
cmpq %rcx, %rdi
sete %cl
orb %al, %cl
jne 0x13173c
incq %r14
movq %r14, %rsi
callq 0x131603
movq %rbx, %rdi
movq %rax, %rsi
callq 0x11556c
jmp 0x13173c
leaq 0x2811d(%rip), %rsi     # 0x15984f
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1156f6
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_vd_s_create
bcore_btree_vd_s* bcore_btree_vd_s_create( vd_t (*alloc)( vd_t, uz_t size ) )
{
    bcore_btree_vd_s* o = NULL;
    if( alloc )
    {
        o = alloc( NULL, sizeof( bcore_btree_vd_s ) );
        o->alloc = alloc;
    }
    else
    {
        o = bcore_alloc( NULL, sizeof( bcore_btree_vd_s ) );
        o->alloc = bcore_alloc;
    }
    o->root      = NULL;
    o->chain_beg = NULL;
    o->chain_end = NULL;
    o->chain_ins = NULL;
    o->del_chain = NULL;
    o->block_size = 1024;
    return o;
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x131762
movq %rdi, %rbx
movl $0x38, %esi
xorl %edi, %edi
callq *%rbx
jmp 0x131775
movl $0x38, %esi
xorl %edi, %edi
callq 0xc8315
leaq -0x69460(%rip), %rbx    # 0xc8315
movq %rbx, 0x28(%rax)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movups %xmm0, 0x10(%rax)
movq $0x0, 0x20(%rax)
movq $0x400, 0x30(%rax)      # imm = 0x400
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_vd_s_discard
void bcore_btree_vd_s_discard( bcore_btree_vd_s* o )
{
    o->root = NULL;

    bcore_btree_node_vd_s* chain_beg = o->chain_beg;
    while( chain_beg )
    {
        bcore_btree_node_vd_s* new_beg = *( bcore_btree_node_vd_s** )( chain_beg + o->block_size );
        o->alloc( chain_beg, 0 );
        chain_beg = new_beg;
    }

    o->alloc( o, 0 );
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq $0x0, (%rdi)
movq 0x8(%rdi), %rdi
testq %rdi, %rdi
je 0x1317c9
movq 0x30(%rbx), %rax
leaq (%rax,%rax,2), %rax
shlq $0x4, %rax
movq (%rdi,%rax), %r14
xorl %esi, %esi
callq *0x28(%rbx)
movq %r14, %rdi
testq %r14, %r14
jne 0x1317ac
movq 0x28(%rbx), %rax
movq %rbx, %rdi
xorl %esi, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_vd_s_new_node
bcore_btree_node_vd_s* bcore_btree_vd_s_new_node( bcore_btree_vd_s* o )
{
    if( o->del_chain )
    {
        bcore_btree_node_vd_s* new_node = o->del_chain;
        o->del_chain = new_node->parent;
        bcore_btree_node_vd_s_init( new_node );
        return new_node;
    }
    else
    {
        if( o->chain_ins == o->chain_end )
        {
            bcore_btree_node_vd_s* new_ptr = o->alloc( NULL, o->block_size * sizeof( bcore_btree_node_vd_s ) + sizeof( bcore_btree_node_vd_s* ) );
            if( !o->chain_beg )
            {
                o->chain_beg = new_ptr;
            }
            else
            {
                ( ( bcore_btree_node_vd_s** )( o->chain_end ) )[ 0 ] = new_ptr;
            }
            o->chain_ins = new_ptr;
            o->chain_end = new_ptr + o->block_size;
            *( bcore_btree_node_vd_s** )( o->chain_end ) = NULL;
        }
        bcore_btree_node_vd_s* new_node = o->chain_ins;
        bcore_btree_node_vd_s_init( new_node );
        o->chain_ins++;
        return new_node;
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x20(%rdi), %rax
testq %rax, %rax
je 0x131800
movq 0x10(%rax), %rcx
movq %rcx, 0x20(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
jmp 0x13186c
movq 0x18(%rbx), %rax
cmpq 0x10(%rbx), %rax
jne 0x131855
movq 0x30(%rbx), %rax
shlq $0x4, %rax
leaq (%rax,%rax,2), %rsi
addq $0x8, %rsi
xorl %edi, %edi
callq *0x28(%rbx)
cmpq $0x0, 0x8(%rbx)
je 0x13182c
movq 0x10(%rbx), %rcx
jmp 0x131830
leaq 0x8(%rbx), %rcx
movq %rax, (%rcx)
movq %rax, 0x18(%rbx)
movq 0x30(%rbx), %rcx
leaq (%rcx,%rcx,2), %rcx
shlq $0x4, %rcx
movq %rax, %rdx
addq %rcx, %rdx
movq %rdx, 0x10(%rbx)
movq $0x0, (%rax,%rcx)
movq 0x18(%rbx), %rax
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
addq $0x30, 0x18(%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_vd_s_exists
bl_t bcore_btree_vd_s_exists( const bcore_btree_vd_s* o, bcore_btree_vd_key_t key )
{
    if( !o )    return false;
    bcore_btree_node_vd_s* node = bcore_btree_node_vd_s_find( o->root, key );
    if( !node ) return false;
    if( node->kv1.key == key ) return true;
    if( node->child2 && node->kv2.key == key ) return true;
    return false;
}

// Assembly:
testq %rdi, %rdi
je 0x131e3b
pushq %rbx
movq %rsi, %rbx
movq (%rdi), %rdi
callq 0x130e78
testq %rax, %rax
je 0x131e37
movq %rax, %rcx
movb $0x1, %al
cmpq %rbx, (%rcx)
je 0x131e39
cmpq $0x0, 0x28(%rcx)
je 0x131e37
cmpq %rbx, 0x8(%rcx)
je 0x131e39
xorl %eax, %eax
popq %rbx
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_vd_s_set
int bcore_btree_vd_s_set( bcore_btree_vd_s* o, bcore_btree_vd_key_t key )
{
    if( !o ) return -2;
    if( !o->root )
    {
        o->root = bcore_btree_vd_s_new_node( o );
        o->root->child0 = o->root->child1 = BNUL_VP;
        o->root->child2 = NULL;
        o->root->kv1.key = key;
        return 1;
    }

    bcore_btree_node_vd_s* node = bcore_btree_node_vd_s_find( o->root, key );
    if( !node ) return -2;

    if( node->kv1.key == key )
    {
        return 0;
    }
    else if( node->child2 && node->kv2.key == key )
    {
        return 0;
    }
    else
    {
        bcore_btree_vd_kv_s kv = { key };
        bcore_btree_vd_s_push( o, node, &kv, BNUL_VP, BNUL_VP );
        return 1;
    }
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl $0xfffffffe, %ebp       # imm = 0xFFFFFFFE
testq %rdi, %rdi
je 0x131ed0
movq %rsi, %rbx
movq %rdi, %r14
movq (%rdi), %rdi
testq %rdi, %rdi
je 0x131ea6
movq %rbx, %rsi
callq 0x130e78
testq %rax, %rax
je 0x131ed0
xorl %ebp, %ebp
cmpq %rbx, (%rax)
je 0x131ed0
cmpq $0x0, 0x28(%rax)
je 0x131e87
cmpq %rbx, 0x8(%rax)
je 0x131ed0
leaq 0x8(%rsp), %rdx
movq %rbx, (%rdx)
leaq 0x7855a(%rip), %rcx     # 0x1aa3f0
movq %r14, %rdi
movq %rax, %rsi
movq %rcx, %r8
callq 0x13188a
jmp 0x131ecb
movq %r14, %rdi
callq 0x1317db
movq %rax, (%r14)
leaq 0x78538(%rip), %rcx     # 0x1aa3f0
movq %rcx, 0x20(%rax)
movq %rcx, 0x18(%rax)
movq $0x0, 0x28(%rax)
movq %rbx, (%rax)
movl $0x1, %ebp
movl %ebp, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_btree.c
// Function: bcore_btree_vd_s_show
st_s* bcore_btree_vd_s_show( bcore_btree_vd_s* o )
{
    bcore_btree_node_vd_s_check_consistency( o->root );
    st_s* s = bcore_btree_node_vd_s_show( o->root, 0 );
    st_s_pushf( s, "\n" );
    return s;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq (%rdi), %rdi
callq 0x1311ee
movq (%rbx), %rdi
xorl %esi, %esi
callq 0x131603
movq %rax, %rbx
leaq 0x21677(%rip), %rsi     # 0x1536ee
movq %rax, %rdi
xorl %eax, %eax
callq 0x1156f6
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_const_manager.c
// Function: bcore_const_vget_r
const sr_s* bcore_const_vget_r( tp_t key, tp_t type )
{
    const sr_s* sr = bcore_const_get_r( key );
    if( !sr ) ERR_fa( "Key '#<sc_t>' (#<tp_t>) not registered.", ifnameof( key ), key );
    if( type != 0 )
    {
        if( sr_s_type( sr ) != type )
        {
            ERR_fa( "Key '#<sc_t>': Type mismatch: '#<sc_t>' requested but '#<sc_t>' registered.",
                    ifnameof( key ), ifnameof( type ), ifnameof( sr_s_type( sr ) ) );
        }
    }
    return sr;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %r15
movq 0x766f8(%rip), %rdi     # 0x1aa420
movq %r15, %rsi
callq 0xddedc
movq %rax, %rbx
testq %rax, %rax
jne 0x133d72
movq %r15, %rdi
callq 0xe0cbc
testq %rax, %rax
leaq 0x1f9a5(%rip), %r8      # 0x1536ef
cmovneq %rax, %r8
leaq 0x25f0c(%rip), %rdi     # 0x159c61
leaq 0x25eb3(%rip), %rsi     # 0x159c0f
leaq 0x25f11(%rip), %rcx     # 0x159c74
movl $0x7a, %edx
movq %r15, %r9
xorl %eax, %eax
callq 0xc825d
testq %r14, %r14
je 0x133e0e
testq %rbx, %rbx
je 0x133d8f
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x133d8f
movq 0x8(%rax), %rax
jmp 0x133d91
xorl %eax, %eax
cmpq %r14, %rax
je 0x133e0e
movq %r15, %rdi
callq 0xe0cbc
movq %rax, %r15
testq %rax, %rax
leaq 0x1f944(%rip), %r12     # 0x1536ef
cmoveq %r12, %r15
movq %r14, %rdi
callq 0xe0cbc
movq %rax, %r14
testq %rax, %rax
cmoveq %r12, %r14
testq %rbx, %rbx
je 0x133dd5
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x133dd5
movq 0x8(%rax), %rdi
jmp 0x133dd7
xorl %edi, %edi
callq 0xe0cbc
testq %rax, %rax
cmovneq %rax, %r12
movq %r12, (%rsp)
leaq 0x25e73(%rip), %rdi     # 0x159c61
leaq 0x25e1a(%rip), %rsi     # 0x159c0f
leaq 0x25ea0(%rip), %rcx     # 0x159c9c
movl $0x80, %edx
movq %r15, %r8
movq %r14, %r9
xorl %eax, %eax
callq 0xc825d
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_const_manager.c
// Function: bcore_const_string_set_st_d
tp_t bcore_const_string_set_st_d( st_s* string )
{
    tp_t key = typeof( string->sc );
    bcore_mutex_s_lock( mutex_st_g );
    if( bcore_hmap_tp_sr_s_exists( hmap_st_g, key ) )
    {
        st_s* st = bcore_hmap_tp_sr_s_get( hmap_st_g, key )->o;
        if( !st_s_equal_st( st, string ) )
        {
            bcore_mutex_s_unlock( mutex_st_g );
            ERR_fa( "Collision: Strings '#<sc_t>' and '#<sc_t>' produce the same key '#<tp_t>'.", string, st->sc, key );
        }
        st_s_discard( string );
    }
    else
    {
        bcore_hmap_tp_sr_s_set( hmap_st_g, key, sr_asm( string ) );
    }
    bcore_mutex_s_unlock( mutex_st_g );
    return key;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rdi, %r14
movq 0x8(%rdi), %rax
testq %rax, %rax
je 0x133e89
movabsq $-0x340d631b7bdddcdb, %rsi # imm = 0xCBF29CE484222325
movb (%rax), %dl
testb %dl, %dl
je 0x133e95
incq %rax
movabsq $0x100000001b3, %rcx    # imm = 0x100000001B3
movzbl %dl, %ebx
xorq %rsi, %rbx
imulq %rcx, %rbx
movb (%rax), %dl
incq %rax
movq %rbx, %rsi
testb %dl, %dl
jne 0x133e71
jmp 0x133e98
movabsq $-0x509c42b379fe4821, %rbx # imm = 0xAF63BD4C8601B7DF
jmp 0x133e98
movq %rsi, %rbx
movq 0x76589(%rip), %rdi     # 0x1aa428
callq 0x11f515
movq 0x76585(%rip), %rdi     # 0x1aa430
movq %rbx, %rsi
callq 0xde40e
movq 0x76576(%rip), %r15     # 0x1aa430
testb %al, %al
je 0x133ed7
movq %r15, %rdi
movq %rbx, %rsi
callq 0xddedc
movq (%rax), %r15
testq %r15, %r15
je 0x133eeb
movq 0x8(%r15), %rdi
jmp 0x133eed
movq %r14, 0x18(%rsp)
testq %r14, %r14
je 0x133ef8
movq (%r14), %rdi
callq 0x1123e1
jmp 0x133efa
xorl %edi, %edi
testq %r14, %r14
je 0x133f24
movq 0x8(%r14), %rsi
jmp 0x133f26
xorl %eax, %eax
movq %rax, 0x20(%rsp)
movl $0x2, %eax
movq %rax, 0x28(%rsp)
movq %rax, 0x10(%rsp)
movups 0x18(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r15, %rdi
movq %rbx, %rsi
callq 0xddff8
jmp 0x133f6f
xorl %esi, %esi
callq 0xc84cd
testl %eax, %eax
je 0x133f67
movq 0x764f2(%rip), %rdi     # 0x1aa428
callq 0x11f547
movq 0x8(%r15), %r9
movq %rbx, (%rsp)
leaq 0x25d9e(%rip), %rdi     # 0x159ce8
leaq 0x25cbe(%rip), %rsi     # 0x159c0f
leaq 0x25dac(%rip), %rcx     # 0x159d04
movl $0x9e, %edx
movq %r14, %r8
xorl %eax, %eax
callq 0xc825d
movq %r14, %rdi
callq 0x114f61
movq 0x764b2(%rip), %rdi     # 0x1aa428
callq 0x11f547
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_const_manager.c
// Function: bcore_const_string_get_sc
sc_t bcore_const_string_get_sc( tp_t key )
{
    bcore_mutex_s_lock( mutex_st_g );
    sr_s* sr = bcore_hmap_tp_sr_s_get( hmap_st_g, key );
    sc_t  sc = ( sr ) ? ( ( st_s* )sr->o )->sc : NULL;
    bcore_mutex_s_unlock( mutex_st_g );
    return sc;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x76477(%rip), %rdi     # 0x1aa428
callq 0x11f515
movq 0x76473(%rip), %rdi     # 0x1aa430
movq %rbx, %rsi
callq 0xddedc
testq %rax, %rax
je 0x133fd3
movq (%rax), %rax
movq 0x8(%rax), %rbx
jmp 0x133fd5
xorl %ebx, %ebx
movq 0x7644c(%rip), %rdi     # 0x1aa428
callq 0x11f547
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_const_manager.c
// Function: bcore_const_string_get_st
const st_s* bcore_const_string_get_st( tp_t key )
{
    bcore_mutex_s_lock( mutex_st_g );
    sr_s* sr = bcore_hmap_tp_sr_s_get( hmap_st_g, key );
    st_s* st = ( sr ) ? sr->o : NULL;
    bcore_mutex_s_unlock( mutex_st_g );
    return st;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x76437(%rip), %rdi     # 0x1aa428
callq 0x11f515
movq 0x76433(%rip), %rdi     # 0x1aa430
movq %rbx, %rsi
callq 0xddedc
testq %rax, %rax
je 0x13400f
movq (%rax), %rbx
jmp 0x134011
xorl %ebx, %ebx
movq 0x76410(%rip), %rdi     # 0x1aa428
callq 0x11f547
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_const_manager.c
// Function: bcore_const_string_exists
bl_t bcore_const_string_exists( tp_t key )
{
    bcore_mutex_s_lock( mutex_st_g );
    bl_t bl = bcore_hmap_tp_sr_s_exists( hmap_st_g, key );
    bcore_mutex_s_unlock( mutex_st_g );
    return bl;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x763fb(%rip), %rdi     # 0x1aa428
callq 0x11f515
movq 0x763f7(%rip), %rdi     # 0x1aa430
movq %rbx, %rsi
callq 0xde40e
movl %eax, %ebx
movq 0x763de(%rip), %rdi     # 0x1aa428
callq 0x11f547
movl %ebx, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_t_set_d
void bcore_global_t_set_d( tp_t key, tp_t t, vd_t v )
{
    assert( hmap_g );
    bcore_mutex_s_lock( mutex_g );
    bcore_hmap_tp_sr_s_set( hmap_g, key, sr_tsm( t, v ) );
    bcore_mutex_s_unlock( mutex_g );
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbx
movq 0x75ffd(%rip), %rdi     # 0x1aa438
callq 0x11f515
movq 0x75ff9(%rip), %r14     # 0x1aa440
movq %r12, 0x20(%rsp)
testq %r15, %r15
je 0x13445b
movq %r15, %rdi
callq 0x1123e1
jmp 0x13445d
xorl %eax, %eax
movq %rax, 0x28(%rsp)
movl $0x2, %eax
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r14, %rdi
movq %rbx, %rsi
callq 0xddff8
movq 0x75fac(%rip), %rdi     # 0x1aa438
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x11f547
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_get_ifnexists_set
vd_t bcore_global_get_ifnexists_set( tp_t key, tp_t type )
{
    assert( hmap_g );
    bcore_mutex_s_lock( mutex_g );
    if( !bcore_hmap_tp_sr_s_exists( hmap_g, key ) )
    {
        bcore_hmap_tp_sr_s_set( hmap_g, key, sr_create( type ) );
    }
    const sr_s* sr = bcore_hmap_tp_sr_s_get( hmap_g, key );
    bcore_mutex_s_unlock( mutex_g );
    return ( sr ) ? sr->o : NULL;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r15
movq %rdi, %rbx
movq 0x75cf4(%rip), %rdi     # 0x1aa438
callq 0x11f515
movq 0x75cf0(%rip), %rdi     # 0x1aa440
movq %rbx, %rsi
callq 0xde40e
testb %al, %al
jne 0x1347a9
movq 0x75cdd(%rip), %r14     # 0x1aa440
movq %r15, %rdi
callq 0x112326
movq %rax, 0x18(%rsp)
testq %r15, %r15
je 0x13477f
movq %r15, %rdi
callq 0x1123e1
jmp 0x134781
xorl %eax, %eax
movq %rax, 0x20(%rsp)
movl $0x2, %eax
movq %rax, 0x28(%rsp)
movq %rax, 0x10(%rsp)
movups 0x18(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r14, %rdi
movq %rbx, %rsi
callq 0xddff8
movq 0x75c90(%rip), %rdi     # 0x1aa440
movq %rbx, %rsi
callq 0xddedc
movq %rax, %rbx
movq 0x75c76(%rip), %rdi     # 0x1aa438
callq 0x11f547
testq %rbx, %rbx
je 0x1347d1
movq (%rbx), %rax
jmp 0x1347d3
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_get_ifnexists_set_d
vd_t bcore_global_get_ifnexists_set_d( tp_t key, tp_t type, vd_t obj )
{
    assert( hmap_g );
    bcore_mutex_s_lock( mutex_g );
    if( !bcore_hmap_tp_sr_s_exists( hmap_g, key ) )
    {
        bcore_hmap_tp_sr_s_set( hmap_g, key, sr_tsm( type, obj ) );
    }
    else
    {
        bcore_inst_t_discard( type, obj );
    }
    const sr_s* sr = bcore_hmap_tp_sr_s_get( hmap_g, key );
    bcore_mutex_s_unlock( mutex_g );
    return ( sr ) ? sr->o : NULL;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq 0x75c40(%rip), %rdi     # 0x1aa438
callq 0x11f515
movq 0x75c3c(%rip), %rdi     # 0x1aa440
movq %rbx, %rsi
callq 0xde40e
testb %al, %al
je 0x1348be
testq %r14, %r14
je 0x134903
leaq 0x74c44(%rip), %rax     # 0x1a9468
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r15, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x13487e
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x13487e
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x13487e
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x134939
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x1348ae
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r15, %rsi
callq 0xf3f85
movq %rax, %r12
leaq 0x74bc5(%rip), %rdi     # 0x1a9468
movq %r15, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
movq %r14, %rsi
callq *0xb8(%r12)
jmp 0x134903
movq 0x75b7b(%rip), %r12     # 0x1aa440
movq %r14, 0x20(%rsp)
testq %r15, %r15
je 0x1348d9
movq %r15, %rdi
callq 0x1123e1
jmp 0x1348db
xorl %eax, %eax
movq %rax, 0x28(%rsp)
movl $0x2, %eax
movq %rax, 0x30(%rsp)
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r12, %rdi
movq %rbx, %rsi
callq 0xddff8
movq 0x75b36(%rip), %rdi     # 0x1aa440
movq %rbx, %rsi
callq 0xddedc
movq %rax, %rbx
movq 0x75b1c(%rip), %rdi     # 0x1aa438
callq 0x11f547
testq %rbx, %rbx
je 0x13492b
movq (%rbx), %rax
jmp 0x13492d
xorl %eax, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
xorl %r12d, %r12d
jmp 0x134882
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_get_o
vd_t bcore_global_get_o( tp_t key )
{
    bcore_mutex_s_lock( mutex_g );
    const sr_s* sr = bcore_hmap_tp_sr_s_get( hmap_g, key );
    bcore_mutex_s_unlock( mutex_g );
    return ( sr ) ? sr->o : NULL;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x75a8c(%rip), %rdi     # 0x1aa438
callq 0x11f515
movq 0x75a88(%rip), %rdi     # 0x1aa440
movq %rbx, %rsi
callq 0xddedc
movq %rax, %rbx
movq 0x75a6e(%rip), %rdi     # 0x1aa438
callq 0x11f547
testq %rbx, %rbx
je 0x1349d9
movq (%rbx), %rax
jmp 0x1349db
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_get_x
sr_s bcore_global_get_x( tp_t key )
{
    bcore_mutex_s_lock( mutex_g );
    const sr_s* sr = bcore_hmap_tp_sr_s_get( hmap_g, key );
    bcore_mutex_s_unlock( mutex_g );
    return ( sr ) ? sr_pwc( sr->p, sr->o ) : sr_null();
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x75a4a(%rip), %rdi     # 0x1aa438
callq 0x11f515
movq 0x75a46(%rip), %rdi     # 0x1aa440
movq %r14, %rsi
callq 0xddedc
movq %rax, %r14
movq 0x75a2c(%rip), %rdi     # 0x1aa438
callq 0x11f547
testq %r14, %r14
je 0x134a27
movups (%r14), %xmm0
movups %xmm0, (%rbx)
movq $0x1, 0x10(%rbx)
jmp 0x134a35
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movq $0x0, 0x10(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_get_r
sr_s* bcore_global_get_r( tp_t key )
{
    bcore_mutex_s_lock( mutex_g );
    sr_s* sr = bcore_hmap_tp_sr_s_get( hmap_g, key );
    bcore_mutex_s_unlock( mutex_g );
    return sr;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x759ed(%rip), %rdi     # 0x1aa438
callq 0x11f515
movq 0x759e9(%rip), %rdi     # 0x1aa440
movq %rbx, %rsi
callq 0xddedc
movq %rax, %rbx
movq 0x759cf(%rip), %rdi     # 0x1aa438
callq 0x11f547
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_vget_r
sr_s* bcore_global_vget_r( tp_t key, tp_t type )
{
    sr_s* sr = bcore_global_get_r( key );
    if( !sr ) ERR_fa( "Key '#<sc_t>' (#<tp_t>) not registered.", ifnameof( key ), key );
    if( type != 0 )
    {
        if( sr_s_type( sr ) != type )
        {
            ERR_fa( "Key '#<sc_t>': Type mismatch: '#<sc_t>' requested but '#<sc_t>' registered.",
                    ifnameof( key ), ifnameof( type ), ifnameof( sr_s_type( sr ) ) );
        }
    }
    return sr;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %r15
callq 0x134a40
movq %rax, %rbx
testq %rax, %rax
jne 0x134ad3
movq %r15, %rdi
callq 0xe0cbc
testq %rax, %rax
leaq 0x1ec44(%rip), %r8      # 0x1536ef
cmovneq %rax, %r8
leaq 0x2539b(%rip), %rdi     # 0x159e51
leaq 0x253a8(%rip), %rsi     # 0x159e65
leaq 0x251b0(%rip), %rcx     # 0x159c74
movl $0xa5, %edx
movq %r15, %r9
xorl %eax, %eax
callq 0xc825d
testq %r14, %r14
je 0x134b6f
testq %rbx, %rbx
je 0x134af0
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x134af0
movq 0x8(%rax), %rax
jmp 0x134af2
xorl %eax, %eax
cmpq %r14, %rax
je 0x134b6f
movq %r15, %rdi
callq 0xe0cbc
movq %rax, %r15
testq %rax, %rax
leaq 0x1ebe3(%rip), %r12     # 0x1536ef
cmoveq %r12, %r15
movq %r14, %rdi
callq 0xe0cbc
movq %rax, %r14
testq %rax, %rax
cmoveq %r12, %r14
testq %rbx, %rbx
je 0x134b36
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x134b36
movq 0x8(%rax), %rdi
jmp 0x134b38
xorl %edi, %edi
callq 0xe0cbc
testq %rax, %rax
cmovneq %rax, %r12
movq %r12, (%rsp)
leaq 0x25302(%rip), %rdi     # 0x159e51
leaq 0x2530f(%rip), %rsi     # 0x159e65
leaq 0x2513f(%rip), %rcx     # 0x159c9c
movl $0xab, %edx
movq %r15, %r8
movq %r14, %r9
xorl %eax, %eax
callq 0xc825d
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_exists
bl_t bcore_global_exists( tp_t key )
{
    bcore_mutex_s_lock( mutex_g );
    bl_t bl = bcore_hmap_tp_sr_s_exists( hmap_g, key );
    bcore_mutex_s_unlock( mutex_g );
    return bl;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x7588d(%rip), %rdi     # 0x1aa438
callq 0x11f515
movq 0x75889(%rip), %rdi     # 0x1aa440
movq %rbx, %rsi
callq 0xde40e
movl %eax, %ebx
movq 0x75870(%rip), %rdi     # 0x1aa438
callq 0x11f547
movl %ebx, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_global_manager.c
// Function: bcore_global_size
sz_t bcore_global_size()
{
    bcore_mutex_s_lock( mutex_g );
    sz_t sz = bcore_hmap_tp_sr_s_keys( hmap_g );
    bcore_mutex_s_unlock( mutex_g );
    return sz;
}

// Assembly:
pushq %rbx
movq 0x7585f(%rip), %rdi     # 0x1aa438
callq 0x11f515
movq 0x7585b(%rip), %rdi     # 0x1aa440
callq 0xde485
movq %rax, %rbx
movq 0x75844(%rip), %rdi     # 0x1aa438
callq 0x11f547
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_img.c
// Function: bcore_img_u2_s_set_size
void bcore_img_u2_s_set_size( bcore_img_u2_s* o, uz_t rows, uz_t cols )
{
    bcore_array_a_set_size( ( bcore_array* )o, rows * cols );
    bcore_u_memzero( sizeof( u2_t ), o->data, o->size );
    o->rows = rows;
    o->cols = cols;
    o->stride = cols;

    if( !o->format ) o->format = TYPEOF_bcore_img_u2_argb;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq (%rdi), %r12
leaq 0x73cb3(%rip), %rax     # 0x1a8e20
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x1351c7
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x1351c7
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x1351c7
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x13524e
movq (%rax,%rcx), %rbp
movq %r14, %r13
imulq %r15, %r13
testq %rbp, %rbp
jne 0x1351fe
movabsq $-0x5073d588c3beb52e, %rdi # imm = 0xAF8C2A773C414AD2
movq %r12, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x73c2d(%rip), %rdi     # 0x1a8e20
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbp, %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0xf69d8
movq 0x28(%rbx), %rsi
movq 0x30(%rbx), %rdx
movl $0x4, %edi
callq 0xc8389
movq %r15, 0x10(%rbx)
movq %r14, 0x18(%rbx)
movq %r14, 0x20(%rbx)
cmpq $0x0, 0x8(%rbx)
jne 0x13523f
movabsq $-0x59225ce9298deaed, %rax # imm = 0xA6DDA316D6721513
movq %rax, 0x8(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %ebp, %ebp
jmp 0x1351cb
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_img.c
// Function: bcore_img_u2_s_pnm_to_sink
const bcore_img_u2_s* bcore_img_u2_s_pnm_to_sink( const bcore_img_u2_s* o, bcore_sink* snk )
{
    bcore_sink_a_push_fa( snk, "P6\n#<uz_t> #<uz_t>\n255\n", o->cols, o->rows );
    for( sz_t i = 0; i < o->rows; i++ )
    {
        for( sz_t j = 0; j < o->cols; j++ )
        {
            u0_t rgb[ 3 ];
            bcore_img_u2_s_get_rgb( o, i, j, &rgb[ 0 ], &rgb[ 1 ], &rgb[ 2 ] );
            bcore_sink_a_push_data( snk, rgb, 3 );
        }
    }
    return o;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rdi), %rcx
movq 0x18(%rdi), %rdx
leaq 0x24c4e(%rip), %rsi     # 0x159ec6
movq %r14, %rdi
xorl %eax, %eax
callq 0x109273
cmpq $0x0, 0x10(%rbx)
je 0x1353fa
leaq 0x7481c(%rip), %r15     # 0x1a9ab0
movq $0x0, 0x8(%rsp)
xorl %eax, %eax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x18(%rbx)
je 0x1353e2
xorl %ebp, %ebp
movq 0x8(%rbx), %rdi
movabsq $-0x59225ce9298deaed, %rax # imm = 0xA6DDA316D6721513
cmpq %rax, %rdi
jne 0x1352e9
movq 0x20(%rbx), %rax
imulq 0x8(%rsp), %rax
addq 0x28(%rbx), %rax
movl (%rax,%rbp,4), %eax
movl %eax, %ecx
rolw $0x8, %cx
movw %cx, 0x6(%rsp)
shrl $0x10, %eax
movb %al, 0x5(%rsp)
jmp 0x135320
callq 0xe0cbc
testq %rax, %rax
leaq 0x1e3f7(%rip), %rcx     # 0x1536ef
cmoveq %rcx, %rax
leaq 0x24bf5(%rip), %rdi     # 0x159ef8
leaq 0x24c08(%rip), %rsi     # 0x159f12
movl $0x4d, %edx
leaq 0x24c0a(%rip), %rcx     # 0x159f20
movq %rax, %r8
xorl %eax, %eax
callq 0xc825d
movq (%r14), %r13
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x135379
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x135379
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x135379
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x1353dd
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x1353a5
movabsq $0x5ea8cabb93ff3b7e, %rdi # imm = 0x5EA8CABB93FF3B7E
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x10(%r12)
jne 0x1353bc
movq %r12, %rdi
leaq 0xff07(%rip), %rsi      # 0x1452be
callq 0xf592c
movl $0x3, %edx
movq %r14, %rdi
leaq 0x5(%rsp), %rsi
callq *0x10(%r12)
incq %rbp
cmpq 0x18(%rbx), %rbp
jb 0x1352b1
jmp 0x1353e2
xorl %r12d, %r12d
jmp 0x13537d
movq 0x10(%rsp), %rax
incq %rax
addq $0x4, 0x8(%rsp)
cmpq 0x10(%rbx), %rax
jb 0x13529f
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_img.c
// Function: bcore_img_u2_s_pnm_to_file
const bcore_img_u2_s* bcore_img_u2_s_pnm_to_file( const bcore_img_u2_s* o, sc_t file )
{
    bcore_sink* snk = ( bcore_sink* )bcore_sink_open_file( file );
    bcore_img_u2_s_pnm_to_sink( o, snk );
    bcore_inst_a_discard( snk );
    return o;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq %rsi, %rdi
callq 0xeb356
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x135255
testq %r14, %r14
je 0x1354d4
movq (%r14), %r15
leaq 0x74028(%rip), %rax     # 0x1a9468
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r15, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x135496
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x135496
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x135496
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x1354e3
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x1354c6
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r15, %rsi
callq 0xf3f85
movq %rax, %r12
leaq 0x73fad(%rip), %rdi     # 0x1a9468
movq %r15, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
movq %r14, %rsi
callq *0xb8(%r12)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
xorl %r12d, %r12d
jmp 0x13549a