// File: /workspace/github_c_makefile_star2_O2/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: bcore_sources_signal_handler
vd_t bcore_sources_signal_handler( const bcore_signal_s* o )
{
    switch( bcore_signal_s_handle_type( o, typeof( "bcore_sources" ) ) )
    {
        case TYPEOF_init1:
        {
            bcore_flect_define_creator( typeof( "bcore_source_string_s"  ), string_s_create_self );
            bcore_flect_define_creator( typeof( "bcore_source_buffer_s"  ), buffer_s_create_self );
            bcore_flect_define_creator( typeof( "bcore_source_file_s"    ), file_s_create_self   );
            bcore_flect_define_creator( typeof( "bcore_source_chain_s"   ), chain_s_create_self  );

            BCORE_REGISTER_FFUNC( bcore_fp_flow_src, bcore_source_stdin_s_get_data );
            BCORE_REGISTER_FFUNC( bcore_source_fp_eos, bcore_source_stdin_s_eos );
            BCORE_REGISTER_FFUNC( bcore_source_fp_get_file, bcore_source_stdin_s_get_file );
            BCORE_REGISTER_FFUNC( bcore_source_fp_get_index, bcore_source_stdin_s_get_index );
            BCORE_REGISTER_FFUNC( bcore_source_fp_set_index, bcore_source_stdin_s_set_index );
            BCORE_REGISTER_FFUNC( bcore_source_fp_parse_fv, bcore_source_stdin_s_parse_fv );
            BCORE_REGISTER_FFUNC( bcore_source_fp_parse_em_fv, bcore_source_stdin_s_parse_em_fv );
            BCORE_REGISTER_OBJECT( bcore_source_stdin_s );
            BCORE_REGISTER_OBJECT( bcore_source_point_s );

            bcore_source_stdin_g = ( bcore_source* )bcore_source_open_stdin();
        }
        break;

        case TYPEOF_down1:
        {
             bcore_source_a_detach( &bcore_source_stdin_g );
        }
        break;

        case TYPEOF_selftest:
        {
            return sources_selftest();
        }
        break;

        default: break;
    }

    return NULL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rdi, %rbx
leaq 0x4da22(%rip), %rdi     # 0xc5b7f
callq 0x774cd
movq %rbx, %rdi
movq %rax, %rsi
callq 0x75141
movabsq $-0x69a05654ee793a14, %rcx # imm = 0x965FA9AB1186C5EC
cmpq %rcx, %rax
je 0x78a41
movabsq $0x7ee758bbfced33e3, %rcx # imm = 0x7EE758BBFCED33E3
cmpq %rcx, %rax
je 0x78419
movabsq $0x6a72ce8f8250efc6, %rcx # imm = 0x6A72CE8F8250EFC6
cmpq %rcx, %rax
jne 0x78a55
leaq 0x4cd9d(%rip), %rdi     # 0xc4f4a
callq 0x774cd
leaq 0x8b0(%rip), %rsi       # 0x78a69
movq %rax, %rdi
callq 0x6513b
leaq 0x4cd98(%rip), %rdi     # 0xc4f60
callq 0x774cd
leaq 0x9ef(%rip), %rsi       # 0x78bc3
movq %rax, %rdi
callq 0x6513b
leaq 0x4cd93(%rip), %rdi     # 0xc4f76
callq 0x774cd
leaq 0xad7(%rip), %rsi       # 0x78cc6
movq %rax, %rdi
callq 0x6513b
leaq 0x4d825(%rip), %rdi     # 0xc5a23
callq 0x774cd
leaq 0xbe4(%rip), %rsi       # 0x78dee
movq %rax, %rdi
callq 0x6513b
leaq 0x4d974(%rip), %rbx     # 0xc5b8d
movq %rbx, %rdi
callq 0x7227a
movq %rax, %r14
leaq 0x4d980(%rip), %rdi     # 0xc5bab
callq 0x7227a
movq %r14, %rdi
movq %rax, %rsi
callq 0x99410
movq %rbx, %rdi
callq 0x7227a
leaq -0xca2(%rip), %rsi      # 0x775a8
movq %rax, %rdi
callq 0x6656d
leaq 0x4d964(%rip), %rbx     # 0xc5bbd
movq %rbx, %rdi
callq 0x7227a
movq %rax, %r14
leaq 0x4d96b(%rip), %rdi     # 0xc5bd6
callq 0x7227a
movq %r14, %rdi
movq %rax, %rsi
callq 0x99410
movq %rbx, %rdi
callq 0x7227a
leaq -0x958(%rip), %rsi      # 0x77932
movq %rax, %rdi
callq 0x6656d
leaq 0x4d951(%rip), %rbx     # 0xc5bea
movq %rbx, %rdi
callq 0x7227a
movq %rax, %r14
leaq 0x4d95d(%rip), %rdi     # 0xc5c08
callq 0x7227a
movq %r14, %rdi
movq %rax, %rsi
callq 0x99410
movq %rbx, %rdi
callq 0x7227a
leaq -0x971(%rip), %rsi      # 0x77959
movq %rax, %rdi
callq 0x6656d
leaq 0x4d948(%rip), %rbx     # 0xc5c21
movq %rbx, %rdi
callq 0x7227a
movq %rax, %r14
leaq 0x4d955(%rip), %rdi     # 0xc5c40
callq 0x7227a
movq %r14, %rdi
movq %rax, %rsi
callq 0x99410
movq %rbx, %rdi
callq 0x7227a
leaq -0x9a9(%rip), %rsi      # 0x77961
movq %rax, %rdi
callq 0x6656d
leaq 0x4d7e8(%rip), %rbx     # 0xc5b01
movq %rbx, %rdi
callq 0x7227a
movq %rax, %r14
leaq 0x4d92f(%rip), %rdi     # 0xc5c5a
callq 0x7227a
movq %r14, %rdi
movq %rax, %rsi
callq 0x99410
movq %rbx, %rdi
callq 0x7227a
leaq -0x9e0(%rip), %rsi      # 0x7796a
movq %rax, %rdi
callq 0x6656d
leaq 0x4d91b(%rip), %rbx     # 0xc5c74
movq %rbx, %rdi
callq 0x7227a
movq %rax, %r14
leaq 0x4d927(%rip), %rdi     # 0xc5c92
callq 0x7227a
movq %r14, %rdi
movq %rax, %rsi
callq 0x99410
movq %rbx, %rdi
callq 0x7227a
leaq -0xa78(%rip), %rsi      # 0x77912
movq %rax, %rdi
callq 0x6656d
leaq 0x4d912(%rip), %rbx     # 0xc5cab
movq %rbx, %rdi
callq 0x7227a
movq %rax, %r14
leaq 0x4d921(%rip), %rdi     # 0xc5ccc
callq 0x7227a
movq %r14, %rdi
movq %rax, %rsi
callq 0x99410
movq %rbx, %rdi
callq 0x7227a
leaq -0xc76(%rip), %rsi      # 0x77754
movq %rax, %rdi
callq 0x6656d
leaq 0x4d703(%rip), %rdi     # 0xc5adc
callq 0x774cd
leaq 0xb88(%rip), %rsi       # 0x78f6d
movq %rax, %rdi
callq 0x6513b
leaq 0x4cb96(%rip), %rdi     # 0xc4f8a
callq 0x774cd
leaq 0xb7f(%rip), %rsi       # 0x78f7f
movq %rax, %rdi
callq 0x6513b
callq 0x77552
movq %rax, 0x9f9ec(%rip)     # 0x117e00
jmp 0x78a55
movabsq $-0x5073d588c3beb52e, %r15 # imm = 0xAF8C2A773C414AD2
xorl %eax, %eax
callq 0x8eb65
movq %rax, 0x98(%rsp)
xorl %eax, %eax
callq 0x717ac
movq %rax, %r14
leaq 0x4de3a(%rip), %rdi     # 0xc627d
callq 0x64de5
leaq 0x4de61(%rip), %rdi     # 0xc62b0
callq 0x774cd
leaq 0x120(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x76474
movq 0x10(%rbx), %rax
movq %rax, 0x10(%rsp)
movups (%rbx), %xmm0
movups %xmm0, (%rsp)
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
movq %r14, 0x60(%rsp)
movq %r14, %rsi
callq 0x719e2
movq (%rbx), %r14
movq 0x8(%rbx), %rdi
movq 0x10(%rbx), %r12
movq %r15, %rsi
callq 0x7abc8
movq %r14, (%rbx)
movq %rax, 0x8(%rbx)
movq %r12, 0x10(%rbx)
leaq 0x4de14(%rip), %r12     # 0xc62c5
leaq 0xd8(%rsp), %r13
xorl %ebp, %ebp
cmpq $0x4e20, %rbp           # imm = 0x4E20
je 0x7858c
movq %r12, %rdi
movq %rbp, %rsi
xorl %eax, %eax
callq 0x8ebc4
movq %r13, %rdi
movq %rax, %rsi
callq 0x76699
movq 0xe8(%rsp), %rax
movq %rax, 0xb0(%rsp)
movups 0xd8(%rsp), %xmm0
movaps %xmm0, 0xa0(%rsp)
movups 0x68(%rsp), %xmm0
movaps %xmm0, 0x80(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x88(%rsp), %rdi
movq 0x8(%rdi), %rax
cmpq %r15, %rax
je 0x78536
movq %rax, %rdi
callq 0x76649
movq %rax, %rdi
movq 0x80(%rsp), %rsi
movq 0xb0(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0xa0(%rsp), %xmm0
movups %xmm0, (%rsp)
callq 0x7c34a
testb $0x2, 0x90(%rsp)
je 0x78584
movq 0x90(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0x80(%rsp), %xmm0
movups %xmm0, (%rsp)
callq 0x8cdc1
incq %rbp
jmp 0x784bb
leaq 0x4dd43(%rip), %rbx     # 0xc62d6
movq %rbx, %rdi
callq 0x7593e
movq %rax, %r14
leaq 0x4cae5(%rip), %rdi     # 0xc508a
callq 0x774cd
leaq 0xa0(%rsp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x76474
leaq 0x80(%rsp), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x79986
movq 0x10(%r12), %rax
movq %rax, 0x40(%rsp)
movups (%r12), %xmm0
movups %xmm0, 0x30(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x28(%rsp)
movups 0x68(%rsp), %xmm0
movups %xmm0, 0x18(%rsp)
movq 0x10(%r15), %rax
movq %rax, 0x10(%rsp)
movups (%r15), %xmm0
movups %xmm0, (%rsp)
callq 0x8a2f4
movq %r14, %rdi
callq 0x752a3
movq %rbx, %rdi
callq 0x78010
movq 0x60(%rsp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x71a4d
movq %rax, %rdi
callq 0x79039
movq %r15, %rdi
movq %rax, %rsi
callq 0x71a4d
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x79986
leaq 0x4ca4c(%rip), %rdi     # 0xc50a4
callq 0x774cd
leaq 0x108(%rsp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0x76474
movq 0x10(%rbx), %rax
movq %rax, 0x28(%rsp)
movups (%rbx), %xmm0
movups %xmm0, 0x18(%rsp)
movq 0x10(%r14), %rax
movq %rax, 0x10(%rsp)
movups (%r14), %xmm0
movups %xmm0, (%rsp)
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
callq 0x8742a
movq 0x10(%rbx), %rax
movq %rax, 0x10(%rsp)
movaps (%rbx), %xmm0
movups %xmm0, (%rsp)
leaq 0xf0(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x719e2
movq 0x10(%r14), %rax
movq %rax, 0x10(%rbx)
movups (%r14), %xmm0
movaps %xmm0, (%rbx)
movq 0x78(%rsp), %rax
movq %rax, 0x28(%rsp)
movups 0x68(%rsp), %xmm0
movups %xmm0, 0x18(%rsp)
movq 0x10(%rbx), %rax
movq %rax, 0x10(%rsp)
movaps (%rbx), %xmm0
movups %xmm0, (%rsp)
callq 0x80fa8
testl %eax, %eax
je 0x78758
movq 0x78(%rsp), %rax
movq %rax, 0x28(%rsp)
movups 0x68(%rsp), %xmm0
movups %xmm0, 0x18(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x10(%rsp)
movaps 0xc0(%rsp), %xmm0
movups %xmm0, (%rsp)
callq 0x81b00
movq 0x8(%rax), %r8
leaq 0x4dbb4(%rip), %rdi     # 0xc62f2
leaq 0x4d220(%rip), %rsi     # 0xc5965
leaq 0x3e5ff(%rip), %rcx     # 0xb6d4b
movl $0x6c8, %edx            # imm = 0x6C8
xorl %eax, %eax
callq 0x60031
leaq 0x4dba4(%rip), %rdi     # 0xc6303
callq 0x7593e
movq %rax, %rbx
leaq 0x4dbb1(%rip), %r14     # 0xc631f
xorl %r15d, %r15d
cmpq $0x2710, %r15           # imm = 0x2710
je 0x787a5
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x8ec7d
movq %rax, %r12
movq (%rbx), %rdi
callq 0x79207
movq %rax, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x87c18
incq %r15
jmp 0x78771
movq %rbx, %rdi
callq 0x752a3
leaq 0x4db4f(%rip), %rdi     # 0xc6303
callq 0x78010
movq %rax, %r15
xorl %eax, %eax
callq 0x588f8
movq %rax, %r12
leaq 0x4db68(%rip), %rbx     # 0xc6335
leaq 0x48(%rsp), %r14
leaq 0x4d18c(%rip), %rbp     # 0xc5965
xorl %r13d, %r13d
cmpq $0x2710, %r13           # imm = 0x2710
je 0x7883f
movq %r15, %rdi
callq 0x76851
movq %r12, %rdi
movq %rax, %rsi
callq 0x58ab5
andq $0x0, 0x48(%rsp)
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x88fce
cmpq 0x48(%rsp), %r13
je 0x7883a
leaq 0x31e2b(%rip), %rdi     # 0xaa647
leaq 0x4db29(%rip), %rsi     # 0xc634c
leaq 0x4dac8(%rip), %rdx     # 0xc62f2
movq %rbp, %rcx
movl $0x6db, %r8d            # imm = 0x6DB
xorl %eax, %eax
callq 0x5ffac
incq %r13
jmp 0x787dc
movl $0x4d2, %r14d           # imm = 0x4D2
movl $0x2710, %r13d          # imm = 0x2710
leaq 0x48(%rsp), %rbp
subq $0x1, %r13
jb 0x788e1
movl %r14d, %eax
shrl $0xb, %eax
xorl %r14d, %eax
movl %eax, %ecx
shll $0x15, %ecx
xorl %eax, %ecx
movl %ecx, %r14d
shrl $0xd, %r14d
xorl %ecx, %r14d
movq %r14, %rax
xorl %edx, %edx
divq 0x10(%r12)
movq %rdx, %rbx
movq 0x8(%r12), %rax
movq (%rax,%rdx,8), %rsi
movq %r15, %rdi
callq 0x768e0
andq $0x0, 0x48(%rsp)
movq %r15, %rdi
leaq 0x4da93(%rip), %rsi     # 0xc6335
movq %rbp, %rdx
xorl %eax, %eax
callq 0x88fce
cmpq 0x48(%rsp), %rbx
je 0x78850
leaq 0x31d8d(%rip), %rdi     # 0xaa647
leaq 0x4da92(%rip), %rsi     # 0xc6353
leaq 0x4da2a(%rip), %rdx     # 0xc62f2
leaq 0x4d096(%rip), %rcx     # 0xc5965
movl $0x6e7, %r8d            # imm = 0x6E7
xorl %eax, %eax
callq 0x5ffac
jmp 0x78850
movq %r12, %rdi
callq 0x58913
movq %r15, %rdi
callq 0x76540
leaq 0x4da0b(%rip), %rdi     # 0xc6303
callq 0x78010
movq %rax, %r15
leaq 0x4da2e(%rip), %rbx     # 0xc6335
leaq 0x48(%rsp), %r14
leaq 0x4d9df(%rip), %rbp     # 0xc62f2
leaq 0x4d04b(%rip), %r12     # 0xc5965
xorl %r13d, %r13d
cmpq $0x64, %r13
je 0x78966
andq $0x0, 0x48(%rsp)
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x88fce
cmpq 0x48(%rsp), %r13
je 0x78961
leaq 0x31d00(%rip), %rdi     # 0xaa647
leaq 0x4d9fe(%rip), %rsi     # 0xc634c
movq %rbp, %rdx
movq %r12, %rcx
movl $0x6f6, %r8d            # imm = 0x6F6
xorl %eax, %eax
callq 0x5ffac
incq %r13
jmp 0x7891d
callq 0x60504
testq %rax, %rax
je 0x78999
leaq 0x31cd0(%rip), %rdi     # 0xaa647
leaq 0x4d9de(%rip), %rsi     # 0xc635c
leaq 0x4d96d(%rip), %rdx     # 0xc62f2
leaq 0x4cfd9(%rip), %rcx     # 0xc5965
movl $0x6f9, %r8d            # imm = 0x6F9
xorl %eax, %eax
callq 0x5ffac
leaq 0x4d9da(%rip), %rsi     # 0xc637a
movq %r15, %rdi
xorl %eax, %eax
callq 0x89079
movabsq $0x690af8765815ec4d, %rcx # imm = 0x690AF8765815EC4D
cmpq %rcx, %rax
je 0x789e2
leaq 0x31c87(%rip), %rdi     # 0xaa647
leaq 0x4d9bc(%rip), %rsi     # 0xc6383
leaq 0x4d924(%rip), %rdx     # 0xc62f2
leaq 0x4cf90(%rip), %rcx     # 0xc5965
movl $0x6fb, %r8d            # imm = 0x6FB
xorl %eax, %eax
callq 0x5ffac
callq 0x60504
cmpq $0x1, %rax
je 0x78a16
leaq 0x31c53(%rip), %rdi     # 0xaa647
leaq 0x4d9a1(%rip), %rsi     # 0xc639c
leaq 0x4d8f0(%rip), %rdx     # 0xc62f2
leaq 0x4cf5c(%rip), %rcx     # 0xc5965
movl $0x6fc, %r8d            # imm = 0x6FC
xorl %eax, %eax
callq 0x5ffac
leaq 0x9f3db(%rip), %rax     # 0x117df8
movq (%rax), %rdi
callq 0x608fd
movq %r15, %rdi
callq 0x76540
movq 0x60(%rsp), %rdi
callq 0x717c7
movq 0x98(%rsp), %rax
jmp 0x78a57
movq 0x9f3b8(%rip), %rdi     # 0x117e00
callq 0x791e5
andq $0x0, 0x9f3ab(%rip)     # 0x117e00
xorl %eax, %eax
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq