// File: /workspace/github_c_makefile_star2_O0/MuvikLabs[P]runt/basic.c
// Function: runt_load_basic
runt_int runt_load_basic(runt_vm *vm)
{
    /* quit function for interactive mode */
    runt_keyword_define(vm, "quit", 4, rproc_quit, NULL);
    /* say: prints string */
    runt_keyword_define(vm, "say", 3, rproc_say, NULL);
    /* p: prints float*/
    runt_keyword_define(vm, "p", 1, rproc_print, NULL);
    /* arithmetic */
    runt_keyword_define(vm, "+", 1, rproc_add, NULL);
    runt_keyword_define(vm, "-", 1, rproc_sub, NULL);
    runt_keyword_define(vm, "*", 1, rproc_mul, NULL);
    runt_keyword_define(vm, "/", 1, rproc_div, NULL);

    /* stack operations */
    runt_keyword_define(vm, "dup", 3, rproc_dup, NULL);
    runt_keyword_define(vm, "swap", 4, rproc_swap, NULL);
    runt_keyword_define(vm, "drop", 4, rproc_drop, NULL);
    runt_keyword_define(vm, "peak", 4, rproc_peak, NULL);
    runt_keyword_define(vm, "rot", 3, rproc_rot, NULL);
    runt_keyword_define(vm, "n", 1, rproc_nitems, NULL);
    runt_keyword_define(vm, "rat", 3, rproc_rat, NULL);
    runt_keyword_define(vm, "drops", 5, rproc_drops, NULL);
    runt_keyword_define(vm, "over", 4, rproc_over, NULL);

    /* dynamic plugin loading */

    runt_keyword_define(vm, "dynload", 7, rproc_dynload, NULL);

    /* regular dictionary load */
    runt_keyword_define(vm, "load", 4, rproc_load, NULL);

    /* evaluates a file */
    runt_keyword_define(vm, "eval", 4, rproc_eval, NULL);

    /* conditionals */

    runt_keyword_define(vm, "<", 1, rproc_lt, NULL);
    runt_keyword_define(vm, ">", 1, rproc_gt, NULL);
    runt_keyword_define(vm, "=", 1, rproc_eq, NULL);
    runt_keyword_define(vm, "!=", 2, rproc_neq, NULL);

    /* control */

    load_control(vm);

    runt_keyword_define(vm, "dec", 3, rproc_decr, NULL);
    runt_keyword_define(vm, "decn", 4, rproc_decrn, NULL);
    runt_keyword_define(vm, "inc", 3, rproc_incr, NULL);
    runt_keyword_define(vm, "incn", 4, rproc_incrn, NULL);
    runt_keyword_define(vm, "rep", 3, rproc_rep, NULL);

    runt_keyword_define_with_copy(vm, "loop", 4, rproc_loop,
    rproc_call_copy, NULL);

    /* variables */
    runt_keyword_define(vm, "set", 3, rproc_set, NULL);
    runt_keyword_define_with_copy(vm, "ptr", 3, rproc_ptr, rproc_call_copy, NULL);
    runt_keyword_define_with_copy(vm, "setptr", 6, rproc_setptr, rproc_call_copy, NULL);

    /* clear: clears pools and reloads basic library */
    runt_keyword_define(vm, "clear", 5, rproc_clear, NULL);

    /* print usage */
    runt_keyword_define(vm, "u", 1, rproc_usage, NULL);
    /* get memory usage */
    runt_keyword_define(vm, "m", 1, rproc_mem, NULL);
    /* get cell usage */
    runt_keyword_define(vm, "c", 1, rproc_cells, NULL);

    /* stack bias/unbias */
    runt_keyword_define(vm, "bias", 4, rproc_bias, NULL);
    runt_keyword_define(vm, "unbias", 6, rproc_unbias, NULL);

    /* list words in dictionary */
    runt_keyword_define(vm, "w", 1, rproc_wordlist, NULL);

    /* random number generator */
    srand(time(NULL));
    runt_keyword_define(vm, "rnd", 3, rproc_rand, NULL);
    runt_keyword_define(vm, "urnd", 4, rproc_urand, NULL);

    /* proc size */
    runt_keyword_define(vm, "psize", 5, rproc_psize, NULL);

    /* restore returns the cell + memory pools to a given position */
    runt_keyword_define(vm, "restore", 7, rproc_restore, NULL);

    /* blocks */
    runt_keyword_define_with_copy(vm, "{", 1,
        rproc_block_begin, rcopy_block_begin, NULL);
    runt_keyword_define_with_copy(vm, "}", 1,
        vm->zproc, rcopy_block_end, NULL);

    /* command line arguments */
    runt_keyword_define(vm, "argv", 4, rproc_argv, NULL);
    runt_keyword_define(vm, "argc", 4, rproc_argc, NULL);

    /* dictionary swaps */
    runt_keyword_define(vm, "dnew", 4, rproc_dnew, NULL);
    runt_keyword_define(vm, "dset", 4, rproc_dset, NULL);
    runt_keyword_define(vm, "dswap", 5, rproc_dswap, NULL);

    /* add destructor */
    runt_keyword_define(vm, "dtor", 4, rproc_dtor, NULL);

    /* undo last word defined */
    runt_keyword_define(vm, "oops", 4, rproc_oops, NULL);

    /* key: wait for keypress */
    runt_keyword_define(vm, "key", 3, rproc_key, NULL);

    /* register operations */
    runt_keyword_define(vm, "regset", 6, rproc_regset, NULL);
    runt_keyword_define(vm, "regget", 6, rproc_regget, NULL);

    /* get anonymous cell position */

    runt_keyword_define(vm, "@", 1, rproc_anon, NULL);

    return runt_is_alive(vm);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x3e91(%rip), %rsi      # 0x9508
movl $0x4, %edx
leaq 0x77d(%rip), %rcx       # 0x5e00
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3e75(%rip), %rsi      # 0x950d
movl $0x3, %edx
leaq 0x78c(%rip), %rcx       # 0x5e30
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3ef7(%rip), %rsi      # 0x95b0
movl $0x1, %edx
leaq 0x7db(%rip), %rcx       # 0x5ea0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3e37(%rip), %rsi      # 0x9511
movl $0x1, %edx
leaq 0x81a(%rip), %rcx       # 0x5f00
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3e18(%rip), %rsi      # 0x9513
movl $0x1, %edx
leaq 0x8b9(%rip), %rcx       # 0x5fc0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3df9(%rip), %rsi      # 0x9515
movl $0x1, %edx
leaq 0x908(%rip), %rcx       # 0x6030
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3dda(%rip), %rsi      # 0x9517
movl $0x1, %edx
leaq 0x957(%rip), %rcx       # 0x60a0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3dbb(%rip), %rsi      # 0x9519
movl $0x3, %edx
leaq 0x9a6(%rip), %rcx       # 0x6110
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3e2e(%rip), %rsi      # 0x95ad
movl $0x4, %edx
leaq 0x9a5(%rip), %rcx       # 0x6130
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3d7d(%rip), %rsi      # 0x951d
movl $0x4, %edx
leaq 0x9a4(%rip), %rcx       # 0x6150
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3d61(%rip), %rsi      # 0x9522
movl $0x4, %edx
leaq 0x9a3(%rip), %rcx       # 0x6170
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3d45(%rip), %rsi      # 0x9527
movl $0x3, %edx
leaq 0xa22(%rip), %rcx       # 0x6210
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3d52(%rip), %rsi      # 0x9555
movl $0x1, %edx
leaq 0xb71(%rip), %rcx       # 0x6380
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3d07(%rip), %rsi      # 0x952b
movl $0x3, %edx
leaq 0xbb0(%rip), %rcx       # 0x63e0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3cea(%rip), %rsi      # 0x952f
movl $0x5, %edx
leaq 0xcff(%rip), %rcx       # 0x6550
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3ccf(%rip), %rsi      # 0x9535
movl $0x4, %edx
leaq 0xd3e(%rip), %rcx       # 0x65b0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3cb3(%rip), %rsi      # 0x953a
movl $0x7, %edx
leaq 0xd8d(%rip), %rcx       # 0x6620
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3c95(%rip), %rsi      # 0x953d
movl $0x4, %edx
leaq 0xe4c(%rip), %rcx       # 0x6700
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3c79(%rip), %rsi      # 0x9542
movl $0x4, %edx
leaq 0x104b(%rip), %rcx      # 0x6920
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3c5d(%rip), %rsi      # 0x9547
movl $0x1, %edx
leaq 0x10ba(%rip), %rcx      # 0x69b0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3c3e(%rip), %rsi      # 0x9549
movl $0x1, %edx
leaq 0x1129(%rip), %rcx      # 0x6a40
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3c20(%rip), %rsi      # 0x954c
movl $0x1, %edx
leaq 0x1198(%rip), %rcx      # 0x6ad0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3bfe(%rip), %rsi      # 0x954b
movl $0x2, %edx
leaq 0x1207(%rip), %rcx      # 0x6b60
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
callq 0x6bf0
movq -0x8(%rbp), %rdi
leaq 0x3bd7(%rip), %rsi      # 0x954e
movl $0x3, %edx
leaq 0x132d(%rip), %rcx      # 0x6cb0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3bba(%rip), %rsi      # 0x9552
movl $0x4, %edx
leaq 0x136c(%rip), %rcx      # 0x6d10
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3b9e(%rip), %rsi      # 0x9557
movl $0x3, %edx
leaq 0x13db(%rip), %rcx      # 0x6da0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3b81(%rip), %rsi      # 0x955b
movl $0x4, %edx
leaq 0x13fa(%rip), %rcx      # 0x6de0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3b65(%rip), %rsi      # 0x9560
movl $0x3, %edx
leaq 0x1459(%rip), %rcx      # 0x6e60
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3b48(%rip), %rsi      # 0x9564
movl $0x4, %edx
leaq 0x1578(%rip), %rcx      # 0x6fa0
leaq 0x1741(%rip), %r8       # 0x7170
xorl %eax, %eax
movl %eax, %r9d
callq 0x1b00
movq -0x8(%rbp), %rdi
leaq 0x3b64(%rip), %rsi      # 0x95a8
movl $0x3, %edx
leaq 0x1750(%rip), %rcx      # 0x71a0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3b07(%rip), %rsi      # 0x956c
movl $0x3, %edx
leaq 0x17bf(%rip), %rcx      # 0x7230
leaq 0x16f8(%rip), %r8       # 0x7170
xorl %eax, %eax
movl %eax, %r9d
callq 0x1b00
movq -0x8(%rbp), %rdi
leaq 0x3adc(%rip), %rsi      # 0x9569
movl $0x6, %edx
leaq 0x1807(%rip), %rcx      # 0x72a0
leaq 0x16d0(%rip), %r8       # 0x7170
xorl %eax, %eax
movl %eax, %r9d
callq 0x1b00
movq -0x8(%rbp), %rdi
leaq 0x3abb(%rip), %rsi      # 0x9570
movl $0x5, %edx
leaq 0x18af(%rip), %rcx      # 0x7370
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3aa0(%rip), %rsi      # 0x9576
movl $0x1, %edx
leaq 0x18fe(%rip), %rcx      # 0x73e0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3a81(%rip), %rsi      # 0x9578
movl $0x1, %edx
leaq 0x198d(%rip), %rcx      # 0x7490
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3a38(%rip), %rsi      # 0x9550
movl $0x1, %edx
leaq 0x19cc(%rip), %rcx      # 0x74f0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3a43(%rip), %rsi      # 0x957c
movl $0x4, %edx
leaq 0x1a0b(%rip), %rcx      # 0x7550
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3a20(%rip), %rsi      # 0x957a
movl $0x6, %edx
leaq 0x1a4a(%rip), %rcx      # 0x75b0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3a2a(%rip), %rsi      # 0x95a5
movl $0x1, %edx
leaq 0x1a59(%rip), %rcx      # 0x75e0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
xorl %eax, %eax
movl %eax, %edi
callq 0x10e0
movl %eax, %edi
callq 0x10b0
movq -0x8(%rbp), %rdi
leaq 0x39d6(%rip), %rsi      # 0x9582
movl $0x3, %edx
leaq 0x1b18(%rip), %rcx      # 0x76d0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x39b4(%rip), %rsi      # 0x9581
movl $0x4, %edx
leaq 0x1b87(%rip), %rcx      # 0x7760
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3998(%rip), %rsi      # 0x9586
movl $0x5, %edx
leaq 0x1bc6(%rip), %rcx      # 0x77c0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x397d(%rip), %rsi      # 0x958c
movl $0x7, %edx
leaq 0x1c45(%rip), %rcx      # 0x7860
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3964(%rip), %rsi      # 0x9594
movl $0x1, %edx
leaq 0x1cc4(%rip), %rcx      # 0x7900
leaq 0x1d4d(%rip), %r8       # 0x7990
xorl %eax, %eax
movl %eax, %r9d
callq 0x1b00
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1160(%rax), %rcx
leaq 0x3933(%rip), %rsi      # 0x9596
movl $0x1, %edx
leaq 0x1dc1(%rip), %r8       # 0x7a30
xorl %eax, %eax
movl %eax, %r9d
callq 0x1b00
movq -0x8(%rbp), %rdi
leaq 0x3914(%rip), %rsi      # 0x9598
movl $0x4, %edx
leaq 0x1e70(%rip), %rcx      # 0x7b00
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x38f8(%rip), %rsi      # 0x959d
movl $0x4, %edx
leaq 0x1f3f(%rip), %rcx      # 0x7bf0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x38dc(%rip), %rsi      # 0x95a2
movl $0x4, %edx
leaq 0x1f6e(%rip), %rcx      # 0x7c40
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x38c0(%rip), %rsi      # 0x95a7
movl $0x4, %edx
leaq 0x207d(%rip), %rcx      # 0x7d70
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x38a4(%rip), %rsi      # 0x95ac
movl $0x5, %edx
leaq 0x20dc(%rip), %rcx      # 0x7df0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3889(%rip), %rsi      # 0x95b2
movl $0x4, %edx
leaq 0x20db(%rip), %rcx      # 0x7e10
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x386d(%rip), %rsi      # 0x95b7
movl $0x4, %edx
leaq 0x215a(%rip), %rcx      # 0x7eb0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3851(%rip), %rsi      # 0x95bc
movl $0x3, %edx
leaq 0x2159(%rip), %rcx      # 0x7ed0
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3834(%rip), %rsi      # 0x95c0
movl $0x6, %edx
leaq 0x2168(%rip), %rcx      # 0x7f00
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x381a(%rip), %rsi      # 0x95c7
movl $0x6, %edx
leaq 0x21d7(%rip), %rcx      # 0x7f90
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
leaq 0x3800(%rip), %rsi      # 0x95ce
movl $0x1, %edx
leaq 0x2256(%rip), %rcx      # 0x8030
xorl %eax, %eax
movl %eax, %r8d
callq 0x1c70
movq -0x8(%rbp), %rdi
callq 0x4620
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)