// File: 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
movq %rsp, %rbp
subq $0x200, %rsp            # imm = 0x200
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x150(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x57b0
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
leaq -0x38(%rbp), %rdi
callq 0x7e10
jmp 0x5fa9
leaq -0x39(%rbp), %rdi
callq 0x5480
leaq 0x3c069(%rip), %rsi     # 0x42022
leaq -0x38(%rbp), %rdi
callq 0x7ec0
movb %al, -0x159(%rbp)
jmp 0x5fca
movb -0x159(%rbp), %al
testb $0x1, %al
jne 0x5fd6
jmp 0x604f
movq -0x158(%rbp), %rax
movl $0x3, 0xc0(%rax)
movl $0x3, 0xbc(%rax)
movl $0x1, 0xa8(%rax)
movl $0x0, 0xcc(%rax)
movl $0x0, 0xd0(%rax)
movsd 0x3bff9(%rip), %xmm0    # 0x42010
movsd %xmm0, 0x80(%rax)
jmp 0x61a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x39(%rbp), %rdi
callq 0x5480
jmp 0x707a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7071
leaq 0x3bfd7(%rip), %rsi     # 0x4202d
leaq -0x38(%rbp), %rdi
callq 0x7ec0
movb %al, -0x15a(%rbp)
jmp 0x6067
movb -0x15a(%rbp), %al
testb $0x1, %al
jne 0x6073
jmp 0x6089
movq -0x158(%rbp), %rax
movl $0x1, 0xc0(%rax)
jmp 0x619e
leaq 0x3bfa2(%rip), %rsi     # 0x42032
leaq -0x38(%rbp), %rdi
callq 0x7ec0
movb %al, -0x15b(%rbp)
jmp 0x60a1
movb -0x15b(%rbp), %al
testb $0x1, %al
jne 0x60ad
jmp 0x610f
movq -0x158(%rbp), %rax
movl $0x4, 0xc0(%rax)
movl $0x2, 0xbc(%rax)
movl $0xa, 0xb0(%rax)
movl $0x5, 0xa8(%rax)
movl $0x3, 0xcc(%rax)
movl $0x6, 0xd0(%rax)
movsd 0x3bf10(%rip), %xmm0    # 0x42008
movsd %xmm0, 0x80(%rax)
movl $0x2, 0x9c(%rax)
jmp 0x619c
leaq 0x3bf25(%rip), %rsi     # 0x4203b
leaq -0x38(%rbp), %rdi
callq 0x7ec0
movb %al, -0x15c(%rbp)
jmp 0x6127
movb -0x15c(%rbp), %al
testb $0x1, %al
jne 0x6133
jmp 0x619a
movq -0x158(%rbp), %rax
movl $0x5, 0xc0(%rax)
movl $0x2, 0xbc(%rax)
movl $0xa, 0xb0(%rax)
movl $0x5, 0xa8(%rax)
movl $0x1, 0xc8(%rax)
movl $0x3, 0xcc(%rax)
movl $0x6, 0xd0(%rax)
movsd 0x3be80(%rip), %xmm0    # 0x42008
movsd %xmm0, 0x80(%rax)
movl $0x2, 0x9c(%rax)
jmp 0x619c
jmp 0x619e
jmp 0x61a0
movl $0x2, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x6fbf
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x6210
movq 0x58dea(%rip), %rdi     # 0x5efb8
leaq 0x3be76(%rip), %rsi     # 0x4204b
callq 0x5420
movq %rax, -0x168(%rbp)
jmp 0x61e3
movq -0x168(%rbp), %rdi
movq 0x58d9f(%rip), %rsi     # 0x5ef90
callq 0x5460
jmp 0x61f8
movq -0x158(%rbp), %rdi
callq 0x7090
jmp 0x6206
movl $0x1, %edi
callq 0x54f0
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3be51(%rip), %rsi     # 0x42074
callq 0x5610
cmpl $0x0, %eax
jne 0x6276
movq 0x58d84(%rip), %rdi     # 0x5efb8
leaq 0x3be3c(%rip), %rsi     # 0x42077
callq 0x5420
movq %rax, -0x170(%rbp)
jmp 0x6249
movq -0x170(%rbp), %rdi
movq 0x58d39(%rip), %rsi     # 0x5ef90
callq 0x5460
jmp 0x625e
movq -0x158(%rbp), %rdi
callq 0x7090
jmp 0x626c
movl $0x1, %edi
callq 0x54f0
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3be07(%rip), %rsi     # 0x42090
callq 0x5610
cmpl $0x0, %eax
jne 0x6311
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x180(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x57b0
movq -0x180(%rbp), %rsi
movq -0x178(%rbp), %rdx
leaq -0x70(%rbp), %rdi
callq 0x7e10
jmp 0x62d0
movq -0x158(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x5500
leaq -0x70(%rbp), %rdi
callq 0x58d8
leaq -0x71(%rbp), %rdi
callq 0x5480
jmp 0x6faf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x71(%rbp), %rdi
callq 0x5480
jmp 0x7071
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3bd73(%rip), %rsi     # 0x42097
callq 0x5610
cmpl $0x0, %eax
jne 0x63c6
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x190(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x57b0
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
leaq -0x98(%rbp), %rdi
callq 0x7e10
jmp 0x6375
movq -0x158(%rbp), %rdi
addq $0x20, %rdi
leaq -0x98(%rbp), %rsi
callq 0x5500
leaq -0x98(%rbp), %rdi
callq 0x58d8
leaq -0x99(%rbp), %rdi
callq 0x5480
jmp 0x6fad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x99(%rbp), %rdi
callq 0x5480
jmp 0x7071
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3bcc4(%rip), %rsi     # 0x4209d
callq 0x5610
cmpl $0x0, %eax
jne 0x647b
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x1a0(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x57b0
movq -0x1a0(%rbp), %rsi
movq -0x198(%rbp), %rdx
leaq -0xc0(%rbp), %rdi
callq 0x7e10
jmp 0x642a
movq -0x158(%rbp), %rdi
addq $0x40, %rdi
leaq -0xc0(%rbp), %rsi
callq 0x5500
leaq -0xc0(%rbp), %rdi
callq 0x58d8
leaq -0xc1(%rbp), %rdi
callq 0x5480
jmp 0x6fab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xc1(%rbp), %rdi
callq 0x5480
jmp 0x7071
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3bc17(%rip), %rsi     # 0x420a5
callq 0x5610
cmpl $0x0, %eax
jne 0x6530
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x1b0(%rbp)
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
callq 0x57b0
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
callq 0x7e10
jmp 0x64df
movq -0x158(%rbp), %rdi
addq $0x60, %rdi
leaq -0xe8(%rbp), %rsi
callq 0x5500
leaq -0xe8(%rbp), %rdi
callq 0x58d8
leaq -0xe9(%rbp), %rdi
callq 0x5480
jmp 0x6fa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xe9(%rbp), %rdi
callq 0x5480
jmp 0x7071
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3bb68(%rip), %rsi     # 0x420ab
callq 0x5610
cmpl $0x0, %eax
jne 0x6577
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5520
movq -0x158(%rbp), %rax
movsd %xmm0, 0x80(%rax)
jmp 0x6fa7
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3bb25(%rip), %rsi     # 0x420af
callq 0x5610
cmpl $0x0, %eax
jne 0x65be
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5520
movq -0x158(%rbp), %rax
movsd %xmm0, 0x88(%rax)
jmp 0x6fa5
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3baeb(%rip), %rsi     # 0x420bc
callq 0x5610
cmpl $0x0, %eax
jne 0x6605
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0x90(%rax)
jmp 0x6fa3
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3bab2(%rip), %rsi     # 0x420ca
callq 0x5610
cmpl $0x0, %eax
jne 0x664c
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0x94(%rax)
jmp 0x6fa1
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3ba70(%rip), %rsi     # 0x420cf
callq 0x5610
cmpl $0x0, %eax
jne 0x6693
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0x98(%rax)
jmp 0x6f9f
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3ba2d(%rip), %rsi     # 0x420d3
callq 0x5610
cmpl $0x0, %eax
jne 0x66da
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xa0(%rax)
jmp 0x6f9d
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b9ed(%rip), %rsi     # 0x420da
callq 0x5610
cmpl $0x0, %eax
jne 0x6721
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xa8(%rax)
jmp 0x6f9b
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b9b0(%rip), %rsi     # 0x420e4
callq 0x5610
cmpl $0x0, %eax
jne 0x6768
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xac(%rax)
jmp 0x6f99
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b978(%rip), %rsi     # 0x420f3
callq 0x5610
cmpl $0x0, %eax
jne 0x67af
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xb0(%rax)
jmp 0x6f97
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b936(%rip), %rsi     # 0x420f8
callq 0x5610
cmpl $0x0, %eax
jne 0x67f6
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xb8(%rax)
jmp 0x6f95
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b8ff(%rip), %rsi     # 0x42108
callq 0x5610
cmpl $0x0, %eax
jne 0x683d
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0x9c(%rax)
jmp 0x6f93
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b8c2(%rip), %rsi     # 0x42112
callq 0x5610
cmpl $0x0, %eax
jne 0x689e
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xb4(%rax)
cmpl $0x1, 0xb4(%rax)
jne 0x6899
movq -0x158(%rbp), %rax
movl $0x1, 0xc4(%rax)
jmp 0x6f91
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b86d(%rip), %rsi     # 0x4211e
callq 0x5610
cmpl $0x0, %eax
jne 0x69d8
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b84d(%rip), %rsi     # 0x42124
callq 0x5610
cmpl $0x0, %eax
jne 0x68f7
movq -0x158(%rbp), %rax
movl $0x1, 0xbc(%rax)
jmp 0x69d3
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b818(%rip), %rsi     # 0x42127
callq 0x5610
cmpl $0x0, %eax
jne 0x692f
movq -0x158(%rbp), %rax
movl $0x2, 0xbc(%rax)
jmp 0x69d1
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b7e3(%rip), %rsi     # 0x4212a
callq 0x5610
cmpl $0x0, %eax
jne 0x6964
movq -0x158(%rbp), %rax
movl $0x3, 0xbc(%rax)
jmp 0x69cf
movq 0x5864d(%rip), %rdi     # 0x5efb8
leaq 0x3b7c0(%rip), %rsi     # 0x42132
callq 0x5420
movq %rax, -0x1b8(%rbp)
jmp 0x6980
movq -0x1b8(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rsi
callq 0x5420
movq %rax, -0x1c0(%rbp)
jmp 0x69a2
movq -0x1c0(%rbp), %rdi
movq 0x585e0(%rip), %rsi     # 0x5ef90
callq 0x5460
jmp 0x69b7
movq -0x158(%rbp), %rdi
callq 0x7090
jmp 0x69c5
movl $0x1, %edi
callq 0x54f0
jmp 0x69d1
jmp 0x69d3
jmp 0x6f8f
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b756(%rip), %rsi     # 0x42141
callq 0x5610
cmpl $0x0, %eax
jne 0x6a1f
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xc4(%rax)
jmp 0x6f8d
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b717(%rip), %rsi     # 0x42149
callq 0x5610
cmpl $0x0, %eax
jne 0x6a66
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xc8(%rax)
jmp 0x6f8b
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b6dc(%rip), %rsi     # 0x42155
callq 0x5610
cmpl $0x0, %eax
jne 0x6aad
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xcc(%rax)
jmp 0x6f89
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b69b(%rip), %rsi     # 0x4215b
callq 0x5610
cmpl $0x0, %eax
jne 0x6af4
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xd0(%rax)
jmp 0x6f87
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b65a(%rip), %rsi     # 0x42161
callq 0x5610
cmpl $0x0, %eax
jne 0x6b3b
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xd4(%rax)
jmp 0x6f85
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b61b(%rip), %rsi     # 0x42169
callq 0x5610
cmpl $0x0, %eax
jne 0x6b82
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5520
movq -0x158(%rbp), %rax
movsd %xmm0, 0xd8(%rax)
jmp 0x6f83
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b5d7(%rip), %rsi     # 0x4216c
callq 0x5610
cmpl $0x0, %eax
jne 0x6c3a
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x1d0(%rbp)
leaq -0x111(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x57b0
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
leaq -0x110(%rbp), %rdi
callq 0x7e10
jmp 0x6be6
movq -0x158(%rbp), %rdi
addq $0xe0, %rdi
leaq -0x110(%rbp), %rsi
callq 0x5500
leaq -0x110(%rbp), %rdi
callq 0x58d8
leaq -0x111(%rbp), %rdi
callq 0x5480
jmp 0x6f81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x111(%rbp), %rdi
callq 0x5480
jmp 0x7071
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b526(%rip), %rsi     # 0x42173
callq 0x5610
cmpl $0x0, %eax
jne 0x6c81
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0x100(%rax)
jmp 0x6f7f
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b4e8(%rip), %rsi     # 0x4217c
callq 0x5610
cmpl $0x0, %eax
jne 0x6cc8
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0xa4(%rax)
jmp 0x6f7d
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b4af(%rip), %rsi     # 0x4218a
callq 0x5610
cmpl $0x0, %eax
jne 0x6d80
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x1e0(%rbp)
leaq -0x139(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x57b0
movq -0x1e0(%rbp), %rsi
movq -0x1d8(%rbp), %rdx
leaq -0x138(%rbp), %rdi
callq 0x7e10
jmp 0x6d2c
movq -0x158(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
leaq -0x138(%rbp), %rsi
callq 0x5500
leaq -0x138(%rbp), %rdi
callq 0x58d8
leaq -0x139(%rbp), %rdi
callq 0x5480
jmp 0x6f7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x139(%rbp), %rdi
callq 0x5480
jmp 0x7071
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b40a(%rip), %rsi     # 0x4219d
callq 0x5610
cmpl $0x0, %eax
jne 0x6dc7
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movl %ecx, 0x128(%rax)
jmp 0x6f79
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b3cf(%rip), %rsi     # 0x421a9
callq 0x5610
cmpl $0x0, %eax
jne 0x6e00
movq -0x158(%rbp), %rax
movb $0x1, 0x12e(%rax)
movl -0x50(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x6f77
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b39d(%rip), %rsi     # 0x421b0
callq 0x5610
cmpl $0x0, %eax
jne 0x6e39
movq -0x158(%rbp), %rax
movb $0x1, 0x12d(%rax)
movl -0x50(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x6f75
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b36d(%rip), %rsi     # 0x421b9
callq 0x5610
cmpl $0x0, %eax
jne 0x6e72
movq -0x158(%rbp), %rax
movb $0x1, 0x12c(%rax)
movl -0x50(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x6f73
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b33a(%rip), %rsi     # 0x421bf
callq 0x5610
cmpl $0x0, %eax
jne 0x6ebd
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movslq %ecx, %rcx
movq %rcx, 0x130(%rax)
jmp 0x6f71
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3b2f7(%rip), %rsi     # 0x421c7
callq 0x5610
cmpl $0x0, %eax
jne 0x6f05
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x5680
movl %eax, %ecx
movq -0x158(%rbp), %rax
movslq %ecx, %rcx
movq %rcx, 0x138(%rax)
jmp 0x6f6f
movq 0x580ac(%rip), %rdi     # 0x5efb8
leaq 0x3b2ba(%rip), %rsi     # 0x421cd
callq 0x5420
movq %rax, -0x1e8(%rbp)
jmp 0x6f21
movq -0x1e8(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x5420
movq %rax, -0x1f0(%rbp)
jmp 0x6f42
movq -0x1f0(%rbp), %rdi
movq 0x58040(%rip), %rsi     # 0x5ef90
callq 0x5460
jmp 0x6f57
movq -0x158(%rbp), %rdi
callq 0x7090
jmp 0x6f65
movl $0x1, %edi
callq 0x54f0
jmp 0x6f71
jmp 0x6f73
jmp 0x6f75
jmp 0x6f77
jmp 0x6f79
jmp 0x6f7b
jmp 0x6f7d
jmp 0x6f7f
jmp 0x6f81
jmp 0x6f83
jmp 0x6f85
jmp 0x6f87
jmp 0x6f89
jmp 0x6f8b
jmp 0x6f8d
jmp 0x6f8f
jmp 0x6f91
jmp 0x6f93
jmp 0x6f95
jmp 0x6f97
jmp 0x6f99
jmp 0x6f9b
jmp 0x6f9d
jmp 0x6f9f
jmp 0x6fa1
jmp 0x6fa3
jmp 0x6fa5
jmp 0x6fa7
jmp 0x6fa9
jmp 0x6fab
jmp 0x6fad
jmp 0x6faf
jmp 0x6fb1
movl -0x50(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x50(%rbp)
jmp 0x61a7
movq -0x158(%rbp), %rdi
callq 0x5710
testb $0x1, %al
jne 0x6fe5
movq -0x158(%rbp), %rdi
addq $0x40, %rdi
callq 0x5710
testb $0x1, %al
jne 0x6fe5
jmp 0x702e
movq 0x57fcc(%rip), %rdi     # 0x5efb8
leaq 0x3b1ed(%rip), %rsi     # 0x421e0
callq 0x5420
movq %rax, -0x1f8(%rbp)
jmp 0x7001
movq -0x1f8(%rbp), %rdi
movq 0x57f81(%rip), %rsi     # 0x5ef90
callq 0x5460
jmp 0x7016
movq -0x158(%rbp), %rdi
callq 0x7090
jmp 0x7024
movl $0x1, %edi
callq 0x54f0
movq -0x158(%rbp), %rax
cmpl $0x1, 0xb4(%rax)
jg 0x705f
movq -0x158(%rbp), %rax
cmpl $0x0, 0xd0(%rax)
jne 0x705f
movq -0x158(%rbp), %rax
movl $0x0, 0xc4(%rax)
leaq -0x38(%rbp), %rdi
callq 0x58d8
addq $0x200, %rsp            # imm = 0x200
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x58d8
movq -0x48(%rbp), %rdi
callq 0x57a0
nopw %cs:(%rax,%rax)