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

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


    /*
    ** optional SEARCH-ORDER word set 
    */
    ficlDictionarySetPrimitive(dictionary, ">search",   ficlPrimitiveSearchPush,     FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "search>",   ficlPrimitiveSearchPop,      FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "definitions",
                                    ficlPrimitiveDefinitions,    FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "forth-wordlist",  
                                    ficlPrimitiveForthWordlist,  FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "get-current",  
                                    ficlPrimitiveGetCurrent,     FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "get-order", ficlPrimitiveGetOrder,       FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "search-wordlist",  
                                    ficlPrimitiveSearchWordlist, FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "set-current",  
                                    ficlPrimitiveSetCurrent,     FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "set-order", ficlPrimitiveSetOrder,       FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "ficl-wordlist", 
                                    ficlPrimitiveFiclWordlist,   FICL_WORD_DEFAULT);

    /*
    ** Set SEARCH environment query values
    */
    ficlDictionarySetConstant(environment, "search-order",      FICL_TRUE);
    ficlDictionarySetConstant(environment, "search-order-ext",  FICL_TRUE);
    ficlDictionarySetConstant(environment, "wordlists",         FICL_MAX_WORDLISTS);

    ficlDictionarySetPrimitive(dictionary, "wid-get-name", ficlPrimitiveWidGetName,  FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "wid-set-name", ficlPrimitiveWidSetName,  FICL_WORD_DEFAULT);
    ficlDictionarySetPrimitive(dictionary, "wid-set-super", 
                                    ficlPrimitiveSetParentWid,   FICL_WORD_DEFAULT);
    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 0x2ccd(%rip), %rsi      # 0x1698e
leaq 0x188(%rip), %rdx       # 0x13e50
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2cbc(%rip), %rsi      # 0x16996
leaq 0x1df(%rip), %rdx       # 0x13ec0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2cab(%rip), %rsi      # 0x1699e
leaq 0x236(%rip), %rdx       # 0x13f30
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x133a(%rip), %rsi      # 0x15046
leaq 0x27d(%rip), %rdx       # 0x13f90
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2c85(%rip), %rsi      # 0x169aa
leaq 0x2a4(%rip), %rdx       # 0x13fd0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2c78(%rip), %rsi      # 0x169b6
leaq 0x2cb(%rip), %rdx       # 0x14010
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2c69(%rip), %rsi      # 0x169c0
leaq 0x332(%rip), %rdx       # 0x14090
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2c60(%rip), %rsi      # 0x169d0
leaq 0x3f9(%rip), %rdx       # 0x14170
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2c53(%rip), %rsi      # 0x169dc
leaq 0x420(%rip), %rdx       # 0x141b0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2c44(%rip), %rsi      # 0x169e6
leaq 0x4a7(%rip), %rdx       # 0x14250
xorl %ecx, %ecx
callq 0x117d0
movq -0x18(%rbp), %rdi
leaq 0x2c39(%rip), %rsi      # 0x169f4
movq $-0x1, %rdx
callq 0x11540
movq -0x18(%rbp), %rdi
leaq 0x2c2f(%rip), %rsi      # 0x16a01
movq $-0x1, %rdx
callq 0x11540
movq -0x18(%rbp), %rdi
leaq 0x2c29(%rip), %rsi      # 0x16a12
movl $0x10, %edx
callq 0x11540
movq -0x10(%rbp), %rdi
leaq 0x2c1e(%rip), %rsi      # 0x16a1c
leaq 0x4ab(%rip), %rdx       # 0x142b0
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2c12(%rip), %rsi      # 0x16a29
leaq 0x502(%rip), %rdx       # 0x14320
xorl %ecx, %ecx
callq 0x117d0
movq -0x10(%rbp), %rdi
leaq 0x2c06(%rip), %rsi      # 0x16a36
leaq 0x539(%rip), %rdx       # 0x14370
xorl %ecx, %ecx
callq 0x117d0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)