// File: /workspace/github_c_makefile_star2_O0/findstr[P]version-database/object.c
// Function: release_marshal
dr_t
release_marshal(struct release *r)
{
	dr_t d;
	int sz;
	uint8_t *ptr;
	sz =	4 +				//type
		sizeof(uint64_t) +		//time
		4 + r->prev->size +		//prev
		4 + r->tree->size +		//tree
		4 + r->ver->size +		//ver
		4 + r->note->size +		//note
		4 + r->finger->size;		//finger
	d = dr_new(sz, NULL);
	ptr = d->buf;
	*(uint32_t *)ptr = RELEASE;			ptr += 4;
	*(uint64_t *)ptr = r->time;			ptr += sizeof(uint64_t);
	*(uint32_t *)ptr = r->prev->size;		ptr += 4;
	memcpy(ptr, r->prev->buf, r->prev->size);	ptr += r->prev->size;
	*(uint32_t *)ptr = r->tree->size;		ptr += 4;
	memcpy(ptr, r->tree->buf, r->tree->size);	ptr += r->tree->size;
	*(uint32_t *)ptr = r->ver->size;		ptr += 4;
	memcpy(ptr, r->ver->buf, r->ver->size);		ptr += r->ver->size;
	*(uint32_t *)ptr = r->note->size;		ptr += 4;
	memcpy(ptr, r->note->buf, r->note->size);	ptr += r->note->size;
	*(uint32_t *)ptr = r->finger->size;		ptr += 4;
	memcpy(ptr, r->finger->buf, r->finger->size);
	return d;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rax), %rax
addq $0x10, %rax
addq $0x4, %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movslq 0x4(%rcx), %rcx
addq %rcx, %rax
addq $0x4, %rax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
movslq 0x4(%rcx), %rcx
addq %rcx, %rax
addq $0x4, %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
movslq 0x4(%rcx), %rcx
addq %rcx, %rax
addq $0x4, %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
movslq 0x4(%rcx), %rcx
addq %rcx, %rax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x6780
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl $0x204c4552, (%rax)     # imm = 0x204C4552
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rax), %rdx
callq 0x21d0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq 0x4(%rax), %rdx
callq 0x21d0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movslq 0x4(%rax), %rdx
callq 0x21d0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movslq 0x4(%rax), %rdx
callq 0x21d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
addq $0x8, %rsi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movslq 0x4(%rax), %rdx
callq 0x21d0
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)