// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/misc/args.cpp
// Function: smooth::ArgumentsParser::ArgumentsParser(smooth::String const&)
S::ArgumentsParser::ArgumentsParser(const String &commandLine)
{
	String	 param;
	Bool	 quoted	= False;
	Bool	 first	= True;

	for (Int i = 0, j = 0; i <= commandLine.Length(); i++)
	{
		if ((commandLine[i] == ' ' && !quoted && commandLine[i - 1] != '\\') || i == commandLine.Length())
		{
			if (!param.Length()) continue;

			if (first) command = param;
			else	   args.Add(param);

			first = False;
			param = NIL;
			j     = 0;
		}
		else if (commandLine[i] == '\"')
		{
			quoted = !quoted;
		}
		else if (!(commandLine[i] == '\\' && commandLine[i + 1] == ' '))
		{
			param[j++] = commandLine[i];
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x58(%rbp)
movq %rdi, %rax
movq %rax, -0x60(%rbp)
xorl %esi, %esi
callq 0x5da90
movq -0x58(%rbp), %rdi
addq $0x18, %rdi
movq %rdi, -0x50(%rbp)
callq 0x74650
jmp 0xecc8c
leaq -0x38(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0xecc99
movb $0x0, -0x39(%rbp)
movb $0x1, -0x3a(%rbp)
movl $0x0, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movl -0x40(%rbp), %eax
movl %eax, -0x68(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5b800
movl %eax, -0x64(%rbp)
jmp 0xeccc3
movl -0x68(%rbp), %eax
movl -0x64(%rbp), %ecx
cmpl %ecx, %eax
jg 0xece88
movq -0x10(%rbp), %rdi
movl -0x40(%rbp), %esi
callq 0x5c900
movl %eax, -0x6c(%rbp)
jmp 0xecce2
movl -0x6c(%rbp), %eax
cmpl $0x20, %eax
jne 0xecd0b
testb $0x1, -0x39(%rbp)
jne 0xecd0b
movq -0x10(%rbp), %rdi
movl -0x40(%rbp), %esi
decl %esi
callq 0x5c900
movl %eax, -0x70(%rbp)
jmp 0xecd03
movl -0x70(%rbp), %eax
cmpl $0x5c, %eax
jne 0xecd2d
movl -0x40(%rbp), %eax
movl %eax, -0x78(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5b800
movl %eax, -0x74(%rbp)
jmp 0xecd1f
movl -0x78(%rbp), %eax
movl -0x74(%rbp), %ecx
cmpl %ecx, %eax
jne 0xecdcd
leaq -0x38(%rbp), %rdi
callq 0x5b800
movl %eax, -0x7c(%rbp)
jmp 0xecd3b
movl -0x7c(%rbp), %eax
cmpl $0x0, %eax
jne 0xecd84
jmp 0xece7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xecea3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0xece9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5df00
jmp 0xece9a
testb $0x1, -0x3a(%rbp)
je 0xecd9b
movq -0x60(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x59760
jmp 0xecd99
jmp 0xecdb0
movq -0x60(%rbp), %rdi
addq $0x18, %rdi
leaq -0x38(%rbp), %rsi
callq 0x74750
jmp 0xecdae
jmp 0xecdb0
movb $0x0, -0x3a(%rbp)
leaq -0x38(%rbp), %rdi
xorl %esi, %esi
callq 0x5c1e0
jmp 0xecdc1
movl $0x0, -0x44(%rbp)
jmp 0xece78
movq -0x10(%rbp), %rdi
movl -0x40(%rbp), %esi
callq 0x5c900
movl %eax, -0x80(%rbp)
jmp 0xecdde
movl -0x80(%rbp), %eax
cmpl $0x22, %eax
jne 0xecdf5
movb -0x39(%rbp), %al
xorb $-0x1, %al
andb $0x1, %al
movb %al, -0x39(%rbp)
jmp 0xece76
movq -0x10(%rbp), %rdi
movl -0x40(%rbp), %esi
callq 0x5c900
movl %eax, -0x84(%rbp)
jmp 0xece09
movl -0x84(%rbp), %eax
cmpl $0x5c, %eax
jne 0xece35
movq -0x10(%rbp), %rdi
movl -0x40(%rbp), %esi
incl %esi
callq 0x5c900
movl %eax, -0x88(%rbp)
jmp 0xece2a
movl -0x88(%rbp), %eax
cmpl $0x20, %eax
je 0xece74
movq -0x10(%rbp), %rdi
movl -0x40(%rbp), %esi
callq 0x5c900
movl %eax, -0x8c(%rbp)
jmp 0xece49
movl -0x44(%rbp), %esi
movl %esi, %eax
incl %eax
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5d4e0
movq %rax, -0x98(%rbp)
jmp 0xece65
movq -0x98(%rbp), %rax
movl -0x8c(%rbp), %ecx
movl %ecx, (%rax)
jmp 0xece76
jmp 0xece78
jmp 0xece7a
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0xeccaf
leaq -0x38(%rbp), %rdi
callq 0x5df00
addq $0xa0, %rsp
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x74690
movq -0x58(%rbp), %rdi
callq 0x5df00
movq -0x18(%rbp), %rdi
callq 0x5b6b0
nopw %cs:(%rax,%rax)