// File: /workspace/github_cpp_makefile_star2_O3/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 0x1d3d0
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rsi
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rdi
callq 0x62d2
leaq 0x355c(%rip), %rsi      # 0x20839
movq %r14, %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d394
leaq 0xd71(%rip), %rsi       # 0x1e065
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d394
leaq 0xd4d(%rip), %rsi       # 0x1e05a
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d394
leaq 0xd48(%rip), %rsi       # 0x1e06a
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d394
leaq 0xd3c(%rip), %rsi       # 0x1e073
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d394
leaq 0xd81(%rip), %rsi       # 0x1e0cd
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d3df
leaq 0x34dd(%rip), %rsi      # 0x20842
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d3c4
leaq 0x34d1(%rip), %rsi      # 0x2084b
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d3e9
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d154
jmp 0x1d39e
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cea8
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1d3b9
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cffe
jmp 0x1d39e
callq 0x1b4c0
movl $0x1, %edi
callq 0x4380
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1bd2b
leaq 0x346c(%rip), %rsi      # 0x2085c
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d408
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1b990
leaq 0x3456(%rip), %rsi      # 0x20865
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d427
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c1d8
leaq 0x344a(%rip), %rsi      # 0x20878
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d446
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c2f8
leaq 0x3442(%rip), %rsi      # 0x2088f
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d465
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c418
leaq 0x343c(%rip), %rsi      # 0x208a8
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d484
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c5c8
leaq 0x342e(%rip), %rsi      # 0x208b9
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d4a3
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c7d0
leaq 0xce3(%rip), %rsi       # 0x1e18d
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d4c2
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c934
leaq 0x33fd(%rip), %rsi      # 0x208c6
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d4e1
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1ca6f
leaq 0x33e5(%rip), %rsi      # 0x208cd
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d500
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cbee
leaq 0x33d0(%rip), %rsi      # 0x208d7
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d51f
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cd29
leaq 0x33bf(%rip), %rsi      # 0x208e5
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d549
leaq 0x32f1(%rip), %rsi      # 0x2082c
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d553
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1bf58
callq 0x1b4c0
jmp 0x1d3d5
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1d57b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
movq %rbx, %rdi
callq 0x45b0
nop