// File: /workspace/github_c_makefile_star2_O0/bobrippling[P]tim/cmds.c
// Function: c_t
bool c_t(int argc, char **argv, bool force, struct range *range)
{
	if(argc != 2){
		ui_err("Usage: %s address", *argv);
		return false;
	}

	struct range range_store;
	int lno;
	if(!copy_move_common(argc, argv, &range, &range_store, &lno))
		return false;

	buffer_t *const b = windows_cur()->buf;

	list_t *landing = list_seek(b->head, lno, false);
	if(!landing)
		NO_LINE(lno);

	/* copy the range */
	list_t *start = list_seek(b->head, range->start, false);
	if(!start)
		NO_LINE(range->start);

	list_t *end = list_seek(b->head, range->end, false);
	if(!end)
		NO_LINE(range->end);

	list_t *copied;
	/* break the bottom link temporarily for the copy */
	{
		list_t *after = end->next;
		end->next = NULL;

		copied = list_copy_deep(start, NULL);
		end->next = after;
	}

	if(lno == -1){
		/* special case - head */
		list_t *head = b->head;

		b->head = copied;
		list_t *i;
		for(i = b->head; i->next; i = i->next);

		i->next = head;
		if(head)
			head->prev = i;

	}else{
		list_t *next = landing->next;
		landing->next = copied;
		copied->prev = landing;

		list_t *i;
		for(i = landing; i->next; i = i->next);
		i->next = next;
		if(next)
			next->prev = i;
	}

	b->modified = true;

	ui_redraw();
	ui_cur_changed();

	return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movb %dl, %al
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq %rcx, -0x20(%rbp)
cmpl $0x2, -0x8(%rbp)
je 0xad01
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0xa879(%rip), %rdi      # 0x1556a
movb $0x0, %al
callq 0x4f30
movb $0x0, -0x1(%rbp)
jmp 0xaf04
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq -0x20(%rbp), %rdx
leaq -0x28(%rbp), %rcx
leaq -0x2c(%rbp), %r8
callq 0xabe0
testb $0x1, %al
jne 0xad26
movb $0x0, -0x1(%rbp)
jmp 0xaf04
callq 0x13c60
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rdi
movl -0x2c(%rbp), %esi
xorl %edx, %edx
callq 0xcd50
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0xad6b
jmp 0xad51
movl -0x2c(%rbp), %esi
leaq 0xa7ff(%rip), %rdi      # 0x1555a
movb $0x0, %al
callq 0x4f30
movb $0x0, -0x1(%rbp)
jmp 0xaf04
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x20(%rbp), %rax
movl (%rax), %esi
xorl %edx, %edx
callq 0xcd50
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0xadaa
jmp 0xad8d
movq -0x20(%rbp), %rax
movl (%rax), %esi
leaq 0xa7c0(%rip), %rdi      # 0x1555a
movb $0x0, %al
callq 0x4f30
movb $0x0, -0x1(%rbp)
jmp 0xaf04
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x20(%rbp), %rax
movl 0x4(%rax), %esi
xorl %edx, %edx
callq 0xcd50
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
jne 0xadeb
jmp 0xadcd
movq -0x20(%rbp), %rax
movl 0x4(%rax), %esi
leaq 0xa77f(%rip), %rdi      # 0x1555a
movb $0x0, %al
callq 0x4f30
movb $0x0, -0x1(%rbp)
jmp 0xaf04
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x50(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x48(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xc710
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x18(%rax)
cmpl $-0x1, -0x2c(%rbp)
jne 0xae86
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x58(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xae65
jmp 0xae57
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0xae4a
movq -0x68(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x18(%rax)
cmpq $0x0, -0x68(%rbp)
je 0xae84
movq -0x70(%rbp), %rcx
movq -0x68(%rbp), %rax
movq %rcx, 0x20(%rax)
jmp 0xaeee
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x58(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x40(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x40(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xaecd
jmp 0xaebf
movq -0x80(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0xaeb2
movq -0x78(%rbp), %rcx
movq -0x80(%rbp), %rax
movq %rcx, 0x18(%rax)
cmpq $0x0, -0x78(%rbp)
je 0xaeec
movq -0x80(%rbp), %rcx
movq -0x78(%rbp), %rax
movq %rcx, 0x20(%rax)
jmp 0xaeee
movq -0x38(%rbp), %rax
movb $0x1, 0x39(%rax)
callq 0x4fd0
callq 0x5050
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)