// File: /workspace/github_cpp_makefile_star2_O1/epfml[P]Bi-Sent2Vec/src/fasttext.cc
// Function: fasttext::FastText::predict(std::istream&, int, std::vector<std::pair<float, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<float, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&) const
void FastText::predict(std::istream& in, int32_t k,
                       std::vector<std::pair<real,std::string>>& predictions) const {
  std::vector<int32_t> words, labels;
  dict_->getLine(in, words, labels, model_->rng);
  if (words.empty()) return;
  Vector hidden(args_->dim);
  Vector output(dict_->nlabels());
  std::vector<std::pair<real,int32_t>> modelPredictions;
  model_->predict(words, k, modelPredictions, hidden, output);
  predictions.clear();
  for (auto it = modelPredictions.cbegin(); it != modelPredictions.cend(); it++) {
    predictions.push_back(std::make_pair(it->first, dict_->getLabel(it->second)));
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rcx, %rbx
movl %edx, %ebp
movq %rdi, %r14
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rdx
movaps %xmm0, (%rdx)
xorl %eax, %eax
movq %rax, 0x10(%rdx)
leaq 0xa0(%rsp), %rcx
movq %rax, 0x10(%rcx)
movaps %xmm0, (%rcx)
movq 0x10(%rdi), %rdi
movl $0x110, %r8d            # imm = 0x110
addq 0x60(%r14), %r8
callq 0x86f4
movq 0x40(%rsp), %rax
cmpq 0x48(%rsp), %rax
je 0x153d1
movq (%r14), %rax
movslq 0x94(%rax), %rsi
leaq 0x90(%rsp), %rdi
callq 0xef90
movq 0x10(%r14), %rdi
callq 0x6554
movslq %eax, %rsi
leaq 0x80(%rsp), %rdi
callq 0xef90
xorps %xmm0, %xmm0
leaq 0x20(%rsp), %rcx
movaps %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
movq 0x60(%r14), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x90(%rsp), %r8
leaq 0x80(%rsp), %r9
movl %ebp, %edx
callq 0xff30
movq (%rbx), %rsi
movq %rbx, %rdi
callq 0x1af1a
movq 0x20(%rsp), %rbp
cmpq 0x28(%rsp), %rbp
je 0x153a0
leaq 0x70(%rsp), %r15
leaq 0x10(%rsp), %r13
leaq 0x58(%rsp), %r12
movq 0x10(%r14), %rsi
movl 0x4(%rbp), %edx
movq %rsp, %rdi
callq 0x8756
movss (%rbp), %xmm0
movss %xmm0, 0x58(%rsp)
movq %r15, 0x60(%rsp)
movq (%rsp), %rax
cmpq %r13, %rax
je 0x15334
movq %rax, 0x60(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x70(%rsp)
jmp 0x1533d
movups (%r13), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rsp), %rax
movq %rax, 0x68(%rsp)
movq %r13, (%rsp)
movq $0x0, 0x8(%rsp)
movb $0x0, 0x10(%rsp)
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1af6c
movq 0x60(%rsp), %rdi
cmpq %r15, %rdi
je 0x1537b
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x4300
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x15391
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4300
addq $0x8, %rbp
cmpq 0x28(%rsp), %rbp
jne 0x152fb
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x153b7
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
leaq 0x80(%rsp), %rdi
callq 0xefba
leaq 0x90(%rsp), %rdi
callq 0xefba
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x153ee
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x15405
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x15425
jmp 0x1541b
movq %rax, %rbx
jmp 0x1548b
movq %rax, %rbx
jmp 0x1547e
movq %rax, %rbx
jmp 0x1545a
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r15, %rdi
je 0x15444
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x4300
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x1545a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4300
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x15471
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
leaq 0x80(%rsp), %rdi
callq 0xefba
leaq 0x90(%rsp), %rdi
callq 0xefba
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x154a8
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x154bf
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x4300
movq %rbx, %rdi
callq 0x45b0
nop