// File: /workspace/github_c_makefile_star2_O0/hilbix[P]unbuffered/./tino/getopt.h
// Function: tino_getopt_var_set_arg
static int
tino_getopt_var_set_arg(struct tino_getopt_impl *p, const char *arg, const char *next, int invert)
{
  int		n;
  const char	*s;

  n			= 1;
  p->DEFAULT_var	= 0;
  p->NODEFAULT_var	= 0;
  if (!arg || (!*arg && !p->DIRECT_var))
    {
      n		= 2;
      arg	= next;
      if (!arg)
        arg	= "";
      if (invert<0)
        invert	= 0;
    }
  else if ((p->LLOPT_var || p->LOPT_var || p->DD_var) && *arg)
    {
      /* Long options have --"long"=arg or --"long."arg or --"long arg"
       * (--"long" "arg" has !*arg).
       * --long above can be +long on PLUS LLOPT or -long on LOPT
       *
       * In case of PLUS_var on _FLAG we see invert==-1, in this case
       * (and only in this) the next character can be '+' to invert.
       */
      if (isalnum(p->opt[p->optlen-1]))	/* option ends on AlNum	*/
        {
          /* skip next character, which must be a separator	*/
          if (*arg++!='+')		/* keep invert on --long+ or +long+ (latter can't happen)	*/
            invert	= 0;
        }
      else if (invert<0 && *arg=='+')	/* --_long_+ or --long.+ or similar	*/
        arg++;
      else
        invert	= 0;
    }
  else
    invert	= 0;
  n	= tino_getopt_var_set_arg_imp(p, arg, n, invert);
  if (n<0 || !p->FN_var)
    return n;

  s	= p->FN_var(p->varptr, arg, p->opt, p->USER_var);
  if (!s)
    return n;

  if (*s)
    fprintf(stderr, "getopt: rejected option %.*s: %s\n", p->optlen, p->opt, s);
  return -2;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movl $0x1, -0x28(%rbp)
movq -0x10(%rbp), %rax
movl $0x0, 0x54(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x50(%rax)
cmpq $0x0, -0x18(%rbp)
je 0x94fe
movq -0x18(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9531
movq -0x10(%rbp), %rax
cmpl $0x0, 0x70(%rax)
jne 0x9531
movl $0x2, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x951f
leaq 0x3fd8(%rip), %rax      # 0xd4f3
movq %rax, -0x18(%rbp)
cmpl $0x0, -0x24(%rbp)
jge 0x952c
movl $0x0, -0x24(%rbp)
jmp 0x95e3
movq -0x10(%rbp), %rax
cmpl $0x0, 0x6c(%rax)
jne 0x9553
movq -0x10(%rbp), %rax
cmpl $0x0, 0x68(%rax)
jne 0x9553
movq -0x10(%rbp), %rax
cmpl $0x0, 0x74(%rax)
je 0x95da
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x95da
callq 0x2340
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x40(%rcx), %rcx
movq -0x10(%rbp), %rdx
movl 0x48(%rdx), %edx
subl $0x1, %edx
movslq %edx, %rdx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x95af
movq -0x18(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x18(%rbp)
movsbl (%rax), %eax
cmpl $0x2b, %eax
je 0x95ad
movl $0x0, -0x24(%rbp)
jmp 0x95d8
cmpl $0x0, -0x24(%rbp)
jge 0x95cf
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
jne 0x95cf
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x95d6
movl $0x0, -0x24(%rbp)
jmp 0x95d8
jmp 0x95e1
movl $0x0, -0x24(%rbp)
jmp 0x95e3
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x28(%rbp), %edx
movl -0x24(%rbp), %ecx
callq 0x7be0
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
jl 0x960d
movq -0x10(%rbp), %rax
cmpq $0x0, 0xa0(%rax)
jne 0x9615
movl -0x28(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x968f
movq -0x10(%rbp), %rax
movq 0xa0(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rcx
movq 0x40(%rcx), %rdx
movq -0x10(%rbp), %rcx
movq 0x98(%rcx), %rcx
callq *%rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x9654
movl -0x28(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x968f
movq -0x30(%rbp), %rax
cmpb $0x0, (%rax)
je 0x9688
movq 0x7994(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x48(%rax), %edx
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rcx
movq -0x30(%rbp), %r8
leaq 0x44f3(%rip), %rsi      # 0xdb74
movb $0x0, %al
callq 0x2200
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)