// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/misc/string.cpp
// Function: smooth::String::Explode(smooth::String const&) const
S::Array<S::String> S::String::Explode(const String &delimiter) const
{
	/* Split string and add entries to array.
	 */
	Array<String>	 array;
	Int		 length	= Length();

	for (Int i = 0; i < length; )
	{
		Int	 index = SubString(i, length - i).Find(delimiter);
		String	 part;

		if (index == -1) part = SubString(i, length - i);
		else		 part = SubString(i, index);

		array.Add(part);

		i += part.Length() + delimiter.Length();
	}

	return array;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0xb8(%rbp)
movq %rdi, %rax
movq %rax, -0xb0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa8(%rbp)
movb $0x0, -0x19(%rbp)
callq 0x74650
movq -0xa8(%rbp), %rdi
callq 0x5b800
movl %eax, -0x9c(%rbp)
jmp 0xf5270
movl -0x9c(%rbp), %eax
movl %eax, -0x20(%rbp)
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0xf5427
movq -0xa8(%rbp), %rsi
movl -0x30(%rbp), %edx
movl -0x20(%rbp), %ecx
subl %edx, %ecx
leaq -0x50(%rbp), %rdi
callq 0x5dc20
jmp 0xf52a6
movq -0x18(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x5bd60
movl %eax, -0xbc(%rbp)
jmp 0xf52bb
leaq -0x50(%rbp), %rdi
callq 0x5df00
movl -0xbc(%rbp), %eax
movl %eax, -0x34(%rbp)
leaq -0x68(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0xf52da
cmpl $-0x1, -0x34(%rbp)
jne 0xf5371
movq -0xa8(%rbp), %rsi
movl -0x30(%rbp), %edx
movl -0x20(%rbp), %ecx
subl %edx, %ecx
leaq -0x80(%rbp), %rdi
callq 0x5dc20
jmp 0xf52fe
leaq -0x68(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x59760
jmp 0xf530d
leaq -0x80(%rbp), %rdi
callq 0x5df00
jmp 0xf53c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xf544d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5df00
jmp 0xf544d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xf541c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x5df00
jmp 0xf541c
movq -0xa8(%rbp), %rsi
movl -0x30(%rbp), %edx
movl -0x34(%rbp), %ecx
leaq -0x98(%rbp), %rdi
callq 0x5dc20
jmp 0xf538c
leaq -0x68(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x59760
jmp 0xf539e
leaq -0x98(%rbp), %rdi
callq 0x5df00
jmp 0xf53c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x5df00
jmp 0xf541c
movq -0xb8(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x74750
jmp 0xf53d8
leaq -0x68(%rbp), %rdi
callq 0x5b800
movl %eax, -0xc0(%rbp)
jmp 0xf53e9
movq -0x18(%rbp), %rdi
callq 0x5b800
movl %eax, -0xc4(%rbp)
jmp 0xf53fa
movl -0xc4(%rbp), %ecx
movl -0xc0(%rbp), %eax
addl %ecx, %eax
addl -0x30(%rbp), %eax
movl %eax, -0x30(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5df00
jmp 0xf5280
leaq -0x68(%rbp), %rdi
callq 0x5df00
jmp 0xf544d
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0xf543d
movq -0xb8(%rbp), %rdi
callq 0x74690
movq -0xb0(%rbp), %rax
addq $0xd0, %rsp
popq %rbp
retq
movq -0xb8(%rbp), %rdi
callq 0x74690
movq -0x28(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)