// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: getswitchvaluelist
static void
getswitchvaluelist(char *arg, int *pj, int list[], char delim[],
		   int limit, int *count, char *sep)

/* Decode an integer-list argument for a switch.
   arg is a pointer to a command-line argument.
   *pj is the index of the switch name
     Following the switch name is a list of up to limit non-negative
     integers separated by characters from the string *sep.  They are
     found and put into list[0...] and the number of them into *count.
     The character before each number is put into delim[0..].
     The final value of *pj is the last digit of the last value.
     Empty values are taken as 0.
   For example, if arg = "az12:45-98q" and *pj=2 (at the 'z'), then
   the result will be list[0]=12, list[1]=45, list[2]=98,
                      delim[0]='z', delim[1]=':', delim[2]='-',
   *count=3, and *pj=10 (at the 'q').
*/
{
    int j,val;
    int go;

    *count = 0;
    j = *pj + 1;

    go = TRUE;
    delim[0] = arg[*pj];

    while (go)
    {
	if (*count >= limit)
	{
	    fprintf(stderr,
		    ">E %s: too many values for -%c\n",cmdname,arg[*pj]);
	    exit(1);
	}

	val = 0;
	while (arg[j] >= '0' && arg[j] <= '9')
	{
	    val = val * 10 + (arg[j] - '0');
	    ++j;
	}
        list[(*count)++] = val;	

	if (arg[j] != '\0' && strchr(sep,arg[j]))
	    delim[*count] = arg[j++];
        else
            go = FALSE;
    }

    *pj = j - 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq %r9, -0x30(%rbp)
movq -0x30(%rbp), %rax
movl $0x0, (%rax)
movq -0x10(%rbp), %rax
movl (%rax), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
movl $0x1, -0x3c(%rbp)
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movb (%rax,%rcx), %cl
movq -0x20(%rbp), %rax
movb %cl, (%rax)
cmpl $0x0, -0x3c(%rbp)
je 0x6ad7
movq -0x30(%rbp), %rax
movl (%rax), %eax
cmpl -0x24(%rbp), %eax
jl 0x6a02
movq 0x35627(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x356e5(%rip), %rdx     # 0x3c0c0
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %ecx
leaq 0x317d1(%rip), %rsi     # 0x381c2
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
movl $0x0, -0x38(%rbp)
movq -0x8(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x30, %ecx
movb %al, -0x3d(%rbp)
jl 0x6a34
movq -0x8(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x39, %eax
setle %al
movb %al, -0x3d(%rbp)
movb -0x3d(%rbp), %al
testb $0x1, %al
jne 0x6a3d
jmp 0x6a60
imull $0xa, -0x38(%rbp), %eax
movq -0x8(%rbp), %rcx
movslq -0x34(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, -0x38(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x6a09
movl -0x38(%rbp), %edx
movq -0x18(%rbp), %rax
movq -0x30(%rbp), %rsi
movl (%rsi), %ecx
movl %ecx, %edi
addl $0x1, %edi
movl %edi, (%rsi)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x8(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x6acb
movq 0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq -0x34(%rbp), %rcx
movsbl (%rax,%rcx), %esi
callq 0x1040
cmpq $0x0, %rax
je 0x6acb
movq -0x8(%rbp), %rax
movl -0x34(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x34(%rbp)
movslq %ecx, %rcx
movb (%rax,%rcx), %dl
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movslq (%rcx), %rcx
movb %dl, (%rax,%rcx)
jmp 0x6ad2
movl $0x0, -0x3c(%rbp)
jmp 0x69b5
movl -0x34(%rbp), %ecx
subl $0x1, %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)