// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sinks.c
// Function: bcore_sinks_signal_handler
vd_t bcore_sinks_signal_handler( const bcore_signal_s* o )
{
    switch( bcore_signal_s_handle_type( o, typeof( "bcore_sinks" ) ) )
    {
        case TYPEOF_init1:
        {
            bcore_flect_define_creator( typeof( "bcore_sink_buffer_s" ), buffer_s_create_self );
            bcore_flect_define_creator( typeof( "bcore_sink_file_s"   ), file_s_create_self   );
            bcore_flect_define_creator( typeof( "bcore_sink_chain_s"  ), chain_s_create_self  );

            BCORE_REGISTER_FFUNC( bcore_fp_flow_snk, bcore_sink_stdout_s_push_data );
            BCORE_REGISTER_FFUNC( bcore_sink_fp_flush, bcore_sink_stdout_s_flush );
            BCORE_REGISTER_OBJECT( bcore_sink_stdout_s );
            BCORE_REGISTER_FFUNC( bcore_fp_flow_snk, bcore_sink_stderr_s_push_data );
            BCORE_REGISTER_FFUNC( bcore_sink_fp_flush, bcore_sink_stderr_s_flush );
            BCORE_REGISTER_OBJECT( bcore_sink_stderr_s );
            BCORE_REGISTER_FFUNC( bcore_fp_flow_snk, bcore_sink_nul_s_push_data );
            BCORE_REGISTER_FFUNC( bcore_sink_fp_flush, bcore_sink_nul_s_flush );
            BCORE_REGISTER_OBJECT( bcore_sink_nul_s );

            bcore_sink_stdout_g = bcore_sink_stdout_s_create();
            bcore_sink_stderr_g = bcore_sink_stderr_s_create();
            bcore_sink_nul_g    = bcore_sink_nul_s_create();
        }
        break;

        case TYPEOF_down1:
        {
             bcore_sink_stdout_s_detach( &bcore_sink_stdout_g );
             bcore_sink_stderr_s_detach( &bcore_sink_stderr_g );
             bcore_sink_nul_s_detach( &bcore_sink_nul_g );
        }

        case TYPEOF_selftest:
        {
        }
        break;

        default: break;
    }

    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq 0x87d9e(%rip), %rdi     # 0x151999
callq 0xc95c0
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0xc7f40
movq %rax, %rcx
movq %rcx, -0x10(%rbp)
movabsq $-0x69a05654ee793a14, %rcx # imm = 0x965FA9AB1186C5EC
subq %rcx, %rax
je 0xc9eb3
jmp 0xc9c28
movq -0x10(%rbp), %rax
movabsq $0x6a72ce8f8250efc6, %rcx # imm = 0x6A72CE8F8250EFC6
subq %rcx, %rax
je 0xc9c59
jmp 0xc9c3d
movq -0x10(%rbp), %rax
movabsq $0x7ee758bbfced33e3, %rcx # imm = 0x7EE758BBFCED33E3
subq %rcx, %rax
je 0xc9ed7
jmp 0xc9ed9
leaq 0x8778c(%rip), %rdi     # 0x1513ec
callq 0xc95c0
movq %rax, %rdi
leaq 0x281(%rip), %rsi       # 0xc9ef0
callq 0xa7b60
leaq 0x87785(%rip), %rdi     # 0x151400
callq 0xc95c0
movq %rax, %rdi
leaq 0x316(%rip), %rsi       # 0xc9fa0
callq 0xa7b60
leaq 0x8777c(%rip), %rdi     # 0x151412
callq 0xc95c0
movq %rax, %rdi
leaq 0x3db(%rip), %rsi       # 0xca080
callq 0xa7b60
leaq 0x87cf4(%rip), %rdi     # 0x1519a5
callq 0xca180
movq %rax, -0x48(%rbp)
leaq 0x87d02(%rip), %rdi     # 0x1519c3
callq 0xca180
movq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0x1134f0
leaq 0x87ccc(%rip), %rdi     # 0x1519a5
callq 0xca180
movq %rax, %rdi
leaq -0x4d8(%rip), %rsi      # 0xc9810
callq 0xaa780
leaq 0x87ce1(%rip), %rdi     # 0x1519d5
callq 0xca180
movq %rax, -0x40(%rbp)
leaq 0x87ceb(%rip), %rdi     # 0x1519ef
callq 0xca180
movq -0x40(%rbp), %rdi
movq %rax, %rsi
callq 0x1134f0
leaq 0x87cb9(%rip), %rdi     # 0x1519d5
callq 0xca180
movq %rax, %rdi
leaq -0x57b(%rip), %rsi      # 0xc97b0
callq 0xaa780
leaq 0x87bfb(%rip), %rdi     # 0x151932
callq 0xc95c0
movq %rax, %rdi
leaq 0x45a(%rip), %rsi       # 0xca1a0
callq 0xa7b60
leaq 0x87cb1(%rip), %rdi     # 0x151a03
callq 0xca180
movq %rax, -0x38(%rbp)
leaq 0x87c61(%rip), %rdi     # 0x1519c3
callq 0xca180
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0x1134f0
leaq 0x87c89(%rip), %rdi     # 0x151a03
callq 0xca180
movq %rax, %rdi
leaq -0x379(%rip), %rsi      # 0xc9a10
callq 0xaa780
leaq 0x87c8c(%rip), %rdi     # 0x151a21
callq 0xca180
movq %rax, -0x30(%rbp)
leaq 0x87c4a(%rip), %rdi     # 0x1519ef
callq 0xca180
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0x1134f0
leaq 0x87c64(%rip), %rdi     # 0x151a21
callq 0xca180
movq %rax, %rdi
leaq -0x41c(%rip), %rsi      # 0xc99b0
callq 0xaa780
leaq 0x87b85(%rip), %rdi     # 0x15195d
callq 0xc95c0
movq %rax, %rdi
leaq 0x3d9(%rip), %rsi       # 0xca1c0
callq 0xa7b60
leaq 0x87c48(%rip), %rdi     # 0x151a3b
callq 0xca180
movq %rax, -0x28(%rbp)
leaq 0x87bc0(%rip), %rdi     # 0x1519c3
callq 0xca180
movq -0x28(%rbp), %rdi
movq %rax, %rsi
callq 0x1134f0
leaq 0x87c20(%rip), %rdi     # 0x151a3b
callq 0xca180
movq %rax, %rdi
leaq -0x26a(%rip), %rsi      # 0xc9bc0
callq 0xaa780
leaq 0x87c20(%rip), %rdi     # 0x151a56
callq 0xca180
movq %rax, -0x20(%rbp)
leaq 0x87ba9(%rip), %rdi     # 0x1519ef
callq 0xca180
movq -0x20(%rbp), %rdi
movq %rax, %rsi
callq 0x1134f0
leaq 0x87bf8(%rip), %rdi     # 0x151a56
callq 0xca180
movq %rax, %rdi
leaq -0x2bd(%rip), %rsi      # 0xc9bb0
callq 0xaa780
leaq 0x87b0f(%rip), %rdi     # 0x151988
callq 0xc95c0
movq %rax, %rdi
leaq 0x358(%rip), %rsi       # 0xca1e0
callq 0xa7b60
callq 0xc9710
movq %rax, 0xe84af(%rip)     # 0x1b2348
callq 0xc9910
movq %rax, 0xe84ab(%rip)     # 0x1b2350
callq 0xc9b10
movq %rax, 0xe84a7(%rip)     # 0x1b2358
jmp 0xc9edb
leaq 0xe848e(%rip), %rdi     # 0x1b2348
callq 0xca200
leaq 0xe848a(%rip), %rdi     # 0x1b2350
callq 0xca240
leaq 0xe8486(%rip), %rdi     # 0x1b2358
callq 0xca280
jmp 0xc9edb
jmp 0xc9edb
xorl %eax, %eax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)