// File: /workspace/github_cpp_makefile_star2_O1/epfml[P]sent2vec/src/args.cc
// Function: fasttext::Args::parseArgs(int, char**)
void Args::parseArgs(int argc, char** argv) {
  std::string command(argv[1]);
  if (command == "supervised") {
    model = model_name::sup;
    loss = loss_name::softmax;
    minCount = 1;
    minn = 0;
    maxn = 0;
    lr = 0.1;
  } else if (command == "cbow") {
    model = model_name::cbow;
  } else if (command == "sent2vec") {
    model = model_name::sent2vec;
    loss = loss_name::ns;
    neg = 10;
    minCount = 5;
    minn = 3;
    maxn = 6;
    lr = 0.05;
    dropoutK = 2;
  } else if (command == "cbow-c+w-ngrams") {
    model = model_name::cbowCWNgrams;
    loss = loss_name::ns;
    neg = 10;
    minCount = 5;
    bucketChar = 1;
    minn = 3;
    maxn = 6;
    lr = 0.05;
    dropoutK = 2;
  }
  int ai = 2;
  while (ai < argc) {
    if (argv[ai][0] != '-') {
      std::cout << "Provided argument without a dash! Usage:" << std::endl;
      printHelp();
      exit(EXIT_FAILURE);
    }
    if (strcmp(argv[ai], "-h") == 0) {
      std::cout << "Here is the help! Usage:" << std::endl;
      printHelp();
      exit(EXIT_FAILURE);
    } else if (strcmp(argv[ai], "-input") == 0) {
      input = std::string(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-test") == 0) {
      test = std::string(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-output") == 0) {
      output = std::string(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-dict") == 0) {
      dict = std::string(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-lr") == 0) {
      lr = atof(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-boostNgrams") == 0) {
      boostNgrams = atof(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-lrUpdateRate") == 0) {
      lrUpdateRate = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-dim") == 0) {
      dim = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-ws") == 0) {
      ws = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-epoch") == 0) {
      epoch = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-minCount") == 0) {
      minCount = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-minCountLabel") == 0) {
      minCountLabel = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-neg") == 0) {
      neg = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-numCheckPoints") == 0) {
      numCheckPoints = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-dropoutK") == 0) {
      dropoutK = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-wordNgrams") == 0) {
      wordNgrams = atoi(argv[ai + 1]);
      if (wordNgrams == 1) bucket = 1;
    } else if (strcmp(argv[ai], "-loss") == 0) {
      if (strcmp(argv[ai + 1], "hs") == 0) {
        loss = loss_name::hs;
      } else if (strcmp(argv[ai + 1], "ns") == 0) {
        loss = loss_name::ns;
      } else if (strcmp(argv[ai + 1], "softmax") == 0) {
        loss = loss_name::softmax;
      } else {
        std::cout << "Unknown loss: " << argv[ai + 1] << std::endl;
        printHelp();
        exit(EXIT_FAILURE);
      }
    } else if (strcmp(argv[ai], "-bucket") == 0) {
      bucket = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-bucketChar") == 0) {
      bucketChar = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-minn") == 0) {
      minn = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-maxn") == 0) {
      maxn = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-thread") == 0) {
      thread = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-t") == 0) {
      t = atof(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-label") == 0) {
      label = std::string(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-verbose") == 0) {
      verbose = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-maxVocabSize") == 0) {
      maxVocabSize = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-pretrainedVectors") == 0) {
      pretrainedVectors = std::string(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-saveOutput") == 0) {
      saveOutput = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-qnorm") == 0) {
      qnorm = true; ai--;
    } else if (strcmp(argv[ai], "-retrain") == 0) {
      retrain = true; ai--;
    } else if (strcmp(argv[ai], "-qout") == 0) {
      qout = true; ai--;
    } else if (strcmp(argv[ai], "-cutoff") == 0) {
    cutoff = atoi(argv[ai + 1]);
    } else if (strcmp(argv[ai], "-dsub") == 0) {
      dsub = atoi(argv[ai + 1]);
    } else {
      std::cout << "Unknown argument: " << argv[ai] << std::endl;
      printHelp();
      exit(EXIT_FAILURE);
    }
    ai += 2;
  }
  if (input.empty() || output.empty()) {
    std::cout << "Empty input or output path." << std::endl;
    printHelp();
    exit(EXIT_FAILURE);
  }
  if (wordNgrams <= 1 && maxn == 0) {
    bucket = 0;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdx, %r14
movl %esi, %ebp
movq %rdi, %rbx
movq 0x8(%rdx), %rsi
leaq 0x58(%rsp), %r15
leaq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x62d0
leaq 0x1916b(%rip), %rsi     # 0x1e04a
movq %r15, %rdi
callq 0x40e0
testl %eax, %eax
je 0x4f7c
leaq 0x1915f(%rip), %rsi     # 0x1e055
leaq 0x58(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x4fb5
leaq 0x1914b(%rip), %rsi     # 0x1e05a
leaq 0x58(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
je 0x4fc1
leaq 0x1913b(%rip), %rsi     # 0x1e063
leaq 0x58(%rsp), %rdi
callq 0x40e0
testl %eax, %eax
jne 0x5012
movabsq $0x500000002, %rax      # imm = 0x500000002
movq %rax, 0xbc(%rbx)
movl $0xa, 0xb0(%rbx)
movl $0x5, 0xa8(%rbx)
movabsq $0x300000001, %rax      # imm = 0x300000001
movq %rax, 0xc8(%rbx)
movl $0x6, 0xd0(%rbx)
jmp 0x4ff7
movabsq $0x300000003, %rax      # imm = 0x300000003
movq %rax, 0xbc(%rbx)
movl $0x1, 0xa8(%rbx)
movq $0x0, 0xcc(%rbx)
movabsq $0x3fb999999999999a, %rax # imm = 0x3FB999999999999A
movq %rax, 0x80(%rbx)
jmp 0x5012
movl $0x1, 0xc0(%rbx)
jmp 0x5012
movabsq $0x400000002, %rax      # imm = 0x400000002
movq %rax, 0xbc(%rbx)
movl $0xa, 0xb0(%rbx)
movl $0x5, 0xa8(%rbx)
movabsq $0x600000003, %rax      # imm = 0x600000003
movq %rax, 0xcc(%rbx)
movabsq $0x3fa999999999999a, %rax # imm = 0x3FA999999999999A
movq %rax, 0x80(%rbx)
movl $0x2, 0x9c(%rbx)
movq %rbx, 0x8(%rsp)
cmpl $0x3, %ebp
jl 0x576e
movq 0x8(%rsp), %rcx
leaq 0x108(%rcx), %rax
movq %rax, 0x30(%rsp)
leaq 0xe0(%rcx), %rax
movq %rax, 0x38(%rsp)
leaq 0x60(%rcx), %rax
movq %rax, 0x40(%rsp)
leaq 0x40(%rcx), %rax
movq %rax, 0x48(%rsp)
leaq 0x20(%rcx), %rax
movq %rax, 0x50(%rsp)
movl $0x2, %r15d
leaq 0x10(%rsp), %rbx
movslq %r15d, %r12
movq (%r14,%r12,8), %r13
cmpb $0x2d, (%r13)
jne 0x57ff
movq %r13, %rdi
leaq 0x1901d(%rip), %rsi     # 0x1e09c
callq 0x4430
testl %eax, %eax
je 0x57cf
movq %r13, %rdi
leaq 0x19022(%rip), %rsi     # 0x1e0b8
callq 0x4430
testl %eax, %eax
je 0x53a0
movq %r13, %rdi
leaq 0x19012(%rip), %rsi     # 0x1e0bf
callq 0x4430
testl %eax, %eax
je 0x53b9
movq %r13, %rdi
leaq 0x19001(%rip), %rsi     # 0x1e0c5
callq 0x4430
testl %eax, %eax
je 0x53d2
movq %r13, %rdi
leaq 0x18ff2(%rip), %rsi     # 0x1e0cd
callq 0x4430
testl %eax, %eax
je 0x53eb
movq %r13, %rdi
leaq 0x18fe1(%rip), %rsi     # 0x1e0d3
callq 0x4430
testl %eax, %eax
je 0x5438
movq %r13, %rdi
leaq 0x18fce(%rip), %rsi     # 0x1e0d7
callq 0x4430
testl %eax, %eax
je 0x5451
movq %r13, %rdi
leaq 0x18fc4(%rip), %rsi     # 0x1e0e4
callq 0x4430
testl %eax, %eax
je 0x546a
movq %r13, %rdi
leaq 0x18fbb(%rip), %rsi     # 0x1e0f2
callq 0x4430
testl %eax, %eax
je 0x5481
movq %r13, %rdi
leaq 0x18fa9(%rip), %rsi     # 0x1e0f7
callq 0x4430
testl %eax, %eax
je 0x5498
movq %r13, %rdi
leaq 0x18f96(%rip), %rsi     # 0x1e0fb
callq 0x4430
testl %eax, %eax
je 0x54b2
movq %r13, %rdi
leaq 0x18f86(%rip), %rsi     # 0x1e102
callq 0x4430
testl %eax, %eax
je 0x54cc
movq %r13, %rdi
leaq 0x18f79(%rip), %rsi     # 0x1e10c
callq 0x4430
testl %eax, %eax
je 0x54e6
movq %r13, %rdi
leaq 0x18f71(%rip), %rsi     # 0x1e11b
callq 0x4430
testl %eax, %eax
je 0x5500
movq %r13, %rdi
leaq 0x18f5f(%rip), %rsi     # 0x1e120
callq 0x4430
testl %eax, %eax
je 0x551a
movq %r13, %rdi
leaq 0x18f58(%rip), %rsi     # 0x1e130
callq 0x4430
testl %eax, %eax
je 0x5534
movq %r13, %rdi
leaq 0x18f4b(%rip), %rsi     # 0x1e13a
callq 0x4430
testl %eax, %eax
je 0x554e
movq %r13, %rdi
leaq 0x18f40(%rip), %rsi     # 0x1e146
callq 0x4430
testl %eax, %eax
je 0x557b
movq %r13, %rdi
leaq 0x18f4c(%rip), %rsi     # 0x1e169
callq 0x4430
testl %eax, %eax
je 0x55d5
movq %r13, %rdi
leaq 0x18f3d(%rip), %rsi     # 0x1e171
callq 0x4430
testl %eax, %eax
je 0x55ef
movq %r13, %rdi
leaq 0x18f32(%rip), %rsi     # 0x1e17d
callq 0x4430
testl %eax, %eax
je 0x561d
movq %r13, %rdi
leaq 0x18f21(%rip), %rsi     # 0x1e183
callq 0x4430
testl %eax, %eax
je 0x564b
movq %r13, %rdi
leaq 0x18f10(%rip), %rsi     # 0x1e189
callq 0x4430
testl %eax, %eax
je 0x5665
movq %r13, %rdi
leaq 0x18f01(%rip), %rsi     # 0x1e191
callq 0x4430
testl %eax, %eax
je 0x567f
movq %r13, %rdi
leaq 0x18eed(%rip), %rsi     # 0x1e194
callq 0x4430
testl %eax, %eax
je 0x569b
movq %r13, %rdi
leaq 0x18edd(%rip), %rsi     # 0x1e19b
callq 0x4430
testl %eax, %eax
je 0x56b7
movq %r13, %rdi
leaq 0x18ecf(%rip), %rsi     # 0x1e1a4
callq 0x4430
testl %eax, %eax
je 0x56d1
movq %r13, %rdi
leaq 0x18ec6(%rip), %rsi     # 0x1e1b2
callq 0x4430
testl %eax, %eax
je 0x56eb
movq %r13, %rdi
leaq 0x18ec2(%rip), %rsi     # 0x1e1c5
callq 0x4430
testl %eax, %eax
je 0x5707
movq %r13, %rdi
leaq 0x18eb7(%rip), %rsi     # 0x1e1d1
callq 0x4430
testl %eax, %eax
je 0x5721
movq %r13, %rdi
leaq 0x18ea7(%rip), %rsi     # 0x1e1d8
callq 0x4430
testl %eax, %eax
je 0x572f
movq %r13, %rdi
leaq 0x18e99(%rip), %rsi     # 0x1e1e1
callq 0x4430
testl %eax, %eax
je 0x573d
movq %r13, %rdi
leaq 0x18e88(%rip), %rsi     # 0x1e1e7
callq 0x4430
testl %eax, %eax
je 0x5751
movq %r13, %rdi
leaq 0x18e79(%rip), %rsi     # 0x1e1ef
callq 0x4430
testl %eax, %eax
jne 0x58a4
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
cltq
movq 0x8(%rsp), %rcx
movq %rax, 0x138(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rsi
movq %rbx, %rdi
leaq 0x7(%rsp), %rdx
callq 0x62d0
movq 0x8(%rsp), %rdi
jmp 0x5402
movq 0x8(%r14,%r12,8), %rsi
movq %rbx, %rdi
leaq 0x7(%rsp), %rdx
callq 0x62d0
movq 0x50(%rsp), %rdi
jmp 0x5402
movq 0x8(%r14,%r12,8), %rsi
movq %rbx, %rdi
leaq 0x7(%rsp), %rdx
callq 0x62d0
movq 0x48(%rsp), %rdi
jmp 0x5402
movq 0x8(%r14,%r12,8), %rsi
movq %rbx, %rdi
leaq 0x7(%rsp), %rdx
callq 0x62d0
movq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x4390
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x5426
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x4300
addl $0x2, %r15d
cmpl %ebp, %r15d
jl 0x5063
jmp 0x576e
movq 0x8(%r14,%r12,8), %rdi
callq 0x43a0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x80(%rax)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x43a0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x88(%rax)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0x90(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0x94(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0x98(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xa0(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xa8(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xac(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xb0(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xb8(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0x9c(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xb4(%rcx)
cmpl $0x1, %eax
jne 0x5426
movl $0x1, 0xc4(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %r13
movq %r13, %rdi
leaq 0x18bc2(%rip), %rsi     # 0x1e14c
callq 0x4430
testl %eax, %eax
je 0x5609
movq %r13, %rdi
leaq 0x18bb2(%rip), %rsi     # 0x1e14f
callq 0x4430
testl %eax, %eax
je 0x5637
movq %r13, %rdi
leaq 0x18b9e(%rip), %rsi     # 0x1e152
callq 0x4430
testl %eax, %eax
jne 0x5867
movq 0x8(%rsp), %rax
movl $0x3, 0xbc(%rax)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xc4(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xc8(%rcx)
jmp 0x5426
movq 0x8(%rsp), %rax
movl $0x1, 0xbc(%rax)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xcc(%rcx)
jmp 0x5426
movq 0x8(%rsp), %rax
movl $0x2, 0xbc(%rax)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xd0(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xd4(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x43a0
movq 0x8(%rsp), %rax
movsd %xmm0, 0xd8(%rax)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rsi
movq %rbx, %rdi
leaq 0x7(%rsp), %rdx
callq 0x62d0
movq 0x38(%rsp), %rdi
jmp 0x5402
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0x100(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0xa4(%rcx)
jmp 0x5426
movq 0x8(%r14,%r12,8), %rsi
movq %rbx, %rdi
leaq 0x7(%rsp), %rdx
callq 0x62d0
movq 0x30(%rsp), %rdi
jmp 0x5402
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
movq 0x8(%rsp), %rcx
movl %eax, 0x128(%rcx)
jmp 0x5426
movq 0x8(%rsp), %rax
movb $0x1, 0x12e(%rax)
jmp 0x5749
movq 0x8(%rsp), %rax
movb $0x1, 0x12d(%rax)
jmp 0x5749
movq 0x8(%rsp), %rax
movb $0x1, 0x12c(%rax)
decl %r15d
jmp 0x5426
movq 0x8(%r14,%r12,8), %rdi
callq 0x44c0
cltq
movq 0x8(%rsp), %rcx
movq %rax, 0x130(%rcx)
jmp 0x5426
movq 0x8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x5837
cmpq $0x0, 0x48(%rax)
je 0x5837
cmpl $0x1, 0xb4(%rax)
jg 0x57a5
cmpl $0x0, 0xd0(%rax)
jne 0x57a5
movl $0x0, 0xc4(%rax)
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x57c0
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x4300
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x247ea(%rip), %rdi     # 0x29fc0
leaq 0x188c2(%rip), %rsi     # 0x1e09f
movl $0x18, %edx
callq 0x4350
movq 0x247d2(%rip), %rdi     # 0x29fc0
callq 0x4170
movq 0x8(%rsp), %rdi
callq 0x5916
jmp 0x582d
movq 0x247ba(%rip), %rdi     # 0x29fc0
leaq 0x18866(%rip), %rsi     # 0x1e073
movl $0x28, %edx
callq 0x4350
movq 0x247a2(%rip), %rdi     # 0x29fc0
callq 0x4170
movq 0x8(%rsp), %rdi
callq 0x5916
movl $0x1, %edi
callq 0x4380
movq 0x24782(%rip), %rdi     # 0x29fc0
leaq 0x189c3(%rip), %rsi     # 0x1e208
movl $0x1b, %edx
callq 0x4350
movq 0x2476a(%rip), %rdi     # 0x29fc0
callq 0x4170
movq 0x8(%rsp), %rdi
callq 0x5916
jmp 0x582d
movq 0x24752(%rip), %rdi     # 0x29fc0
leaq 0x188e5(%rip), %rsi     # 0x1e15a
movl $0xe, %edx
callq 0x4350
movq 0x8(%r14,%r12,8), %rsi
movq 0x24735(%rip), %rdi     # 0x29fc0
callq 0x42e0
movq %rax, %rdi
callq 0x4170
movq 0x8(%rsp), %rdi
callq 0x5916
jmp 0x582d
movq 0x24715(%rip), %rdi     # 0x29fc0
leaq 0x18943(%rip), %rsi     # 0x1e1f5
movl $0x12, %edx
callq 0x4350
movq (%r14,%r12,8), %rsi
movq 0x246f9(%rip), %rdi     # 0x29fc0
callq 0x42e0
movq %rax, %rdi
callq 0x4170
movq 0x8(%rsp), %rdi
callq 0x5916
jmp 0x582d
jmp 0x58ef
jmp 0x58ef
jmp 0x58ef
jmp 0x58ef
jmp 0x58ef
jmp 0x58ef
movq %rax, %rbx
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x590d
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x4300
movq %rbx, %rdi
callq 0x45b0
nop