// File: /workspace/github_cpp_makefile_star2_O1/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 0x1daff
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rsi
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rdi
callq 0x617a
leaq 0x2ca3(%rip), %rsi      # 0x206f6
movq %r14, %rdi
callq 0x40e0
testl %eax, %eax
je 0x1dac3
leaq 0x5e4(%rip), %rsi       # 0x1e04a
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1dac3
leaq 0x627(%rip), %rsi       # 0x1e0a2
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1db0e
leaq 0x2c6c(%rip), %rsi      # 0x20700
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1daf3
leaq 0x2c60(%rip), %rsi      # 0x20709
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1db18
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d8ca
jmp 0x1dacd
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d61e
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1dae8
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 0x1d774
jmp 0x1dacd
callq 0x1bcb8
movl $0x1, %edi
callq 0x4380
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c4e7
leaq 0x2bfb(%rip), %rsi      # 0x2071a
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1db37
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c14c
leaq 0x2be5(%rip), %rsi      # 0x20723
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1db56
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c988
leaq 0x2bd9(%rip), %rsi      # 0x20736
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1db75
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1caa2
leaq 0x2bd1(%rip), %rsi      # 0x2074d
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1db94
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cbbc
leaq 0x2bcb(%rip), %rsi      # 0x20766
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dbb3
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cd66
leaq 0x2bbd(%rip), %rsi      # 0x20777
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dbd2
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1cf64
leaq 0x589(%rip), %rsi       # 0x1e162
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dbf1
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d0c2
leaq 0x2b8c(%rip), %rsi      # 0x20784
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc10
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d1f7
leaq 0x2b74(%rip), %rsi      # 0x2078b
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc2f
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d370
leaq 0x2b5f(%rip), %rsi      # 0x20795
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc4e
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1d4a5
leaq 0x2b4e(%rip), %rsi      # 0x207a3
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x1dc78
leaq 0x2a7f(%rip), %rsi      # 0x206e9
leaq 0x10(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x1dc82
movl %ebp, %edi
movq %rbx, %rsi
callq 0x1c70e
callq 0x1bcb8
jmp 0x1db04
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1dcaa
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
movq %rbx, %rdi
callq 0x45b0