// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3cc0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3ce0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq 0xfc13(%rip), %rsi      # 0x15244
leaq -0x388(%rip), %rdx      # 0x52b0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfdbe(%rip), %rsi      # 0x15408
leaq -0x371(%rip), %rdx      # 0x52e0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfdaf(%rip), %rsi      # 0x15412
leaq 0x186(%rip), %rdx       # 0x57f0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfd9a(%rip), %rsi      # 0x15416
leaq 0x18d(%rip), %rdx       # 0x5810
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfd88(%rip), %rsi      # 0x1541d
leaq 0x1e4(%rip), %rdx       # 0x5880
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfd73(%rip), %rsi      # 0x15421
leaq 0x1fb(%rip), %rdx       # 0x58b0
xorl %ecx, %ecx
callq 0x117d0
movq -0x18(%rbp), %rdi
leaq 0xfd60(%rip), %rsi      # 0x15427
movq $-0x1, %rdx
callq 0x11540
movq -0x18(%rbp), %rdi
leaq 0xfd4f(%rip), %rsi      # 0x1542d
xorl %eax, %eax
movl %eax, %edx
callq 0x11540
movq -0x10(%rbp), %rdi
leaq 0xfd45(%rip), %rsi      # 0x15437
leaq -0x319(%rip), %rdx      # 0x53e0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfd30(%rip), %rsi      # 0x1543b
leaq 0x3de(%rip), %rdx       # 0x5af0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfd1c(%rip), %rsi      # 0x15440
leaq 0x4c5(%rip), %rdx       # 0x5bf0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfd10(%rip), %rsi      # 0x1544d
leaq 0x4fc(%rip), %rdx       # 0x5c40
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfd05(%rip), %rsi      # 0x1545b
leaq 0x553(%rip), %rdx       # 0x5cb0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfcf5(%rip), %rsi      # 0x15464
leaq -0x216(%rip), %rdx      # 0x5560
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfce8(%rip), %rsi      # 0x15470
leaq 0x5c1(%rip), %rdx       # 0x5d50
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfcda(%rip), %rsi      # 0x1547b
leaq 0x878(%rip), %rdx       # 0x6020
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfccc(%rip), %rsi      # 0x15486
leaq 0x89f(%rip), %rdx       # 0x6060
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0xfcba(%rip), %rsi      # 0x1548d
leaq -0x88a(%rip), %rdx      # 0x4f50
xorl %ecx, %ecx
callq 0x117d0
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)