// File: /workspace/github_cpp_makefile_star2_O2/epfml[P]Bi-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 == "transgram" || command == "bisent2vec" ) {
    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 0x18ebc
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rsi
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rdi
callq 0x5b64
leaq 0x3891(%rip), %rsi      # 0x1c6b6
movq %r14, %rdi
callq 0x5b9f
testb %al, %al
jne 0x18e46
leaq 0x1222(%rip), %rsi      # 0x1a05a
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18e65
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18beb
leaq 0x10(%rsp), %rdi
callq 0x46c8
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x1243(%rip), %rsi      # 0x1a0af
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
jne 0x18ec9
leaq 0x383f(%rip), %rsi      # 0x1c6c0
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18e9b
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18c98
jmp 0x18e50
leaq 0x3827(%rip), %rsi      # 0x1c6c9
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18ed3
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18d45
jmp 0x18e50
callq 0x17d24
pushq $0x1
popq %rdi
callq 0x43b0
movl %ebp, %edi
movq %rbx, %rsi
callq 0x181b3
leaq 0x3800(%rip), %rsi      # 0x1c6da
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18ef2
movl %ebp, %edi
movq %rbx, %rsi
callq 0x17fcd
leaq 0x37ea(%rip), %rsi      # 0x1c6e3
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18f11
movl %ebp, %edi
movq %rbx, %rsi
callq 0x184ea
leaq 0x37de(%rip), %rsi      # 0x1c6f6
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18f30
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18579
leaq 0x37d6(%rip), %rsi      # 0x1c70d
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18f4f
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18608
leaq 0x37d0(%rip), %rsi      # 0x1c726
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18f6e
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18703
leaq 0x37c2(%rip), %rsi      # 0x1c737
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18f8d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18830
leaq 0x11db(%rip), %rsi      # 0x1a16f
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18fac
movl %ebp, %edi
movq %rbx, %rsi
callq 0x188eb
leaq 0x3791(%rip), %rsi      # 0x1c744
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18fcb
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18993
leaq 0x3779(%rip), %rsi      # 0x1c74b
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x18fea
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18a6b
leaq 0x3764(%rip), %rsi      # 0x1c755
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x19009
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18b13
leaq 0x3753(%rip), %rsi      # 0x1c763
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
jne 0x19033
leaq 0x3684(%rip), %rsi      # 0x1c6a9
leaq 0x10(%rsp), %rdi
callq 0x5b9f
testb %al, %al
je 0x1903d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x18330
callq 0x17d24
jmp 0x18ec1
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x46c8
movq %rbx, %rdi
callq 0x45d0