// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_generic_copy
er_t x_btcl_generic_copy( sr_s* sr, const sr_s* sb )
{
    // bcore_x_btcl.x:167:1
    
    er_t copy_typed_err = x_inst_t_copy_typed( sr->o,sr_s_o_type(sr), sr_s_o_type(sb), sb->o );
    if( copy_typed_err == ((tp_t)(TYPEOF_conversion_error)) )
    {
        if( sr_s_o_type(sb) == ((tp_t)(TYPEOF_x_btcl_list_s)) )
        {
            x_array* array = NULL;
            tp_t t_array = 0;
            if( x_array_t_is_array(sr_s_type(sr) ) )
            {
                array =((x_array*)( sr->o));
                t_array = sr_s_type(sr);
            }
            else if( x_stamp_t_is_aware(sr_s_type(sr) ) && ( array = x_array_feature_a_m_get_wrapped_array(((x_array_feature*)(sr->o))) ) )
            {
                t_array = array->_;
            }
    
            if( array )
            {
                const x_btcl_list_s* list = ((const x_btcl_list_s*)(sb->o));
                x_array_t_clear( array,t_array );
                for(sz_t i = 0; i < list->arr.size; i++ ) x_array_t_push_sr( array,t_array, sr_cw( list->arr.data[ i ] ) );
                bcore_error_remove_last_if_of(((tp_t)(TYPEOF_conversion_error)) );
                copy_typed_err = 0;
            }
        }
    }
    return  copy_typed_err;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
callq 0x52c00
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rdi
callq 0x52c00
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq %rax, %rdx
movq -0x10(%rbp), %rax
movq (%rax), %rcx
callq 0x4dba0
movq %rax, -0x18(%rbp)
movabsq $-0x4e68f1e683c13928, %rax # imm = 0xB1970E197C3EC6D8
cmpq %rax, -0x18(%rbp)
jne 0x5b10b
movq -0x10(%rbp), %rdi
callq 0x52c00
movabsq $-0x240ec4eb25c1f3e8, %rcx # imm = 0xDBF13B14DA3E0C18
cmpq %rcx, %rax
jne 0x5b109
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0x45450
movq %rax, %rdi
callq 0x63680
testb $0x1, %al
jne 0x5afe6
jmp 0x5b000
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x45450
movq %rax, -0x28(%rbp)
jmp 0x5b03a
movq -0x8(%rbp), %rdi
callq 0x45450
movq %rax, %rdi
callq 0x42da0
testb $0x1, %al
jne 0x5b017
jmp 0x5b038
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x69040
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x5b038
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x5b03a
cmpq $0x0, -0x20(%rbp)
je 0x5b107
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x69070
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x5b0f0
movq -0x20(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
imulq $0x18, -0x38(%rbp), %rcx
addq %rcx, %rax
leaq -0x50(%rbp), %rdi
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x636f0
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
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 0x54a70
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x5b065
movabsq $-0x4e68f1e683c13928, %rdi # imm = 0xB1970E197C3EC6D8
callq 0x9de30
movq $0x0, -0x18(%rbp)
jmp 0x5b109
jmp 0x5b10b
movq -0x18(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax,%rax)