// File: /workspace/github_cpp_makefile_star2_O3/kingufl[P]Rmapper/graph_traverse.cpp
// Function: parseArgs(int, char* const*, Args&)
void parseArgs(int argc, char *const argv[], Args &arg)
{
  int c;
  extern char *optarg;
  extern int optind;

  std::string usage("usage: " + std::string(argv[0]) + " indir\n\n" +
                    "Traverse the bi-labelled de Bruijn graph in the directory [indir].\n");

  // the only input parameter is the directory name
  if (argc == 2)
  {
    arg.dirname.assign(argv[1]);
  }
  else
  {
    cerr << "Invalid number of arguments\n" << usage;
    exit(1);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movl %edi, %r13d
movq (%rsi), %rsi
leaq -0xb0(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x20c0
leaq 0x46f8(%rip), %rcx      # 0x7030
leaq -0xb0(%rbp), %rdi
movl $0x7, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x2200
leaq -0x60(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2973
movq %rdx, -0x70(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x60(%rbp)
jmp 0x297b
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq -0x70(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x469b(%rip), %rsi      # 0x7038
callq 0x2330
leaq -0x80(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x29c9
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x29d0
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x90(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x464c(%rip), %rsi      # 0x7041
callq 0x2330
leaq -0x40(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2a1e
movq %rdx, -0x50(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x40(%rbp)
jmp 0x2a24
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x48(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x90(%rbp), %rdi
cmpq %r15, %rdi
je 0x2a4c
callq 0x21c0
movq -0x70(%rbp), %rdi
cmpq %r12, %rdi
je 0x2a5a
callq 0x21c0
leaq -0xa0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a6f
callq 0x21c0
cmpl $0x2, %r13d
jne 0x2abc
movq 0x8(%r14), %r14
movq 0x8(%rbx), %r15
movq %r14, %rdi
callq 0x20e0
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x2290
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x2aaa
callq 0x21c0
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x752d(%rip), %rdi      # 0x9ff0
leaq 0x45bb(%rip), %rsi      # 0x7085
movl $0x1c, %edx
callq 0x2210
movq 0x7515(%rip), %rdi      # 0x9ff0
leaq -0x50(%rbp), %rsi
callq 0x21b0
movl $0x1, %edi
callq 0x2220
movq %rax, %r14
movq -0x90(%rbp), %rdi
cmpq %r15, %rdi
je 0x2b07
callq 0x21c0
jmp 0x2b07
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %r12, %rdi
je 0x2b1a
callq 0x21c0
jmp 0x2b1a
movq %rax, %r14
leaq -0xa0(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0x2b37
movq %rax, %r14
jmp 0x2b41
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x2b41
callq 0x21c0
movq %r14, %rdi
callq 0x2300