// File: /workspace/github_c_makefile_star2_O2/hoobaa[P]ficl/tools.c
// Function: ficlSystemCompileTools
void ficlSystemCompileTools(ficlSystem *system)
{
    ficlDictionary *dictionary = ficlSystemGetDictionary(system);
    ficlDictionary *environment = ficlSystemGetEnvironment(system);

    FICL_SYSTEM_ASSERT(system, dictionary);
    FICL_SYSTEM_ASSERT(system, environment);


    /*
    ** TOOLS and TOOLS EXT
    */
    ficlDictionarySetPrimitive(dictionary, ".s",        ficlVmDisplayDataStack,  FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, ".s-simple", ficlVmDisplayDataStackSimple,  FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "bye",       ficlPrimitiveBye,            FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "forget",    ficlPrimitiveForget,         FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "see",       ficlPrimitiveSee,            FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "words",     ficlPrimitiveWords,      FICL_WORD_DEFAULT);

    /*
    ** Set TOOLS environment query values
    */
    ficlDictionarySetConstant(environment, "tools",            FICL_TRUE);
    ficlDictionarySetConstant(environment, "tools-ext",        FICL_FALSE);

    /*
    ** Ficl extras
    */
    ficlDictionarySetPrimitive(dictionary, "r.s",       ficlVmDisplayReturnStack,  FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, ".env",      ficlPrimitiveListEnv,        FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "env-constant",
                                    ficlPrimitiveEnvConstant,    FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "env-2constant",
                                    ficlPrimitiveEnv2Constant,   FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "debug-xt",  ficlPrimitiveDebugXT,    FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "parse-order", ficlPrimitiveParseStepList, FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "step-break",ficlPrimitiveStepBreak,      FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "forget-wid",ficlPrimitiveForgetWid,      FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "see-xt",    ficlPrimitiveSeeXT,          FICL_WORD_DEFAULT);

#if FICL_WANT_FLOAT
    ficlDictionarySetPrimitive(dictionary, ".hash",     ficlPrimitiveHashSummary,FICL_WORD_DEFAULT);
#endif

    return;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
callq 0x399f
movq %rax, %rbx
movq %r14, %rdi
callq 0x39a4
movq %rax, %r14
leaq 0x9a50(%rip), %rsi      # 0xe254
leaq -0x241(%rip), %rdx      # 0x45ca
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9bb0(%rip), %rsi      # 0xe3cc
leaq -0x24c(%rip), %rdx      # 0x45d7
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9ba2(%rip), %rsi      # 0xe3d6
leaq 0x16c(%rip), %rdx       # 0x49a7
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9b8e(%rip), %rsi      # 0xe3da
leaq 0x15e(%rip), %rdx       # 0x49b1
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9b7d(%rip), %rsi      # 0xe3e1
leaq 0x183(%rip), %rdx       # 0x49ee
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9b69(%rip), %rsi      # 0xe3e5
leaq 0x17d(%rip), %rdx       # 0x4a00
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9b57(%rip), %rsi      # 0xe3eb
pushq $-0x1
popq %rdx
movq %r14, %rdi
callq 0xba61
leaq 0x9b4b(%rip), %rsi      # 0xe3f1
movq %r14, %rdi
xorl %edx, %edx
callq 0xba61
leaq 0x9b44(%rip), %rsi      # 0xe3fb
leaq -0x234(%rip), %rdx      # 0x468a
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9b30(%rip), %rsi      # 0xe3ff
leaq 0x270(%rip), %rdx       # 0x4b46
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9b1d(%rip), %rsi      # 0xe404
leaq 0x31c(%rip), %rdx       # 0x4c0a
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9b12(%rip), %rsi      # 0xe411
leaq 0x341(%rip), %rdx       # 0x4c47
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9b08(%rip), %rsi      # 0xe41f
leaq 0x36b(%rip), %rdx       # 0x4c89
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9af9(%rip), %rsi      # 0xe428
leaq -0x1bf(%rip), %rdx      # 0x4777
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9aed(%rip), %rsi      # 0xe434
leaq 0x3a5(%rip), %rdx       # 0x4cf3
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9ae0(%rip), %rsi      # 0xe43f
leaq 0x5aa(%rip), %rdx       # 0x4f10
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9ad3(%rip), %rsi      # 0xe44a
leaq 0x5bc(%rip), %rdx       # 0x4f3a
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0xbbe5
leaq 0x9ac2(%rip), %rsi      # 0xe451
leaq -0x5cd(%rip), %rdx      # 0x43c9
movq %rbx, %rdi
xorl %ecx, %ecx
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0xbbe5