// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_arr.c
// Function: bcore_arr_st_s_table_to_sink
void bcore_arr_st_s_table_to_sink( const bcore_arr_st_s* o, sz_t rows, sz_t cols, bcore_sink* sink )
{
    rows = ( rows < 0 ) ? ( ( cols > 0 ) ? o->size / cols : o->size ) : rows;
    cols = ( cols < 0 ) ? ( ( rows > 0 ) ? o->size / rows : o->size ) : cols;
    rows = ( cols * rows > o->size ) ? o->size / cols : rows;

    bcore_arr_sz_s* col_sz = bcore_arr_sz_s_create();
    bcore_arr_sz_s_fill( col_sz, cols, 0 );

    for( sz_t i = 0; i < o->size; i++ )
    {
        sz_t size = o->data[ i ] ? o->data[ i ]->size : 0;
        col_sz->data[ i % cols ] = sz_max( col_sz->data[ i % cols ], size );
    }

    for( sz_t i = 0; i < o->size; i++ )
    {
        sz_t size = o->data[ i ] ? o->data[ i ]->size : 0;
        sc_t sc = o->data[ i ] ? o->data[ i ]->sc : "";
        if( ( i + 1 ) % cols == 0 )
        {
            bcore_sink_a_push_fa( sink, "#<sc_t>\n", sc );
        }
        else
        {
            bcore_sink_a_push_fa( sink, "#<sc_t>#rn{ }", sc, col_sz->data[ i % cols ] - size );
        }
    }

    bcore_arr_sz_s_discard( col_sz );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
jge 0x966b5
cmpq $0x0, -0x18(%rbp)
jle 0x9669f
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq -0x18(%rbp)
movq %rax, -0x58(%rbp)
jmp 0x966ab
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x966bd
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x18(%rbp)
jge 0x966ff
cmpq $0x0, -0x10(%rbp)
jle 0x966e9
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq -0x10(%rbp)
movq %rax, -0x68(%rbp)
jmp 0x966f5
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x70(%rbp)
jmp 0x96707
movq -0x18(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
imulq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x96738
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq -0x18(%rbp)
movq %rax, -0x78(%rbp)
jmp 0x96740
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x10(%rbp)
callq 0x8ea70
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x8ec00
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x9681e
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x967a9
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x10(%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0x967b1
xorl %eax, %eax
movq %rax, -0x80(%rbp)
jmp 0x967b1
movq -0x80(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x90(%rbp)
movq -0x30(%rbp), %rax
cqto
idivq -0x18(%rbp)
movq -0x90(%rbp), %rax
movq (%rax,%rdx,8), %rdi
movq -0x38(%rbp), %rsi
callq 0x96970
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x30(%rbp), %rax
cqto
idivq -0x18(%rbp)
movq -0x88(%rbp), %rax
movq %rcx, (%rax,%rdx,8)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x9676a
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x96957
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x40(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x96868
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x10(%rax), %rax
movq %rax, -0x98(%rbp)
jmp 0x96873
xorl %eax, %eax
movq %rax, -0x98(%rbp)
jmp 0x96873
movq -0x98(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x40(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x968ae
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa0(%rbp)
jmp 0x968be
leaq 0xbc16d(%rip), %rax     # 0x152a22
movq %rax, -0xa0(%rbp)
jmp 0x968be
movq -0xa0(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
cqto
idivq -0x18(%rbp)
cmpq $0x0, %rdx
jne 0x968f5
movq -0x20(%rbp), %rdi
movq -0x50(%rbp), %rdx
leaq 0xc1f25(%rip), %rsi     # 0x158811
movb $0x0, %al
callq 0xf0e20
jmp 0x96944
movq -0x20(%rbp), %rdi
movq -0x50(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xb0(%rbp)
movq -0x40(%rbp), %rax
cqto
idivq -0x18(%rbp)
movq -0xb0(%rbp), %rax
movq %rdx, %rcx
movq -0xa8(%rbp), %rdx
movq (%rax,%rcx,8), %rcx
subq -0x48(%rbp), %rcx
leaq 0xb5f2a(%rip), %rsi     # 0x14c867
movb $0x0, %al
callq 0xf0e20
jmp 0x96946
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x96826
movq -0x28(%rbp), %rdi
callq 0x8eaa0
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax)