// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_spect_source.c
// Function: create_from_self
static bcore_source_s* create_from_self( const bcore_self_s* self )
{
    assert( self != NULL );
    assert( bcore_self_s_is_aware( self ) );

    bcore_source_s* o = source_s_create();
    o->header.o_type = self->type;

    o->get_data        = ( bcore_fp_flow_src               )bcore_self_s_get_external_fp( self, bcore_name_enroll( "bcore_fp_flow_src" ), 0 );
    o->get_context     = ( bcore_source_fp_get_context     )bcore_self_s_try_external_fp( self, bcore_name_enroll( "bcore_source_fp_get_context" ), 0 );
    o->parse_fv        = ( bcore_source_fp_parse_fv        )bcore_self_s_try_external_fp( self, bcore_name_enroll( "bcore_source_fp_parse_fv" ), 0 );
    o->parse_em_fv     = ( bcore_source_fp_parse_em_fv     )bcore_self_s_try_external_fp( self, bcore_name_enroll( "bcore_source_fp_parse_em_fv" ), 0 );
    o->set_supplier    = ( bcore_source_fp_set_supplier    )bcore_self_s_try_external_fp( self, bcore_name_enroll( "bcore_source_fp_set_supplier" ), 0 );
    o->set_parent      = ( bcore_source_fp_set_parent      )bcore_self_s_try_external_fp( self, bcore_name_enroll( "bcore_source_fp_set_parent" ), 0 );
    o->eos             = ( bcore_source_fp_eos             )bcore_self_s_get_external_fp( self, bcore_name_enroll( "bcore_source_fp_eos" ), 0 );
    o->get_file        = ( bcore_source_fp_get_file        )bcore_self_s_try_external_fp( self, bcore_name_enroll( "bcore_source_fp_get_file" ), 0 );
    o->get_index       = ( bcore_source_fp_get_index       )bcore_self_s_try_external_fp( self, bcore_name_enroll( "bcore_source_fp_get_index" ), 0 );
    o->set_index       = ( bcore_source_fp_set_index       )bcore_self_s_try_external_fp( self, bcore_name_enroll( "bcore_source_fp_set_index" ), 0 );
    return o;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x60, %esi
xorl %edi, %edi
callq 0xbe7b1
movq %rax, %r14
movl $0x60, %esi
movq %rax, %rdi
callq 0xbe802
movabsq $-0x7e8ee9b9b4bbaa8, %rax # imm = 0xF817116464B44558
movq %rax, (%r14)
movq 0x8(%rbx), %rax
movq %rax, 0x8(%r14)
leaq 0x46107(%rip), %rdi     # 0x147d09
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc4859
movq %rax, 0x10(%r14)
leaq 0x462f7(%rip), %rdi     # 0x147f16
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc473a
movq %rax, 0x18(%r14)
leaq 0x461b4(%rip), %rdi     # 0x147df0
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc473a
movq %rax, 0x20(%r14)
leaq 0x461d1(%rip), %rdi     # 0x147e2a
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc473a
movq %rax, 0x28(%r14)
leaq 0x462bc(%rip), %rdi     # 0x147f32
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc473a
movq %rax, 0x30(%r14)
leaq 0x462bc(%rip), %rdi     # 0x147f4f
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc473a
movq %rax, 0x38(%r14)
leaq 0x46084(%rip), %rdi     # 0x147d34
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc4859
movq %rax, 0x40(%r14)
leaq 0x46099(%rip), %rdi     # 0x147d66
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc473a
movq %rax, 0x48(%r14)
leaq 0x460b4(%rip), %rdi     # 0x147d9e
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc473a
movq %rax, 0x50(%r14)
leaq 0x460b1(%rip), %rdi     # 0x147db8
callq 0xd7476
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc473a
movq %rax, 0x58(%r14)
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq