// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]vlink/errors.c
// Function: error
void error(int errn,...)
/* prints errors and warnings */
{
  struct GlobalVars *gv = &gvars;
  va_list vl;
  char *errtype;
  int flags = errors[errn].flags;

  if ((flags == EF_WARNING) && gv->dontwarn)
    return;
  switch(flags) {
    case EF_WARNING:
      errtype = "Warning";
      break;
    case EF_ERROR:
      gv->returncode = EXIT_FAILURE;
      errtype = "Error";
      break;
    case EF_FATAL:
      gv->returncode = EXIT_FAILURE;
      errtype = "Fatal error";
      break;
    default:
      ierror("Illegal error type %d",flags);
      gv->returncode = EXIT_FAILURE;
      errtype = "";
      break;
  }

  /* print error message */
  fprintf(stderr,"%s %d: ",errtype,errn);
  va_start(vl,errn);
  vfprintf(stderr,errors[errn].txt,vl);
  va_end(vl);
  fprintf(stderr,".\n");

  switch(flags) {
    case EF_ERROR:
      /* check if maximum number of errors reached */
      if (++gv->errcnt >= gv->maxerrors) {
        gv->errcnt = 0;
        fprintf(stdout,"Do you want to continue (y/n) ? ");
        fflush(stdin);
        if (toupper((unsigned char)getchar()) == 'N')
          cleanup(gv);
      }
      /* avoid writing of output file in error case */
      gv->errflag = TRUE;
      break;
    case EF_FATAL:
      fprintf(stderr,"Aborting.\n");  /* fatal error aborts the linker */
      cleanup(gv);
      break;
  }
}

// Assembly:
subq $0x108, %rsp            # imm = 0x108
testb %al, %al
je 0x8c42
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
movq %r9, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movl %edi, 0x104(%rsp)
leaq 0x392ff(%rip), %rax     # 0x41f68
movq %rax, 0xf8(%rsp)
movslq 0x104(%rsp), %rcx
leaq 0x364f0(%rip), %rax     # 0x3f170
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, 0xd4(%rsp)
cmpl $0x1, 0xd4(%rsp)
jne 0x8cb1
movq 0xf8(%rsp), %rax
cmpl $0x0, 0x10c(%rax)
je 0x8cb1
jmp 0x8eeb
movl 0xd4(%rsp), %eax
movl %eax, 0x1c(%rsp)
subl $0x1, %eax
je 0x8cd9
jmp 0x8cc3
movl 0x1c(%rsp), %eax
subl $0x2, %eax
je 0x8cea
jmp 0x8cce
movl 0x1c(%rsp), %eax
subl $0x3, %eax
je 0x8d0d
jmp 0x8d30
leaq 0x2a6a0(%rip), %rax     # 0x33380
movq %rax, 0xd8(%rsp)
jmp 0x8d66
movq 0xf8(%rsp), %rax
movl $0x1, 0x11c(%rax)
leaq 0x2a685(%rip), %rax     # 0x33388
movq %rax, 0xd8(%rsp)
jmp 0x8d66
movq 0xf8(%rsp), %rax
movl $0x1, 0x11c(%rax)
leaq 0x2a668(%rip), %rax     # 0x3338e
movq %rax, 0xd8(%rsp)
jmp 0x8d66
movl 0xd4(%rsp), %esi
leaq 0x2a65c(%rip), %rdi     # 0x3339a
movb $0x0, %al
callq 0x8ae0
movq 0xf8(%rsp), %rax
movl $0x1, 0x11c(%rax)
leaq 0x2f609(%rip), %rax     # 0x38367
movq %rax, 0xd8(%rsp)
movq 0x3628b(%rip), %rax     # 0x3eff8
movq %rax, 0x8(%rsp)
movq (%rax), %rdi
movq 0xd8(%rsp), %rdx
movl 0x104(%rsp), %ecx
leaq 0x2a625(%rip), %rsi     # 0x333b0
xorl %eax, %eax
movb %al, 0x17(%rsp)
callq 0x5150
movq 0x8(%rsp), %rax
leaq 0x20(%rsp), %rcx
movq %rcx, 0xf0(%rsp)
leaq 0x110(%rsp), %rcx
movq %rcx, 0xe8(%rsp)
movl $0x30, 0xe4(%rsp)
movl $0x8, 0xe0(%rsp)
movq (%rax), %rdi
movslq 0x104(%rsp), %rax
shlq $0x4, %rax
leaq 0x3638c(%rip), %rcx     # 0x3f170
movq (%rax,%rcx), %rsi
leaq 0xe0(%rsp), %rdx
callq 0x5210
movq 0x8(%rsp), %rcx
movb 0x17(%rsp), %al
movq (%rcx), %rdi
leaq 0x2c645(%rip), %rsi     # 0x3544d
callq 0x5150
movl 0xd4(%rsp), %eax
movl %eax, 0x18(%rsp)
subl $0x2, %eax
je 0x8e31
jmp 0x8e1f
movl 0x18(%rsp), %eax
subl $0x3, %eax
je 0x8ec6
jmp 0x8eeb
movq 0xf8(%rsp), %rcx
movl 0x118(%rcx), %eax
addl $0x1, %eax
movl %eax, 0x118(%rcx)
movq 0xf8(%rsp), %rcx
cmpl 0x114(%rcx), %eax
jl 0x8eb2
movq 0xf8(%rsp), %rax
movl $0x0, 0x118(%rax)
movq 0x3615f(%rip), %rax     # 0x3efd0
movq (%rax), %rdi
leaq 0x2a53d(%rip), %rsi     # 0x333b8
movb $0x0, %al
callq 0x5150
movq 0x3614f(%rip), %rax     # 0x3efd8
movq (%rax), %rdi
callq 0x51b0
callq 0x5140
movzbl %al, %edi
callq 0x5070
cmpl $0x4e, %eax
jne 0x8eb0
movq 0xf8(%rsp), %rdi
callq 0x5370
jmp 0x8eb2
movq 0xf8(%rsp), %rax
movl $0x1, 0x110(%rax)
jmp 0x8eeb
movq 0x3612b(%rip), %rax     # 0x3eff8
movq (%rax), %rdi
leaq 0x2a49e(%rip), %rsi     # 0x33375
movb $0x0, %al
callq 0x5150
movq 0xf8(%rsp), %rdi
callq 0x5370
addq $0x108, %rsp            # imm = 0x108
retq
nopw %cs:(%rax,%rax)
nopl (%rax)