// File: /workspace/github_cpp_makefile_star2_O1/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 0x1d328
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rsi
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rdi
callq 0x62d0
leaq 0x35f4(%rip), %rsi      # 0x20829
movq %r14, %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d2ec
leaq 0xe09(%rip), %rsi       # 0x1e055
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d2ec
leaq 0xde5(%rip), %rsi       # 0x1e04a
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d2ec
leaq 0xde0(%rip), %rsi       # 0x1e05a
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d2ec
leaq 0xdd4(%rip), %rsi       # 0x1e063
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d2ec
leaq 0xe1c(%rip), %rsi       # 0x1e0c0
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d337
leaq 0x3575(%rip), %rsi      # 0x20832
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d31c
leaq 0x3569(%rip), %rsi      # 0x2083b
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d341
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d0ac
jmp 0x1d2f6
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1ce00
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1d311
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 0x1cf56
jmp 0x1d2f6
callq 0x1b418
movl $0x1, %edi
callq 0x4380
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1bc83
leaq 0x3504(%rip), %rsi      # 0x2084c
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d360
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1b8e8
leaq 0x34ee(%rip), %rsi      # 0x20855
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d37f
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c130
leaq 0x34e2(%rip), %rsi      # 0x20868
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d39e
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c250
leaq 0x34da(%rip), %rsi      # 0x2087f
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d3bd
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c370
leaq 0x34d4(%rip), %rsi      # 0x20898
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d3dc
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c520
leaq 0x34c6(%rip), %rsi      # 0x208a9
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d3fb
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c728
leaq 0xd7e(%rip), %rsi       # 0x1e180
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d41a
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c88c
leaq 0x3495(%rip), %rsi      # 0x208b6
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d439
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c9c7
leaq 0x347d(%rip), %rsi      # 0x208bd
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d458
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cb46
leaq 0x3468(%rip), %rsi      # 0x208c7
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d477
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cc81
leaq 0x3457(%rip), %rsi      # 0x208d5
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1d4a1
leaq 0x3389(%rip), %rsi      # 0x2081c
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1d4ab
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1beb0
callq 0x1b418
jmp 0x1d32d
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1d4d3
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
movq %rbx, %rdi
callq 0x45b0
nop