// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore.xo.c
// Function: bcore_shell_op_parse_param
bl_t bcore_shell_op_parse_param( bcore_shell_op* o, x_source* source, bcore_sink* sink )
{
    // bcore_shell.h:126:5
    
    sz_t direct_index = 0;
    BLM_TRY_EXIT(x_source_parse_fa(source,"#skip' \t'" ))
    while( !x_source_eos(source) && !x_source_parse_bl(source,"#?([0]==';'||[0]=='\n')" ) )
    {
        x_stamp* stamp =((x_stamp*)( o));
    
        /// addressing parameter via name
        if( x_source_parse_bl(source,"#?([0]=='-'&&(([1]>='A'&&[1]<='Z')||([1]>='a'&&[1]<='z')))" ) )
        {BLM_INIT_LEVEL(2);
            st_s name;BLM_T_INIT_SPUSH(st_s, &name);;
            BLM_TRY_EXIT(x_source_parse_fa(source,"-#name", &name ))
            tp_t tp_name = btypeof( name.sc );
            sz_t index = 0;
            for(index = 0; index < x_stamp_size(stamp); index++ ) if( x_stamp_name(stamp,index ) == tp_name ) break;
            if( index == x_stamp_size(stamp) )
            {
                bcore_sink_a_push_fa(sink,"Invalid parameter '#<sc_t>'\n", name.sc );
                BLM_RETURNV(bl_t, false)
            }
            BLM_TRY_EXIT(x_source_parse_fa(source,"#skip' '" ))
    
            tp_t type = x_stamp_type(stamp,tp_name );
    
            switch( type )
            {
                case ((tp_t)(TYPEOF_bl_t)):
                {
                    if( x_source_parse_bl(source,"#?'true'" ) )
                    {
                        BLM_TRY_EXIT(x_stamp_set_sr(stamp,tp_name, sr_bl(true ) ))
                    }
                    else if( x_source_parse_bl(source,"#?'false'" ) )
                    {
                        BLM_TRY_EXIT(x_stamp_set_sr(stamp,tp_name, sr_bl(false ) ))
                    }
                    else
                    {
                        BLM_TRY_EXIT(x_stamp_set_sr(stamp,tp_name, sr_bl(true ) ))
                    }
                }
                break;
    
                case ((tp_t)(TYPEOF_sz_t)):
                case ((tp_t)(TYPEOF_uz_t)):
                case ((tp_t)(TYPEOF_f3_t)):
                {
                    f3_t v_f3 = 0;
                    BLM_TRY_EXIT(x_source_parse_fa(source,"#<f3_t*>", &v_f3 ))
                    BLM_TRY_EXIT(x_stamp_set_sr(stamp,tp_name, sr_f3(v_f3 ) ))
                }
                break;
    
                case ((tp_t)(TYPEOF_st_s)):
                {BLM_INIT_LEVEL(5);
                    st_s st;BLM_T_INIT_SPUSH(st_s, &st);;
                    if( x_source_parse_bl(source,"#=?'\"'" ) )
                    {
                        BLM_TRY_EXIT(x_source_parse_fa(source,"#string", (&(st)) ))
                    }
                    else
                    {
                        BLM_TRY_EXIT(x_source_parse_fa(source,"#name", (&(st)) ))
                    }
                    BLM_TRY_EXIT(x_stamp_set_sr(stamp,tp_name, sr_awc(((const x_inst*)(&( st )))) ))
                BLM_DOWN();}
                break;
    
                default:
                {
                    bcore_sink_a_push_fa(sink,"Parameter '#<sc_t>' is of unhandled type '#<sc_t>'.\n", name.sc, bnameof( type ) );
                    BLM_RETURNV(bl_t, false)
                }
            }
        BLM_DOWN();}
        else // addressing via index counter
        {BLM_INIT_LEVEL(2);
            if( direct_index >= x_stamp_size(stamp) )
            {
                bcore_sink_a_push_fa(sink,"Passing excess argument. This command has only #<sz_t> arguments.\n", x_stamp_size(stamp) );
                BLM_RETURNV(bl_t, false)
            }
    
            tp_t type = x_stamp_type_i(stamp,direct_index );
            x_inst* inst = ((x_inst*)BLM_LEVEL_TV_PUSH(2,type,x_inst_t_create(type )));
            if( x_btml_t_body_from_source(((x_btml*)( inst)),type, source ) )
            {
                bcore_error_pop_all_to_sink(sink );
                BLM_RETURNV(bl_t, false)
            }
    
            BLM_TRY_EXIT(x_stamp_set_sr_i(stamp,direct_index, sr_tsm(type, ((x_inst*)bcore_fork(inst)) ) ))
            direct_index++;
        BLM_DOWN();}
        BLM_TRY_EXIT(x_source_parse_fa(source,"#skip' \t'" ))
    }
    return  true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x350, %rsp            # imm = 0x350
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xf4334(%rip), %rsi     # 0x13f35e
movb $0x0, %al
callq 0x44f70
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x4b056
leaq 0x1672ed(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x30(%rbp), %rax
movl %eax, %edi
callq 0x425e0
jmp 0x4b058
movq -0x18(%rbp), %rdi
callq 0x44f20
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x279(%rbp)
jne 0x4b088
movq -0x18(%rbp), %rdi
leaq 0xf42ed(%rip), %rsi     # 0x13f368
callq 0x44f40
xorb $-0x1, %al
movb %al, -0x279(%rbp)
movb -0x279(%rbp), %al
testb $0x1, %al
jne 0x4b097
jmp 0x4ba4a
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xf42d5(%rip), %rsi     # 0x13f37f
callq 0x44f40
testb $0x1, %al
jne 0x4b0b8
jmp 0x4b7e1
leaq 0x167271(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x40(%rbp)
leaq -0x70(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0xbfe80
movq -0x78(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq $0x2, 0x10(%rax)
leaq -0x98(%rbp), %rdi
callq 0xfe150
movq -0x40(%rbp), %rdi
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
leaq -0x98(%rbp), %rdx
callq 0xc0220
movq -0x18(%rbp), %rdi
leaq 0xf429a(%rip), %rsi     # 0x13f3ba
leaq -0x98(%rbp), %rdx
movb $0x0, %al
callq 0x44f70
movq %rax, -0xa0(%rbp)
cmpq $0x0, -0xa0(%rbp)
je 0x4b156
movq -0x78(%rbp), %rdi
callq 0xc0720
movq -0xa0(%rbp), %rax
movl %eax, %edi
callq 0x425e0
movq -0x90(%rbp), %rdi
callq 0x45020
movq %rax, -0xa8(%rbp)
movq $0x0, -0xb0(%rbp)
movq $0x0, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4c380
movq %rax, %rcx
movq -0x288(%rbp), %rax
cmpq %rcx, %rax
jge 0x4b1d6
movq -0x38(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x4c3a0
cmpq -0xa8(%rbp), %rax
jne 0x4b1c0
jmp 0x4b1d6
jmp 0x4b1c2
movq -0xb0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb0(%rbp)
jmp 0x4b17f
movq -0xb0(%rbp), %rax
movq %rax, -0x290(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4c380
movq %rax, %rcx
movq -0x290(%rbp), %rax
cmpq %rcx, %rax
jne 0x4b235
movq -0x20(%rbp), %rdi
movq -0x90(%rbp), %rdx
leaq 0xf41b3(%rip), %rsi     # 0x13f3c1
movb $0x0, %al
callq 0xf0e20
movb $0x0, -0xb1(%rbp)
movq -0x78(%rbp), %rdi
callq 0xc0720
movb -0xb1(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4ba4e
movq -0x18(%rbp), %rdi
leaq 0xf419e(%rip), %rsi     # 0x13f3de
movb $0x0, %al
callq 0x44f70
movq %rax, -0xc0(%rbp)
cmpq $0x0, -0xc0(%rbp)
je 0x4b26f
movq -0x78(%rbp), %rdi
callq 0xc0720
movq -0xc0(%rbp), %rax
movl %eax, %edi
callq 0x425e0
movq -0x38(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x4c3d0
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
movq %rax, -0x298(%rbp)
movabsq $-0x5fc2af85f419929b, %rcx # imm = 0xA03D507A0BE66D65
subq %rcx, %rax
je 0x4b4ea
jmp 0x4b2a9
movq -0x298(%rbp), %rax
movabsq $-0x503db0e6e1c2e704, %rcx # imm = 0xAFC24F191E3D18FC
subq %rcx, %rax
je 0x4b5c3
jmp 0x4b2c5
movq -0x298(%rbp), %rax
movabsq $-0x4882601bdca6aefb, %rcx # imm = 0xB77D9FE423595105
subq %rcx, %rax
je 0x4b4ea
jmp 0x4b2e1
movq -0x298(%rbp), %rax
movabsq $-0x3f1363e6d8155aed, %rcx # imm = 0xC0EC9C1927EAA513
subq %rcx, %rax
je 0x4b4ea
jmp 0x4b2fd
movq -0x298(%rbp), %rax
movabsq $-0x3ac242643d9c35a8, %rcx # imm = 0xC53DBD9BC263CA58
subq %rcx, %rax
jne 0x4b76f
jmp 0x4b319
movq -0x18(%rbp), %rdi
leaq 0xf40c3(%rip), %rsi     # 0x13f3e7
callq 0x44f40
testb $0x1, %al
jne 0x4b332
jmp 0x4b3bc
movq -0x38(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x2a0(%rbp)
leaq -0xe8(%rbp), %rdi
movl $0x1, %esi
callq 0xfbdb0
movq -0x2a8(%rbp), %rdi
movq -0x2a0(%rbp), %rsi
leaq -0xe8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x4c400
movq %rax, -0xd0(%rbp)
cmpq $0x0, -0xd0(%rbp)
je 0x4b3b7
movq -0x78(%rbp), %rdi
callq 0xc0720
movq -0xd0(%rbp), %rax
movl %eax, %edi
callq 0x425e0
jmp 0x4b4e5
movq -0x18(%rbp), %rdi
leaq 0xf4029(%rip), %rsi     # 0x13f3f0
callq 0x44f40
testb $0x1, %al
jne 0x4b3d5
jmp 0x4b45c
movq -0x38(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x2b0(%rbp)
leaq -0x108(%rbp), %rdi
xorl %esi, %esi
callq 0xfbdb0
movq -0x2b8(%rbp), %rdi
movq -0x2b0(%rbp), %rsi
leaq -0x108(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x4c400
movq %rax, -0xf0(%rbp)
cmpq $0x0, -0xf0(%rbp)
je 0x4b457
movq -0x78(%rbp), %rdi
callq 0xc0720
movq -0xf0(%rbp), %rax
movl %eax, %edi
callq 0x425e0
jmp 0x4b4e3
movq -0x38(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x2c0(%rbp)
leaq -0x128(%rbp), %rdi
movl $0x1, %esi
callq 0xfbdb0
movq -0x2c8(%rbp), %rdi
movq -0x2c0(%rbp), %rsi
leaq -0x128(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x4c400
movq %rax, -0x110(%rbp)
cmpq $0x0, -0x110(%rbp)
je 0x4b4e1
movq -0x78(%rbp), %rdi
callq 0xc0720
movq -0x110(%rbp), %rax
movl %eax, %edi
callq 0x425e0
jmp 0x4b4e3
jmp 0x4b4e5
jmp 0x4b7d3
xorps %xmm0, %xmm0
movsd %xmm0, -0x130(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x1038cb(%rip), %rsi    # 0x14edcb
leaq -0x130(%rbp), %rdx
movb $0x0, %al
callq 0x44f70
movq %rax, -0x138(%rbp)
cmpq $0x0, -0x138(%rbp)
je 0x4b536
movq -0x78(%rbp), %rdi
callq 0xc0720
movq -0x138(%rbp), %rax
movl %eax, %edi
callq 0x425e0
movq -0x38(%rbp), %rax
movq %rax, -0x2d8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movsd -0x130(%rbp), %xmm0
leaq -0x158(%rbp), %rdi
callq 0xfbca0
movq -0x2d8(%rbp), %rdi
movq -0x2d0(%rbp), %rsi
leaq -0x158(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x4c400
movq %rax, -0x140(%rbp)
cmpq $0x0, -0x140(%rbp)
je 0x4b5be
movq -0x78(%rbp), %rdi
callq 0xc0720
movq -0x140(%rbp), %rax
movl %eax, %edi
callq 0x425e0
jmp 0x4b7d3
movq -0x78(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x190(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rdi
movq -0x160(%rbp), %rsi
callq 0xbfe80
movq -0x198(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
movq $0x5, 0x10(%rax)
leaq -0x1b8(%rbp), %rdi
callq 0xfe150
movq -0x160(%rbp), %rdi
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
leaq -0x1b8(%rbp), %rdx
callq 0xc0220
movq -0x18(%rbp), %rdi
leaq 0xf4438(%rip), %rsi     # 0x13fa78
callq 0x44f40
testb $0x1, %al
jne 0x4b64b
jmp 0x4b691
movq -0x18(%rbp), %rdi
leaq 0xe8f5b(%rip), %rsi     # 0x1345b1
leaq -0x1b8(%rbp), %rdx
movb $0x0, %al
callq 0x44f70
movq %rax, -0x1c0(%rbp)
cmpq $0x0, -0x1c0(%rbp)
je 0x4b68f
movq -0x198(%rbp), %rdi
callq 0xc0720
movq -0x1c0(%rbp), %rax
movl %eax, %edi
callq 0x425e0
jmp 0x4b6d7
movq -0x18(%rbp), %rdi
leaq 0x102ea8(%rip), %rsi    # 0x14e544
leaq -0x1b8(%rbp), %rdx
movb $0x0, %al
callq 0x44f70
movq %rax, -0x1c8(%rbp)
cmpq $0x0, -0x1c8(%rbp)
je 0x4b6d5
movq -0x198(%rbp), %rdi
callq 0xc0720
movq -0x1c8(%rbp), %rax
movl %eax, %edi
callq 0x425e0
jmp 0x4b6d7
movq -0x38(%rbp), %rax
movq %rax, -0x2e8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x2e0(%rbp)
leaq -0x1e8(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x43c40
movq -0x2e8(%rbp), %rdi
movq -0x2e0(%rbp), %rsi
leaq -0x1e8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x4c400
movq %rax, -0x1d0(%rbp)
cmpq $0x0, -0x1d0(%rbp)
je 0x4b761
movq -0x198(%rbp), %rdi
callq 0xc0720
movq -0x1d0(%rbp), %rax
movl %eax, %edi
callq 0x425e0
leaq -0x198(%rbp), %rdi
callq 0xc06e0
jmp 0x4b7d3
movq -0x20(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x2f0(%rbp)
movq -0xc8(%rbp), %rdi
callq 0x44d00
movq -0x2f8(%rbp), %rdi
movq -0x2f0(%rbp), %rdx
movq %rax, %rcx
leaq 0xf3c4e(%rip), %rsi     # 0x13f3fa
movb $0x0, %al
callq 0xf0e20
movb $0x0, -0x1e9(%rbp)
movq -0x78(%rbp), %rdi
callq 0xc0720
movb -0x1e9(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4ba4e
leaq -0x78(%rbp), %rdi
callq 0xc06e0
jmp 0x4ba05
leaq 0x166b48(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x1f8(%rbp)
leaq -0x228(%rbp), %rax
movq %rax, -0x230(%rbp)
movq -0x230(%rbp), %rdi
movq -0x1f8(%rbp), %rsi
callq 0xbfe80
movq -0x230(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movq -0x1f8(%rbp), %rax
movq $0x2, 0x10(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x300(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4c380
movq %rax, %rcx
movq -0x300(%rbp), %rax
cmpq %rcx, %rax
jl 0x4b8a2
movq -0x20(%rbp), %rax
movq %rax, -0x308(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4c380
movq -0x308(%rbp), %rdi
movq %rax, %rdx
leaq 0xf3bb7(%rip), %rsi     # 0x13f42f
movb $0x0, %al
callq 0xf0e20
movb $0x0, -0x231(%rbp)
movq -0x230(%rbp), %rdi
callq 0xc0720
movb -0x231(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4ba4e
movq -0x38(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x4c450
movq %rax, -0x240(%rbp)
movq -0x1f8(%rbp), %rax
movq %rax, -0x318(%rbp)
movq -0x240(%rbp), %rax
movq %rax, -0x310(%rbp)
movq -0x240(%rbp), %rdi
callq 0x4a7f0
movq -0x318(%rbp), %rdi
movq -0x310(%rbp), %rdx
movq %rax, %rcx
movl $0x2, %esi
callq 0xc01a0
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rdi
movq -0x240(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x4c480
cmpq $0x0, %rax
je 0x4b949
movq -0x20(%rbp), %rdi
callq 0x9e5f0
movb $0x0, -0x249(%rbp)
movq -0x230(%rbp), %rdi
callq 0xc0720
movb -0x249(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4ba4e
movq -0x38(%rbp), %rax
movq %rax, -0x328(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x320(%rbp)
movq -0x240(%rbp), %rax
movq %rax, -0x330(%rbp)
movq -0x248(%rbp), %rdi
callq 0x9d3d0
movq -0x330(%rbp), %rsi
movq %rax, %rdx
leaq -0x270(%rbp), %rdi
callq 0x4c500
movq -0x328(%rbp), %rdi
movq -0x320(%rbp), %rsi
leaq -0x270(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x4c4b0
movq %rax, -0x258(%rbp)
cmpq $0x0, -0x258(%rbp)
je 0x4b9ed
movq -0x230(%rbp), %rdi
callq 0xc0720
movq -0x258(%rbp), %rax
movl %eax, %edi
callq 0x425e0
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
leaq -0x230(%rbp), %rdi
callq 0xc06e0
movq -0x18(%rbp), %rdi
leaq 0xf394e(%rip), %rsi     # 0x13f35e
movb $0x0, %al
callq 0x44f70
movq %rax, -0x278(%rbp)
cmpq $0x0, -0x278(%rbp)
je 0x4ba45
leaq 0x166901(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x278(%rbp), %rax
movl %eax, %edi
callq 0x425e0
jmp 0x4b058
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x350, %rsp            # imm = 0x350
popq %rbp
retq
nopl (%rax)