// File: /workspace/github_cpp_makefile_star2_O2/ddu1[P]polarizedtext/src/dictionary.cc
// Function: fasttext::Dictionary::readFromFile(std::istream&)
void Dictionary::readFromFile(std::istream& in) {
  std::string word;
  int64_t minThreshold = 1;
  while (readWord(in, word)) {
    add(word);
    if (ntokens_ % 1000000 == 0 && args_->verbose > 1) {
      std::cout << "\rRead " << ntokens_  / 1000000 << "M words" << std::flush;
    }
    if (size_ > 0.75 * MAX_VOCAB_SIZE) {
      minThreshold++;
      threshold(minThreshold, minThreshold);
    }
  }
  threshold(args_->minCount, args_->minCountLabel);
  initTableDiscard();
  initNgrams();
  if (args_->verbose > 0) {
    std::cout << "\rRead " << ntokens_  / 1000000 << "M words" << std::endl;
    std::cout << "Number of words:  " << nwords_ << std::endl;
    std::cout << "Number of labels: " << nlabels_ << std::endl;
  }
  if (size_ == 0) {
    std::cerr << "Empty vocabulary. Try a smaller -minCount value." << std::endl;
    exit(EXIT_FAILURE);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movq %rdi, %rbx
movb $0x0, (%rax)
pushq $0x1
popq %r15
leaq 0x8(%rsp), %r12
movl $0xf4240, %ebp          # imm = 0xF4240
leaq 0xa8c4(%rip), %r13      # 0xf7ac
movq %r14, %rsi
movq %r12, %rdx
callq 0x4de6
testb %al, %al
je 0x4f75
movq %rbx, %rdi
movq %r12, %rsi
callq 0x46a2
movq 0x68(%rbx), %rax
cqto
idivq %rbp
testq %rdx, %rdx
jne 0x4f56
movq (%rbx), %rax
cmpl $0x2, 0xc8(%rax)
jl 0x4f56
movq 0x130a5(%rip), %rdi     # 0x17fc8
leaq 0xa87b(%rip), %rsi      # 0xf7a5
callq 0x3240
movq %rax, %rdi
movq 0x68(%rbx), %rax
cqto
idivq %rbp
movq %rax, %rsi
callq 0x3230
movq %rax, %rdi
movq %r13, %rsi
callq 0x3240
movq %rax, %rdi
callq 0x3180
cmpl $0x15752a1, 0x58(%rbx)  # imm = 0x15752A1
jl 0x4ee8
incq %r15
movq %rbx, %rdi
movq %r15, %rsi
movq %r15, %rdx
callq 0x5092
jmp 0x4ee8
movq (%rbx), %rax
movslq 0x78(%rax), %rsi
movslq 0x7c(%rax), %rdx
movq %rbx, %rdi
callq 0x5092
movq %rbx, %rdi
callq 0x532e
movq %rbx, %rdi
callq 0x4d1c
movq (%rbx), %rax
cmpl $0x0, 0xc8(%rax)
jle 0x5037
movq 0x13019(%rip), %rdi     # 0x17fc8
leaq 0xa7ef(%rip), %rsi      # 0xf7a5
callq 0x3240
movq %rax, %rdi
movq 0x68(%rbx), %rax
movl $0xf4240, %ecx          # imm = 0xF4240
cqto
idivq %rcx
movq %rax, %rsi
callq 0x3230
leaq 0xa7d1(%rip), %rsi      # 0xf7ac
movq %rax, %rdi
callq 0x3240
movq %rax, %rdi
callq 0x3100
movq 0x12fd6(%rip), %rdi     # 0x17fc8
leaq 0xa7bb(%rip), %rsi      # 0xf7b4
callq 0x3240
movl 0x5c(%rbx), %esi
movq %rax, %rdi
callq 0x3420
movq %rax, %rdi
callq 0x3100
movq 0x12fb0(%rip), %rdi     # 0x17fc8
leaq 0xa7a8(%rip), %rsi      # 0xf7c7
callq 0x3240
movl 0x60(%rbx), %esi
movq %rax, %rdi
callq 0x3420
movq %rax, %rdi
callq 0x3100
cmpl $0x0, 0x58(%rbx)
je 0x5056
leaq 0x8(%rsp), %rdi
callq 0x34e8
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x12f93(%rip), %rdi     # 0x17ff0
leaq 0xa776(%rip), %rsi      # 0xf7da
callq 0x3240
movq %rax, %rdi
callq 0x3100
pushq $0x1
popq %rdi
callq 0x32a0
jmp 0x507d
jmp 0x507d
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x34e8
movq %rbx, %rdi
callq 0x3440