// File: /workspace/github_cpp_makefile_star2_O3/ddu1[P]polarizedtext/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 == "pwv") { // polarized word vector model
    model = model_name::pwv;
    loss = loss_name::polar;
    minCount = 1;
    minn = 3;
    maxn = 6;
    lr = 0.1;       
  } else if (command == "cbow") {
    model = model_name::cbow;
  }
  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], "-lr") == 0) {
      lr = 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], "-wordNgrams") == 0) {
      wordNgrams = atoi(argv[ai + 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], "-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], "-pretrainedVectors") == 0) {
      pretrainedVectors = std::string(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 $0x68, %rsp
movq %rdx, %r14
movl %esi, %ebp
movq %rdi, %rbx
movq 0x8(%rdx), %rsi
leaq 0x48(%rsp), %r15
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
callq 0x4860
leaq 0xd5af(%rip), %rsi      # 0x1104a
movq %r15, %rdi
callq 0x3090
testl %eax, %eax
je 0x3add
leaq 0xd5a7(%rip), %rsi      # 0x11055
leaq 0x48(%rsp), %rdi
callq 0x3090
testl %eax, %eax
je 0x3b02
leaq 0xd596(%rip), %rsi      # 0x11059
leaq 0x48(%rsp), %rdi
callq 0x3090
testl %eax, %eax
jne 0x3b39
movl $0x1, 0x8c(%rbx)
jmp 0x3b39
movabsq $0x300000003, %rax      # imm = 0x300000003
movq %rax, 0x88(%rbx)
movl $0x1, 0x78(%rbx)
movq $0x0, 0x94(%rbx)
jmp 0x3b2b
movabsq $0x400000004, %rax      # imm = 0x400000004
movq %rax, 0x88(%rbx)
movl $0x1, 0x78(%rbx)
movabsq $0x600000003, %rax      # imm = 0x600000003
movq %rax, 0x94(%rbx)
movabsq $0x3fb999999999999a, %rax # imm = 0x3FB999999999999A
movq %rax, 0x60(%rbx)
cmpl $0x3, %ebp
jl 0x3fa7
leaq 0xd0(%rbx), %rax
movq %rax, 0x30(%rsp)
leaq 0xa8(%rbx), %rax
movq %rax, 0x28(%rsp)
leaq 0x40(%rbx), %rax
movq %rax, 0x38(%rsp)
leaq 0x20(%rbx), %rax
movq %rax, 0x40(%rsp)
movl $0x2, %r12d
leaq 0x8(%rsp), %r13
movq (%r14,%r12,8), %r15
cmpb $0x2d, (%r15)
jne 0x4003
cmpb $0x68, 0x1(%r15)
jne 0x3b97
cmpb $0x0, 0x2(%r15)
je 0x4031
movq %r15, %rdi
leaq 0xd4ff(%rip), %rsi      # 0x110a0
callq 0x3340
testl %eax, %eax
je 0x3d8e
movq %r15, %rdi
leaq 0xd4ef(%rip), %rsi      # 0x110a7
callq 0x3340
testl %eax, %eax
je 0x3da5
movq %r15, %rdi
leaq 0xd4de(%rip), %rsi      # 0x110ad
callq 0x3340
testl %eax, %eax
je 0x3dbe
movq %r15, %rdi
leaq 0xd4cf(%rip), %rsi      # 0x110b5
callq 0x3340
testl %eax, %eax
je 0x3e0b
movq %r15, %rdi
leaq 0xd4bc(%rip), %rsi      # 0x110b9
callq 0x3340
testl %eax, %eax
je 0x3e1c
movq %r15, %rdi
leaq 0xd4b3(%rip), %rsi      # 0x110c7
callq 0x3340
testl %eax, %eax
je 0x3e2b
movq %r15, %rdi
leaq 0xd4a1(%rip), %rsi      # 0x110cc
callq 0x3340
testl %eax, %eax
je 0x3e3a
movq %r15, %rdi
leaq 0xd48e(%rip), %rsi      # 0x110d0
callq 0x3340
testl %eax, %eax
je 0x3e49
movq %r15, %rdi
leaq 0xd47e(%rip), %rsi      # 0x110d7
callq 0x3340
testl %eax, %eax
je 0x3e58
movq %r15, %rdi
leaq 0xd471(%rip), %rsi      # 0x110e1
callq 0x3340
testl %eax, %eax
je 0x3e67
movq %r15, %rdi
leaq 0xd469(%rip), %rsi      # 0x110f0
callq 0x3340
testl %eax, %eax
je 0x3e76
movq %r15, %rdi
leaq 0xd457(%rip), %rsi      # 0x110f5
callq 0x3340
testl %eax, %eax
je 0x3e8b
movq %r15, %rdi
leaq 0xd44c(%rip), %rsi      # 0x11101
callq 0x3340
testl %eax, %eax
je 0x3ea0
movq %r15, %rdi
leaq 0xd458(%rip), %rsi      # 0x11124
callq 0x3340
testl %eax, %eax
je 0x3ecd
movq %r15, %rdi
leaq 0xd449(%rip), %rsi      # 0x1112c
callq 0x3340
testl %eax, %eax
je 0x3ee2
movq %r15, %rdi
leaq 0xd438(%rip), %rsi      # 0x11132
callq 0x3340
testl %eax, %eax
je 0x3f26
movq %r15, %rdi
leaq 0xd427(%rip), %rsi      # 0x11138
callq 0x3340
testl %eax, %eax
je 0x3f3b
cmpb $0x74, 0x1(%r15)
jne 0x3d30
cmpb $0x0, 0x2(%r15)
je 0x3f90
movq %r15, %rdi
leaq 0xd406(%rip), %rsi      # 0x11140
callq 0x3340
testl %eax, %eax
je 0x3f50
movq %r15, %rdi
leaq 0xd3f6(%rip), %rsi      # 0x11147
callq 0x3340
testl %eax, %eax
je 0x3f7b
movq %r15, %rdi
leaq 0xd3e8(%rip), %rsi      # 0x11150
callq 0x3340
testl %eax, %eax
jne 0x40d0
movq 0x8(%r14,%r12,8), %rsi
movq %r13, %rdi
leaq 0x7(%rsp), %rdx
callq 0x4860
movq 0x30(%rsp), %rdi
jmp 0x3dd5
movq 0x8(%r14,%r12,8), %rsi
movq %r13, %rdi
leaq 0x7(%rsp), %rdx
callq 0x4860
movq %rbx, %rdi
jmp 0x3dd5
movq 0x8(%r14,%r12,8), %rsi
movq %r13, %rdi
leaq 0x7(%rsp), %rdx
callq 0x4860
movq 0x40(%rsp), %rdi
jmp 0x3dd5
movq 0x8(%r14,%r12,8), %rsi
movq %r13, %rdi
leaq 0x7(%rsp), %rdx
callq 0x4860
movq 0x38(%rsp), %rdi
movq %r13, %rsi
callq 0x32c0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3df9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
addq $0x2, %r12
cmpl %ebp, %r12d
jl 0x3b77
jmp 0x3fa7
movq 0x8(%r14,%r12,8), %rdi
callq 0x32d0
movsd %xmm0, 0x60(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x68(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x6c(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x70(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x74(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x78(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x7c(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x80(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x84(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
movzbl (%rdi), %eax
cmpl $0x6e, %eax
je 0x3ef7
cmpl $0x68, %eax
jne 0x3f03
cmpb $0x73, 0x1(%rdi)
jne 0x3f03
cmpb $0x0, 0x2(%rdi)
jne 0x3f03
movl $0x1, 0x88(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x90(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x94(%rbx)
jmp 0x3df9
cmpb $0x73, 0x1(%rdi)
jne 0x3f03
cmpb $0x0, 0x2(%rdi)
je 0x3f6c
leaq 0xd203(%rip), %rsi      # 0x1110d
callq 0x3340
testl %eax, %eax
jne 0x4095
movl $0x3, 0x88(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x98(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0x9c(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rsi
movq %r13, %rdi
leaq 0x7(%rsp), %rdx
callq 0x4860
movq 0x28(%rsp), %rdi
jmp 0x3dd5
movl $0x2, 0x88(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x33a0
movl %eax, 0xc8(%rbx)
jmp 0x3df9
movq 0x8(%r14,%r12,8), %rdi
callq 0x32d0
movsd %xmm0, 0xa0(%rbx)
jmp 0x3df9
cmpq $0x0, 0x8(%rbx)
je 0x4067
cmpq $0x0, 0x48(%rbx)
je 0x4067
cmpl $0x1, 0x84(%rbx)
jg 0x3fd9
cmpl $0x0, 0x98(%rbx)
jne 0x3fd9
movl $0x0, 0x90(%rbx)
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3ff4
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3260
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x13fbe(%rip), %rdi     # 0x17fc8
leaq 0xd04d(%rip), %rsi      # 0x1105e
movl $0x28, %edx
callq 0x3290
movq 0x13fa6(%rip), %rdi     # 0x17fc8
callq 0x3110
movq %rbx, %rdi
callq 0x413e
jmp 0x405d
movq 0x13f90(%rip), %rdi     # 0x17fc8
leaq 0xd048(%rip), %rsi      # 0x11087
movl $0x18, %edx
callq 0x3290
movq 0x13f78(%rip), %rdi     # 0x17fc8
callq 0x3110
movq %rbx, %rdi
callq 0x413e
movl $0x1, %edi
callq 0x32b0
movq 0x13f5a(%rip), %rdi     # 0x17fc8
leaq 0xd101(%rip), %rsi      # 0x11176
movl $0x1b, %edx
callq 0x3290
movq 0x13f42(%rip), %rdi     # 0x17fc8
callq 0x3110
movq %rbx, %rdi
callq 0x413e
jmp 0x405d
movq 0x13f2c(%rip), %rdi     # 0x17fc8
leaq 0xd072(%rip), %rsi      # 0x11115
movl $0xe, %edx
callq 0x3290
movq 0x8(%r14,%r12,8), %rsi
movq 0x13f0f(%rip), %rdi     # 0x17fc8
callq 0x3240
movq %rax, %rdi
callq 0x3110
movq %rbx, %rdi
callq 0x413e
jmp 0x405d
movq 0x13ef1(%rip), %rdi     # 0x17fc8
leaq 0xd085(%rip), %rsi      # 0x11163
movl $0x12, %edx
callq 0x3290
movq (%r14,%r12,8), %rsi
movq 0x13ed5(%rip), %rdi     # 0x17fc8
callq 0x3240
movq %rax, %rdi
callq 0x3110
movq %rbx, %rdi
callq 0x413e
jmp 0x405d
jmp 0x4117
jmp 0x4117
jmp 0x4117
jmp 0x4117
jmp 0x4117
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4135
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbx, %rdi
callq 0x3450
nop