
_TEXT	segment para 'CODE'
_TEXT	ends
_DATA	segment para 'DATA'
_DATA	ends

extrn	collect_1:near

extrn	copy_string_to_graph:near
extrn	remove_forwarding_pointers_from_string:near

	_TEXT segment

public	__copy__string__to__graph

__copy__string__to__graph:
	push	rcx

	sub	rsp,8

	mov	r12,r9
	mov	r9,rsp
	lea	r8,[rdi+r15*8]
	mov	rdx,rdi
	mov	rbp,rsp
	sub	rsp,40
	or	rsp,8
	call	copy_string_to_graph
	mov	rsp,rbp
	mov	r9,r12

	test	rax,1
	je	__copy__string__to__graph_1

	mov	rcx,qword ptr 8[rsp]
	and	rax,-8

	mov	rdx,rax
	mov	rbp,rsp
	or	rsp,8
	mov	r12,r9
	sub	rsp,40
	call	remove_forwarding_pointers_from_string
	mov	rsp,rbp
	mov	r9,r12

	pop	rbx
	pop	rcx

	sub	rbx,rdi
	sar	rbx,3
	sub	r15,rbx
	call	collect_1
	add	r15,rbx
	jmp	__copy__string__to__graph

__copy__string__to__graph_1:
	mov	rbx,rdi
	mov	rdi,qword ptr [rsp]
	mov	rcx,rax
	sub	rbx,rdi
	sar	rbx,3
	add	r15,rbx
	add	rsp,16
	ret

_TEXT	ends

	end
