LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xb2ad8
leaq 0x9ce8c(%rip), %rdi     # 0x14f94a
leaq 0x9ccde(%rip), %rsi     # 0x14f7a3
movl $0xf77, %edx            # imm = 0xF77
leaq 0x9cd56(%rip), %rcx     # 0x14f827
movb $0x0, %al
callq 0x9cf40
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xb29e0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb2b01
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xb2b12
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xb2b20
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %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_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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xb2f55
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xb2f90
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xb29e0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb2f88
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x20(%rbp), %rcx
movq $0x0, (%rax,%rcx,8)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %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: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9c641(%rip), %rax     # 0x14f9f0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x40, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x8385(%rip), %rsi     # 0xab050
leaq 0x997e6(%rip), %rdx     # 0x14cbc2
leaq 0x997e8(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x81e3(%rip), %rsi     # 0xab210
leaq 0x997d6(%rip), %rdx     # 0x14cbd0
leaq 0x8b957(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x8151(%rip), %rsi     # 0xab2c0
leaq 0x997c6(%rip), %rdx     # 0x14cbde
leaq 0x9318d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x7f3f(%rip), %rsi     # 0xab4f0
leaq 0x9bd6b(%rip), %rdx     # 0x14f1a1
leaq 0x9bd6d(%rip), %rcx     # 0x14f1aa
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x7efd(%rip), %rsi     # 0xab550
leaq 0x9bd5d(%rip), %rdx     # 0x14f1b1
leaq 0x9bd5f(%rip), %rcx     # 0x14f1ba
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x7f4b(%rip), %rsi     # 0xab520
leaq 0x9bd4e(%rip), %rdx     # 0x14f1c0
leaq 0x9bd50(%rip), %rcx     # 0x14f1c9
callq 0xa5930
movq -0x10(%rbp), %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: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9c674(%rip), %rax     # 0x14fb43
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x6a55(%rip), %rsi     # 0xacaa0
leaq 0x996c6(%rip), %rdx     # 0x14cbc2
leaq 0x996c8(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x6a33(%rip), %rsi     # 0xacae0
leaq 0x996b6(%rip), %rdx     # 0x14cbd0
leaq 0x8b837(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x69e1(%rip), %rsi     # 0xacb50
leaq 0x996a6(%rip), %rdx     # 0x14cbde
leaq 0x9306d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5181(%rip), %rsi      # 0xb86d0
leaq 0x9a841(%rip), %rdx     # 0x14dd97
leaq 0x8e53f(%rip), %rcx     # 0x141a9c
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5273(%rip), %rsi      # 0xb87e0
leaq 0x9a816(%rip), %rdx     # 0x14dd8a
leaq 0x9c704(%rip), %rcx     # 0x14fc7f
callq 0xa5930
movq -0x10(%rbp), %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: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9c71b(%rip), %rax     # 0x14fcea
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x5eb5(%rip), %rsi     # 0xad740
leaq 0x995c6(%rip), %rdx     # 0x14cbc2
leaq 0x995c8(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x5e93(%rip), %rsi     # 0xad780
leaq 0x995b6(%rip), %rdx     # 0x14cbd0
leaq 0x8b737(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x5e41(%rip), %rsi     # 0xad7f0
leaq 0x995a6(%rip), %rdx     # 0x14cbde
leaq 0x92f6d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5551(%rip), %rsi      # 0xb8ba0
leaq 0x9a741(%rip), %rdx     # 0x14dd97
leaq 0x8e43f(%rip), %rcx     # 0x141a9c
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5643(%rip), %rsi      # 0xb8cb0
leaq 0x9a716(%rip), %rdx     # 0x14dd8a
leaq 0x9c604(%rip), %rcx     # 0x14fc7f
callq 0xa5930
movq -0x10(%rbp), %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: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9c7b9(%rip), %rax     # 0x14fe88
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x5475(%rip), %rsi     # 0xae280
leaq 0x994c6(%rip), %rdx     # 0x14cbc2
leaq 0x994c8(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x5453(%rip), %rsi     # 0xae2c0
leaq 0x994b6(%rip), %rdx     # 0x14cbd0
leaq 0x8b637(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x5401(%rip), %rsi     # 0xae330
leaq 0x994a6(%rip), %rdx     # 0x14cbde
leaq 0x92e6d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5661(%rip), %rsi      # 0xb8db0
leaq 0x9a641(%rip), %rdx     # 0x14dd97
leaq 0x8e33f(%rip), %rcx     # 0x141a9c
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5753(%rip), %rsi      # 0xb8ec0
leaq 0x9a616(%rip), %rdx     # 0x14dd8a
leaq 0x9c504(%rip), %rcx     # 0x14fc7f
callq 0xa5930
movq -0x10(%rbp), %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: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9c857(%rip), %rax     # 0x150026
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x4a35(%rip), %rsi     # 0xaedc0
leaq 0x993c6(%rip), %rdx     # 0x14cbc2
leaq 0x993c8(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x4a13(%rip), %rsi     # 0xaee00
leaq 0x993b6(%rip), %rdx     # 0x14cbd0
leaq 0x8b537(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x49d1(%rip), %rsi     # 0xaee60
leaq 0x993a6(%rip), %rdx     # 0x14cbde
leaq 0x92d6d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5771(%rip), %rsi      # 0xb8fc0
leaq 0x9a541(%rip), %rdx     # 0x14dd97
leaq 0x8e23f(%rip), %rcx     # 0x141a9c
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5863(%rip), %rsi      # 0xb90d0
leaq 0x9a516(%rip), %rdx     # 0x14dd8a
leaq 0x9c404(%rip), %rcx     # 0x14fc7f
callq 0xa5930
movq -0x10(%rbp), %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: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9c8f1(%rip), %rax     # 0x150190
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x3fe5(%rip), %rsi     # 0xaf8e0
leaq 0x992f6(%rip), %rdx     # 0x14cbc2
leaq 0x992f8(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x3fc3(%rip), %rsi     # 0xaf920
leaq 0x992e6(%rip), %rdx     # 0x14cbd0
leaq 0x8b467(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x3f81(%rip), %rsi     # 0xaf980
leaq 0x992d6(%rip), %rdx     # 0x14cbde
leaq 0x92c9d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9c956(%rip), %rax     # 0x150285
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x30, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x3035(%rip), %rsi     # 0xb0920
leaq 0x99266(%rip), %rdx     # 0x14cbc2
leaq 0x99268(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x3013(%rip), %rsi     # 0xb0960
leaq 0x99256(%rip), %rdx     # 0x14cbd0
leaq 0x8b3d7(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x2e91(%rip), %rsi     # 0xb0b00
leaq 0x99246(%rip), %rdx     # 0x14cbde
leaq 0x92c0d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5821(%rip), %rsi      # 0xb91d0
leaq 0x9a3e1(%rip), %rdx     # 0x14dd97
leaq 0x8e0df(%rip), %rcx     # 0x141a9c
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x59e3(%rip), %rsi      # 0xb93b0
leaq 0x9a3b6(%rip), %rdx     # 0x14dd8a
leaq 0x9c2a4(%rip), %rcx     # 0x14fc7f
callq 0xa5930
movq -0x10(%rbp), %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: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9ca16(%rip), %rax     # 0x150415
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x20b5(%rip), %rsi     # 0xb1970
leaq 0x99196(%rip), %rdx     # 0x14cbc2
leaq 0x99198(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x2093(%rip), %rsi     # 0xb19b0
leaq 0x99186(%rip), %rdx     # 0x14cbd0
leaq 0x8b307(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x1fa1(%rip), %rsi     # 0xb1ac0
leaq 0x99176(%rip), %rdx     # 0x14cbde
leaq 0x92b3d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5d71(%rip), %rsi      # 0xb97f0
leaq 0x9a311(%rip), %rdx     # 0x14dd97
leaq 0x8e00f(%rip), %rcx     # 0x141a9c
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5e53(%rip), %rsi      # 0xb98f0
leaq 0x9a2e6(%rip), %rdx     # 0x14dd8a
leaq 0x9c1d4(%rip), %rcx     # 0x14fc7f
callq 0xa5930
movq -0x10(%rbp), %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: 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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x9caa5(%rip), %rax     # 0x150574
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x28, %esi
movl $0x8, %edx
callq 0xa67c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x1375(%rip), %rsi     # 0xb2780
leaq 0x990c6(%rip), %rdx     # 0x14cbc2
leaq 0x990c8(%rip), %rcx     # 0x14cbcb
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x1353(%rip), %rsi     # 0xb27c0
leaq 0x990b6(%rip), %rdx     # 0x14cbd0
leaq 0x8b237(%rip), %rcx     # 0x13ed58
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq -0x1301(%rip), %rsi     # 0xb2830
leaq 0x990a6(%rip), %rdx     # 0x14cbde
leaq 0x92a6d(%rip), %rcx     # 0x1465ac
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5ef1(%rip), %rsi      # 0xb9a40
leaq 0x9a241(%rip), %rdx     # 0x14dd97
leaq 0x8df3f(%rip), %rcx     # 0x141a9c
callq 0xa5930
movq -0x10(%rbp), %rdi
leaq 0x5fc3(%rip), %rsi      # 0xb9b30
leaq 0x9a216(%rip), %rdx     # 0x14dd8a
leaq 0x9c104(%rip), %rcx     # 0x14fc7f
callq 0xa5930
movq -0x10(%rbp), %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_hnode_u3vd_s_clear
static void bcore_hnode_u3vd_s_clear( bcore_hnode_u3vd_s* o )
{
    if( o->flag_holds && o->dp ) bcore_inst_a_discard( o->dp );
    o->dp = 0;
    o->flag_holds = 0;
    o->key = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x9(%rax)
je 0xb826e
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xb826e
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xac320
movq -0x8(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x9(%rax)
movq -0x8(%rbp), %rax
movq $0x0, (%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: 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
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x58(%rbp)
movq %rdi, -0x60(%rbp)
movq %rsi, -0x8(%rbp)
leaq 0x9759a(%rip), %rdi     # 0x14fc88
callq 0xa7a50
movq %rax, -0x10(%rbp)
leaq 0x975a5(%rip), %rdi     # 0x14fca3
callq 0xb3380
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0xb8940
movq -0x58(%rbp), %rdi
leaq -0x30(%rbp), %rax
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb87c9
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xb87b9
movq -0x18(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x38(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdx
leaq -0x50(%rbp), %rdi
callq 0xb8a10
movq -0x58(%rbp), %rdi
leaq -0x50(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb8980
jmp 0xb87bb
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb874c
movq -0x60(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x60, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xad5f0
movq -0x40(%rbp), %rax
leaq -0x20(%rbp), %rdi
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
movq %rax, (%rdi)
movq -0x18(%rbp), %rax
movq %rax, 0x8(%rdi)
movq -0x10(%rbp), %rax
movq %rax, 0x10(%rdi)
callq 0xb8b30
movq -0x40(%rbp), %rdi
movq %rax, -0x28(%rbp)
callq 0xdb280
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0xb88ac
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
callq 0xad2a0
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb8866
movq -0x40(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb0870
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tpsz_s_get_data
static sr_s tpsz_s_get_data( const bcore_hmap_tpsz_s* o )
{
    tp_t t_data = bcore_flect_type_parse_sc( "{ bcore_hnode_tpsz_s []; }" );
    tp_t t_node = typeof( "bcore_hnode_tpsz_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
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x58(%rbp)
movq %rdi, -0x60(%rbp)
movq %rsi, -0x8(%rbp)
leaq 0x97268(%rip), %rdi     # 0x14fe26
callq 0xa7a50
movq %rax, -0x10(%rbp)
leaq 0x97273(%rip), %rdi     # 0x14fe41
callq 0xb3380
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0xb8940
movq -0x58(%rbp), %rdi
leaq -0x30(%rbp), %rax
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb8c99
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xb8c89
movq -0x18(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x38(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdx
leaq -0x50(%rbp), %rdi
callq 0xb8a10
movq -0x58(%rbp), %rdi
leaq -0x50(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb8980
jmp 0xb8c8b
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb8c1c
movq -0x60(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tpfp_s_get_data
static sr_s tpfp_s_get_data( const bcore_hmap_tpfp_s* o )
{
    tp_t t_data = bcore_flect_type_parse_sc( "{ bcore_hnode_tpfp_s []; }" );
    tp_t t_node = typeof( "bcore_hnode_tpfp_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
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x58(%rbp)
movq %rdi, -0x60(%rbp)
movq %rsi, -0x8(%rbp)
leaq 0x971f6(%rip), %rdi     # 0x14ffc4
callq 0xa7a50
movq %rax, -0x10(%rbp)
leaq 0x97201(%rip), %rdi     # 0x14ffdf
callq 0xb3380
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0xb8940
movq -0x58(%rbp), %rdi
leaq -0x30(%rbp), %rax
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb8ea9
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xb8e99
movq -0x18(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x38(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdx
leaq -0x50(%rbp), %rdi
callq 0xb8a10
movq -0x58(%rbp), %rdi
leaq -0x50(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb8980
jmp 0xb8e9b
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb8e2c
movq -0x60(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tpfp_s_set_data
static void tpfp_s_set_data( bcore_hmap_tpfp_s* o, sr_s data )
{
    bcore_hmap_tpfp_s_clear( o );
    assert( sr_s_type( &data ) == bcore_flect_type_parse_sc( "{ bcore_hnode_tpfp_s []; }" ) );
    data = sr_cp( data, TYPEOF_bcore_array_s );
    uz_t size = bcore_array_r_get_size( &data );
    const bcore_hnode_tpfp_s* src = bcore_array_r_get_c_data( &data );
    for( uz_t i = 0; i < size; i++ ) bcore_hmap_tpfp_s_set( o, src[ i ].key, src[ i ].val );
    sr_down( data );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xaec70
movq -0x40(%rbp), %rax
leaq -0x20(%rbp), %rdi
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
movq %rax, (%rdi)
movq -0x18(%rbp), %rax
movq %rax, 0x8(%rdi)
movq -0x10(%rbp), %rax
movq %rax, 0x10(%rdi)
callq 0xb8b30
movq -0x40(%rbp), %rdi
movq %rax, -0x28(%rbp)
callq 0xdb280
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0xb8f8c
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
callq 0xae920
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb8f46
movq -0x40(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb0870
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tptp_s_get_data
static sr_s tptp_s_get_data( const bcore_hmap_tptp_s* o )
{
    tp_t t_data = bcore_flect_type_parse_sc( "{ bcore_hnode_tptp_s []; }" );
    tp_t t_node = typeof( "bcore_hnode_tptp_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
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x58(%rbp)
movq %rdi, -0x60(%rbp)
movq %rsi, -0x8(%rbp)
leaq 0x97184(%rip), %rdi     # 0x150162
callq 0xa7a50
movq %rax, -0x10(%rbp)
leaq 0x9718f(%rip), %rdi     # 0x15017d
callq 0xb3380
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0xb8940
movq -0x58(%rbp), %rdi
leaq -0x30(%rbp), %rax
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb90b9
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xb90a9
movq -0x18(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x38(%rbp), %rax
shlq $0x4, %rax
addq %rax, %rdx
leaq -0x50(%rbp), %rdi
callq 0xb8a10
movq -0x58(%rbp), %rdi
leaq -0x50(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb8980
jmp 0xb90ab
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb903c
movq -0x60(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tptp_s_set_data
static void tptp_s_set_data( bcore_hmap_tptp_s* o, sr_s data )
{
    bcore_hmap_tptp_s_clear( o );
    assert( sr_s_type( &data ) == bcore_flect_type_parse_sc( "{ bcore_hnode_tptp_s []; }" ) );
    data = sr_cp( data, TYPEOF_bcore_array_s );
    uz_t size = bcore_array_r_get_size( &data );
    const bcore_hnode_tptp_s* src = bcore_array_r_get_c_data( &data );
    for( uz_t i = 0; i < size; i++ ) bcore_hmap_tptp_s_set( o, src[ i ].key, src[ i ].val );
    sr_down( data );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xaf790
movq -0x40(%rbp), %rax
leaq -0x20(%rbp), %rdi
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
movq %rax, (%rdi)
movq -0x18(%rbp), %rax
movq %rax, 0x8(%rdi)
movq -0x10(%rbp), %rax
movq %rax, 0x10(%rdi)
callq 0xb8b30
movq -0x40(%rbp), %rdi
movq %rax, -0x28(%rbp)
callq 0xdb280
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0xb919c
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
callq 0xaf440
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb9156
movq -0x40(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb0870
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tpto_s_get_data
static sr_s tpto_s_get_data( const bcore_hmap_tpto_s* o )
{
    tp_t t_data = bcore_flect_type_parse_sc( "{ tp_t type; { tp_t key; sr_s obj; } [] arr; }" );
    sr_s data = sr_create( t_data );
    bcore_via_r_nset( &data, typeof( "type" ), sr_twc( TYPEOF_tp_t, &o->type ) );
    struct { tp_t key; sr_s obj; } node;
    const bcore_inst_s* inst_p = o->type ? bcore_inst_s_get_typed( o->type ) : NULL;
    tp_t t_node = bcore_array_r_get_static_type( &data );

    for( uz_t i = 0; i < o->size; i++ )
    {
        if( o->nodes[ i ].key )
        {
            node.key = o->nodes[ i ].key;
            node.obj = sr_pwc( inst_p, o->nodes[ i ].val );
            bcore_array_r_push( &data, sr_twc( t_node, &node ) );
        }
    }

    return data;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0xa0(%rbp)
movq %rdi, -0xa8(%rbp)
movq %rsi, -0x8(%rbp)
leaq 0x971f2(%rip), %rdi     # 0x1503e6
callq 0xa7a50
movq -0xa0(%rbp), %rdi
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rsi
callq 0xb8940
leaq 0x88fe8(%rip), %rdi     # 0x1421fc
callq 0xb3380
movq %rax, -0x98(%rbp)
movq -0x8(%rbp), %rdx
addq $0x8, %rdx
leaq -0x28(%rbp), %rdi
movabsq $0x6d07f9ef5b68e8a2, %rsi # imm = 0x6D07F9EF5B68E8A2
callq 0xb8a10
movq -0xa0(%rbp), %rdi
movq -0x98(%rbp), %rsi
leaq -0x28(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb9580
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xb928c
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xb0a50
movq %rax, -0xb0(%rbp)
jmp 0xb9297
xorl %eax, %eax
movq %rax, -0xb0(%rbp)
jmp 0xb9297
movq -0xa0(%rbp), %rdi
movq -0xb0(%rbp), %rax
movq %rax, -0x50(%rbp)
callq 0xdb1a0
movq %rax, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0xb9392
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xb937f
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
leaq -0x78(%rbp), %rdi
callq 0xb9620
movq -0x78(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x58(%rbp), %rsi
leaq -0x90(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0xb8a10
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb8980
jmp 0xb9381
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x60(%rbp)
jmp 0xb92ba
movq -0xa8(%rbp), %rax
addq $0xd0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/./bcore_spect_inst.h
// Function: bcore_inst_r_clone
static inline vd_t bcore_inst_r_clone( const sr_s* o )
{
    if( !o ) return NULL;
    if( !o->p ) return NULL;
    vd_t ret = bcore_inst_p_clone( ch_spect_p( o->p, TYPEOF_bcore_inst_s ), o->o );
    return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xb976d
movq $0x0, -0x8(%rbp)
jmp 0xb97b4
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xb9782
movq $0x0, -0x8(%rbp)
jmp 0xb97b4
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movabsq $0x782b96602f424981, %rsi # imm = 0x782B96602F424981
callq 0xd30f0
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0xb0d00
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tpaw_s_get_data
static sr_s tpaw_s_get_data( const bcore_hmap_tpaw_s* o )
{
    tp_t t_data = bcore_flect_type_parse_sc( "{ { tp_t key; aware => obj; } [] arr; }" );
    sr_s data = sr_create( t_data );
    struct { tp_t key; vd_t obj; } node;
    tp_t t_node = bcore_array_r_get_static_type( &data );

    for( uz_t i = 0; i < o->size; i++ )
    {
        if( o->nodes[ i ].key )
        {
            node.key = o->nodes[ i ].key;
            node.obj = o->nodes[ i ].val;
            bcore_array_r_push( &data, sr_twc( t_node, &node ) );
        }
    }

    return data;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x50(%rbp)
movq %rdi, -0x58(%rbp)
movq %rsi, -0x8(%rbp)
leaq 0x96d41(%rip), %rdi     # 0x15054c
callq 0xa7a50
movq -0x50(%rbp), %rdi
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rsi
callq 0xb8940
movq -0x50(%rbp), %rdi
callq 0xdb1a0
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb98e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xb98cd
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdi
leaq -0x20(%rbp), %rdx
callq 0xb8a10
movq -0x50(%rbp), %rdi
leaq -0x48(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb8980
jmp 0xb98cf
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xb9836
movq -0x58(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tpaw_s_set_data
static void tpaw_s_set_data( bcore_hmap_tpaw_s* o, sr_s data )
{
    bcore_hmap_tpaw_s_clear( o );
    assert( sr_s_type( &data ) == bcore_flect_type_parse_sc( "{ { tp_t key; aware => obj; } [] arr; }" ) );

    uz_t size = bcore_array_r_get_size( &data );
    if( sr_s_is_strong( &data ) )
    {
        struct { tp_t key; vd_t obj; }* src = bcore_array_r_get_d_data( &data );
        for( uz_t i = 0; i < size; i++ )
        {
            bcore_hmap_tpaw_s_set_d( o, src[ i ].key, src[ i ].obj );
            src[ i ].obj = NULL;
        }
    }
    else
    {
        const struct { tp_t key; vd_t obj; }* src = bcore_array_r_get_c_data( &data );
        for( uz_t i = 0; i < size; i++ )
        {
            bcore_hmap_tpaw_s_set_d( o, src[ i ].key, bcore_inst_a_clone( src[ i ].obj ) );
        }
    }
    sr_down( data );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb2590
movq -0x38(%rbp), %rdi
callq 0xb8b30
movq -0x38(%rbp), %rdi
movq %rax, -0x10(%rbp)
callq 0xb9720
testb $0x1, %al
jne 0xb9929
jmp 0xb999d
movq -0x38(%rbp), %rdi
callq 0xdb2d0
movq %rax, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0xb999b
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
callq 0xb2160
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xb993e
jmp 0xb9a12
movq -0x38(%rbp), %rdi
callq 0xdb280
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0xb9a10
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rax
movq -0x30(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rax
movq -0x30(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
callq 0xb2450
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq %rax, %rdx
callq 0xb2160
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xb99b2
jmp 0xb9a12
movq -0x38(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb0870
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tp_s_get_data
static sr_s tp_s_get_data( const bcore_hmap_tp_s* o )
{
    tp_t t_data = bcore_flect_type_parse_sc( "{ tp_t []; }" );
    sr_s sr = sr_cp( sr_create( t_data ), TYPEOF_bcore_array_s );
    for( uz_t i = 0; i < o->size; i++ )
    {
        if( o->keys[ i ] != 0 ) bcore_array_r_push( &sr, sr_twc( TYPEOF_tp_t, &o->keys[ i ] ) );
    }
    return sr;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x50(%rbp)
movq %rdi, -0x58(%rbp)
movq %rsi, -0x8(%rbp)
leaq 0x96c38(%rip), %rdi     # 0x150693
callq 0xa7a50
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0xb8940
movq -0x50(%rbp), %rdi
leaq -0x28(%rbp), %rax
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0xb9b26
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0xb9b16
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x30(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdx
leaq -0x48(%rbp), %rdi
movabsq $0x6d07f9ef5b68e8a2, %rsi # imm = 0x6D07F9EF5B68E8A2
callq 0xb8a10
movq -0x50(%rbp), %rdi
leaq -0x48(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb8980
jmp 0xb9b18
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xb9aa9
movq -0x58(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tp_s_set_data
static void tp_s_set_data( bcore_hmap_tp_s* o, sr_s data )
{
    bcore_hmap_tp_s_clear( o );
    assert( sr_s_type( &data ) == bcore_flect_type_parse_sc( "{ tp_t []; }" ) );
    data = sr_cp( data, TYPEOF_bcore_array_s );
    uz_t size = bcore_array_r_get_size( &data );
    const tp_t* src = bcore_array_r_get_c_data( &data );
    for( uz_t i = 0; i < size; i++ ) bcore_hmap_tp_s_set( o, src[ i ] );
    sr_down( data );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb2ff0
movq -0x40(%rbp), %rax
leaq -0x20(%rbp), %rdi
movabsq $-0x5073d588c3beb52e, %rsi # imm = 0xAF8C2A773C414AD2
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb88e0
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rax
movq %rax, (%rdi)
movq -0x18(%rbp), %rax
movq %rax, 0x8(%rdi)
movq -0x10(%rbp), %rax
movq %rax, 0x10(%rdi)
callq 0xb8b30
movq -0x40(%rbp), %rdi
movq %rax, -0x28(%rbp)
callq 0xdb280
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0xb9be3
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0xb2b20
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb9bb6
movq -0x40(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xb0870
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: hmap_tpuz_s_status
static st_s* hmap_tpuz_s_status( bcore_hmap_tpuz_s* o )
{
    st_s* string = st_s_create();
    uz_t keys = bcore_hmap_tpuz_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 0xad650
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq 0x95d69(%rip), %rsi     # 0x14f9ac
movb $0x0, %al
callq 0x100120
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x95d65(%rip), %rsi     # 0x14f9c2
movb $0x0, %al
callq 0x100120
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0xb9cc5
movq -0x18(%rbp), %xmm0
movaps 0x8527d(%rip), %xmm3    # 0x13ef00
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x85281(%rip), %xmm2    # 0x13ef10
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movq 0x18(%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 0xb9ccf
xorps %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
jmp 0xb9ccf
movq -0x20(%rbp), %rdi
movsd -0x28(%rbp), %xmm0
leaq 0x95cf9(%rip), %rsi     # 0x14f9d8
movb $0x1, %al
callq 0x100120
movq -0x10(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq