// File: /workspace/github_cpp_makefile_star2_O2/epfml[P]sent2vec/src/main.cc
// Function: main
int main(int argc, char** argv) {
  if (argc < 2) {
    printUsage();
    exit(EXIT_FAILURE);
  }
  std::string command(argv[1]);
  if (command == "skipgram" || command == "cbow" || command == "supervised" ||
      command == "sent2vec" || command == "cbow-c+w-ngrams") {
    train(argc, argv);
  } else if (command == "test") {
    test(argc, argv);
  } else if (command == "saveDict") {
    saveDict(argc, argv);
  } else if (command == "sent2vecFromDict") {
    trainFromDict(argc, argv);
  } else if (command == "quantize") {
    quantize(argc, argv);
  } else if (command == "print-word-vectors") {
    printWordVectors(argc, argv);
  } else if (command == "print-sentence-vectors") {
    printSentenceVectors(argc, argv);
  } else if (command == "print-vocabulary-vectors") {
    printVocabularyVectors(argc, argv);
  } else if (command == "print-vocabulary") {
    printVocabulary(argc, argv);
  } else if (command == "print-ngrams") {
    printNgrams(argc, argv);
  } else if (command == "nn") {
    nn(argc, argv);
  } else if (command == "nnSent") {
    nnSent(argc, argv);
  } else if (command == "analogies") {
    analogies(argc, argv);
  } else if (command == "analogiesSent") {
    analogiesSent(argc, argv);
  } else if (command == "predict" || command == "predict-prob" ) {
    predict(argc, argv);
  } else {
    printUsage();
    exit(EXIT_FAILURE);
  }
  return 0;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x30, %rsp
cmpl $0x1, %edi
jle 0x18bf8
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rsi
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rdi
callq 0x5cc0
leaq 0x2cc7(%rip), %rsi      # 0x1b7e9
movq %r14, %rdi
callq 0x5cfb
testb %al, %al
jne 0x18b82
leaq 0x530(%rip), %rsi       # 0x19065
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
jne 0x18b82
leaq 0x510(%rip), %rsi       # 0x1905a
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
jne 0x18b82
leaq 0x50b(%rip), %rsi       # 0x1906a
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
jne 0x18b82
leaq 0x4ff(%rip), %rsi       # 0x19073
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18ba1
movl %ebp, %edi
movq %rbx, %rsi
callq 0x188e8
leaq 0x10(%rsp), %rdi
callq 0x46c8
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x525(%rip), %rsi       # 0x190cd
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
jne 0x18c05
leaq 0x2c35(%rip), %rsi      # 0x1b7f2
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18bd7
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18995
jmp 0x18b8c
leaq 0x2c1d(%rip), %rsi      # 0x1b7fb
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18c0f
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18a42
jmp 0x18b8c
callq 0x179c8
pushq $0x1
popq %rdi
callq 0x43b0
movl %ebp, %edi
movq %rbx, %rsi
callq 0x17e84
leaq 0x2bf6(%rip), %rsi      # 0x1b80c
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18c2e
movl %ebp, %edi
movq %rbx, %rsi
callq 0x17c9e
leaq 0x2be0(%rip), %rsi      # 0x1b815
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18c4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x181c3
leaq 0x2bd4(%rip), %rsi      # 0x1b828
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18c6c
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18256
leaq 0x2bcc(%rip), %rsi      # 0x1b83f
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18c8b
movl %ebp, %edi
movq %rbx, %rsi
callq 0x182e9
leaq 0x2bc6(%rip), %rsi      # 0x1b858
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18caa
movl %ebp, %edi
movq %rbx, %rsi
callq 0x183e8
leaq 0x2bb8(%rip), %rsi      # 0x1b869
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18cc9
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18519
leaq 0x4bd(%rip), %rsi       # 0x1918d
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18ce8
movl %ebp, %edi
movq %rbx, %rsi
callq 0x185d8
leaq 0x2b87(%rip), %rsi      # 0x1b876
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18d07
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18684
leaq 0x2b6f(%rip), %rsi      # 0x1b87d
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18d26
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18760
leaq 0x2b5a(%rip), %rsi      # 0x1b887
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18d45
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1880c
leaq 0x2b49(%rip), %rsi      # 0x1b895
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
jne 0x18d6f
leaq 0x2a7b(%rip), %rsi      # 0x1b7dc
leaq 0x10(%rsp), %rdi
callq 0x5cfb
testb %al, %al
je 0x18d79
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18005
callq 0x179c8
jmp 0x18bfd
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x46c8
movq %rbx, %rdi
callq 0x45d0