// File: andrakis[P]alisp/stdlib/strings.cpp
// Function: ALisp::Stdlib::strings_split(std::vector<ALisp::Cell, std::allocator<ALisp::Cell>> const&)
Cell strings_split(const ListType &args) {
			RUNTIME_CHECK(args, runtime_check::has_two_arguments);
			std::vector<StringType> result;
			StringType seperator = args[0].str();
			StringType str = args[1].str();
			ListCell retvalue;
			if (seperator == "") {
				// No seperator given, just split every character
				for (auto it = str.cbegin(); it != str.cend(); ++it)
					retvalue.push(StringCell(*it));
			} else {
				char csep = seperator[0];
				TextUtils::Split(csep, result, str);
				// Convert vector of strings into correct ALisp cell
				for (auto it = result.cbegin(); it != result.cend(); ++it)
					retvalue.push(StringCell(*it));
			}
			return retvalue;
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x108(%rbp)
movq %rdi, %rax
movq %rax, -0x100(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x38620
testb $0x1, %al
jne 0x3830d
movb $0x1, -0x3d(%rbp)
movl $0x28, %edi
callq 0x8240
movq %rax, -0x110(%rbp)
leaq 0x1fccf(%rip), %rsi     # 0x57f60
leaq -0x30(%rbp), %rdi
callq 0x8200
jmp 0x3829c
movq -0x110(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xd550
jmp 0x382ae
movq -0x110(%rbp), %rdi
movb $0x0, -0x3d(%rbp)
leaq 0x1daa8(%rip), %rsi     # 0x55d68
leaq -0x2ad07(%rip), %rdx    # 0xd5c0
callq 0x8770
jmp 0x38619
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x382f4
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 0x382fc
jmp 0x38308
movq -0x110(%rbp), %rdi
callq 0x8300
jmp 0x38610
leaq -0x58(%rbp), %rdi
callq 0x38950
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x15190
movq %rax, %rsi
leaq -0x78(%rbp), %rdi
callq 0xd4b0
jmp 0x38331
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x15190
movq %rax, %rsi
leaq -0x98(%rbp), %rdi
callq 0xd4b0
jmp 0x38350
leaq -0xa0(%rbp), %rdi
callq 0x137c0
jmp 0x3835e
leaq 0x4812(%rip), %rsi      # 0x3cb77
leaq -0x78(%rbp), %rdi
callq 0xed90
movb %al, -0x111(%rbp)
jmp 0x38376
movb -0x111(%rbp), %al
testb $0x1, %al
jne 0x38385
jmp 0x38479
leaq -0x98(%rbp), %rdi
callq 0x81f0
movq %rax, -0xa8(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x80f0
movq %rax, -0xb0(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x38970
testb $0x1, %al
jne 0x383c7
jmp 0x38474
leaq -0xa8(%rbp), %rdi
callq 0x2d270
movsbl (%rax), %esi
leaq -0xb8(%rbp), %rdi
callq 0x16e70
jmp 0x383e4
leaq -0xa0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x13840
jmp 0x383f9
leaq -0xb8(%rbp), %rdi
callq 0xbeb0
leaq -0xa8(%rbp), %rdi
callq 0x389b0
jmp 0x38398
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38607
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x385fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x385f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x385e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xbeb0
jmp 0x385e6
jmp 0x38599
xorl %eax, %eax
movl %eax, %esi
leaq -0x78(%rbp), %rdi
callq 0x8860
movq %rax, -0x120(%rbp)
jmp 0x3848f
movq -0x120(%rbp), %rax
movb (%rax), %al
movb %al, -0xb9(%rbp)
movsbl -0xb9(%rbp), %edi
leaq -0x58(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x389d0
jmp 0x384b7
leaq -0x58(%rbp), %rdi
callq 0x38be0
movq %rax, -0xc8(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x38c50
movq %rax, -0xd0(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x38c10
testb $0x1, %al
jne 0x384f3
jmp 0x38597
leaq -0xc8(%rbp), %rdi
callq 0x38c80
movq %rax, %rsi
leaq -0xf8(%rbp), %rdi
callq 0x8200
jmp 0x38510
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0xbe50
jmp 0x38525
leaq -0xa0(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x13840
jmp 0x3853a
leaq -0xd8(%rbp), %rdi
callq 0xbeb0
leaq -0xf8(%rbp), %rdi
callq 0x8878
leaq -0xc8(%rbp), %rdi
callq 0x38ca0
jmp 0x384c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x38589
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xbeb0
leaq -0xf8(%rbp), %rdi
callq 0x8878
jmp 0x385e6
jmp 0x38599
movq -0x108(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0xbd50
leaq -0xa0(%rbp), %rdi
callq 0xbd80
leaq -0x98(%rbp), %rdi
callq 0x8878
leaq -0x78(%rbp), %rdi
callq 0x8878
leaq -0x58(%rbp), %rdi
callq 0x38cc0
movq -0x100(%rbp), %rax
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
leaq -0xa0(%rbp), %rdi
callq 0xbd80
leaq -0x98(%rbp), %rdi
callq 0x8878
leaq -0x78(%rbp), %rdi
callq 0x8878
leaq -0x58(%rbp), %rdi
callq 0x38cc0
movq -0x38(%rbp), %rdi
callq 0x87b0
nopl (%rax)