// File: /workspace/github_c_makefile_star2_O0/RodionGork[P]tinyscheme/scheme.c
// Function: Error_1
static pointer _Error_1(scheme * sc, const char *s, pointer a) {
  const char *str = s;
#if USE_ERROR_HOOK
  pointer x;
  pointer hdl = sc->ERROR_HOOK;
#endif

#if SHOW_ERROR_LINE
  char sbuf[AUXBUFF_SIZE];

  /* make sure error is not in REPL */
  if (sc->load_stack[sc->file_i].kind & port_file &&
      sc->load_stack[sc->file_i].rep.stdio.file != stdin) {
    int ln = sc->load_stack[sc->file_i].rep.stdio.curr_line;
    const char *fname = sc->load_stack[sc->file_i].rep.stdio.filename;

    /* should never happen */
    if (!fname)
      fname = "<unknown>";

    /* we started from 0 */
    ln++;
    snprintf(sbuf, AUXBUFF_SIZE, "(%s : %i) %s", fname, ln, s);

    str = (const char *) sbuf;
  }
#endif

#if USE_ERROR_HOOK
  x = find_slot_in_env(sc, sc->envir, hdl, 1);
  if (x != sc->NIL) {
    if (a != 0) {
      sc->code =
          cons(sc, cons(sc, sc->QUOTE, cons(sc, (a), sc->NIL)), sc->NIL);
    } else {
      sc->code = sc->NIL;
    }
    sc->code = cons(sc, mk_string(sc, str), sc->code);
    setimmutable(car(sc->code));
    sc->code = cons(sc, slot_value_in_env(x), sc->code);
    sc->op = (int) OP_EVAL;
    return sc->T;
  }
#endif

  if (a != 0) {
    sc->args = cons(sc, (a), sc->NIL);
  } else {
    sc->args = sc->NIL;
  }
  sc->args = cons(sc, mk_string(sc, str), sc->args);
  setimmutable(car(sc->args));
  sc->op = (int) OP_ERR0;
  return sc->T;
}

// Assembly:
subq $0x178, %rsp            # imm = 0x178
movq %rdi, 0x168(%rsp)
movq %rsi, 0x160(%rsp)
movq %rdx, 0x158(%rsp)
movq 0x160(%rsp), %rax
movq %rax, 0x150(%rsp)
movq 0x168(%rsp), %rax
movq 0x148(%rax), %rax
movq %rax, 0x140(%rsp)
movq 0x168(%rsp), %rax
addq $0x190, %rax            # imm = 0x190
movq 0x168(%rsp), %rcx
movslq 0xa90(%rcx), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movzbl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x12e3f
movq 0x168(%rsp), %rax
addq $0x190, %rax            # imm = 0x190
movq 0x168(%rsp), %rcx
movslq 0xa90(%rcx), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq 0x8248(%rip), %rcx      # 0x1afd0
cmpq (%rcx), %rax
je 0x12e3f
movq 0x168(%rsp), %rax
addq $0x190, %rax            # imm = 0x190
movq 0x168(%rsp), %rcx
movslq 0xa90(%rcx), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x14(%rax), %eax
movl %eax, 0x3c(%rsp)
movq 0x168(%rsp), %rax
addq $0x190, %rax            # imm = 0x190
movq 0x168(%rsp), %rcx
movslq 0xa90(%rcx), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x12dfd
leaq 0x51f5(%rip), %rax      # 0x17fed
movq %rax, 0x30(%rsp)
movl 0x3c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3c(%rsp)
leaq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rcx
movl 0x3c(%rsp), %r8d
movq 0x160(%rsp), %r9
movl $0x100, %esi            # imm = 0x100
leaq 0x51cc(%rip), %rdx      # 0x17ff7
movb $0x0, %al
callq 0x40c0
leaq 0x40(%rsp), %rax
movq %rax, 0x150(%rsp)
movq 0x168(%rsp), %rdi
movq 0x168(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x140(%rsp), %rdx
movl $0x1, %ecx
callq 0x7510
movq %rax, 0x148(%rsp)
movq 0x148(%rsp), %rax
movq 0x168(%rsp), %rcx
cmpq 0x90(%rcx), %rax
je 0x1301e
cmpq $0x0, 0x158(%rsp)
je 0x12f30
movq 0x168(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x168(%rsp), %rax
movq 0x118(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x168(%rsp), %rdi
movq 0x158(%rsp), %rsi
movq 0x168(%rsp), %rax
movq 0x90(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq %rax, %rdx
xorl %ecx, %ecx
callq 0x4950
movq 0x28(%rsp), %rdi
movq %rax, %rsi
movq 0x168(%rsp), %rax
movq 0x90(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, %rcx
movq 0x168(%rsp), %rax
movq %rcx, 0x40(%rax)
jmp 0x12f4b
movq 0x168(%rsp), %rax
movq 0x90(%rax), %rcx
movq 0x168(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x168(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x168(%rsp), %rdi
movq 0x150(%rsp), %rsi
callq 0x4bc0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
movq 0x168(%rsp), %rax
movq 0x40(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, %rcx
movq 0x168(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x168(%rsp), %rax
movq 0x40(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4930
movq 0x168(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x148(%rsp), %rdi
callq 0x136b0
movq 0x10(%rsp), %rdi
movq %rax, %rsi
movq 0x168(%rsp), %rax
movq 0x40(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, %rcx
movq 0x168(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x168(%rsp), %rax
movl $0x6, 0xec8(%rax)
movq 0x168(%rsp), %rax
movq 0xb0(%rax), %rax
movq %rax, 0x170(%rsp)
jmp 0x13103
cmpq $0x0, 0x158(%rsp)
je 0x13060
movq 0x168(%rsp), %rdi
movq 0x158(%rsp), %rsi
movq 0x168(%rsp), %rax
movq 0x90(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, %rcx
movq 0x168(%rsp), %rax
movq %rcx, 0x30(%rax)
jmp 0x1307b
movq 0x168(%rsp), %rax
movq 0x90(%rax), %rcx
movq 0x168(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x168(%rsp), %rax
movq %rax, (%rsp)
movq 0x168(%rsp), %rdi
movq 0x150(%rsp), %rsi
callq 0x4bc0
movq (%rsp), %rdi
movq %rax, %rsi
movq 0x168(%rsp), %rax
movq 0x30(%rax), %rdx
xorl %ecx, %ecx
callq 0x4950
movq %rax, %rcx
movq 0x168(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x168(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4930
movq 0x168(%rsp), %rax
movl $0x8c, 0xec8(%rax)
movq 0x168(%rsp), %rax
movq 0xb0(%rax), %rax
movq %rax, 0x170(%rsp)
movq 0x170(%rsp), %rax
addq $0x178, %rsp            # imm = 0x178
retq
nopw %cs:(%rax,%rax)