// File: /workspace/github_cpp_makefile_star2_O3/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 0x1db53
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rsi
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rdi
callq 0x617c
leaq 0x2c5f(%rip), %rsi      # 0x20706
movq %r14, %rdi
callq 0x40e0
testl %eax, %eax
je 0x1db17
leaq 0x5a0(%rip), %rsi       # 0x1e05a
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1db17
leaq 0x5e0(%rip), %rsi       # 0x1e0af
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1db62
leaq 0x2c28(%rip), %rsi      # 0x20710
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1db47
leaq 0x2c1c(%rip), %rsi      # 0x20719
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1db6c
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d91e
jmp 0x1db21
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d672
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1db3c
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 0x1d7c8
jmp 0x1db21
callq 0x1bd0c
movl $0x1, %edi
callq 0x4380
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c53b
leaq 0x2bb7(%rip), %rsi      # 0x2072a
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1db8b
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c1a0
leaq 0x2ba1(%rip), %rsi      # 0x20733
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dbaa
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c9dc
leaq 0x2b95(%rip), %rsi      # 0x20746
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dbc9
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1caf6
leaq 0x2b8d(%rip), %rsi      # 0x2075d
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dbe8
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cc10
leaq 0x2b87(%rip), %rsi      # 0x20776
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc07
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cdba
leaq 0x2b79(%rip), %rsi      # 0x20787
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc26
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cfb8
leaq 0x542(%rip), %rsi       # 0x1e16f
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc45
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d116
leaq 0x2b48(%rip), %rsi      # 0x20794
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc64
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d24b
leaq 0x2b30(%rip), %rsi      # 0x2079b
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc83
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d3c4
leaq 0x2b1b(%rip), %rsi      # 0x207a5
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dca2
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d4f9
leaq 0x2b0a(%rip), %rsi      # 0x207b3
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1dccc
leaq 0x2a3b(%rip), %rsi      # 0x206f9
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dcd6
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c762
callq 0x1bd0c
jmp 0x1db58
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1dcfe
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
movq %rbx, %rdi
callq 0x45b0