LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tptp_s_set
tp_t* bcore_hmap_tptp_s_set( bcore_hmap_tptp_s* o, tp_t key, tp_t val )
{
    if( !key ) ERR( "key is zero" );

    uz_t idx = tptp_find( o, key );
    if( idx < o->size )
    {
        o->nodes[ idx ].val = val;
        return &o->nodes[ idx ].val;
    }

    idx = tptp_set( o, ( bcore_hnode_tptp_s ){ .key = key, .val = val }, 1 );
    if( idx < o->size ) return &o->nodes[ idx ].val;

    // rehash
    {
        o->flags = bcore_u_alloc( sizeof( bl_t ), o->flags, 0, NULL );
        bcore_hnode_tptp_s* buf_nodes = o->nodes;
        uz_t  buf_size = o->size;
        o->depth_limit = ( o->size > 0 ) ? o->depth_limit + 1 : 4;
        o->size        = ( o->size > 0 ) ? o->size * 2        : 8;
        o->nodes = bcore_u_memzero( sizeof( bcore_hnode_tptp_s ), NULL, o->size );
        for( uz_t i = 0; i < buf_size; i++ )
        {
            if( buf_nodes[ i ].key ) bcore_hmap_tptp_s_set( o, buf_nodes[ i ].key, buf_nodes[ i ].val );
        }
        bcore_alloc( buf_nodes, 0 );
    }

    return bcore_hmap_tptp_s_set( o, key, val );
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
testq %r15, %r15
jne 0xd40d4
leaq 0x7c518(%rip), %rdi     # 0x1505d2
leaq 0x7c3fd(%rip), %rsi     # 0x1504be
movl $0x8cb, %edx            # imm = 0x8CB
leaq 0x7c42d(%rip), %rcx     # 0x1504fa
xorl %eax, %eax
callq 0xc80f6
movq %r14, %rdi
movq %r15, %rsi
callq 0xd3f3d
cmpq 0x18(%r14), %rax
jb 0xd419a
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xd3cf6
cmpq 0x18(%r14), %rax
jb 0xd41ae
movq 0x10(%r14), %rsi
movl $0x1, %edi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xc8339
movq %rax, 0x10(%r14)
movq 0x18(%r14), %rbp
testq %rbp, %rbp
je 0xd412e
movq 0x20(%r14), %rax
incq %rax
jmp 0xd4133
movl $0x4, %eax
movq 0x8(%r14), %r12
leaq (,%rbp,2), %rdx
testq %rbp, %rbp
movq %rax, 0x20(%r14)
movl $0x8, %eax
cmoveq %rax, %rdx
movq %rdx, 0x18(%r14)
movl $0x10, %edi
xorl %esi, %esi
callq 0xc8389
movq %rax, 0x8(%r14)
testq %rbp, %rbp
je 0xd418b
leaq 0x8(%r12), %r13
movq -0x8(%r13), %rsi
testq %rsi, %rsi
je 0xd4182
movq (%r13), %rdx
movq %r14, %rdi
callq 0xd409a
addq $0x10, %r13
decq %rbp
jne 0xd416d
movq %r12, %rdi
xorl %esi, %esi
callq 0xc8315
jmp 0xd40ae
movq 0x8(%r14), %rcx
shlq $0x4, %rax
addq %rcx, %rax
addq $0x8, %rax
movq %rbx, (%rax)
jmp 0xd41bd
movq 0x8(%r14), %rcx
shlq $0x4, %rax
addq %rcx, %rax
addq $0x8, %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_hmap.c
// Function: bcore_hmap_tptp_s_remove
tp_t bcore_hmap_tptp_s_remove( bcore_hmap_tptp_s* o, tp_t key )
{
    if( !key ) return 0;
    uz_t idx = tptp_find( o, key );
    if( idx < o->size )
    {
        tp_t val = o->nodes[ idx ].val;
        o->nodes[ idx ].key = 0;
        o->nodes[ idx ].val = 0;
        return val;
    }
    return 0;
}

// Assembly:
testq %rsi, %rsi
je 0xd41f9
pushq %rbx
movq %rdi, %rbx
callq 0xd3f3d
cmpq 0x18(%rbx), %rax
jae 0xd41fc
movq %rax, %rcx
movq 0x8(%rbx), %rdx
shlq $0x4, %rcx
movq 0x8(%rdx,%rcx), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rdx,%rcx)
jmp 0xd41fe
xorl %eax, %eax
retq
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpvd_s_set
vd_t* bcore_hmap_tpvd_s_set( bcore_hmap_tpvd_s* o, tp_t key, vd_t val )
{
    if( !key ) ERR( "key is zero" );

    uz_t idx = tpvd_find( o, key );
    if( idx < o->size )
    {
        o->nodes[ idx ].val = val;
        return &o->nodes[ idx ].val;
    }

    idx = tpvd_set( o, ( bcore_hnode_tpvd_s ){ .key = key, .val = val }, 1 );
    if( idx < o->size ) return &o->nodes[ idx ].val;

    // rehash
    {
        o->flags = bcore_u_alloc( sizeof( bl_t ), o->flags, 0, NULL );
        bcore_hnode_tpvd_s* buf_nodes = o->nodes;
        uz_t  buf_size = o->size;
        o->depth_limit = ( o->size > 0 ) ? o->depth_limit + 1 : 4;
        o->size        = ( o->size > 0 ) ? o->size * 2        : 8;
        o->nodes = bcore_u_memzero( sizeof( bcore_hnode_tpvd_s ), NULL, o->size );
        for( uz_t i = 0; i < buf_size; i++ )
        {
            if( buf_nodes[ i ].key ) bcore_hmap_tpvd_s_set( o, buf_nodes[ i ].key, buf_nodes[ i ].val );
        }
        bcore_alloc( buf_nodes, 0 ); // rehashing does not destroy any object (only rearranges nodes)
    }

    return bcore_hmap_tpvd_s_set( o, key, val );
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
testq %r15, %r15
jne 0xd461e
leaq 0x7bfe4(%rip), %rdi     # 0x1505e8
leaq 0x7beb3(%rip), %rsi     # 0x1504be
movl $0xa5d, %edx            # imm = 0xA5D
leaq 0x7bee3(%rip), %rcx     # 0x1504fa
xorl %eax, %eax
callq 0xc80f6
movq %r14, %rdi
movq %r15, %rsi
callq 0xd4716
cmpq 0x18(%r14), %rax
jb 0xd46e4
movl $0x1, %ecx
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xd43c9
cmpq 0x18(%r14), %rax
jb 0xd46f8
movq 0x10(%r14), %rsi
movl $0x1, %edi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xc8339
movq %rax, 0x10(%r14)
movq 0x18(%r14), %rbp
testq %rbp, %rbp
je 0xd4678
movq 0x20(%r14), %rax
incq %rax
jmp 0xd467d
movl $0x4, %eax
movq 0x8(%r14), %r12
leaq (,%rbp,2), %rdx
testq %rbp, %rbp
movq %rax, 0x20(%r14)
movl $0x8, %eax
cmoveq %rax, %rdx
movq %rdx, 0x18(%r14)
movl $0x10, %edi
xorl %esi, %esi
callq 0xc8389
movq %rax, 0x8(%r14)
testq %rbp, %rbp
je 0xd46d5
leaq 0x8(%r12), %r13
movq -0x8(%r13), %rsi
testq %rsi, %rsi
je 0xd46cc
movq (%r13), %rdx
movq %r14, %rdi
callq 0xd45e4
addq $0x10, %r13
decq %rbp
jne 0xd46b7
movq %r12, %rdi
xorl %esi, %esi
callq 0xc8315
jmp 0xd45f8
movq 0x8(%r14), %rcx
shlq $0x4, %rax
addq %rcx, %rax
addq $0x8, %rax
movq %rbx, (%rax)
jmp 0xd4707
movq 0x8(%r14), %rcx
shlq $0x4, %rax
addq %rcx, %rax
addq $0x8, %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_hmap.c
// Function: bcore_hmap_tpvd_s_remove
void bcore_hmap_tpvd_s_remove( bcore_hmap_tpvd_s* o, tp_t key )
{
    if( !key ) return;
    uz_t idx = tpvd_find( o, key );
    if( idx < o->size )
    {
        o->nodes[ idx ].key = 0;
        o->nodes[ idx ].val = 0;
    }
}

// Assembly:
pushq %rbx
testq %rsi, %rsi
je 0xd4855
movq %rdi, %rbx
callq 0xd4716
cmpq 0x18(%rbx), %rax
jae 0xd4855
movq 0x8(%rbx), %rcx
shlq $0x4, %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rcx,%rax)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpto_s_down
void bcore_hmap_tpto_s_down( bcore_hmap_tpto_s* o )
{
    if( o->size > 0 )
    {
        const bcore_inst_s* inst_p = NULL;
        for( uz_t i = 0; i < o->size; i++ )
        {
            if( o->nodes[ i ].val )
            {
                if( !inst_p ) inst_p = bcore_inst_s_get_typed( o->type );
                bcore_inst_p_discard( inst_p, o->nodes[ i ].val );
            }
        }
    }
    o->nodes = bcore_alloc( o->nodes, 0 );
    o->flags = bcore_alloc( o->flags, 0 );
    o->size  = 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpq $0x0, 0x20(%rdi)
je 0xd5018
cmpq $0x0, 0x20(%rbx)
je 0xd5018
movl $0x8, %ebp
xorl %r15d, %r15d
leaq 0xd4521(%rip), %r14     # 0x1a9468
xorl %r12d, %r12d
movq 0x10(%rbx), %rax
cmpq $0x0, (%rax,%rbp)
je 0xd5000
testq %r12, %r12
jne 0xd4fe8
movq 0x8(%rbx), %r13
movl (%r14), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r14,%rax,8), %rcx
movq 0x18(%r14,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0xd4fbc
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0xd4fbc
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0xd4fbc
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0xd5013
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0xd4fe8
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
movq %r14, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq 0x10(%rbx), %rax
movq (%rax,%rbp), %rsi
testq %rsi, %rsi
je 0xd5000
movq %r12, %rdi
callq *0xb8(%r12)
incq %r15
addq $0x10, %rbp
cmpq 0x20(%rbx), %r15
jb 0xd4f4a
jmp 0xd5018
xorl %r12d, %r12d
jmp 0xd4fc0
movq 0x10(%rbx), %rdi
xorl %esi, %esi
callq 0xc8315
movq %rax, 0x10(%rbx)
movq 0x18(%rbx), %rdi
xorl %esi, %esi
callq 0xc8315
movq %rax, 0x18(%rbx)
movq $0x0, 0x20(%rbx)
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_hmap.c
// Function: bcore_hmap_tpto_s_clear
void bcore_hmap_tpto_s_clear( bcore_hmap_tpto_s* o )
{
    const bcore_inst_s* inst_p = o->type ? bcore_inst_s_get_typed( o->type ) : NULL;
    for( uz_t i = 0; i < o->size; i++ ) if( o->nodes[ i ].val ) bcore_inst_p_discard( inst_p, o->nodes[ i ].val );
    o->nodes = bcore_alloc( o->nodes, 0 );
    o->flags = bcore_alloc( o->flags, 0 );
    o->size  = 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x8(%rdi), %r14
testq %r14, %r14
je 0xd560d
leaq 0xd3ee7(%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 %r14, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0xd55db
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0xd55db
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0xd55db
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0xd5676
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0xd5610
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r14, %rsi
callq 0xf3f85
movq %rax, %r15
leaq 0xd3e68(%rip), %rdi     # 0x1a9468
movq %r14, %rsi
movq %rax, %rdx
callq 0x12128c
jmp 0xd5610
xorl %r15d, %r15d
cmpq $0x0, 0x20(%rbx)
je 0xd5644
movl $0x8, %r14d
xorl %r12d, %r12d
movq 0x10(%rbx), %rax
movq (%rax,%r14), %rsi
testq %rsi, %rsi
je 0xd5637
movq %r15, %rdi
callq *0xb8(%r15)
incq %r12
addq $0x10, %r14
cmpq 0x20(%rbx), %r12
jb 0xd5620
movq 0x10(%rbx), %rdi
xorl %esi, %esi
callq 0xc8315
movq %rax, 0x10(%rbx)
movq 0x18(%rbx), %rdi
xorl %esi, %esi
callq 0xc8315
movq %rax, 0x18(%rbx)
movq $0x0, 0x20(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
xorl %r15d, %r15d
jmp 0xd55df
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpto_s_fget_d
vd_t* bcore_hmap_tpto_s_fget_d( bcore_hmap_tpto_s* o, tp_t key, vd_t init_val )
{
    if( !key ) ERR( "key is 0" );
    if( !o->type ) ERR( "type is 0" );
    uz_t idx = tpto_find( o, key );
    if( idx < o->size )
    {
        if( init_val ) bcore_inst_t_discard( o->type, init_val );
        return &o->nodes[ idx ].val;
    }
    else
    {
        return bcore_hmap_tpto_s_set_d( o, key, init_val );
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %rbx
testq %rsi, %rsi
jne 0xd57d2
leaq 0x7ae46(%rip), %rdi     # 0x1505fe
leaq 0x7acff(%rip), %rsi     # 0x1504be
leaq 0x7ad7c(%rip), %rcx     # 0x150542
movl $0xc3e, %edx            # imm = 0xC3E
xorl %eax, %eax
callq 0xc80f6
cmpq $0x0, 0x8(%rbx)
jne 0xd57fa
leaq 0x7ae1e(%rip), %rdi     # 0x1505fe
leaq 0x7acd7(%rip), %rsi     # 0x1504be
leaq 0x7ae29(%rip), %rcx     # 0x150617
movl $0xc3f, %edx            # imm = 0xC3F
xorl %eax, %eax
callq 0xc80f6
movq %rbx, %rdi
movq %r12, %rsi
callq 0xd56aa
cmpq 0x20(%rbx), %rax
jae 0xd58d2
movq %rax, %r15
testq %r14, %r14
je 0xd58b9
movq 0x8(%rbx), %r12
leaq 0xd3c42(%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 %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0xd587c
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0xd587c
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0xd587c
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0xd58e9
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0xd58ac
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0xd3bc7(%rip), %rdi     # 0x1a9468
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r14, %rsi
callq *0xb8(%r13)
movq 0x10(%rbx), %rax
shlq $0x4, %r15
addq %r15, %rax
addq $0x8, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0xd58ee
xorl %r13d, %r13d
jmp 0xd5880
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpto_s_remove
void bcore_hmap_tpto_s_remove( bcore_hmap_tpto_s* o, tp_t key )
{
    if( !key ) return;
    uz_t idx = tpto_find( o, key );
    if( idx < o->size )
    {
        if( o->nodes[ idx ].val ) bcore_inst_t_discard( o->type, o->nodes[ idx ].val );
        o->nodes[ idx ].key = 0;
        o->nodes[ idx ].val = 0;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
testq %rsi, %rsi
je 0xd5cbc
movq %rdi, %rbx
callq 0xd56aa
cmpq 0x20(%rbx), %rax
jae 0xd5cbc
movq %rax, %r14
movq 0x10(%rbx), %rax
shlq $0x4, %r14
movq 0x8(%rax,%r14), %r15
testq %r15, %r15
je 0xd5cb0
movq 0x8(%rbx), %r12
leaq 0xd384b(%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 %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0xd5c73
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0xd5c73
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0xd5c73
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0xd5cc6
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0xd5ca3
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0xd37d0(%rip), %rdi     # 0x1a9468
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r15, %rsi
callq *0xb8(%r13)
movq 0x10(%rbx), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%r14)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
xorl %r13d, %r13d
jmp 0xd5c77
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpaw_s_down
void bcore_hmap_tpaw_s_down( bcore_hmap_tpaw_s* o )
{
    if( o->size > 0 )
    {
        const bcore_inst_s* inst_p = NULL;
        for( uz_t i = 0; i < o->size; i++ )
        {
            if( o->nodes[ i ].val )
            {
                vd_t val = o->nodes[ i ].val;
                tp_t type = *(aware_t*)val;
                if( !inst_p || inst_p->header.o_type != type ) inst_p = bcore_inst_s_get_typed( type );
                bcore_inst_p_discard( inst_p, val );
            }
        }
    }
    o->nodes = bcore_alloc( o->nodes, 0 );
    o->flags = bcore_alloc( o->flags, 0 );
    o->size  = 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpq $0x0, 0x18(%rdi)
je 0xd5e48
cmpq $0x0, 0x18(%rbx)
je 0xd5e48
movl $0x8, %r15d
xorl %ebp, %ebp
xorl %r14d, %r14d
movq 0x8(%rbx), %rax
movq (%rax,%r15), %r12
testq %r12, %r12
je 0xd5e31
movq (%r12), %r13
testq %rbp, %rbp
je 0xd5d99
cmpq %r13, 0x8(%rbp)
je 0xd5e25
leaq 0xd36c8(%rip), %rdx     # 0x1a9468
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0xd5df5
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0xd5df5
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0xd5df5
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0xd5e44
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0xd5e25
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r13, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0xd364e(%rip), %rdi     # 0x1a9468
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbp, %rdi
movq %r12, %rsi
callq *0xb8(%rbp)
incq %r14
addq $0x10, %r15
cmpq 0x18(%rbx), %r14
jb 0xd5d75
jmp 0xd5e48
xorl %ebp, %ebp
jmp 0xd5df9
movq 0x8(%rbx), %rdi
xorl %esi, %esi
callq 0xc8315
movq %rax, 0x8(%rbx)
movq 0x10(%rbx), %rdi
xorl %esi, %esi
callq 0xc8315
movq %rax, 0x10(%rbx)
movq $0x0, 0x18(%rbx)
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_hmap.c
// Function: bcore_hmap_tpaw_s_set_c
vd_t* bcore_hmap_tpaw_s_set_c( bcore_hmap_tpaw_s* o, tp_t key, vc_t val )
{
    if( val )
    {
        return bcore_hmap_tpaw_s_set_d( o, key, bcore_inst_a_clone( val ) );
    }
    else
    {
        return bcore_hmap_tpaw_s_set_d( o, key, NULL );
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
testq %rdx, %rdx
je 0xd6775
movq %rdx, %r15
movq (%rdx), %r12
leaq 0xd2d8b(%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 %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0xd6733
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0xd6733
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0xd6733
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0xd678b
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0xd6763
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0xd2d10(%rip), %rdi     # 0x1a9468
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r15, %rsi
callq *0xc0(%r13)
movq %rax, %rdx
jmp 0xd6777
xorl %edx, %edx
movq %r14, %rdi
movq %rbx, %rsi
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0xd64d1
xorl %r13d, %r13d
jmp 0xd6737
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpaw_s_remove
void bcore_hmap_tpaw_s_remove( bcore_hmap_tpaw_s* o, tp_t key )
{
    if( !key ) return;
    uz_t idx = tpaw_find( o, key );
    if( idx < o->size )
    {
        if( o->nodes[ idx ].val ) bcore_inst_a_discard( o->nodes[ idx ].val );
        o->nodes[ idx ].key = 0;
        o->nodes[ idx ].val = 0;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
testq %rsi, %rsi
je 0xd6876
movq %rdi, %rbx
callq 0xd63e1
cmpq 0x18(%rbx), %rax
jae 0xd6876
movq %rax, %r14
movq 0x8(%rbx), %rax
shlq $0x4, %r14
movq 0x8(%rax,%r14), %r15
testq %r15, %r15
je 0xd686a
movq (%r15), %r12
leaq 0xd2c91(%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 %r12, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0xd682d
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0xd682d
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0xd682d
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0xd6880
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0xd685d
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0xd2c16(%rip), %rdi     # 0x1a9468
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r15, %rsi
callq *0xb8(%r13)
movq 0x8(%rbx), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%r14)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
xorl %r13d, %r13d
jmp 0xd6831
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tp_s_fget
uz_t bcore_hmap_tp_s_fget( bcore_hmap_tp_s* o, tp_t key )
{
    if( !key ) ERR( "key is 0" );
    uz_t idx = tp_find( o, key );
    if( idx < o->size )
    {
        return idx;
    }
    else
    {
        return bcore_hmap_tp_s_set( o, key );
    }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
testq %rsi, %rsi
jne 0xd6c86
leaq 0x799f9(%rip), %rdi     # 0x150665
leaq 0x7984b(%rip), %rsi     # 0x1504be
leaq 0x798c8(%rip), %rcx     # 0x150542
movl $0xf77, %edx            # imm = 0xF77
xorl %eax, %eax
callq 0xc80f6
movq %r14, %rdi
movq %rbx, %rsi
callq 0xd6b74
cmpq 0x18(%r14), %rax
jae 0xd6c9f
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0xd6cb1
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tp_s_set
uz_t bcore_hmap_tp_s_set( bcore_hmap_tp_s* o, tp_t key )
{
    if( !key ) ERR( "key is zero" );

    {
        uz_t idx = tp_find( o, key );
        if( idx < o->size ) return idx;
        idx = tp_set( o, key, 1 );
        if( idx < o->size ) return idx;
    }

    // rehash
    {
        tp_t* buf_keys  = o->keys;
        uz_t  buf_size  = o->size;
        o->flags = bcore_u_alloc( sizeof( bl_t ), o->flags, 0, NULL );
        o->depth_limit = ( o->size > 0 ) ? o->depth_limit + 1 : 4;
        o->size        = ( o->size > 0 ) ? o->size * 2        : 8;
        o->keys = bcore_u_memzero( sizeof( tp_t ), NULL, o->size );
        for( uz_t i = 0; i < buf_size; i++ )
        {
            if( buf_keys[ i ] ) bcore_hmap_tp_s_set( o, buf_keys[ i ] );
        }
        bcore_u_alloc( sizeof( tp_t ), buf_keys, 0, NULL );
    }

    return bcore_hmap_tp_s_set( o, key );
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movl $0x8, %r15d
testq %rbx, %rbx
jne 0xd6cee
leaq 0x799a6(%rip), %rdi     # 0x15067a
leaq 0x797e3(%rip), %rsi     # 0x1504be
movl $0xf87, %edx            # imm = 0xF87
leaq 0x79813(%rip), %rcx     # 0x1504fa
xorl %eax, %eax
callq 0xc80f6
movq %r14, %rdi
movq %rbx, %rsi
callq 0xd6b74
cmpq 0x18(%r14), %rax
jae 0xd6d03
xorl %ecx, %ecx
jmp 0xd6d1a
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xd6dc1
cmpq 0x18(%r14), %rax
setae %cl
testb %cl, %cl
je 0xd6db2
movq 0x8(%r14), %rbp
movq 0x10(%r14), %rsi
movq 0x18(%r14), %r12
movl $0x1, %edi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xc8339
movq %rax, 0x10(%r14)
movq 0x18(%r14), %rax
testq %rax, %rax
je 0xd6d52
movq 0x20(%r14), %rcx
incq %rcx
jmp 0xd6d57
movl $0x4, %ecx
leaq (%rax,%rax), %rdx
testq %rax, %rax
movq %rcx, 0x20(%r14)
cmoveq %r15, %rdx
movq %rdx, 0x18(%r14)
movl $0x8, %edi
xorl %esi, %esi
callq 0xc8389
movq %rax, 0x8(%r14)
testq %r12, %r12
je 0xd6d9c
xorl %r13d, %r13d
movq (%rbp,%r13,8), %rsi
testq %rsi, %rsi
je 0xd6d94
movq %r14, %rdi
callq 0xd6cb1
incq %r13
cmpq %r13, %r12
jne 0xd6d82
movl $0x8, %edi
movq %rbp, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xc8339
jmp 0xd6cc8
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_hmap.c
// Function: bcore_hmap_tp_s_remove
uz_t bcore_hmap_tp_s_remove( bcore_hmap_tp_s* o, tp_t key )
{
    if( !key ) return o->size;

    uz_t idx = tp_find( o, key );
    if( idx < o->size )
    {
        o->keys[ idx ] = 0;
    }
    return idx;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
testq %rsi, %rsi
je 0xd6f99
movq %rbx, %rdi
callq 0xd6b74
cmpq 0x18(%rbx), %rax
jae 0xd6f9d
movq 0x8(%rbx), %rcx
movq $0x0, (%rcx,%rax,8)
jmp 0xd6f9d
movq 0x18(%rbx), %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_u3vd_s_create_self
static bcore_self_s* hmap_u3vd_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_u3vd_s = bcore_inst \
            { \
                aware_t _; \
                private bcore_array_dyn_solid_static_s arr; \
                uz_t depth_limit; \
                private fp_t h1; \
                private fp_t h2; \
                private fp_t h3; \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_u3vd_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_u3vd_s_init,    "bcore_fp_init",    "init"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_u3vd_s_down,    "bcore_fp_down",    "down"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_u3vd_s_copy,    "bcore_fp_copy",    "copy"    );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_u3vd_s_create,  "bcore_fp_create",  "create"  );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_u3vd_s_clone,   "bcore_fp_clone",   "clone"   );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_u3vd_s_discard, "bcore_fp_discard", "discard" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x75192(%rip), %rdi     # 0x1506d2
movl $0x40, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0xa20d(%rip), %rsi     # 0xd134c
leaq 0x72495(%rip), %rdx     # 0x14d9f5
leaq 0x72497(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0xa129(%rip), %rsi     # 0xd144d
leaq 0x72486(%rip), %rdx     # 0x14da03
leaq 0x66c46(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0xa031(%rip), %rsi     # 0xd1562
leaq 0x72477(%rip), %rdx     # 0x14da11
leaq 0x6df42(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x9d9c(%rip), %rsi     # 0xd1814
leaq 0x74929(%rip), %rdx     # 0x14fee0
leaq 0x7492b(%rip), %rcx     # 0x14fee9
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x9d57(%rip), %rsi     # 0xd1876
leaq 0x7491c(%rip), %rdx     # 0x14fef0
leaq 0x7491e(%rip), %rcx     # 0x14fef9
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x9d89(%rip), %rsi     # 0xd1861
leaq 0x7490e(%rip), %rdx     # 0x14feff
leaq 0x74910(%rip), %rcx     # 0x14ff08
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tpuz_s_create_self
static bcore_self_s* hmap_tpuz_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tpuz_s = bcore_inst \
            { \
                aware_t _; \
                private bcore_hnode_tpuz_s* nodes; \
                private bl_t* flags; \
                private uz_t size; \
                private uz_t depth_limit; \
                shell { bcore_hnode_tpuz_s []; } data; } \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tpuz_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpuz_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpuz_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpuz_s_copy,    "bcore_fp_copy",  "copy"     );
    bcore_self_s_push_ns_func( self, ( fp_t )tpuz_s_get_data,           "bcore_fp_get",   "get_data" );
    bcore_self_s_push_ns_func( self, ( fp_t )tpuz_s_set_data,           "bcore_fp_set",   "set_data" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x75202(%rip), %rdi     # 0x150825
movl $0x28, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0x8f52(%rip), %rsi     # 0xd26ea
leaq 0x723b2(%rip), %rdx     # 0x14d9f5
leaq 0x723b4(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0x8f52(%rip), %rsi     # 0xd2707
leaq 0x723a3(%rip), %rdx     # 0x14da03
leaq 0x66b63(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x8f35(%rip), %rsi     # 0xd2741
leaq 0x72394(%rip), %rdx     # 0x14da11
leaq 0x6de5f(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x510(%rip), %rsi       # 0xdbba3
leaq 0x734bd(%rip), %rdx     # 0x14eb57
leaq 0x6987d(%rip), %rcx     # 0x144f1e
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x688(%rip), %rsi       # 0xdbd38
leaq 0x73493(%rip), %rdx     # 0x14eb4a
leaq 0x752a3(%rip), %rcx     # 0x150961
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tpsz_s_create_self
static bcore_self_s* hmap_tpsz_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tpsz_s = bcore_inst \
            { \
                aware_t _; \
                private bcore_hnode_tpsz_s* nodes; \
                private bl_t* flags; \
                private uz_t size; \
                private uz_t depth_limit; \
                shell { bcore_hnode_tpsz_s []; } data; } \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tpsz_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpsz_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpsz_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpsz_s_copy,    "bcore_fp_copy",  "copy"     );
    bcore_self_s_push_ns_func( self, ( fp_t )tpsz_s_get_data,           "bcore_fp_get",   "get_data" );
    bcore_self_s_push_ns_func( self, ( fp_t )tpsz_s_set_data,           "bcore_fp_set",   "set_data" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x752d0(%rip), %rdi     # 0x1509b9
movl $0x28, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0x8929(%rip), %rsi     # 0xd2dd9
leaq 0x722ec(%rip), %rdx     # 0x14d9f5
leaq 0x722ee(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0x8929(%rip), %rsi     # 0xd2df6
leaq 0x722dd(%rip), %rdx     # 0x14da03
leaq 0x66a9d(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x890c(%rip), %rsi     # 0xd2e30
leaq 0x722ce(%rip), %rdx     # 0x14da11
leaq 0x6dd99(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x74b(%rip), %rsi       # 0xdbea4
leaq 0x733f7(%rip), %rdx     # 0x14eb57
leaq 0x697b7(%rip), %rcx     # 0x144f1e
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x8c3(%rip), %rsi       # 0xdc039
leaq 0x733cd(%rip), %rdx     # 0x14eb4a
leaq 0x751dd(%rip), %rcx     # 0x150961
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tpfp_s_create_self
static bcore_self_s* hmap_tpfp_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tpfp_s = bcore_inst \
            { \
                aware_t _; \
                private bcore_hnode_tpfp_s* nodes; \
                private bl_t* flags; \
                private uz_t size; \
                private uz_t depth_limit; \
                shell { bcore_hnode_tpfp_s []; } data; } \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tpfp_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpfp_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpfp_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpfp_s_copy,    "bcore_fp_copy",  "copy"     );
    bcore_self_s_push_ns_func( self, ( fp_t )tpfp_s_get_data,           "bcore_fp_get",   "get_data" );
    bcore_self_s_push_ns_func( self, ( fp_t )tpfp_s_set_data,           "bcore_fp_set",   "set_data" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x75395(%rip), %rdi     # 0x150b44
movl $0x28, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0x8300(%rip), %rsi     # 0xd34c8
leaq 0x72226(%rip), %rdx     # 0x14d9f5
leaq 0x72228(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0x8300(%rip), %rsi     # 0xd34e5
leaq 0x72217(%rip), %rdx     # 0x14da03
leaq 0x669d7(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x82e3(%rip), %rsi     # 0xd351f
leaq 0x72208(%rip), %rdx     # 0x14da11
leaq 0x6dcd3(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x986(%rip), %rsi       # 0xdc1a5
leaq 0x73331(%rip), %rdx     # 0x14eb57
leaq 0x696f1(%rip), %rcx     # 0x144f1e
movq %rbx, %rdi
callq 0xcd5ad
leaq 0xafe(%rip), %rsi       # 0xdc33a
leaq 0x73307(%rip), %rdx     # 0x14eb4a
leaq 0x75117(%rip), %rcx     # 0x150961
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tptp_s_create_self
static bcore_self_s* hmap_tptp_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tptp_s = bcore_inst \
            { \
                aware_t _; \
                private bcore_hnode_tptp_s* nodes; \
                private bl_t* flags; \
                private uz_t size; \
                private uz_t depth_limit; \
                shell { bcore_hnode_tptp_s []; } data; } \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tptp_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tptp_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tptp_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tptp_s_copy,    "bcore_fp_copy",  "copy"     );
    bcore_self_s_push_ns_func( self, ( fp_t )tptp_s_get_data,           "bcore_fp_get",   "get_data" );
    bcore_self_s_push_ns_func( self, ( fp_t )tptp_s_set_data,           "bcore_fp_set",   "set_data" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x7545a(%rip), %rdi     # 0x150ccf
movl $0x28, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0x7cd7(%rip), %rsi     # 0xd3bb7
leaq 0x72160(%rip), %rdx     # 0x14d9f5
leaq 0x72162(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0x7cd7(%rip), %rsi     # 0xd3bd4
leaq 0x72151(%rip), %rdx     # 0x14da03
leaq 0x66911(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x7cc8(%rip), %rsi     # 0xd3c00
leaq 0x72142(%rip), %rdx     # 0x14da11
leaq 0x6dc0d(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
leaq 0xbc1(%rip), %rsi       # 0xdc4a6
leaq 0x7326b(%rip), %rdx     # 0x14eb57
leaq 0x6962b(%rip), %rcx     # 0x144f1e
movq %rbx, %rdi
callq 0xcd5ad
leaq 0xd39(%rip), %rsi       # 0xdc63b
leaq 0x73241(%rip), %rdx     # 0x14eb4a
leaq 0x75051(%rip), %rcx     # 0x150961
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tpvd_s_create_self
static bcore_self_s* hmap_tpvd_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tpvd_s = bcore_inst \
            { \
                aware_t _; \
                private vd_t* nodes; \
                private bl_t* flags; \
                private uz_t size; \
                private uz_t depth_limit; \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tpvd_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpvd_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpvd_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpvd_s_copy,    "bcore_fp_copy",  "copy"     );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x75501(%rip), %rdi     # 0x150e26
movl $0x28, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0x76b4(%rip), %rsi     # 0xd428a
leaq 0x720b0(%rip), %rdx     # 0x14d9f5
leaq 0x720b2(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0x76b4(%rip), %rsi     # 0xd42a7
leaq 0x720a1(%rip), %rdx     # 0x14da03
leaq 0x66861(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x76a5(%rip), %rsi     # 0xd42d3
leaq 0x72092(%rip), %rdx     # 0x14da11
leaq 0x6db5d(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tpto_s_create_self
static bcore_self_s* hmap_tpto_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tpto_s = bcore_inst \
            { \
                aware_t _; \
                private tp_t type; \
                private vd_t* nodes; \
                private bl_t* flags; \
                private uz_t size; \
                private uz_t depth_limit; \
                shell { tp_t type; { tp_t key; sr_s obj; } []; } data; } \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tpto_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpto_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpto_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpto_s_copy,    "bcore_fp_copy",  "copy"     );
    bcore_self_s_push_ns_func( self, ( fp_t )tpto_s_get_data,           "bcore_fp_get",   "get_data" );
    bcore_self_s_push_ns_func( self, ( fp_t )tpto_s_set_data,           "bcore_fp_set",   "set_data" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x75580(%rip), %rdi     # 0x150f1b
movl $0x30, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0x6abd(%rip), %rsi     # 0xd4ef7
leaq 0x7203a(%rip), %rdx     # 0x14d9f5
leaq 0x7203c(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0x6abd(%rip), %rsi     # 0xd4f14
leaq 0x7202b(%rip), %rdx     # 0x14da03
leaq 0x667eb(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x69a1(%rip), %rsi     # 0xd504d
leaq 0x7201c(%rip), %rdx     # 0x14da11
leaq 0x6dae7(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
leaq 0xd9c(%rip), %rsi       # 0xdc7a7
leaq 0x73145(%rip), %rdx     # 0x14eb57
leaq 0x69505(%rip), %rcx     # 0x144f1e
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x10f8(%rip), %rsi      # 0xdcb20
leaq 0x7311b(%rip), %rdx     # 0x14eb4a
leaq 0x74f2b(%rip), %rcx     # 0x150961
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tpaw_s_create_self
static bcore_self_s* hmap_tpaw_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tpaw_s = bcore_inst \
            { \
                aware_t _; \
                private vd_t* nodes; \
                private bl_t* flags; \
                private uz_t size; \
                private uz_t depth_limit; \
                shell { { tp_t key; aware => obj; } []; } data; } \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tpaw_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpaw_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpaw_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tpaw_s_copy,    "bcore_fp_copy",  "copy"     );
    bcore_self_s_push_ns_func( self, ( fp_t )tpaw_s_get_data,           "bcore_fp_get",   "get_data" );
    bcore_self_s_push_ns_func( self, ( fp_t )tpaw_s_set_data,           "bcore_fp_set",   "set_data" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x75660(%rip), %rdi     # 0x1510ab
movl $0x28, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0x5d3b(%rip), %rsi     # 0xd5d29
leaq 0x71f8a(%rip), %rdx     # 0x14d9f5
leaq 0x71f8c(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0x5d3b(%rip), %rsi     # 0xd5d46
leaq 0x71f7b(%rip), %rdx     # 0x14da03
leaq 0x6673b(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x5c21(%rip), %rsi     # 0xd5e7d
leaq 0x71f6c(%rip), %rdx     # 0x14da11
leaq 0x6da37(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x1311(%rip), %rsi      # 0xdcdcc
leaq 0x73095(%rip), %rdx     # 0x14eb57
leaq 0x69455(%rip), %rcx     # 0x144f1e
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x149e(%rip), %rsi      # 0xdcf76
leaq 0x7306b(%rip), %rdx     # 0x14eb4a
leaq 0x74e7b(%rip), %rcx     # 0x150961
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tp_s_create_self
static bcore_self_s* hmap_tp_s_create_self( void )
{
    sc_t def = "\
        bcore_hmap_tp_s = bcore_inst \
            { \
                aware_t _; \
                private tp_t * keys; \
                private bl_t * flags; \
                private uz_t size; \
                private uz_t depth_limit; \
                shell { tp_t []; } data; } \
            }";
    bcore_self_s* self = BCORE_SELF_S_BUILD_PARSE_SC( def, bcore_hmap_tp_s );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tp_s_init,    "bcore_fp_init",  "init"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tp_s_down,    "bcore_fp_down",  "down"     );
    bcore_self_s_push_ns_func( self, ( fp_t )bcore_hmap_tp_s_copy,    "bcore_fp_copy",  "copy"     );
    bcore_self_s_push_ns_func( self, ( fp_t )tp_s_get_data,           "bcore_fp_get",   "get_data" );
    bcore_self_s_push_ns_func( self, ( fp_t )tp_s_set_data,           "bcore_fp_set",   "set_data" );
    return self;
}

// Assembly:
pushq %rbx
leaq 0x7570f(%rip), %rdi     # 0x15120a
movl $0x28, %esi
movl $0x8, %edx
callq 0xce5c6
movq %rax, %rbx
leaq -0x5105(%rip), %rsi     # 0xd6a0f
leaq 0x71eda(%rip), %rdx     # 0x14d9f5
leaq 0x71edc(%rip), %rcx     # 0x14d9fe
movq %rax, %rdi
callq 0xcd5ad
leaq -0x5105(%rip), %rsi     # 0xd6a2c
leaq 0x71ecb(%rip), %rdx     # 0x14da03
leaq 0x6668b(%rip), %rcx     # 0x1421ca
movq %rbx, %rdi
callq 0xcd5ad
leaq -0x50e8(%rip), %rsi     # 0xd6a66
leaq 0x71ebc(%rip), %rdx     # 0x14da11
leaq 0x6d987(%rip), %rcx     # 0x1494e3
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x1647(%rip), %rsi      # 0xdd1b2
leaq 0x72fe5(%rip), %rdx     # 0x14eb57
leaq 0x693a5(%rip), %rcx     # 0x144f1e
movq %rbx, %rdi
callq 0xcd5ad
leaq 0x17bf(%rip), %rsi      # 0xdd347
leaq 0x72fbb(%rip), %rdx     # 0x14eb4a
leaq 0x74dcb(%rip), %rcx     # 0x150961
movq %rbx, %rdi
callq 0xcd5ad
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tpuz_s_get_data
static sr_s tpuz_s_get_data( const bcore_hmap_tpuz_s* o )
{
    tp_t t_data = bcore_flect_type_parse_sc( "{ bcore_hnode_tpuz_s []; }" );
    tp_t t_node = typeof( "bcore_hnode_tpuz_s" );
    sr_s data = sr_cp( sr_create( t_data ), TYPEOF_bcore_array_s );
    for( uz_t i = 0; i < o->size; i++ )
    {
        if( o->nodes[ i ].key ) bcore_array_r_push( &data, sr_twc( t_node, &o->nodes[ i ] ) );
    }
    return data;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x74dac(%rip), %rdi     # 0x15096a
callq 0xcf594
movq %rax, %r15
movq %rax, %rdi
callq 0x112326
movq %rax, %r12
testq %r15, %r15
je 0xdbbe3
movq %r15, %rdi
callq 0x1123e1
movq %rax, %rdi
jmp 0xdbbe5
xorl %edi, %edi
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
callq 0xf58f8
movq %r12, (%rbx)
movq %rax, 0x8(%rbx)
movq $0x2, 0x10(%rbx)
cmpq $0x0, 0x18(%r14)
je 0xdbd26
xorl %r15d, %r15d
xorl %r13d, %r13d
movq 0x8(%r14), %r12
cmpq $0x0, (%r12,%r15)
je 0xdbd0e
addq %r15, %r12
movabsq $-0x37eb5c14280b7e4d, %rdi # imm = 0xC814A3EBD7F481B3
callq 0x1123e1
movq %r12, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movq $0x1, 0x30(%rsp)
movq 0x8(%rbx), %r12
movq 0x8(%r12), %rbp
movabsq $-0x5073d588c3beb52e, %rax # imm = 0xAF8C2A773C414AD2
cmpq %rax, %rbp
je 0xdbcf0
leaq 0xcd1b5(%rip), %rdx     # 0x1a8e20
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %rbp, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbp, %rdx
je 0xdbcc0
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbp, %rdx
je 0xdbcc0
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbp, %rdx
je 0xdbcc0
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbp, %rdx
jne 0xdbd21
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0xdbcf0
movabsq $-0x5073d588c3beb52e, %rdi # imm = 0xAF8C2A773C414AD2
movq %rbp, %rsi
callq 0xf3f85
movq %rax, %r12
leaq 0xcd13b(%rip), %rdi     # 0x1a8e20
movq %rbp, %rsi
movq %rax, %rdx
callq 0x12128c
movq (%rbx), %rsi
movq 0x30(%rsp), %rax
movq %rax, 0x10(%rsp)
movups 0x20(%rsp), %xmm0
movups %xmm0, (%rsp)
movq %r12, %rdi
callq 0xf7857
incq %r13
addq $0x10, %r15
cmpq 0x18(%r14), %r13
jb 0xdbc14
jmp 0xdbd26
xorl %r12d, %r12d
jmp 0xdbcc4
movq %rbx, %rax
addq $0x38, %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_hmap.c
// Function: tpuz_s_set_data
static void tpuz_s_set_data( bcore_hmap_tpuz_s* o, sr_s data )
{
    bcore_hmap_tpuz_s_clear( o );
    assert( sr_s_type( &data ) == bcore_flect_type_parse_sc( "{ bcore_hnode_tpuz_s []; }" ) );
    data = sr_cp( data, TYPEOF_bcore_array_s );
    uz_t size = bcore_array_r_get_size( &data );
    const bcore_hnode_tpuz_s* src = bcore_array_r_get_c_data( &data );
    for( uz_t i = 0; i < size; i++ ) bcore_hmap_tpuz_s_set( o, src[ i ].key, src[ i ].val );
    sr_down( data );
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %r14
leaq 0x50(%rsp), %rbx
movabsq $-0x5073d588c3beb52e, %r15 # imm = 0xAF8C2A773C414AD2
movq 0x8(%rdi), %rdi
xorl %esi, %esi
callq 0xc8315
movq %rax, 0x8(%r14)
movq 0x10(%r14), %rdi
xorl %esi, %esi
callq 0xc8315
movq %rax, 0x10(%r14)
movq $0x0, 0x18(%r14)
movq (%rbx), %r12
movq 0x8(%rbx), %rdi
movq 0x10(%rbx), %rbp
movq %r15, %rsi
callq 0xf58f8
movq %rax, %r13
movq %r12, (%rbx)
movq %rax, 0x8(%rbx)
movq %rbp, 0x10(%rbx)
movq 0x8(%rax), %r12
cmpq %r15, %r12
je 0xdbe36
leaq 0xcd06d(%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 0xdbe0d
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0xdbe0d
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0xdbe0d
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0xdbe9c
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0xdbe36
movq %r15, %rdi
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0xccff5(%rip), %rdi     # 0x1a8e20
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq (%rbx), %rsi
movq %r13, %rdi
callq 0xf837b
movq %rax, %r15
movq %rbx, %rdi
callq 0xfae68
testq %r15, %r15
je 0xdbe72
movq %rax, %r12
addq $0x8, %r12
movq -0x8(%r12), %rsi
movq (%r12), %rdx
movq %r14, %rdi
callq 0xd2be9
addq $0x10, %r12
decq %r15
jne 0xdbe58
testb $0x2, 0x10(%rbx)
je 0xdbe8d
movq 0x10(%rbx), %rax
movq %rax, 0x10(%rsp)
movups (%rbx), %xmm0
movups %xmm0, (%rsp)
callq 0x112485
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r13d, %r13d
jmp 0xdbe11