// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_hmap.c
// Function: tpto_s_set_data
static void tpto_s_set_data( bcore_hmap_tpto_s* o, sr_s data )
{
    bcore_hmap_tpto_s_clear( o );
    assert( sr_s_type( &data ) == bcore_flect_type_parse_sc( "{ tp_t type; { tp_t key; sr_s obj; } [] arr; }" ) );

    {
        sr_s type_sr = bcore_via_r_nget( &data, typeof( "type" ) );
        bcore_hmap_tpto_s_set_type( o, *( tp_t* )type_sr.o );
        sr_down( type_sr );
    }

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb10c0
leaq 0x88e25(%rip), %rdi     # 0x1421fc
callq 0xb3380
movq -0x68(%rbp), %rsi
movq %rax, %rdx
leaq -0x20(%rbp), %rdi
callq 0xb96a0
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rsi
callq 0xb1080
leaq -0x20(%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
movq -0x68(%rbp), %rdi
callq 0xb8b30
movq -0x68(%rbp), %rdi
movq %rax, -0x28(%rbp)
callq 0xb9720
testb $0x1, %al
jne 0xb943d
jmp 0xb94d2
movq -0x68(%rbp), %rdi
callq 0xdb2d0
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0xb94d0
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
callq 0xb1420
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xb97c0
movq -0x70(%rbp), %rax
movq -0x50(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x40(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xb9452
jmp 0xb9547
movq -0x68(%rbp), %rdi
callq 0xdb280
movq %rax, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0xb9545
movq -0x8(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x58(%rbp), %rax
movq -0x60(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
addq $0x8, %rdi
callq 0xb9750
movq -0x80(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq %rax, %rdx
callq 0xb1420
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x60(%rbp)
jmp 0xb94e7
jmp 0xb9547
movq -0x68(%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 $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)