// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: bcore_shell_op_default_enter_s_run
void bcore_shell_op_default_enter_s_run( bcore_shell_op_default_enter_s* o, bcore_shell* obj, const bcore_main_frame_s* main_frame, x_source* source, bcore_sink* sink, bcore_shell_control_s* control )
{
    // bcore_shell.h:532:9
    BLM_INIT_LEVEL(0);
    const x_stamp_path_s* path = x_stamp_path_s_parse(((x_stamp_path_s*)BLM_LEVEL_T_PUSH(0,x_stamp_path_s,x_stamp_path_s_create())),((x_source*)BLM_LEVEL_A_PUSH(0,x_source_create_from_st(&(o->path )))) );
    if( path->size == 0 )
    {
        bcore_sink_a_push_fa(sink,"Path '#<sc_t>' not found.\n", o->path.sc );
        BLM_RETURN();
    }
    sr_s sr;BLM_T_INIT_SPUSH(sr_s, &sr);;
    sr = x_stamp_path_s_get_sr_in(path,((const x_inst*)(obj )));
    bcore_shell* shell_o =((bcore_shell*)( sr.o));
    tp_t shell_t = sr_s_type(&(sr));
    
    if( shell_o )
    {BLM_INIT_LEVEL(1);
        if( !x_stamp_t_is_aware(shell_t ) )
        {
            bcore_sink_a_push_fa(sink,"Selected object '#<sc_t>' is oblivious. Cannot enter.\n", bnameof( shell_t ) );
            BLM_RETURN();
        }
    
        bcore_shell_control_s* control_child = ((bcore_shell_control_s*)BLM_LEVEL_T_PUSH(1,bcore_shell_control_s,bcore_shell_control_s_spawn(control)));
        if( control_child->path.size ) st_s_push_sc(&(control_child->path),"|" );
        st_s_push_st(&(control_child->path),&(o->path ));
        x_source_a_attach( &(control_child->source ), (x_source*)( ((x_source*)bcore_fork(source))));
        x_sink_a_attach( &(control_child->sink ), (x_sink*)( ((bcore_sink*)bcore_fork(sink))));
        BLM_TRY_EXIT(bcore_shell_loop(shell_o,main_frame, control_child ))
    BLM_DOWN();}
    else
    {
        bcore_sink_a_push_fa(sink,"Path '#<sc_t>' not found.\n", o->path.sc );
    }
    BLM_DOWN();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
leaq 0x1652e6(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x38(%rbp)
leaq -0x68(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xbfe80
movq -0x70(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x38(%rbp), %rax
movq %rax, -0x120(%rbp)
callq 0x44b10
movq -0x120(%rbp), %rdi
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %esi
movabsq $-0x74dceedd59a2bd6f, %rdx # imm = 0x8B231122A65D4291
callq 0xc01a0
movq %rax, -0x110(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x4c110
movq -0x118(%rbp), %rdi
movq %rax, %rdx
xorl %eax, %eax
movl %eax, %esi
callq 0xc0500
movq -0x110(%rbp), %rdi
movq %rax, %rsi
callq 0x44d20
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x4d11f
movq -0x28(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0xf23cc(%rip), %rsi     # 0x13f4d6
movb $0x0, %al
callq 0xf0e20
movq -0x70(%rbp), %rdi
callq 0xc0720
jmp 0x4d391
leaq -0x90(%rbp), %rdi
callq 0xfbe40
movq -0x38(%rbp), %rdi
movabsq $0x79b76918ff0af12a, %rsi # imm = 0x79B76918FF0AF12A
leaq -0x90(%rbp), %rdx
callq 0xc0220
movq -0x78(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
callq 0x46980
movq -0xa8(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x45450
movq %rax, -0xb8(%rbp)
cmpq $0x0, -0xb0(%rbp)
je 0x4d36e
movq -0x70(%rbp), %rax
movq %rax, -0xc0(%rbp)
leaq -0xf0(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
callq 0xbfe80
movq -0xf8(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0xb8(%rbp), %rdi
callq 0x42da0
testb $0x1, %al
jne 0x4d248
movq -0x28(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0xb8(%rbp), %rdi
callq 0x44d00
movq -0x128(%rbp), %rdi
movq %rax, %rdx
leaq 0xf22c1(%rip), %rsi     # 0x13f4f1
movb $0x0, %al
callq 0xf0e20
movq -0xf8(%rbp), %rdi
callq 0xc0720
jmp 0x4d391
movq -0xc0(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x30(%rbp), %rdi
callq 0x4d3a0
movq -0x130(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $0x65568789b6f2bdaf, %rdx # imm = 0x65568789B6F2BDAF
callq 0xc01a0
movq %rax, -0x100(%rbp)
movq -0x100(%rbp), %rax
cmpq $0x0, 0xa0(%rax)
je 0x4d2af
movq -0x100(%rbp), %rdi
addq $0x90, %rdi
leaq 0xe6902(%rip), %rsi     # 0x133bac
callq 0x100040
movq -0x100(%rbp), %rdi
addq $0x90, %rdi
movq -0x8(%rbp), %rsi
addq $0x8, %rsi
callq 0xffe20
movq -0x100(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x140(%rbp)
movq -0x20(%rbp), %rdi
callq 0x9d3d0
movq -0x140(%rbp), %rdi
movq %rax, %rsi
callq 0x4bf60
movq -0x100(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x138(%rbp)
movq -0x28(%rbp), %rdi
callq 0x9d3d0
movq -0x138(%rbp), %rdi
movq %rax, %rsi
callq 0x4bfc0
movq -0xb0(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x100(%rbp), %rdx
callq 0x4bad0
movq %rax, -0x108(%rbp)
cmpq $0x0, -0x108(%rbp)
je 0x4d360
movq -0xf8(%rbp), %rdi
callq 0xc0720
movq -0x108(%rbp), %rax
movl %eax, %edi
callq 0x425e0
leaq -0xf8(%rbp), %rdi
callq 0xc06e0
jmp 0x4d388
movq -0x28(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0xf2155(%rip), %rsi     # 0x13f4d6
movb $0x0, %al
callq 0xf0e20
leaq -0x70(%rbp), %rdi
callq 0xc06e0
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
nopw (%rax,%rax)