// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_spect_via.c
// Function: bcore_spect_via_create_zoo
sr_s bcore_spect_via_create_zoo( uz_t size )
{
    bcore_life_s* l = bcore_life_s_create();
                      bcore_flect_type_parse_sc( "vectors = aware { st_s => [ 2 ] data1; u3_t [ 3 ] data2; }" );
    tp_t t_animal   = bcore_flect_type_parse_sc( "animal = aware { st_s => st_type; tp_t => tp_type; f3_t weight; st_s => [] features; vectors vdata; }" );
    tp_t t_compound = bcore_flect_type_parse_sc( "compound = aware { u3_t id; uz_t area; animal => [] animals; }" );
    tp_t t_zoo      = bcore_flect_type_parse_sc( "zoo = aware { st_s => name; typed => [] compounds; }" );

    sr_s ret = bcore_inst_t_create_sr( t_zoo );
    sr_s zoo = sr_cw( ret );

    bcore_via_x_nset_sc( zoo, typeof( "name" ), "Mesamurial" );
    sr_s compounds = bcore_life_s_push_sr( l, bcore_via_x_nget( zoo, typeof( "compounds" ) ) );
    {
        sr_s compound = sr_cl( bcore_inst_t_create_sr( t_compound ), l );
        bcore_via_x_nset_u3( compound, typeof( "id" ), 254 );
        bcore_via_x_nset_uz( compound, typeof( "area" ), 1000 );
        sr_s animals = bcore_life_s_push_sr( l, bcore_via_x_nget( compound, typeof( "animals" ) ) );
        {
            sr_s bird = sr_cl( bcore_inst_t_create_sr( t_animal ), l );
            bcore_via_x_nset_sc( bird, typeof( "st_type" ), "Owl" );
            bcore_via_x_nset_tp( bird, typeof( "tp_type" ), bentypeof( "Owl" ) );  // name enrolled
            bcore_via_x_nset_f3( bird, typeof( "weight" ), 2.5 );
            sr_s features = sr_cl( bcore_via_x_nget( bird, typeof( "features" ) ), l );
            {
                bcore_array_x_push_sc( features, "Night active" );
                bcore_array_x_push_sc( features, "Can fly" );
            }
            bcore_array_x_push( animals, bird );
        }
        {
            sr_s bird = sr_cl( bcore_inst_t_create_sr( t_animal ), l );
            bcore_via_x_nset_sc( bird, typeof( "st_type" ), "Pidgin" );
            bcore_via_x_nset_tp( bird, typeof( "tp_type" ), btypeof( "Pidgin" ) ); // name not enrolled
            bcore_via_x_nset_f3( bird, typeof( "weight" ), 0.5 );
            sr_s features = sr_cl( bcore_via_x_nget( bird, typeof( "features" ) ), l );
            {
                bcore_array_x_push_sc( features, "Day active" );
                bcore_array_x_push_sc( features, "Can fly" );
            }
            bcore_array_x_push( animals, bird );
        }
        bcore_array_x_push( compounds, compound );
        bcore_array_x_push( compounds, sr_null() );
        bcore_array_x_push( compounds, compound );
        bcore_array_x_push( compounds, sr_null() );
        bcore_array_x_push( compounds, sr_null() );
        for( uz_t i = 5; i < size; i++ ) bcore_array_x_push( compounds, compound );
    }
    bcore_life_s_discard( l );

    return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
movq %rdi, -0x208(%rbp)
movq %rdi, -0x210(%rbp)
movq %rsi, -0x8(%rbp)
movb $0x0, %al
callq 0xbfdd0
movq %rax, -0x10(%rbp)
leaq 0x5dba6(%rip), %rdi     # 0x155cf5
callq 0xa7a50
leaq 0x5dbd5(%rip), %rdi     # 0x155d30
callq 0xa7a50
movq %rax, -0x18(%rbp)
leaq 0x5dc2b(%rip), %rdi     # 0x155d96
callq 0xa7a50
movq %rax, -0x20(%rbp)
leaq 0x5dc5a(%rip), %rdi     # 0x155dd5
callq 0xa7a50
movq -0x208(%rbp), %rdi
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rsi
callq 0xf5d80
movq -0x208(%rbp), %rax
leaq -0x40(%rbp), %rdi
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf6b40
leaq 0x58e74(%rip), %rdi     # 0x151038
callq 0xf8a60
movq %rax, %rdi
leaq -0x40(%rbp), %rax
leaq 0x5dc33(%rip), %rsi     # 0x155e0a
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf89b0
movq -0x10(%rbp), %rax
movq %rax, -0x200(%rbp)
leaq 0x5dc0e(%rip), %rdi     # 0x155e15
callq 0xf8a60
movq %rax, %rsi
leaq -0x70(%rbp), %rdi
leaq -0x40(%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 0xf8a80
movq -0x200(%rbp), %rsi
leaq -0x58(%rbp), %rdi
leaq -0x70(%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 0xc02c0
movq -0x20(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0xf5d80
movq -0x10(%rbp), %rsi
leaq -0x88(%rbp), %rdi
leaq -0xa0(%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 0xfb970
leaq 0x600d1(%rip), %rdi     # 0x15837a
callq 0xf8a60
movq %rax, %rdi
leaq -0x88(%rbp), %rax
movl $0xfe, %esi
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf8b20
leaq 0x5db3d(%rip), %rdi     # 0x155e1f
callq 0xf8a60
movq %rax, %rdi
leaq -0x88(%rbp), %rax
movl $0x3e8, %esi            # imm = 0x3E8
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf8bd0
movq -0x10(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq 0x5dafe(%rip), %rdi     # 0x155e24
callq 0xf8a60
movq %rax, %rsi
leaq -0xd0(%rbp), %rdi
leaq -0x88(%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 0xf8a80
movq -0x1f8(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
leaq -0xd0(%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 0xc02c0
movq -0x18(%rbp), %rsi
leaq -0x100(%rbp), %rdi
callq 0xf5d80
movq -0x10(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
leaq -0x100(%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 0xfb970
leaq 0x5da58(%rip), %rdi     # 0x155e2c
callq 0xf8a60
movq %rax, %rdi
leaq -0xe8(%rbp), %rax
leaq 0x5da4a(%rip), %rsi     # 0x155e34
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf89b0
leaq 0x5da29(%rip), %rdi     # 0x155e38
callq 0xf8a60
movq %rax, -0x1f0(%rbp)
leaq 0x5da12(%rip), %rdi     # 0x155e34
callq 0xf8d30
movq -0x1f0(%rbp), %rdi
movq %rax, %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 0xf8c80
leaq 0x5d9e3(%rip), %rdi     # 0x155e40
callq 0xf8a60
movq %rax, %rdi
leaq -0xe8(%rbp), %rax
movsd 0x5d68c(%rip), %xmm0    # 0x155b00
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf8d50
leaq 0x40e4c(%rip), %rdi     # 0x1392e5
callq 0xf8a60
movq %rax, %rsi
leaq -0x130(%rbp), %rdi
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 0xf8a80
movq -0x10(%rbp), %rsi
leaq -0x118(%rbp), %rdi
leaq -0x130(%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 0xfb970
leaq -0x118(%rbp), %rax
leaq 0x5d93c(%rip), %rdi     # 0x155e47
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf8e00
leaq -0x118(%rbp), %rax
leaq 0x5d91d(%rip), %rdi     # 0x155e54
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf8e00
leaq -0xb8(%rbp), %rcx
leaq -0xe8(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xf8e90
movq -0x18(%rbp), %rsi
leaq -0x160(%rbp), %rdi
callq 0xf5d80
movq -0x10(%rbp), %rsi
leaq -0x148(%rbp), %rdi
leaq -0x160(%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 0xfb970
leaq 0x5d84a(%rip), %rdi     # 0x155e2c
callq 0xf8a60
movq %rax, %rdi
leaq -0x148(%rbp), %rax
leaq 0x5d864(%rip), %rsi     # 0x155e5c
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf89b0
leaq 0x5d81b(%rip), %rdi     # 0x155e38
callq 0xf8a60
movq %rax, -0x1e8(%rbp)
leaq 0x5d82c(%rip), %rdi     # 0x155e5c
callq 0xf8a60
movq -0x1e8(%rbp), %rdi
movq %rax, %rsi
leaq -0x148(%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 0xf8c80
leaq 0x5d7d5(%rip), %rdi     # 0x155e40
callq 0xf8a60
movq %rax, %rdi
leaq -0x148(%rbp), %rax
movsd 0x5d476(%rip), %xmm0    # 0x155af8
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf8d50
leaq 0x40c3e(%rip), %rdi     # 0x1392e5
callq 0xf8a60
movq %rax, %rsi
leaq -0x190(%rbp), %rdi
leaq -0x148(%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 0xf8a80
movq -0x10(%rbp), %rsi
leaq -0x178(%rbp), %rdi
leaq -0x190(%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 0xfb970
leaq -0x178(%rbp), %rax
leaq 0x5d74a(%rip), %rdi     # 0x155e63
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf8e00
leaq -0x178(%rbp), %rax
leaq 0x5d70f(%rip), %rdi     # 0x155e54
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xf8e00
leaq -0xb8(%rbp), %rcx
leaq -0x148(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xf8e90
leaq -0x58(%rbp), %rcx
leaq -0x88(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xf8e90
leaq -0x1a8(%rbp), %rdi
callq 0xfa030
leaq -0x58(%rbp), %rcx
leaq -0x1a8(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xf8e90
leaq -0x58(%rbp), %rcx
leaq -0x88(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xf8e90
leaq -0x1c0(%rbp), %rdi
callq 0xfa030
leaq -0x58(%rbp), %rcx
leaq -0x1c0(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xf8e90
leaq -0x1d8(%rbp), %rdi
callq 0xfa030
leaq -0x58(%rbp), %rcx
leaq -0x1d8(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xf8e90
movq $0x5, -0x1e0(%rbp)
movq -0x1e0(%rbp), %rax
cmpq -0x8(%rbp), %rax
jae 0xf898b
leaq -0x58(%rbp), %rcx
leaq -0x88(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0xf8e90
movq -0x1e0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x1e0(%rbp)
jmp 0xf8927
movq -0x10(%rbp), %rdi
callq 0xbfe00
movq -0x210(%rbp), %rax
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq
nopw %cs:(%rax,%rax)