// File: epfml[P]Bi-Sent2Vec/src/fasttext.cc
// Function: fasttext::FastText::nn(int)
void FastText::nn(int32_t k) {
  std::string queryWord;
  Vector queryVec(args_->dim);
  Matrix wordVectors(dict_->nwords(), args_->dim);
  precomputeWordVectors(wordVectors);
  std::set<std::string> banSet;
  std::cerr << "Query word? " << std::endl;
  while (std::cin >> queryWord) {
    banSet.clear();
    banSet.insert(queryWord);
    getVector(queryVec, queryWord);
    findNN(wordVectors, queryVec, k, banSet);
    std::cerr << "Query word? " << std::endl;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5600
movq -0xb0(%rbp), %rdi
callq 0xe6e0
movslq 0x94(%rax), %rsi
leaq -0x40(%rbp), %rdi
callq 0x20c00
jmp 0x2e934
movq -0xb0(%rbp), %rdi
addq $0x10, %rdi
callq 0x34050
movq %rax, %rdi
callq 0x8340
movl %eax, -0xb4(%rbp)
jmp 0x2e954
movq -0xb0(%rbp), %rdi
movl -0xb4(%rbp), %eax
cltq
movq %rax, -0xc0(%rbp)
callq 0xe6e0
movq -0xc0(%rbp), %rsi
movslq 0x94(%rax), %rdx
leaq -0x68(%rbp), %rdi
callq 0x1de00
jmp 0x2e988
movq -0xb0(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x2dca0
jmp 0x2e99a
leaq -0x98(%rbp), %rdi
callq 0x35550
movq 0x30643(%rip), %rdi     # 0x5eff0
leaq 0x14e95(%rip), %rsi     # 0x43849
callq 0x5420
movq %rax, -0xc8(%rbp)
jmp 0x2e9c2
movq -0xc8(%rbp), %rdi
movq 0x305c0(%rip), %rsi     # 0x5ef90
callq 0x5460
jmp 0x2e9d7
jmp 0x2e9d9
movq 0x305f8(%rip), %rdi     # 0x5efd8
leaq -0x30(%rbp), %rsi
callq 0x5560
movq %rax, -0xd0(%rbp)
jmp 0x2e9f2
movq -0xd0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x5530
movb %al, -0xd1(%rbp)
jmp 0x2ea10
movb -0xd1(%rbp), %al
testb $0x1, %al
jne 0x2ea1f
jmp 0x2eb1b
leaq -0x98(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x35570
movq -0xf0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x35590
movb %dl, -0xe1(%rbp)
movq %rax, -0xe0(%rbp)
jmp 0x2ea51
movq -0xb0(%rbp), %rdi
movb -0xe1(%rbp), %al
movq -0xe0(%rbp), %rcx
movq %rcx, -0xa8(%rbp)
movb %al, -0xa0(%rbp)
leaq -0x40(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x27ec0
jmp 0x2ea81
movq -0xb0(%rbp), %rdi
movl -0xc(%rbp), %ecx
leaq -0x68(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x98(%rbp), %r8
callq 0x2e130
jmp 0x2eaa1
movq 0x30548(%rip), %rdi     # 0x5eff0
leaq 0x14d9a(%rip), %rsi     # 0x43849
callq 0x5420
movq %rax, -0xf8(%rbp)
jmp 0x2eabd
movq -0xf8(%rbp), %rdi
movq 0x304c5(%rip), %rsi     # 0x5ef90
callq 0x5460
jmp 0x2ead2
jmp 0x2e9d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2eb5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2eb54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2eb4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x355e0
jmp 0x2eb4b
leaq -0x98(%rbp), %rdi
callq 0x355e0
leaq -0x68(%rbp), %rdi
callq 0x1df90
leaq -0x40(%rbp), %rdi
callq 0x20c60
leaq -0x30(%rbp), %rdi
callq 0x58d8
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
leaq -0x68(%rbp), %rdi
callq 0x1df90
leaq -0x40(%rbp), %rdi
callq 0x20c60
leaq -0x30(%rbp), %rdi
callq 0x58d8
movq -0x48(%rbp), %rdi
callq 0x57a0
nop