// File: ruankotovich[P]TextCorrection-Trie/src/trie.hpp
// Function: trie::Trie_t::Trie_t()
Trie_t()
    : m_searchLimitThreshold(5)
    , m_fuzzyLimitThreshold(1)
    {
      this->m_lambdaNode.reset(new TrieNode_t(0));

      DIR* dirp;
      struct dirent* directory;
      dirp = opendir("./stopwords");
      if (dirp) {
        while ((directory = readdir(dirp)) != NULL) {
          if (directory->d_type == DT_REG) {
            std::cout << "The stopword file \'" << directory->d_name << "\' has been detected.\n";
            this->addStopWords(std::string("./stopwords/") + (directory->d_name));
          }
        }
        closedir(dirp);
      }

      encodeCharacters("charmap.cm");
    }

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movq %rdi, 0x110(%rsp)
movq 0x110(%rsp), %rdi
movq %rdi, 0x68(%rsp)
movq %rdi, %rax
movq %rax, 0x38(%rsp)
movq %rdi, %rax
movq %rax, 0x40(%rsp)
callq 0x4090
movq 0x68(%rsp), %rdi
addq $0x8, %rdi
movq %rdi, 0x48(%rsp)
callq 0x40c0
movq 0x68(%rsp), %rdi
addq $0x40, %rdi
movq %rdi, 0x50(%rsp)
callq 0x40d0
movq 0x68(%rsp), %rdi
addq $0x78, %rdi
movq %rdi, 0x58(%rsp)
callq 0x40e0
movq 0x68(%rsp), %rdi
addq $0xa8, %rdi
movq %rdi, 0x60(%rsp)
callq 0x40f0
movq 0x68(%rsp), %rdi
movl $0x5, 0xd8(%rdi)
movl $0x1, 0xdc(%rdi)
addq $0xe0, %rdi
movq %rdi, 0x70(%rsp)
callq 0x4100
movl $0x40, %edi
callq 0x21b0
movq %rax, 0x78(%rsp)
jmp 0x2eeb
movq 0x78(%rsp), %rdi
xorl %esi, %esi
callq 0x4140
jmp 0x2ef9
movq 0x78(%rsp), %rsi
movq 0x68(%rsp), %rdi
callq 0x4110
leaq 0x131ca(%rip), %rdi     # 0x160d9
callq 0x2290
movq %rax, 0x30(%rsp)
jmp 0x2f1b
movq 0x30(%rsp), %rax
movq %rax, 0xf8(%rsp)
cmpq $0x0, 0xf8(%rsp)
je 0x3116
jmp 0x2f39
movq 0xf8(%rsp), %rdi
callq 0x22a0
movq %rax, 0x28(%rsp)
jmp 0x2f4d
movq 0x28(%rsp), %rax
movq %rax, 0xf0(%rsp)
cmpq $0x0, %rax
je 0x3105
movq 0xf0(%rsp), %rax
movzbl 0x12(%rax), %eax
cmpl $0x8, %eax
jne 0x3100
movq 0x1e048(%rip), %rdi     # 0x20fc8
leaq 0x1315e(%rip), %rsi     # 0x160e5
callq 0x21a0
movq %rax, 0x20(%rsp)
jmp 0x2f93
movq 0x20(%rsp), %rdi
movq 0xf0(%rsp), %rsi
addq $0x13, %rsi
callq 0x21a0
movq %rax, 0x18(%rsp)
jmp 0x2fb0
movq 0x18(%rsp), %rdi
leaq 0x1313d(%rip), %rsi     # 0x160f9
callq 0x21a0
jmp 0x2fc3
leaq 0xaf(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x2310
movq 0x10(%rsp), %rdx
leaq 0x1312e(%rip), %rsi     # 0x1610f
leaq 0xb0(%rsp), %rdi
callq 0x2250
jmp 0x2ff0
movq 0xf0(%rsp), %rdx
addq $0x13, %rdx
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x4320
jmp 0x3013
movq 0x38(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x4180
jmp 0x3027
leaq 0xd0(%rsp), %rdi
callq 0x2100
leaq 0xb0(%rsp), %rdi
callq 0x2100
leaq 0xaf(%rsp), %rdi
callq 0x2200
jmp 0x3100
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x31bd
movq 0x78(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
movl $0x40, %esi
callq 0x21d0
jmp 0x31bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x30ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x30e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0x2100
leaq 0xb0(%rsp), %rdi
callq 0x2100
leaq 0xaf(%rsp), %rdi
callq 0x2200
jmp 0x31bd
jmp 0x2f39
movq 0xf8(%rsp), %rdi
callq 0x22c0
jmp 0x3114
jmp 0x3116
leaq 0x87(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x2310
movq 0x8(%rsp), %rdx
leaq 0x12fe8(%rip), %rsi     # 0x1611c
leaq 0x88(%rsp), %rdi
callq 0x2250
jmp 0x3143
movq 0x38(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x4370
jmp 0x3157
leaq 0x88(%rsp), %rdi
callq 0x2100
leaq 0x87(%rsp), %rdi
callq 0x2200
addq $0x118, %rsp            # imm = 0x118
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
jmp 0x31b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x108(%rsp)
movl %eax, 0x104(%rsp)
leaq 0x88(%rsp), %rdi
callq 0x2100
leaq 0x87(%rsp), %rdi
callq 0x2200
movq 0x70(%rsp), %rdi
callq 0x4610
movq 0x60(%rsp), %rdi
callq 0x4670
movq 0x58(%rsp), %rdi
callq 0x4680
movq 0x50(%rsp), %rdi
callq 0x4690
movq 0x48(%rsp), %rdi
callq 0x46a0
movq 0x40(%rsp), %rdi
callq 0x46b0
movq 0x108(%rsp), %rdi
callq 0x2300
nopw %cs:(%rax,%rax)