// File: /workspace/github_c_makefile_star2_O0/hilbix[P]unbuffered/./tino/getopt.h
// Function: tino_getopt_init
static int
tino_getopt_init(TINO_VA_LIST list, struct tino_getopt_impl *q, int max)
{
  int		opts;
  const char	*global;

  /* Parse the first argument (global):
   * Version
   * Compilation date
   * Global options
   * Usage string
   */
  global	= TINO_VA_STR(list);
  q[-1].opt	= global;
  tino_getopt_tab(global, &global);
  tino_getopt_tab(global, &global);
  tino_getopt_arg(q, list, global);

  /* Parse all the possible arguments into an array
   */
  for (opts=0; ++opts<max; )
    {
      /* copy global settings
       */
      q[opts]	= q[0];
      if (!tino_getopt_arg(q+opts, list, NULL))
        break;
      /* Preset the variables
       */
      if (q[opts].NODEFAULT_var)
        {
          if (q[opts].DEFAULT_var)
            {
              /* If TINO_GETOPT_DEFAULT is set globally, this warning
               * would make no sense, as you can only suppress default
               * values using TINO_GETOPT_NODEFAULT.
               */
              if (!q[0].DEFAULT_var && q[opts].DEBUG_var)
                fprintf(stderr, "getopt: TINO_GETOPT_DEFAULT ignored on option %.*s, check parameters!\n", q[opts].optlen, q[opts].opt);
#if 0
              tino_getopt_var_set_varg(q+opts, &dummy, list);
#endif
            }
        }
      else if (q[opts].DEFAULT_var)
        tino_getopt_var_set_varg(q+opts, q[opts].varptr, list);
      else
        tino_getopt_var_set_0(q+opts);

      /* DEFAULT_PTR takes precedence
       */
      if (q[opts].DEFAULT_PTR_var)
        tino_getopt_var_set_ptr(q+opts, q[opts].DEFAULT_PTR_var);
      /* environment overrides any other setting
       */
      if (q[opts].DEFAULT_ENV_var && getenv(q[opts].DEFAULT_ENV_var))
        tino_getopt_var_set_arg_imp(q+opts, getenv(q[opts].DEFAULT_ENV_var), 0, 0);

      /* Get MIN and MAX (MIN_PTR and MAX_PTR already fetched)
       */
      if (q[opts].MIN_var)
        tino_getopt_var_set_varg(q+opts, &q[opts].min, list);
      if (q[opts].MAX_var)
        tino_getopt_var_set_varg(q+opts, &q[opts].max, list);

      /* for below
       */
      q[-1].TAR_var	|= q[opts].TAR_var;
      q[-1].POSIX_var	|= q[opts].POSIX_var;
      q[-1].PLUS_var	|= q[opts].PLUS_var;
      q[-1].DD_var	|= q[opts].DD_var;
      q[-1].LOPT_var	|= q[opts].LOPT_var;
      q[-1].LLOPT_var	|= q[opts].LLOPT_var;
    }

  if (opts==max)
    fprintf(stderr, "getopt: too many builtin options, increase TINO_GETOPT_MAXOPTS (=%d), continuing anyway\n", TINO_GETOPT_MAXOPTS);

  return opts;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, -0x70(%rax)
movq -0x20(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6080
movq -0x20(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x6080
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x6110
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
cmpl -0x14(%rbp), %eax
jge 0x4aeb
movq -0x10(%rbp), %rdi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movl $0xb0, %edx
callq 0x2230
movq -0x10(%rbp), %rdi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rdi
movq -0x8(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x6110
cmpq $0x0, %rax
jne 0x47d8
jmp 0x4aeb
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x50(%rax)
je 0x4875
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x54(%rax)
je 0x4873
movq -0x10(%rbp), %rax
cmpl $0x0, 0x54(%rax)
jne 0x4871
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x4c(%rax)
je 0x4871
movq 0xc7c3(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movl 0x48(%rax), %edx
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movq 0x40(%rax), %rcx
leaq 0x8962(%rip), %rsi      # 0xd1cc
movb $0x0, %al
callq 0x2200
jmp 0x4873
jmp 0x48d9
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x54(%rax)
je 0x48c0
movq -0x10(%rbp), %rdi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
movq -0x8(%rbp), %rdx
callq 0x75f0
jmp 0x48d7
movq -0x10(%rbp), %rdi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rdi
callq 0x79f0
jmp 0x48d9
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x30(%rax)
je 0x491f
movq -0x10(%rbp), %rdi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movq 0x30(%rax), %rsi
callq 0x7ac0
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x38(%rax)
je 0x499a
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movq 0x38(%rax), %rdi
callq 0x2030
cmpq $0x0, %rax
je 0x499a
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movq 0x38(%rax), %rdi
callq 0x2030
movq -0x28(%rbp), %rdi
movq %rax, %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x7be0
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x78(%rax)
je 0x49e3
movq -0x10(%rbp), %rdi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rsi
addq $0x10, %rsi
movq -0x8(%rbp), %rdx
callq 0x75f0
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x7c(%rax)
je 0x4a2c
movq -0x10(%rbp), %rdi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rdi
movq -0x10(%rbp), %rsi
movslq -0x18(%rbp), %rax
imulq $0xb0, %rax, %rax
addq %rax, %rsi
addq $0x18, %rsi
movq -0x8(%rbp), %rdx
callq 0x75f0
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movl 0x5c(%rax), %ecx
movq -0x10(%rbp), %rax
orl -0x54(%rax), %ecx
movl %ecx, -0x54(%rax)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movl 0x60(%rax), %ecx
movq -0x10(%rbp), %rax
orl -0x50(%rax), %ecx
movl %ecx, -0x50(%rax)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movl 0x64(%rax), %ecx
movq -0x10(%rbp), %rax
orl -0x4c(%rax), %ecx
movl %ecx, -0x4c(%rax)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movl 0x74(%rax), %ecx
movq -0x10(%rbp), %rax
orl -0x3c(%rax), %ecx
movl %ecx, -0x3c(%rax)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movl 0x68(%rax), %ecx
movq -0x10(%rbp), %rax
orl -0x48(%rax), %ecx
movl %ecx, -0x48(%rax)
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movl 0x6c(%rax), %ecx
movq -0x10(%rbp), %rax
orl -0x44(%rax), %ecx
movl %ecx, -0x44(%rax)
jmp 0x477c
movl -0x18(%rbp), %eax
cmpl -0x14(%rbp), %eax
jne 0x4b10
movq 0xc4fe(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
leaq 0x870f(%rip), %rsi      # 0xd213
movl $0x100, %edx            # imm = 0x100
movb $0x0, %al
callq 0x2200
movl -0x18(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)