// File: JenTus[P]TCEM/src_TCEM/anyoption.cc
// Function: AnyOption::processCommandArgs()
void
AnyOption::processCommandArgs()
{
   	if( ! ( valueStoreOK() && CommandSet() )  )
	   return;
	   
	if( max_legal_args == 0 )
		max_legal_args = argc;
	new_argv = (int*) malloc( (max_legal_args+1) * sizeof(int) );
	for( int i = 1 ; i < argc ; i++ ){/* ignore first argv */
		if(  argv[i][0] == long_opt_prefix[0] && 
                     argv[i][1] == long_opt_prefix[1] ) { /* long GNU option */
			int match_at = parseGNU( argv[i]+2 ); /* skip -- */
			if( match_at >= 0 && i < argc-1 ) /* found match */
				setValue( options[match_at] , argv[++i] );
		}else if(  argv[i][0] ==  opt_prefix_char ) { /* POSIX char */
			if( POSIX() ){ 
				char ch =  parsePOSIX( argv[i]+1 );/* skip - */ 
				if( ch != '0' && i < argc-1 ) /* matching char */
					setValue( ch ,  argv[++i] );
			} else { /* treat it as GNU option with a - */
				int match_at = parseGNU( argv[i]+1 ); /* skip - */
				if( match_at >= 0 && i < argc-1 ) /* found match */
					setValue( options[match_at] , argv[++i] );
			}
		}else { /* not option but an argument keep index */
			if( new_argc < max_legal_args ){
                                new_argv[ new_argc ] = i ;
                                new_argc++;
                        }else{ /* ignore extra arguments */
                                printVerbose( "Ignoring extra argument: " );
				printVerbose( argv[i] );
				printVerbose( );
				printAutoUsage();
                        }
			printVerbose( "Unknown command argument option : " );
			printVerbose( argv[i] );
			printVerbose( );
			printAutoUsage();
		}
	}
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x20090
testb $0x1, %al
jne 0x2018e
jmp 0x2019c
movq 0x8(%rsp), %rdi
callq 0x1f5f0
testb $0x1, %al
jne 0x201a1
jmp 0x2045d
movq 0x8(%rsp), %rax
cmpl $0x0, 0x2c(%rax)
jne 0x201b6
movq 0x8(%rsp), %rax
movl (%rax), %ecx
movl %ecx, 0x2c(%rax)
movq 0x8(%rsp), %rax
movl 0x2c(%rax), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x2, %rdi
callq 0x44b0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movl $0x1, 0x1c(%rsp)
movq 0x8(%rsp), %rcx
movl 0x1c(%rsp), %eax
cmpl (%rcx), %eax
jge 0x2045d
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rax
movslq 0x1c(%rsp), %rdx
movq (%rax,%rdx,8), %rax
movsbl (%rax), %eax
movsbl 0xa0(%rcx), %ecx
cmpl %ecx, %eax
jne 0x202a1
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rax
movslq 0x1c(%rsp), %rdx
movq (%rax,%rdx,8), %rax
movsbl 0x1(%rax), %eax
movsbl 0xa1(%rcx), %ecx
cmpl %ecx, %eax
jne 0x202a1
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rax
movslq 0x1c(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x2, %rsi
callq 0x204f0
movl %eax, 0x18(%rsp)
cmpl $0x0, 0x18(%rsp)
jl 0x2029c
movq 0x8(%rsp), %rcx
movl 0x1c(%rsp), %eax
movl (%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x2029c
movq 0x8(%rsp), %rdi
movq 0x38(%rdi), %rax
movslq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movq 0x8(%rdi), %rax
movl 0x1c(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1c(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x206c0
jmp 0x2044b
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rax
movslq 0x1c(%rsp), %rdx
movq (%rax,%rdx,8), %rax
movsbl (%rax), %eax
movsbl 0x9f(%rcx), %ecx
cmpl %ecx, %eax
jne 0x203a5
movq 0x8(%rsp), %rdi
callq 0x1f650
testb $0x1, %al
jne 0x202d5
jmp 0x20339
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rax
movslq 0x1c(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x207b0
movb %al, 0x17(%rsp)
movsbl 0x17(%rsp), %eax
cmpl $0x30, %eax
je 0x20337
movq 0x8(%rsp), %rcx
movl 0x1c(%rsp), %eax
movl (%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x20337
movq 0x8(%rsp), %rdi
movb 0x17(%rsp), %al
movq 0x8(%rdi), %rcx
movl 0x1c(%rsp), %edx
addl $0x1, %edx
movl %edx, 0x1c(%rsp)
movslq %edx, %rdx
movq (%rcx,%rdx,8), %rdx
movsbl %al, %esi
callq 0x20930
jmp 0x203a0
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rax
movslq 0x1c(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x204f0
movl %eax, 0x10(%rsp)
cmpl $0x0, 0x10(%rsp)
jl 0x2039e
movq 0x8(%rsp), %rcx
movl 0x1c(%rsp), %eax
movl (%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x2039e
movq 0x8(%rsp), %rdi
movq 0x38(%rdi), %rax
movslq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movq 0x8(%rdi), %rax
movl 0x1c(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x1c(%rsp)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x206c0
jmp 0x203a0
jmp 0x20449
movq 0x8(%rsp), %rcx
movl 0x28(%rcx), %eax
cmpl 0x2c(%rcx), %eax
jge 0x203d1
movq 0x8(%rsp), %rax
movl 0x1c(%rsp), %esi
movq 0x20(%rax), %rcx
movslq 0x28(%rax), %rdx
movl %esi, (%rcx,%rdx,4)
movl 0x28(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x28(%rax)
jmp 0x2040d
movq 0x8(%rsp), %rdi
leaq 0x4410(%rip), %rsi      # 0x247ed
callq 0x1f6c0
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rax
movslq 0x1c(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x1f700
movq 0x8(%rsp), %rdi
callq 0x1f690
movq 0x8(%rsp), %rdi
callq 0x20a20
movq 0x8(%rsp), %rdi
leaq 0x43ee(%rip), %rsi      # 0x24807
callq 0x1f6c0
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rax
movslq 0x1c(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x1f700
movq 0x8(%rsp), %rdi
callq 0x1f690
movq 0x8(%rsp), %rdi
callq 0x20a20
jmp 0x2044b
jmp 0x2044d
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x201e1
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)