// File: ddu1[P]polarizedtext/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 == "pwv") {
    train(argc, argv);
  } else if (command == "test") {
    test(argc, argv);
  } else if (command == "print-vectors") {
    printVectors(argc, argv);
  } else if (command == "predict" || command == "predict-prob" ) {
    predict(argc, argv);
  } else {
    printUsage();
    exit(EXIT_FAILURE);
  }
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x2, -0x8(%rbp)
jge 0x280db
callq 0x276f0
movl $0x1, %edi
callq 0x4390
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x58(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x45c0
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x30(%rbp), %rdi
callq 0x6210
jmp 0x28107
leaq -0x31(%rbp), %rdi
callq 0x4330
leaq 0x22f2(%rip), %rsi      # 0x2a409
leaq -0x30(%rbp), %rdi
callq 0x62c0
movb %al, -0x59(%rbp)
jmp 0x28125
movb -0x59(%rbp), %al
testb $0x1, %al
jne 0x28188
jmp 0x2812e
leaq 0xef4(%rip), %rsi       # 0x29029
leaq -0x30(%rbp), %rdi
callq 0x62c0
movb %al, -0x5a(%rbp)
jmp 0x28143
movb -0x5a(%rbp), %al
testb $0x1, %al
jne 0x28188
jmp 0x2814c
leaq 0xec7(%rip), %rsi       # 0x2901a
leaq -0x30(%rbp), %rdi
callq 0x62c0
movb %al, -0x5b(%rbp)
jmp 0x28161
movb -0x5b(%rbp), %al
testb $0x1, %al
jne 0x28188
jmp 0x2816a
leaq 0xeb4(%rip), %rsi       # 0x29025
leaq -0x30(%rbp), %rdi
callq 0x62c0
movb %al, -0x5c(%rbp)
jmp 0x2817f
movb -0x5c(%rbp), %al
testb $0x1, %al
jne 0x28188
jmp 0x281cf
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x27fc0
jmp 0x28196
jmp 0x28291
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x4330
jmp 0x282aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4688
jmp 0x282aa
leaq 0xea5(%rip), %rsi       # 0x2907b
leaq -0x30(%rbp), %rdi
callq 0x62c0
movb %al, -0x5d(%rbp)
jmp 0x281e4
movb -0x5d(%rbp), %al
testb $0x1, %al
jne 0x281ed
jmp 0x28200
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x27890
jmp 0x281fb
jmp 0x2828f
leaq 0x220b(%rip), %rsi      # 0x2a412
leaq -0x30(%rbp), %rdi
callq 0x62c0
movb %al, -0x5e(%rbp)
jmp 0x28215
movb -0x5e(%rbp), %al
testb $0x1, %al
jne 0x2821e
jmp 0x2822e
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x27ea0
jmp 0x2822c
jmp 0x2828d
leaq 0x21eb(%rip), %rsi      # 0x2a420
leaq -0x30(%rbp), %rdi
callq 0x62c0
movb %al, -0x5f(%rbp)
jmp 0x28243
movb -0x5f(%rbp), %al
testb $0x1, %al
jne 0x2826a
jmp 0x2824c
leaq 0x21a9(%rip), %rsi      # 0x2a3fc
leaq -0x30(%rbp), %rdi
callq 0x62c0
movb %al, -0x60(%rbp)
jmp 0x28261
movb -0x60(%rbp), %al
testb $0x1, %al
jne 0x2826a
jmp 0x2827a
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x27b50
jmp 0x28278
jmp 0x2828b
callq 0x276f0
jmp 0x28281
movl $0x1, %edi
callq 0x4390
jmp 0x2828d
jmp 0x2828f
jmp 0x28291
movl $0x0, -0x4(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4688
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x45b0
nopw %cs:(%rax,%rax)
nopl (%rax)