// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_sources.c
// Function: string_get_context
static void string_get_context( const bcore_source_string_s* o, bcore_source_context_s* context )
{
    if( o->parent )
    {
        s3_t index = bcore_source_chain_s_get_index( o->parent );
        context->index = index;

        if( o->parent->data[ 0 ] && ( *( aware_t* )o->parent->data[ 0 ] ) == TYPEOF_bcore_source_file_s )
        {
            bcore_source_file_s* fo = o->parent->data[ 0 ];
            st_s_attach( &context->file_path, st_s_create_sc( bcore_source_file_s_get_name( fo ) ) );
            st_s_attach( &context->txt_context, st_s_create() );
            uz_t line, col;
            bcore_source_file_s_get_line_col_context( fo, index, &line, &col,context->txt_context );
            context->line = line;
            context->col = col;
        }
    }
    else
    {
        uz_t index = o->index;
        context->index = index;
        st_s_attach( &context->txt_context, st_s_show_line_context( o->string, o->index ) );
        context->line = st_s_lineof( o->string, o->index );
        context->col  = st_s_colof( o->string, o->index );
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0xcff89
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0xcb600
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
cmpq $0x0, (%rax)
je 0xcff84
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movabsq $0x766eac77ec0f2a97, %rcx # imm = 0x766EAC77EC0F2A97
cmpq %rcx, (%rax)
jne 0xcff84
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x48(%rbp)
movq -0x20(%rbp), %rdi
callq 0xcc8a0
movq %rax, %rdi
callq 0xff550
movq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xcfbf0
movq -0x10(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x40(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x40(%rbp), %rdi
movq %rax, %rsi
callq 0xcfbf0
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %r8
leaq -0x28(%rbp), %rdx
leaq -0x30(%rbp), %rcx
callq 0xccc10
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x20(%rax)
jmp 0xd000e
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x101d20
movq -0x50(%rbp), %rdi
movq %rax, %rsi
callq 0xcfbf0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x1018c0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x1018f0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x20(%rax)
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)