LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_function_manager.c
// Function: bcore_function_size
sz_t bcore_function_size()
{
    sz_t count = 0;
    bcore_mutex_s_lock( &hmap_s_g->mutex );
    count = bcore_hmap_tpfp_s_keys( hmap_s_g->map );
    bcore_mutex_s_unlock( &hmap_s_g->mutex );
    return count;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq $0x0, -0x8(%rbp)
movq 0x107989(%rip), %rdi    # 0x1b2320
addq $0x8, %rdi
callq 0x10fc20
movq 0x107979(%rip), %rax    # 0x1b2320
movq (%rax), %rdi
callq 0xaecd0
movq %rax, -0x8(%rbp)
movq 0x107966(%rip), %rdi    # 0x1b2320
addq $0x8, %rdi
callq 0x10fc70
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_function_manager.c
// Function: bcore_function_manager_signal_handler
vd_t bcore_function_manager_signal_handler( const bcore_signal_s* o )
{
    switch( bcore_signal_s_handle_type( o, typeof( "bcore_function_manager" ) ) )
    {
        case TYPEOF_init0:
        {
            function_manager_open();
        }
        break;

        case TYPEOF_init1:
        {
        }
        break;

        case TYPEOF_down0:
        {
            s2_t verbosity = o->object ? *( s2_t* )o->object : 0;
            if( verbosity > 0 )
            {
                uz_t count = bcore_function_size();
                uz_t space = bcore_tbman_total_granted_space();
                function_manager_close();
                space -= bcore_tbman_total_granted_space();
                bcore_msg( "  function manager .... % 7zu (by % 4zu functions    )\n", space, count );
            }
            else
            {
                function_manager_close();
            }
        }
        break;

        case TYPEOF_selftest:
        {
        }
        break;

        default: break;
    }

    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0xa4d45(%rip), %rdi     # 0x14f730
callq 0xaaaf0
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0xc7f40
movq %rax, %rcx
movq %rcx, -0x28(%rbp)
movabsq $-0x69a05554ee793861, %rcx # imm = 0x965FAAAB1186C79F
subq %rcx, %rax
je 0xaaa63
jmp 0xaaa14
movq -0x28(%rbp), %rax
movabsq $0x6a72ce8f8250efc6, %rcx # imm = 0x6A72CE8F8250EFC6
subq %rcx, %rax
je 0xaaa61
jmp 0xaaa29
movq -0x28(%rbp), %rax
movabsq $0x6a72cf8f8250f179, %rcx # imm = 0x6A72CF8F8250F179
subq %rcx, %rax
je 0xaaa5a
jmp 0xaaa3e
movq -0x28(%rbp), %rax
movabsq $0x7ee758bbfced33e3, %rcx # imm = 0x7EE758BBFCED33E3
subq %rcx, %rax
je 0xaaad9
jmp 0xaaadb
callq 0xaac10
jmp 0xaaadd
jmp 0xaaadd
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xaaa7d
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
movl %eax, -0x34(%rbp)
jmp 0xaaa84
xorl %eax, %eax
movl %eax, -0x34(%rbp)
jmp 0xaaa84
movl -0x34(%rbp), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jle 0xaaad2
callq 0xaa980
movq %rax, -0x18(%rbp)
callq 0x109a60
movq %rax, -0x20(%rbp)
callq 0xaaca0
callq 0x109a60
movq %rax, %rcx
movq -0x20(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq 0xa4c7e(%rip), %rdi     # 0x14f747
movb $0x0, %al
callq 0x9c910
jmp 0xaaad7
callq 0xaaca0
jmp 0xaaadd
jmp 0xaaadd
jmp 0xaaadd
xorl %eax, %eax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_function_manager.c
// Function: hmap_s_down
static void hmap_s_down( hmap_s* o )
{
    bcore_mutex_s_lock( &o->mutex );
    bcore_hmap_tpfp_s_discard( o->map );
    o->map = NULL;
    bcore_mutex_s_unlock( &o->mutex );
    bcore_mutex_s_down( &o->mutex );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fc20
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0xae420
movq -0x8(%rbp), %rax
movq $0x0, (%rax)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fc70
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x10fa50
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_u3vd_s_init
void bcore_hmap_u3vd_s_init( bcore_hmap_u3vd_s* o )
{
    bcore_memzero( o, sizeof( *o ) );
    o->_ = TYPEOF_bcore_hmap_u3vd_s;
    o->h1         = hash_u3u3_1;
    o->h2         = hash_u3u3_2;
    o->h3         = NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x40, %esi
callq 0x9d4f0
movq -0x8(%rbp), %rax
movabsq $0x7d47fd5b47c44656, %rcx # imm = 0x7D47FD5B47C44656
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
leaq 0x2a(%rip), %rcx        # 0xab0b0
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
leaq 0xcb(%rip), %rcx        # 0xab160
movq %rcx, 0x30(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x38(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hash_u3u3_1
static u3_t hash_u3u3_1( u3_t key )
{
    u3_t h = ( 0x9036a4254b378c1full ^ ( ( key       ) & 0x0FFFFull ) ) * 0x1000000109f;
         h = ( h                     ^ ( ( key >> 16 ) & 0x0FFFFull ) ) * 0x1000000111f;
         h = ( h                     ^ ( ( key >> 32 ) & 0x0FFFFull ) ) * 0x10000001359;
         h = ( h                     ^ ( ( key >> 48 ) & 0x0FFFFull ) ) * 0x100000013e3;
    return h;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
andq $0xffff, %rax           # imm = 0xFFFF
movabsq $-0x6fc95bdab4c873e1, %rcx # imm = 0x9036A4254B378C1F
xorq %rcx, %rax
movabsq $0x1000000109f, %rcx    # imm = 0x1000000109F
imulq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
shrq $0x10, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
xorq %rcx, %rax
movabsq $0x1000000111f, %rcx    # imm = 0x1000000111F
imulq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
shrq $0x20, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
xorq %rcx, %rax
movabsq $0x10000001359, %rcx    # imm = 0x10000001359
imulq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
shrq $0x30, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
xorq %rcx, %rax
movabsq $0x100000013e3, %rcx    # imm = 0x100000013E3
imulq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hash_u3u3_2
static u3_t hash_u3u3_2( u3_t key )
{
    u3_t h = ( 0x37651f84128a9b31ull ^ ( ( key       ) & 0x0FFFFull ) ) * 0x1000001000011;
         h = ( h                     ^ ( ( key >> 16 ) & 0x0FFFFull ) ) * 0x10000010000cf;
         h = ( h                     ^ ( ( key >> 32 ) & 0x0FFFFull ) ) * 0x10000010001dd;
         h = ( h                     ^ ( ( key >> 48 ) & 0x0FFFFull ) ) * 0x1000001000371;
    return h;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
andq $0xffff, %rax           # imm = 0xFFFF
movabsq $0x37651f84128a9b31, %rcx # imm = 0x37651F84128A9B31
xorq %rcx, %rax
movabsq $0x1000001000011, %rcx  # imm = 0x1000001000011
imulq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
shrq $0x10, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
xorq %rcx, %rax
movabsq $0x10000010000cf, %rcx  # imm = 0x10000010000CF
imulq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
shrq $0x20, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
xorq %rcx, %rax
movabsq $0x10000010001dd, %rcx  # imm = 0x10000010001DD
imulq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
shrq $0x30, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
xorq %rcx, %rax
movabsq $0x1000001000371, %rcx  # imm = 0x1000001000371
imulq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_u3vd_s_copy
void bcore_hmap_u3vd_s_copy( bcore_hmap_u3vd_s* o, const bcore_hmap_u3vd_s* src )
{
    for( uz_t i = 0; i < o->size; i++ ) bcore_hnode_u3vd_s_down( &o->data[ i ] );
    if( src->size > o->space )
    {
        o->data = bcore_un_alloc( sizeof( bcore_hnode_u3vd_s ), o->data, o->space,  0, &o->space );
        o->data = bcore_un_alloc( sizeof( bcore_hnode_u3vd_s ), o->data, 0, src->size, &o->space );
    }
    o->size = src->size;
    for( uz_t i = 0; i < o->size; i++ )
    {
        bcore_hnode_u3vd_s_init( &o->data[ i ] );
        bcore_hnode_u3vd_s_copy( &o->data[ i ], &src->data[ i ] );
    }
    o->depth_limit = src->depth_limit;
    o->h1          = src->h1;
    o->h2          = src->h2;
    o->h3          = src->h3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xab309
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
imulq $0x18, -0x18(%rbp), %rax
addq %rax, %rdi
callq 0xab280
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xab2d8
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jbe 0xab385
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x8(%rbp), %r8
addq $0x8, %r8
addq $0x10, %r8
movl $0x18, %edi
xorl %eax, %eax
movl %eax, %ecx
callq 0x9d370
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x8(%rbp), %r8
addq $0x8, %r8
addq $0x10, %r8
movl $0x18, %edi
xorl %eax, %eax
movl %eax, %edx
callq 0x9d370
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xab3f3
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
imulq $0x18, -0x20(%rbp), %rax
addq %rax, %rdi
callq 0xab440
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
imulq $0x18, -0x20(%rbp), %rax
addq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
imulq $0x18, -0x20(%rbp), %rax
addq %rax, %rsi
callq 0xab460
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xab39d
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x38(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hnode_u3vd_s_copy
static void bcore_hnode_u3vd_s_copy( bcore_hnode_u3vd_s* o, const bcore_hnode_u3vd_s* src )
{
    if( o->flag_holds && o->dp )
    {
        bcore_inst_a_discard( o->dp );
        o->dp = 0;
    }

    bcore_memcpy( o, src, sizeof( *o ) );

    if( src->flag_holds && src->dp )
    {
        o->dp = bcore_inst_a_clone( src->dp );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x9(%rax)
je 0xab49e
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xab49e
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xac320
movq -0x8(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x18, %edx
callq 0x9d5e0
movq -0x10(%rbp), %rax
testb $0x1, 0x9(%rax)
je 0xab4dd
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xab4dd
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xb2450
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_u3vd_s_set_hash_function
void bcore_hmap_u3vd_s_set_hash_function( bcore_hmap_u3vd_s* o, uz_t index, bcore_hash_u3u3 hf )
{
    if( index > 2 ) ERR( "index (%zu) out of range", index );
    switch( index )
    {
        case 0: o->h1 = hf; break;
        case 1: o->h2 = hf; break;
        case 2: o->h3 = hf; break;
        default: break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x2, -0x10(%rbp)
jbe 0xab5e0
movq -0x10(%rbp), %r8
leaq 0xa41b9(%rip), %rdi     # 0x14f77f
leaq 0xa41d6(%rip), %rsi     # 0x14f7a3
movl $0x15d, %edx            # imm = 0x15D
leaq 0xa41d7(%rip), %rcx     # 0x14f7b0
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
testq %rax, %rax
je 0xab607
jmp 0xab5ef
movq -0x20(%rbp), %rax
subq $0x1, %rax
je 0xab615
jmp 0xab5fb
movq -0x20(%rbp), %rax
subq $0x2, %rax
je 0xab623
jmp 0xab631
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
jmp 0xab633
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x30(%rax)
jmp 0xab633
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x38(%rax)
jmp 0xab633
jmp 0xab633
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hnode_u3vd_s_set_val
static void bcore_hnode_u3vd_s_set_val( bcore_hnode_u3vd_s* o, vd_t val, bool hold )
{
    if( o->flag_holds )
    {
        if( o->dp ) bcore_inst_a_discard( o->dp );
        o->flag_holds = 0;
    }
    o->dp = val;
    o->flag_holds = hold;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x9(%rax)
je 0xabb11
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xabb09
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xac320
movq -0x8(%rbp), %rax
movb $0x0, 0x9(%rax)
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movb -0x11(%rbp), %cl
movq -0x8(%rbp), %rax
andb $0x1, %cl
movb %cl, 0x9(%rax)
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hnode_u3vd_s_set_func
static void bcore_hnode_u3vd_s_set_func( bcore_hnode_u3vd_s* o, fp_t func )
{
    if( o->flag_holds )
    {
        if( o->dp ) bcore_inst_a_discard( o->dp );
        o->flag_holds = 0;
    }
    o->fp = func;
    o->flag_holds = false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x9(%rax)
je 0xac11a
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xac112
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xac320
movq -0x8(%rbp), %rax
movb $0x0, 0x9(%rax)
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x9(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_u3vd_s_remove_h
vd_t bcore_hmap_u3vd_s_remove_h( bcore_hmap_u3vd_s* o, u3_t key )
{
    if( !key ) return NULL;

    uz_t idx = u3vd_find( o, key );
    if( idx < o->size )
    {
        bcore_hnode_u3vd_s* node = &o->data[ idx ];
        vd_t ret = node->dp;
        node->key = 0;
        node->dp  = 0;
        node->flag_holds = 0;
        return ret;
    }
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xac161
movq $0x0, -0x8(%rbp)
jmp 0xac1d1
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xab6c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xac1c9
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
imulq $0x18, -0x20(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, (%rax)
movq -0x28(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x28(%rbp), %rax
movb $0x0, 0x9(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xac1d1
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_u3vd_s_removef_h
fp_t bcore_hmap_u3vd_s_removef_h( bcore_hmap_u3vd_s* o, u3_t key )
{
    if( !key ) return NULL;

    uz_t idx = u3vd_find( o, key );
    if( idx < o->size )
    {
        bcore_hnode_u3vd_s* node = &o->data[ idx ];
        fp_t ret = node->fp;
        node->key = 0;
        node->dp  = 0;
        node->flag_holds = 0;
        return ret;
    }
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xac201
movq $0x0, -0x8(%rbp)
jmp 0xac271
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xab6c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xac269
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
imulq $0x18, -0x20(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, (%rax)
movq -0x28(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x28(%rbp), %rax
movb $0x0, 0x9(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xac271
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_u3vd_s_remove_d
void bcore_hmap_u3vd_s_remove_d( bcore_hmap_u3vd_s* o, u3_t key )
{
    if( !key ) return;
    uz_t idx = u3vd_find( o, key );
    if( idx < o->size )
    {
        bcore_hnode_u3vd_s* node = &o->data[ idx ];
        if( node->flag_holds && node->dp ) bcore_inst_a_discard( node->dp );
        node->key = 0;
        node->dp = 0;
        node->flag_holds = 0;
    }
    return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xac299
jmp 0xac30f
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xab6c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xac30d
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
imulq $0x18, -0x18(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
testb $0x1, 0x9(%rax)
je 0xac2ee
movq -0x20(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xac2ee
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xac320
movq -0x20(%rbp), %rax
movq $0x0, (%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x20(%rbp), %rax
movb $0x0, 0x9(%rax)
jmp 0xac30f
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_u3vd_s_detach_h
vd_t bcore_hmap_u3vd_s_detach_h( bcore_hmap_u3vd_s* o, u3_t key )
{
    if( !key ) return NULL;

    uz_t idx = u3vd_find( o, key );
    if( idx < o->size )
    {
        bcore_hnode_u3vd_s* node = &o->data[ idx ];
        vd_t ret = node->dp;
        node->flag_holds = 0;
        return ret;
    }
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xac381
movq $0x0, -0x8(%rbp)
jmp 0xac3da
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xab6c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xac3d2
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
imulq $0x18, -0x20(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movb $0x0, 0x9(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xac3da
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: u3vd_set_size
static void u3vd_set_size( bcore_hmap_u3vd_s* o, uz_t size )
{
    for( uz_t i = 0; i < o->size; i++ ) bcore_hnode_u3vd_s_clear( &o->data[ i ] );

    if( ( size & ( size - 1 ) ) != 0 ) ERR( "size %zu must be a power of two", size );
    if( size > o->space )
    {
        o->data = bcore_un_alloc( sizeof( bcore_hnode_u3vd_s ), o->data, o->space, 0, &o->space );
        o->data = bcore_un_alloc( sizeof( bcore_hnode_u3vd_s ), o->data, 0, size,  &o->space );
    }
    o->size = size;
    bcore_memzero( o->data, sizeof( bcore_hnode_u3vd_s ) * o->size );

    // we set depth_limit to log2( size ) + 1;
    o->depth_limit = 1;
    while( size >> o->depth_limit ) o->depth_limit++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0xac4a9
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
imulq $0x18, -0x18(%rbp), %rax
addq %rax, %rdi
callq 0xb8240
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xac478
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
subq $0x1, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
je 0xac4e3
movq -0x10(%rbp), %r8
leaq 0xa34b5(%rip), %rdi     # 0x14f97e
leaq 0xa32d3(%rip), %rsi     # 0x14f7a3
movl $0xd3, %edx
leaq 0xa34b0(%rip), %rcx     # 0x14f98c
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jbe 0xac557
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x8(%rbp), %r8
addq $0x8, %r8
addq $0x10, %r8
movl $0x18, %edi
xorl %eax, %eax
movl %eax, %ecx
callq 0x9d370
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %r8
addq $0x8, %r8
addq $0x10, %r8
movl $0x18, %edi
xorl %eax, %eax
movl %eax, %edx
callq 0x9d370
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
imulq $0x18, 0x10(%rax), %rsi
callq 0x9d4f0
movq -0x8(%rbp), %rax
movq $0x1, 0x20(%rax)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
shrq %cl, %rax
cmpq $0x0, %rax
je 0xac5ac
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x20(%rax)
jmp 0xac585
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_u3vd_s_status
static st_s* hmap_u3vd_s_status( bcore_hmap_u3vd_s* o )
{
    st_s* string = st_s_create();
    uz_t keys = bcore_hmap_u3vd_s_keys( o );
    st_s_pushf( string, "keys ........... %zu\n", keys );
    st_s_pushf( string, "nodes .......... %lu\n", o->size );
    st_s_pushf( string, "keys/nodes ..... %5.4f\n", o->size > 0 ? ( f3_t )( keys ) / o->size : 0 );
    return string;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movb $0x0, %al
callq 0xff2e0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xac5c0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq 0xa2fb9(%rip), %rsi     # 0x14f9ac
movb $0x0, %al
callq 0x100120
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0xa2fb5(%rip), %rsi     # 0x14f9c2
movb $0x0, %al
callq 0x100120
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jbe 0xaca75
movq -0x18(%rbp), %xmm0
movaps 0x924cd(%rip), %xmm3    # 0x13ef00
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x924d1(%rip), %xmm2    # 0x13ef10
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x28(%rbp)
jmp 0xaca7f
xorps %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
jmp 0xaca7f
movq -0x20(%rbp), %rdi
movsd -0x28(%rbp), %xmm0
leaq 0xa2f49(%rip), %rsi     # 0x14f9d8
movb $0x1, %al
callq 0x100120
movq -0x10(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpuz_s_copy
void bcore_hmap_tpuz_s_copy( bcore_hmap_tpuz_s* o, const bcore_hmap_tpuz_s* src )
{
    o->nodes = bcore_u_alloc( sizeof( bcore_hnode_tpuz_s ), o->nodes, 0, NULL );
    o->flags = bcore_u_alloc( sizeof( bl_t ),               o->flags, 0, NULL );
    o->size  = 0;

    o->nodes = bcore_u_memcpy( sizeof( bcore_hnode_tpuz_s ), o->nodes, src->nodes, src->size );
    o->size  = src->size;

    o->depth_limit = src->depth_limit;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movl $0x10, %edi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x9d330
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x9d330
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movl $0x10, %edi
callq 0x9d630
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpuz_s_fget
uz_t* bcore_hmap_tpuz_s_fget( bcore_hmap_tpuz_s* o, tp_t key, uz_t init_val )
{
    if( !key ) ERR( "key is 0" );
    uz_t idx = tpuz_find( o, key );
    if( idx < o->size )
    {
        return &o->nodes[ idx ].val;
    }
    else
    {
        return bcore_hmap_tpuz_s_set( o, key, init_val );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xad23c
leaq 0xa25ee(%rip), %rdi     # 0x14f810
leaq 0xa257a(%rip), %rsi     # 0x14f7a3
movl $0x398, %edx            # imm = 0x398
leaq 0xa25f2(%rip), %rcx     # 0x14f827
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xad140
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xad278
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x8(%rbp)
jmp 0xad28d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xad2a0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpuz_s_remove
uz_t bcore_hmap_tpuz_s_remove( bcore_hmap_tpuz_s* o, tp_t key )
{
    if( !key ) return 0;
    uz_t idx = tpuz_find( o, key );
    if( idx < o->size )
    {
        uz_t val = o->nodes[ idx ].val;
        o->nodes[ idx ].key = 0;
        o->nodes[ idx ].val = 0;
        return val;
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xad514
movq $0x0, -0x8(%rbp)
jmp 0xad595
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xad140
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xad58d
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xad595
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpsz_s_fget
sz_t* bcore_hmap_tpsz_s_fget( bcore_hmap_tpsz_s* o, tp_t key, sz_t init_val )
{
    if( !key ) ERR( "key is 0" );
    uz_t idx = tpsz_find( o, key );
    if( idx < o->size )
    {
        return &o->nodes[ idx ].val;
    }
    else
    {
        return bcore_hmap_tpsz_s_set( o, key, init_val );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xadd7c
leaq 0xa1ae4(%rip), %rdi     # 0x14f846
leaq 0xa1a3a(%rip), %rsi     # 0x14f7a3
movl $0x550, %edx            # imm = 0x550
leaq 0xa1ab2(%rip), %rcx     # 0x14f827
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xadc80
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xaddb8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x8(%rbp)
jmp 0xaddcd
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xadde0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpsz_s_remove
sz_t bcore_hmap_tpsz_s_remove( bcore_hmap_tpsz_s* o, tp_t key )
{
    if( !key ) return 0;
    uz_t idx = tpsz_find( o, key );
    if( idx < o->size )
    {
        sz_t val = o->nodes[ idx ].val;
        o->nodes[ idx ].key = 0;
        o->nodes[ idx ].val = 0;
        return val;
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xae054
movq $0x0, -0x8(%rbp)
jmp 0xae0d5
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xadc80
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xae0cd
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xae0d5
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpfp_s_fget
fp_t* bcore_hmap_tpfp_s_fget( bcore_hmap_tpfp_s* o, tp_t key, fp_t init_val )
{
    if( !key ) ERR( "key is 0" );
    uz_t idx = tpfp_find( o, key );
    if( idx < o->size )
    {
        return &o->nodes[ idx ].val;
    }
    else
    {
        return bcore_hmap_tpfp_s_set( o, key, init_val );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xae8bc
leaq 0xa0fd1(%rip), %rdi     # 0x14f873
leaq 0xa0efa(%rip), %rsi     # 0x14f7a3
movl $0x70a, %edx            # imm = 0x70A
leaq 0xa0f72(%rip), %rcx     # 0x14f827
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xae7c0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xae8f8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x8(%rbp)
jmp 0xae90d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xae920
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tpfp_s_remove
fp_t bcore_hmap_tpfp_s_remove( bcore_hmap_tpfp_s* o, tp_t key )
{
    if( !key ) return 0;
    uz_t idx = tpfp_find( o, key );
    if( idx < o->size )
    {
        fp_t val = o->nodes[ idx ].val;
        o->nodes[ idx ].key = 0;
        o->nodes[ idx ].val = NULL;
        return val;
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xaeb94
movq $0x0, -0x8(%rbp)
jmp 0xaec15
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xae7c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xaec0d
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xaec15
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tptp_s_copy
void bcore_hmap_tptp_s_copy( bcore_hmap_tptp_s* o, const bcore_hmap_tptp_s* src )
{
    o->nodes = bcore_alloc( o->nodes, 0 );
    o->flags = bcore_alloc( o->flags, 0 );
    o->size  = 0;
    o->nodes = bcore_u_memcpy( sizeof( bcore_hnode_tptp_s ), o->nodes, src->nodes, src->size );
    o->size  = src->size;
    o->depth_limit = src->depth_limit;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9d210
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9d210
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movl $0x10, %edi
callq 0x9d630
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: bcore_hmap_tptp_s_fget
tp_t* bcore_hmap_tptp_s_fget( bcore_hmap_tptp_s* o, tp_t key, tp_t init_val )
{
    if( !key ) ERR( "key is 0" );
    uz_t idx = tptp_find( o, key );
    if( idx < o->size )
    {
        return &o->nodes[ idx ].val;
    }
    else
    {
        return bcore_hmap_tptp_s_set( o, key, init_val );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xaf3dc
leaq 0xa04de(%rip), %rdi     # 0x14f8a0
leaq 0xa03da(%rip), %rsi     # 0x14f7a3
movl $0x8bb, %edx            # imm = 0x8BB
leaq 0xa0452(%rip), %rcx     # 0x14f827
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xaf2e0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xaf418
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x8(%rbp)
jmp 0xaf42d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xaf440
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xaf6b4
movq $0x0, -0x8(%rbp)
jmp 0xaf735
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xaf2e0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xaf72d
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xaf735
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xb0129
jmp 0xb017d
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xaffd0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb017d
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jbe 0xb09fd
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0xb09fb
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0xb09eb
cmpq $0x0, -0x10(%rbp)
jne 0xb09cb
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xb0a50
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0xb0ac0
jmp 0xb09ed
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xb098b
jmp 0xb09fd
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9d210
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9d210
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x20(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xb10ea
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xb0a50
movq %rax, -0x20(%rbp)
jmp 0xb10f2
xorl %eax, %eax
movq %rax, -0x20(%rbp)
jmp 0xb10f2
movq -0x20(%rbp), %rax
movq %rax, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0xb115a
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0xb114a
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0xb0ac0
jmp 0xb114c
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xb1102
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9d210
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9d210
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x20(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xb132c
leaq 0x9e5d1(%rip), %rdi     # 0x14f8e3
leaq 0x9e48a(%rip), %rsi     # 0x14f7a3
movl $0xc3e, %edx            # imm = 0xC3E
leaq 0x9e502(%rip), %rcx     # 0x14f827
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xb1358
leaq 0x9e5a5(%rip), %rdi     # 0x14f8e3
leaq 0x9e45e(%rip), %rsi     # 0x14f7a3
movl $0xc3f, %edx            # imm = 0xC3F
leaq 0x9e5ab(%rip), %rcx     # 0x14f8fc
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xb1230
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0xb13ac
cmpq $0x0, -0x20(%rbp)
je 0xb138f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0xb13d0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x28(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x8(%rbp)
jmp 0xb13c1
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xb1420
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xb178c
jmp 0xb181e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xb1230
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0xb181e
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0xb17e9
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0xb13d0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0xb1a71
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb1a6f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0xb1a5c
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0xb1a42
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
cmpq -0x28(%rbp), %rax
je 0xb1a4f
movq -0x28(%rbp), %rdi
callq 0xb0a50
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xb0ac0
jmp 0xb1a5e
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xb19db
jmp 0xb1a71
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9d210
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9d210
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x18(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xb24ac
jmp 0xb2536
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xb20a0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb2536
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0xb2501
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
callq 0xac320
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)