// File: /workspace/github_c_makefile_star2_O0/lucvoo[P]sparse-dev/semind.c
// Function: r_member
static void r_member(unsigned mode, struct position *pos, struct symbol *sym, struct symbol *mem)
{
	static struct ident null;
	static char memname[1024];
	struct ident *ni, *si, *mi;
	struct ident *ctx = &null;
	struct index_record rec;

	update_stream();

	if (semind_streams[pos->stream].id == -1)
		return;

	if (!semind_include_local_syms && sym_is_local(sym))
		return;

	ni = built_in_ident("?");
	si = sym->ident ?: ni;
	/* mem == NULL means entire struct accessed */
	mi = mem ? (mem->ident ?: ni) : built_in_ident("*");

	if (dissect_ctx)
		ctx = dissect_ctx->ident;

	snprintf(memname, sizeof(memname), "%.*s.%.*s", si->len, si->name, mi->len, mi->name);

	rec.context = ctx->name;
	rec.ctx_len = ctx->len;
	rec.symbol  = memname;
	rec.sym_len = si->len + mi->len + 1;
	rec.kind    = 'm';
	rec.mode    = mode;
	rec.file    = semind_streams[pos->stream].id;
	rec.line    = pos->line;
	rec.col     = pos->pos;

	insert_record(&rec);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
leaq 0x813ef(%rip), %rax     # 0x94b90
movq %rax, -0x40(%rbp)
callq 0x13b20
movq 0x813b7(%rip), %rax     # 0x94b68
movq -0x10(%rbp), %rcx
movq (%rcx), %rcx
shrq $0x6, %rcx
andq $0x3fff, %rcx           # imm = 0x3FFF
movl %ecx, %ecx
cmpq $-0x1, (%rax,%rcx,8)
jne 0x137d1
jmp 0x13997
cmpl $0x0, 0x81350(%rip)     # 0x94b28
jne 0x137ee
movq -0x18(%rbp), %rdi
callq 0x13ed0
testb $0x1, %al
jne 0x137e9
jmp 0x137ee
jmp 0x13997
leaq 0x5e2c7(%rip), %rdi     # 0x71abc
callq 0x31c60
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x88(%rbp)
cmpq $0x0, %rax
je 0x13823
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x1382e
movq -0x28(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x13880
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x98(%rbp)
cmpq $0x0, %rax
je 0x13865
movq -0x98(%rbp), %rax
movq %rax, -0xa0(%rbp)
jmp 0x13870
movq -0x28(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0xa8(%rbp)
jmp 0x13893
leaq 0x5e553(%rip), %rdi     # 0x71dda
callq 0x31c60
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq 0x8176b(%rip), %rax     # 0x95010
cmpq $0x0, (%rax)
je 0x138bd
leaq 0x8175e(%rip), %rax     # 0x95010
movq (%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movzbl 0x10(%rax), %ecx
movq -0x30(%rbp), %r8
addq $0x12, %r8
movq -0x38(%rbp), %rax
movzbl 0x10(%rax), %r9d
movq -0x38(%rbp), %rax
addq $0x12, %rax
leaq 0x812cb(%rip), %rdi     # 0x94bb0
movl $0x400, %esi            # imm = 0x400
leaq 0x53c4d(%rip), %rdx     # 0x6753e
movq %rax, (%rsp)
movb $0x0, %al
callq 0x12090
movq -0x40(%rbp), %rax
addq $0x12, %rax
movq %rax, -0x80(%rbp)
movq -0x40(%rbp), %rax
movzbl 0x10(%rax), %eax
movl %eax, -0x78(%rbp)
leaq 0x81296(%rip), %rax     # 0x94bb0
movq %rax, -0x70(%rbp)
movq -0x30(%rbp), %rax
movzbl 0x10(%rax), %eax
movq -0x38(%rbp), %rcx
movzbl 0x10(%rcx), %ecx
addl %ecx, %eax
addl $0x1, %eax
movl %eax, -0x68(%rbp)
movl $0x6d, -0x64(%rbp)
movl -0x4(%rbp), %eax
movl %eax, -0x60(%rbp)
movq 0x8121e(%rip), %rax     # 0x94b68
movq -0x10(%rbp), %rcx
movq (%rcx), %rcx
shrq $0x6, %rcx
andq $0x3fff, %rcx           # imm = 0x3FFF
movl %ecx, %ecx
movq (%rax,%rcx,8), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
shrq $0x20, %rax
andq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
movl %eax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
shrq $0x16, %rax
andq $0x3ff, %rax            # imm = 0x3FF
movl %eax, -0x44(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x13f00
addq $0xb0, %rsp
popq %rbp
retq