// File: andrakis[P]alisp/stdlib/strings.cpp
// Function: ALisp::Stdlib::strings_join(std::vector<ALisp::Cell, std::allocator<ALisp::Cell>> const&)
Cell strings_join(const ListType &args) {
			RUNTIME_CHECK(args, runtime_check::has_two_arguments);
			StringType seperator = args[0].str();
			Cell items = args[1];
			auto b = items.cbegin(), e = items.cend();
			std::ostringstream s;
			// TODO: more efficiently
			for (auto it = b; it != e; ++it) {
				if (it != b)
					s << seperator;
				s << it->str();
			}
			return StringCell(s.str());
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq %rdi, -0x250(%rbp)
movq %rdi, %rax
movq %rax, -0x248(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x38620
testb $0x1, %al
jne 0x3871d
movb $0x1, -0x3d(%rbp)
movl $0x28, %edi
callq 0x8240
movq %rax, -0x258(%rbp)
leaq 0x1f8bf(%rip), %rsi     # 0x57f60
leaq -0x30(%rbp), %rdi
callq 0x8200
jmp 0x386ac
movq -0x258(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xd550
jmp 0x386be
movq -0x258(%rbp), %rdi
movb $0x0, -0x3d(%rbp)
leaq 0x1d698(%rip), %rsi     # 0x55d68
leaq -0x2b117(%rip), %rdx    # 0xd5c0
callq 0x8770
jmp 0x38949
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38704
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x8878
testb $0x1, -0x3d(%rbp)
jne 0x3870c
jmp 0x38718
movq -0x258(%rbp), %rdi
callq 0x8300
jmp 0x38940
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x15190
movq %rax, %rsi
leaq -0x60(%rbp), %rdi
callq 0xd4b0
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x15190
movq %rax, %rsi
leaq -0x68(%rbp), %rdi
callq 0xb900
jmp 0x38752
leaq -0x68(%rbp), %rdi
callq 0x139a0
movq %rax, -0x260(%rbp)
jmp 0x38764
movq -0x260(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x13ac0
movq %rax, -0x268(%rbp)
jmp 0x38781
movq -0x268(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x85f0
jmp 0x3879a
movq -0x70(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq -0x1f8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x12d80
testb $0x1, %al
jne 0x387be
jmp 0x38887
leaq -0x1f8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x12d80
testb $0x1, %al
jne 0x387d4
jmp 0x3881b
leaq -0x1f0(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x8390
jmp 0x387e6
jmp 0x3881b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38937
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3892e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38922
leaq -0x1f8(%rbp), %rdi
callq 0x13690
movq %rax, %rsi
leaq -0x218(%rbp), %rdi
callq 0xd4b0
jmp 0x38838
leaq -0x1f0(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x8390
jmp 0x3884d
leaq -0x218(%rbp), %rdi
callq 0x8878
leaq -0x1f8(%rbp), %rdi
callq 0x12e10
jmp 0x387a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x8878
jmp 0x38922
leaq -0x240(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x8430
jmp 0x3889c
leaq -0x220(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0xbe50
jmp 0x388b1
movq -0x250(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0xbd50
leaq -0x220(%rbp), %rdi
callq 0xbeb0
leaq -0x240(%rbp), %rdi
callq 0x8878
leaq -0x1f0(%rbp), %rdi
callq 0x8130
leaq -0x68(%rbp), %rdi
callq 0xb9d0
leaq -0x60(%rbp), %rdi
callq 0x8878
movq -0x248(%rbp), %rax
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x8878
leaq -0x1f0(%rbp), %rdi
callq 0x8130
leaq -0x68(%rbp), %rdi
callq 0xb9d0
leaq -0x60(%rbp), %rdi
callq 0x8878
movq -0x38(%rbp), %rdi
callq 0x87b0
nopl (%rax)