// File: /workspace/github_c_makefile_star2_O0/samsonjs[P]lake/src/primitive.c
// Function: bind_primitives
void bind_primitives(LakeCtx *ctx)
{
#define DEFINE(name, fn, arity)                                                \
    env_define(ctx->toplevel, sym_intern(ctx, name),                           \
               VAL(prim_make(name, arity, fn)))

    DEFINE("car", _car, 1);
    DEFINE("cdr", _cdr, 1);
    DEFINE("cons", _cons, 2);
    DEFINE("null?", _nullP, 1);
    DEFINE("pair?", _pairP, 1);
    DEFINE("is?", _isP, 2);
    DEFINE("equal?", _equalP, 2);
    DEFINE("not", _not, 1);
    DEFINE("+", _add, ARITY_VARARGS);
    DEFINE("-", _sub, ARITY_VARARGS);
    DEFINE("*", _mul, ARITY_VARARGS);
    DEFINE("/", _div, ARITY_VARARGS);
    DEFINE("=", _int_eq, ARITY_VARARGS);
    DEFINE("<", _int_lt, ARITY_VARARGS);
    DEFINE(">", _int_gt, ARITY_VARARGS);
    DEFINE("set-car!", _set_carB, 2);

    DEFINE("display", _display, ARITY_VARARGS);

    DEFINE("symbol?", _symbolP, 1);
    DEFINE("list?", _listP, 1);
    DEFINE("dotted-list?", _dotted_listP, 1);
    DEFINE("number?", _numberP, 1);
    DEFINE("integer?", _integerP, 1);
    DEFINE("string?", _stringP, 1);
    DEFINE("bool?", _boolP, 1);
    DEFINE("function?", _functionP, 1);
    DEFINE("primitive?", _primitiveP, 1);

    /* string=? */
    /* string< */
    /* string> */
    /* string-concatenate */
    /* string-slice */

#undef DEFINE
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1a8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x35d6(%rip), %rsi      # 0x948e
callq 0x7f30
movq %rax, -0x1a0(%rbp)
leaq 0x35c3(%rip), %rdi      # 0x948e
movl $0x1, %esi
leaq 0x7e9(%rip), %rdx       # 0x66c0
callq 0x5d90
movq -0x1a8(%rbp), %rdi
movq -0x1a0(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x198(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3587(%rip), %rsi      # 0x9492
callq 0x7f30
movq %rax, -0x190(%rbp)
leaq 0x3574(%rip), %rdi      # 0x9492
movl $0x1, %esi
leaq 0x8b6(%rip), %rdx       # 0x67e0
callq 0x5d90
movq -0x198(%rbp), %rdi
movq -0x190(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x188(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3538(%rip), %rsi      # 0x9496
callq 0x7f30
movq %rax, -0x180(%rbp)
leaq 0x3525(%rip), %rdi      # 0x9496
movl $0x2, %esi
leaq 0x973(%rip), %rdx       # 0x68f0
callq 0x5d90
movq -0x188(%rbp), %rdi
movq -0x180(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x178(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x34ea(%rip), %rsi      # 0x949b
callq 0x7f30
movq %rax, -0x170(%rbp)
leaq 0x34d7(%rip), %rdi      # 0x949b
movl $0x1, %esi
leaq 0x9b0(%rip), %rdx       # 0x6980
callq 0x5d90
movq -0x178(%rbp), %rdi
movq -0x170(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x168(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x349d(%rip), %rsi      # 0x94a1
callq 0x7f30
movq %rax, -0x160(%rbp)
leaq 0x348a(%rip), %rdi      # 0x94a1
movl $0x1, %esi
leaq 0x9cd(%rip), %rdx       # 0x69f0
callq 0x5d90
movq -0x168(%rbp), %rdi
movq -0x160(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x158(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3450(%rip), %rsi      # 0x94a7
callq 0x7f30
movq %rax, -0x150(%rbp)
leaq 0x343d(%rip), %rdi      # 0x94a7
movl $0x2, %esi
leaq 0x9ea(%rip), %rdx       # 0x6a60
callq 0x5d90
movq -0x158(%rbp), %rdi
movq -0x150(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x148(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3401(%rip), %rsi      # 0x94ab
callq 0x7f30
movq %rax, -0x140(%rbp)
leaq 0x33ee(%rip), %rdi      # 0x94ab
movl $0x2, %esi
leaq 0xa37(%rip), %rdx       # 0x6b00
callq 0x5d90
movq -0x148(%rbp), %rdi
movq -0x140(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x138(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x33b5(%rip), %rsi      # 0x94b2
callq 0x7f30
movq %rax, -0x130(%rbp)
leaq 0x33a2(%rip), %rdi      # 0x94b2
movl $0x1, %esi
leaq 0xa84(%rip), %rdx       # 0x6ba0
callq 0x5d90
movq -0x138(%rbp), %rdi
movq -0x130(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x128(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3366(%rip), %rsi      # 0x94b6
callq 0x7f30
movq %rax, -0x120(%rbp)
leaq 0x3353(%rip), %rdi      # 0x94b6
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xa81(%rip), %rdx       # 0x6bf0
callq 0x5d90
movq -0x128(%rbp), %rdi
movq -0x120(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x118(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3315(%rip), %rsi      # 0x94b8
callq 0x7f30
movq %rax, -0x110(%rbp)
leaq 0x3302(%rip), %rdi      # 0x94b8
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xb6e(%rip), %rdx       # 0x6d30
callq 0x5d90
movq -0x118(%rbp), %rdi
movq -0x110(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x108(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x32c4(%rip), %rsi      # 0x94ba
callq 0x7f30
movq %rax, -0x100(%rbp)
leaq 0x32b1(%rip), %rdi      # 0x94ba
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xcbb(%rip), %rdx       # 0x6ed0
callq 0x5d90
movq -0x108(%rbp), %rdi
movq -0x100(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xf8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3273(%rip), %rsi      # 0x94bc
callq 0x7f30
movq %rax, -0xf0(%rbp)
leaq 0x3260(%rip), %rdi      # 0x94bc
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xda8(%rip), %rdx       # 0x7010
callq 0x5d90
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xe8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3222(%rip), %rsi      # 0x94be
callq 0x7f30
movq %rax, -0xe0(%rbp)
leaq 0x320f(%rip), %rdi      # 0x94be
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x1075(%rip), %rdx      # 0x7330
callq 0x5d90
movq -0xe8(%rbp), %rdi
movq -0xe0(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xd8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x31d1(%rip), %rsi      # 0x94c0
callq 0x7f30
movq %rax, -0xd0(%rbp)
leaq 0x31be(%rip), %rdi      # 0x94c0
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x1192(%rip), %rdx      # 0x74a0
callq 0x5d90
movq -0xd8(%rbp), %rdi
movq -0xd0(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xc8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x314a(%rip), %rsi      # 0x948c
callq 0x7f30
movq %rax, -0xc0(%rbp)
leaq 0x3137(%rip), %rdi      # 0x948c
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x12bf(%rip), %rdx      # 0x7620
callq 0x5d90
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xb8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x312d(%rip), %rsi      # 0x94c2
callq 0x7f30
movq %rax, -0xb0(%rbp)
leaq 0x311a(%rip), %rdi      # 0x94c2
movl $0x2, %esi
leaq 0x13ec(%rip), %rdx      # 0x77a0
callq 0x5d90
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x30e3(%rip), %rsi      # 0x94cb
callq 0x7f30
movq %rax, -0xa0(%rbp)
leaq 0x30d0(%rip), %rdi      # 0x94cb
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x14c9(%rip), %rdx      # 0x78d0
callq 0x5d90
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3098(%rip), %rsi      # 0x94d3
callq 0x7f30
movq %rax, -0x90(%rbp)
leaq 0x3085(%rip), %rdi      # 0x94d3
movl $0x1, %esi
leaq 0x1536(%rip), %rdx      # 0x7990
callq 0x5d90
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3054(%rip), %rsi      # 0x94e2
callq 0x7f30
movq %rax, -0x80(%rbp)
leaq 0x3044(%rip), %rdi      # 0x94e2
movl $0x1, %esi
leaq 0x1546(%rip), %rdx      # 0x79f0
callq 0x5d90
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3003(%rip), %rsi      # 0x94db
callq 0x7f30
movq %rax, -0x70(%rbp)
leaq 0x2ff3(%rip), %rdi      # 0x94db
movl $0x1, %esi
leaq 0x155c(%rip), %rdx      # 0x7a50
callq 0x5d90
movq -0x78(%rbp), %rdi
movq -0x70(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x2fc9(%rip), %rsi      # 0x94e8
callq 0x7f30
movq %rax, -0x60(%rbp)
leaq 0x2fb9(%rip), %rdi      # 0x94e8
movl $0x1, %esi
leaq 0x1575(%rip), %rdx      # 0x7ab0
callq 0x5d90
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x2f8a(%rip), %rsi      # 0x94f0
callq 0x7f30
movq %rax, -0x50(%rbp)
leaq 0x2f7a(%rip), %rdi      # 0x94f0
movl $0x1, %esi
leaq 0x158e(%rip), %rdx      # 0x7b10
callq 0x5d90
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x2f4c(%rip), %rsi      # 0x94f9
callq 0x7f30
movq %rax, -0x40(%rbp)
leaq 0x2f3c(%rip), %rdi      # 0x94f9
movl $0x1, %esi
leaq 0x15a7(%rip), %rdx      # 0x7b70
callq 0x5d90
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x2f0d(%rip), %rsi      # 0x9501
callq 0x7f30
movq %rax, -0x30(%rbp)
leaq 0x2efd(%rip), %rdi      # 0x9501
movl $0x1, %esi
leaq 0x15c0(%rip), %rdx      # 0x7bd0
callq 0x5d90
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x2ecc(%rip), %rsi      # 0x9507
callq 0x7f30
movq %rax, -0x20(%rbp)
leaq 0x2ebc(%rip), %rdi      # 0x9507
movl $0x1, %esi
leaq 0x15d9(%rip), %rdx      # 0x7c30
callq 0x5d90
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x2e8f(%rip), %rsi      # 0x9511
callq 0x7f30
movq %rax, -0x10(%rbp)
leaq 0x2e7f(%rip), %rdi      # 0x9511
movl $0x1, %esi
leaq 0x15f2(%rip), %rdx      # 0x7c90
callq 0x5d90
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq %rax, %rdx
callq 0x1a10
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
nopl (%rax)