// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: x_btcl_frame_s_eval_op_functional
er_t x_btcl_frame_s_eval_op_functional( x_btcl_frame_s* o, x_source* source, sr_s* sr )
{
    // bcore_x_btcl_op.x:175:1
    
    if( sr_s_o_type(sr) == ((tp_t)(TYPEOF_x_btcl_function_s)) )
    {BLM_INIT_LEVEL(1);
        BLM_TRY(x_btcl_function_s_call_via_evaluation(((x_btcl_function_s*)BLM_LEVEL_T_PUSH(1,x_btcl_function_s,((x_btcl_function_s*)bcore_fork(((x_btcl_function_s*)(sr->o)))))),source, o, sr ))
    BLM_DOWN();}
    else if( sr_s_o_type(sr) == ((tp_t)(TYPEOF_x_btcl_block_s)) )
    {
        return  x_source_parse_error_fa(source,"Attempt to evaluate a block as function. Join the block with a signature to create a function.\n" );
    }
    else if( sr_s_o_type(sr) == ((tp_t)(TYPEOF_x_btcl_net_node_s)) )
    {
        if( !x_source_parse_bl(source," #=?')'" ) )
        {BLM_INIT_LEVEL(3);
            BLM_TRY(x_btcl_net_eval_node_modifier(x_btcl_frame_s_setup(((x_btcl_frame_s*)BLM_LEVEL_T_PUSH(3,x_btcl_frame_s,x_btcl_frame_s_create())),o ), source, sr ))
        BLM_DOWN();}
        x_btcl_clone_if_weak(sr );
    }
    else if( sr_s_o_type(sr) == ((tp_t)(TYPEOF_x_btcl_functor_s)) )
    {
        if( !x_source_parse_bl(source," #=?')'" ) )
        {BLM_INIT_LEVEL(3);
            BLM_TRY(x_btcl_functor_eval_modifier(x_btcl_frame_s_setup(((x_btcl_frame_s*)BLM_LEVEL_T_PUSH(3,x_btcl_frame_s,x_btcl_frame_s_create())),o ), source, sr ))
        BLM_DOWN();}
        x_btcl_clone_if_weak(sr );
    }
    else
    {
        if( !x_source_parse_bl(source," #=?')'" ) )
        {BLM_INIT_LEVEL(2);
            BLM_TRY(x_btcl_frame_s_eval_op_modifier(x_btcl_frame_s_setup(((x_btcl_frame_s*)BLM_LEVEL_T_PUSH(2,x_btcl_frame_s,x_btcl_frame_s_create())),o ),source, sr ))
        BLM_DOWN();}
        x_btcl_clone_if_weak(sr );
    }
    return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x52c00
movabsq $-0x19831b480b40fba0, %rcx # imm = 0xE67CE4B7F4BF0460
cmpq %rcx, %rax
jne 0x6386a
leaq 0x14eb76(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x28(%rbp)
leaq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0xbfe80
movq -0x60(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rdi
callq 0x9d3d0
movq -0x168(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x19831b480b40fba0, %rdx # imm = 0xE67CE4B7F4BF0460
callq 0xc01a0
movq %rax, %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x63c00
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
je 0x6385c
movq -0x68(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc0720
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x63be7
leaq -0x60(%rbp), %rdi
callq 0xc06e0
jmp 0x63bdf
movq -0x20(%rbp), %rdi
callq 0x52c00
movabsq $0x7313f38fdcab8a79, %rcx # imm = 0x7313F38FDCAB8A79
cmpq %rcx, %rax
jne 0x6389d
movq -0x18(%rbp), %rdi
leaq 0xdce3c(%rip), %rsi     # 0x1406c9
movb $0x0, %al
callq 0x53850
movq %rax, -0x8(%rbp)
jmp 0x63be7
movq -0x20(%rbp), %rdi
callq 0x52c00
movabsq $-0x1948b20c22462ae4, %rcx # imm = 0xE6B74DF3DDB9D51C
cmpq %rcx, %rax
jne 0x639b3
movq -0x18(%rbp), %rdi
leaq 0xcff84(%rip), %rsi     # 0x133848
callq 0x44f40
testb $0x1, %al
jne 0x639a5
leaq 0x14ea58(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x78(%rbp)
leaq -0xa8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rdi
movq -0x78(%rbp), %rsi
callq 0xbfe80
movq -0xb0(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq $0x3, 0x10(%rax)
movq -0x78(%rbp), %rax
movq %rax, -0x170(%rbp)
callq 0x5a570
movq -0x170(%rbp), %rdi
movq %rax, %rcx
movl $0x3, %esi
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
callq 0xc01a0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0x5a6a0
movq %rax, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x63ee0
movq %rax, -0xb8(%rbp)
cmpq $0x0, -0xb8(%rbp)
je 0x63999
movq -0xb8(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xb0(%rbp), %rdi
callq 0xc0720
movq -0xc0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x63be7
leaq -0xb0(%rbp), %rdi
callq 0xc06e0
movq -0x20(%rbp), %rdi
callq 0x5dec0
jmp 0x63bdb
movq -0x20(%rbp), %rdi
callq 0x52c00
movabsq $0x73f13731f3140e07, %rcx # imm = 0x73F13731F3140E07
cmpq %rcx, %rax
jne 0x63ad8
movq -0x18(%rbp), %rdi
leaq 0xcfe6e(%rip), %rsi     # 0x133848
callq 0x44f40
testb $0x1, %al
jne 0x63aca
leaq 0x14e942(%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 $0x3, 0x10(%rax)
movq -0xc8(%rbp), %rax
movq %rax, -0x178(%rbp)
callq 0x5a570
movq -0x178(%rbp), %rdi
movq %rax, %rcx
movl $0x3, %esi
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
callq 0xc01a0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0x5a6a0
movq %rax, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x64800
movq %rax, -0x108(%rbp)
cmpq $0x0, -0x108(%rbp)
je 0x63abe
movq -0x108(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x100(%rbp), %rdi
callq 0xc0720
movq -0x110(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x63be7
leaq -0x100(%rbp), %rdi
callq 0xc06e0
movq -0x20(%rbp), %rdi
callq 0x5dec0
jmp 0x63bd9
movq -0x18(%rbp), %rdi
leaq 0xcfd65(%rip), %rsi     # 0x133848
callq 0x44f40
testb $0x1, %al
jne 0x63bd0
leaq 0x14e839(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x118(%rbp)
leaq -0x148(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rdi
movq -0x118(%rbp), %rsi
callq 0xbfe80
movq -0x150(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rax
movq $0x2, 0x10(%rax)
movq -0x118(%rbp), %rax
movq %rax, -0x180(%rbp)
callq 0x5a570
movq -0x180(%rbp), %rdi
movq %rax, %rcx
movl $0x2, %esi
movabsq $-0x8f0f83b86d2b0b3, %rdx # imm = 0xF70F07C4792D4F4D
callq 0xc01a0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0x5a6a0
movq %rax, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x64aa0
movq %rax, -0x158(%rbp)
cmpq $0x0, -0x158(%rbp)
je 0x63bc4
movq -0x158(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x150(%rbp), %rdi
callq 0xc0720
movq -0x160(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x63be7
leaq -0x150(%rbp), %rdi
callq 0xc06e0
movq -0x20(%rbp), %rdi
callq 0x5dec0
jmp 0x63bdb
jmp 0x63bdd
jmp 0x63bdf
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
nopw %cs:(%rax,%rax)