// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_operator_f3_create_op
x_btcl_operator_f3* x_btcl_operator_f3_create_op( const sr_s* sr )
{
    // bcore_x_btcl_operator_f3.x:305:1
    
    if( sr_s_type(sr) == ((tp_t)(TYPEOF_x_btcl_functor_arg_uop_s)) )
    {BLM_INIT_LEVEL(1);
        const x_btcl_functor_arg_uop_s* src = ((const x_btcl_functor_arg_uop_s*)(sr->o));
        x_btcl_operator_f3_arg_nop_s* op = ((x_btcl_operator_f3_arg_nop_s*)BLM_LEVEL_T_PUSH(1,x_btcl_operator_f3_arg_nop_s,x_btcl_operator_f3_arg_nop_s_create()));
        op->index = src->index;
        BLM_RETURNV(x_btcl_operator_f3*,((x_btcl_operator_f3*)( ((x_btcl_operator_f3_arg_nop_s*)bcore_fork(op)))))
    BLM_DOWN();}
    
    if( sr_s_type(sr) == ((tp_t)(TYPEOF_x_btcl_operator_uop_s)) )
    {BLM_INIT_LEVEL(1);
        const x_btcl_operator_uop_s* src = ((const x_btcl_operator_uop_s*)(sr->o));
        x_btcl_operator_f3_uop_s* op = ((x_btcl_operator_f3_uop_s*)BLM_LEVEL_T_PUSH(1,x_btcl_operator_f3_uop_s,x_btcl_operator_f3_uop_s_create()));
        op->type = src->type;
        ASSERT( src->a.o );
        x_btcl_operator_f3_a_attach( &(op->a ), (x_btcl_operator_f3*)( x_btcl_operator_f3_create_op(&(src->a ))));
        x_source_point_s_copy(&(op->sp),&(src->sp ));
        BLM_RETURNV(x_btcl_operator_f3*,((x_btcl_operator_f3*)( ((x_btcl_operator_f3_uop_s*)bcore_fork(op)))))
    BLM_DOWN();}
    
    if( sr_s_type(sr) == ((tp_t)(TYPEOF_x_btcl_operator_bop_s)) )
    {BLM_INIT_LEVEL(1);
        const x_btcl_operator_bop_s* src = ((const x_btcl_operator_bop_s*)(sr->o));
        x_btcl_operator_f3_bop_s* op = ((x_btcl_operator_f3_bop_s*)BLM_LEVEL_T_PUSH(1,x_btcl_operator_f3_bop_s,x_btcl_operator_f3_bop_s_create()));
        op->type = src->type;
        ASSERT( src->a.o );
        ASSERT( src->b.o );
        x_btcl_operator_f3_a_attach( &(op->a ), (x_btcl_operator_f3*)( x_btcl_operator_f3_create_op(&(src->a ))));
        x_btcl_operator_f3_a_attach( &(op->b ), (x_btcl_operator_f3*)( x_btcl_operator_f3_create_op(&(src->b ))));
        x_source_point_s_copy(&(op->sp),&(src->sp ));
        BLM_RETURNV(x_btcl_operator_f3*,((x_btcl_operator_f3*)( ((x_btcl_operator_f3_bop_s*)bcore_fork(op)))))
    BLM_DOWN();}
    
    if( sr_s_type(sr) == ((tp_t)(TYPEOF_x_btcl_operator_top_s)) )
    {BLM_INIT_LEVEL(1);
        const x_btcl_operator_top_s* src = ((const x_btcl_operator_top_s*)(sr->o));
        x_btcl_operator_f3_top_s* op = ((x_btcl_operator_f3_top_s*)BLM_LEVEL_T_PUSH(1,x_btcl_operator_f3_top_s,x_btcl_operator_f3_top_s_create()));
        op->type = src->type;
        ASSERT( src->a.o );
        ASSERT( src->b.o );
        ASSERT( src->c.o );
        x_btcl_operator_f3_a_attach( &(op->a ), (x_btcl_operator_f3*)( x_btcl_operator_f3_create_op(&(src->a ))));
        x_btcl_operator_f3_a_attach( &(op->b ), (x_btcl_operator_f3*)( x_btcl_operator_f3_create_op(&(src->b ))));
        x_btcl_operator_f3_a_attach( &(op->c ), (x_btcl_operator_f3*)( x_btcl_operator_f3_create_op(&(src->c ))));
        x_source_point_s_copy(&(op->sp),&(src->sp ));
        BLM_RETURNV(x_btcl_operator_f3*,((x_btcl_operator_f3*)( ((x_btcl_operator_f3_top_s*)bcore_fork(op)))))
    BLM_DOWN();}
    
    if( sr_s_is_numeric(sr) )
    {BLM_INIT_LEVEL(1);
        x_btcl_operator_f3_const_nop_s* op = ((x_btcl_operator_f3_const_nop_s*)BLM_LEVEL_T_PUSH(1,x_btcl_operator_f3_const_nop_s,x_btcl_operator_f3_const_nop_s_create()));
        op->val = sr_s_to_f3(sr);
        BLM_RETURNV(x_btcl_operator_f3*,((x_btcl_operator_f3*)( ((x_btcl_operator_f3_const_nop_s*)bcore_fork(op)))))
    BLM_DOWN();}
    
    ERR_fa( "Cannot convert from type #<sc_t>", bnameof( sr_s_type(sr) ) );
    return  NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x45450
movabsq $0x27c97e6c217d8867, %rcx # imm = 0x27C97E6C217D8867
cmpq %rcx, %rax
jne 0x70632
leaq 0x141d9e(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x18(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xbfe80
movq -0x50(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x1c8(%rbp)
callq 0x6e670
movq -0x1c8(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $0x4f0240b228764b7, %rdx # imm = 0x4F0240B228764B7
callq 0xc01a0
movq %rax, -0x60(%rbp)
movq -0x58(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x60(%rbp), %rdi
callq 0x9d3d0
movq %rax, -0x68(%rbp)
movq -0x50(%rbp), %rdi
callq 0xc0720
movq -0x68(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x70cdd
movq -0x10(%rbp), %rdi
callq 0x45450
movabsq $-0x644282552f36739d, %rcx # imm = 0x9BBD7DAAD0C98C63
cmpq %rcx, %rax
jne 0x7079c
leaq 0x141cdb(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x70(%rbp)
leaq -0xa0(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0xbfe80
movq -0xa8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xb0(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x1d0(%rbp)
callq 0x6ea20
movq -0x1d0(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x838927f2963e13f, %rdx # imm = 0xF7C76D80D69C1EC1
callq 0xc01a0
movq %rax, -0xb8(%rbp)
movq -0xb0(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0xb8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0xb0(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x70721
leaq 0xc32a0(%rip), %rdi     # 0x13399f
leaq 0xd0894(%rip), %rsi     # 0x140f9a
leaq 0xd0896(%rip), %rdx     # 0x140fa3
leaq 0xce8fa(%rip), %rcx     # 0x13f00e
movl $0x1f0d, %r8d           # imm = 0x1F0D
movb $0x0, %al
callq 0x9cea0
movq -0xb8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1d8(%rbp)
movq -0xb0(%rbp), %rdi
addq $0x10, %rdi
callq 0x70560
movq -0x1d8(%rbp), %rdi
movq %rax, %rsi
callq 0x70cf0
movq -0xb8(%rbp), %rdi
addq $0x28, %rdi
movq -0xb0(%rbp), %rsi
addq $0x28, %rsi
callq 0x42ed0
movq -0xb8(%rbp), %rdi
callq 0x9d3d0
movq %rax, -0xc0(%rbp)
movq -0xa8(%rbp), %rdi
callq 0xc0720
movq -0xc0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x70cdd
movq -0x10(%rbp), %rdi
callq 0x45450
movabsq $0x3736f25bc629e322, %rcx # imm = 0x3736F25BC629E322
cmpq %rcx, %rax
jne 0x7097d
leaq 0x141b71(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0xc8(%rbp)
leaq -0xf8(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x100(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0xbfe80
movq -0x100(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x108(%rbp)
movq -0xc8(%rbp), %rax
movq %rax, -0x1e0(%rbp)
callq 0x6f1c0
movq -0x1e0(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $0x333d2a8358c8f554, %rdx # imm = 0x333D2A8358C8F554
callq 0xc01a0
movq %rax, -0x110(%rbp)
movq -0x108(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x110(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x108(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x7089a
leaq 0xc3127(%rip), %rdi     # 0x13399f
leaq 0xd071b(%rip), %rsi     # 0x140f9a
leaq 0xd071d(%rip), %rdx     # 0x140fa3
leaq 0xce781(%rip), %rcx     # 0x13f00e
movl $0x1f18, %r8d           # imm = 0x1F18
movb $0x0, %al
callq 0x9cea0
movq -0x108(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jne 0x708d1
leaq 0xc30f0(%rip), %rdi     # 0x13399f
leaq 0xd070a(%rip), %rsi     # 0x140fc0
leaq 0xd06e6(%rip), %rdx     # 0x140fa3
leaq 0xce74a(%rip), %rcx     # 0x13f00e
movl $0x1f19, %r8d           # imm = 0x1F19
movb $0x0, %al
callq 0x9cea0
movq -0x110(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1f0(%rbp)
movq -0x108(%rbp), %rdi
addq $0x10, %rdi
callq 0x70560
movq -0x1f0(%rbp), %rdi
movq %rax, %rsi
callq 0x70cf0
movq -0x110(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x1e8(%rbp)
movq -0x108(%rbp), %rdi
addq $0x28, %rdi
callq 0x70560
movq -0x1e8(%rbp), %rdi
movq %rax, %rsi
callq 0x70cf0
movq -0x110(%rbp), %rdi
addq $0x38, %rdi
movq -0x108(%rbp), %rsi
addq $0x40, %rsi
callq 0x42ed0
movq -0x110(%rbp), %rdi
callq 0x9d3d0
movq %rax, -0x118(%rbp)
movq -0x100(%rbp), %rdi
callq 0xc0720
movq -0x118(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x70cdd
movq -0x10(%rbp), %rdi
callq 0x45450
movabsq $0x25ea5fdb026468e0, %rcx # imm = 0x25EA5FDB026468E0
cmpq %rcx, %rax
jne 0x70bc6
leaq 0x141990(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x120(%rbp)
leaq -0x150(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x158(%rbp), %rdi
movq -0x120(%rbp), %rsi
callq 0xbfe80
movq -0x158(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x120(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x160(%rbp)
movq -0x120(%rbp), %rax
movq %rax, -0x1f8(%rbp)
callq 0x6fcb0
movq -0x1f8(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $0x46b1264e3350e9fe, %rdx # imm = 0x46B1264E3350E9FE
callq 0xc01a0
movq %rax, -0x168(%rbp)
movq -0x160(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x168(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x160(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x70a7b
leaq 0xc2f46(%rip), %rdi     # 0x13399f
leaq 0xd053a(%rip), %rsi     # 0x140f9a
leaq 0xd053c(%rip), %rdx     # 0x140fa3
leaq 0xce5a0(%rip), %rcx     # 0x13f00e
movl $0x1f25, %r8d           # imm = 0x1F25
movb $0x0, %al
callq 0x9cea0
movq -0x160(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jne 0x70ab2
leaq 0xc2f0f(%rip), %rdi     # 0x13399f
leaq 0xd0529(%rip), %rsi     # 0x140fc0
leaq 0xd0505(%rip), %rdx     # 0x140fa3
leaq 0xce569(%rip), %rcx     # 0x13f00e
movl $0x1f26, %r8d           # imm = 0x1F26
movb $0x0, %al
callq 0x9cea0
movq -0x160(%rbp), %rax
cmpq $0x0, 0x40(%rax)
jne 0x70ae9
leaq 0xc2ed8(%rip), %rdi     # 0x13399f
leaq 0xd04fb(%rip), %rsi     # 0x140fc9
leaq 0xd04ce(%rip), %rdx     # 0x140fa3
leaq 0xce532(%rip), %rcx     # 0x13f00e
movl $0x1f27, %r8d           # imm = 0x1F27
movb $0x0, %al
callq 0x9cea0
movq -0x168(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x210(%rbp)
movq -0x160(%rbp), %rdi
addq $0x10, %rdi
callq 0x70560
movq -0x210(%rbp), %rdi
movq %rax, %rsi
callq 0x70cf0
movq -0x168(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x208(%rbp)
movq -0x160(%rbp), %rdi
addq $0x28, %rdi
callq 0x70560
movq -0x208(%rbp), %rdi
movq %rax, %rsi
callq 0x70cf0
movq -0x168(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x200(%rbp)
movq -0x160(%rbp), %rdi
addq $0x40, %rdi
callq 0x70560
movq -0x200(%rbp), %rdi
movq %rax, %rsi
callq 0x70cf0
movq -0x168(%rbp), %rdi
addq $0x48, %rdi
movq -0x160(%rbp), %rsi
addq $0x58, %rsi
callq 0x42ed0
movq -0x168(%rbp), %rdi
callq 0x9d3d0
movq %rax, -0x170(%rbp)
movq -0x158(%rbp), %rdi
callq 0xc0720
movq -0x170(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x70cdd
movq -0x10(%rbp), %rdi
callq 0xfc220
testb $0x1, %al
jne 0x70bd8
jmp 0x70ca0
leaq 0x141751(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x178(%rbp)
leaq -0x1a8(%rbp), %rax
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rdi
movq -0x178(%rbp), %rsi
callq 0xbfe80
movq -0x1b0(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x178(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x178(%rbp), %rax
movq %rax, -0x218(%rbp)
callq 0x6e8c0
movq -0x218(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $0x50e723bc207f24dc, %rdx # imm = 0x50E723BC207F24DC
callq 0xc01a0
movq %rax, -0x1b8(%rbp)
movq -0x10(%rbp), %rdi
callq 0xfc680
movq -0x1b8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x1b8(%rbp), %rdi
callq 0x9d3d0
movq %rax, -0x1c0(%rbp)
movq -0x1b0(%rbp), %rdi
callq 0xc0720
movq -0x1c0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x70cdd
movq -0x10(%rbp), %rdi
callq 0x45450
movq %rax, %rdi
callq 0x44d00
movq %rax, %r8
leaq 0xd02e8(%rip), %rdi     # 0x140fa3
leaq 0xce34c(%rip), %rsi     # 0x13f00e
movl $0x1f36, %edx           # imm = 0x1F36
leaq 0xd0304(%rip), %rcx     # 0x140fd2
movb $0x0, %al
callq 0x9d0f0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
nopw (%rax,%rax)