// File: /workspace/github_c_makefile_star2_O2/richarddurbin[P]hash10x/moshutils.c
// Function: main
int main (int argc, char *argv[])
{
  --argc ; ++argv ;		/* eat program name */
  if (!argc) usage () ;

  outFile = stdout ;
  timeUpdate (stdout) ;		/* initialise timer */

  Moshset *ms = 0 ;
  int i ;			/* generically useful variables */
  FILE *f ;

  while (argc) {
    if (**argv != '-')
      die ("option/command %s does not start with '-': run without arguments for usage", *argv) ;
    fprintf (stderr, "COMMAND %s", *argv) ;
    for (i = 1 ; i < argc && *argv[i] != '-' ; ++i) fprintf (stderr, " %s", argv[i]) ;
    fputc ('\n', stderr) ;
    
#define ARGMATCH(x,y,n)	((!strcmp (*argv, x) || (!strcmp (*argv,y))) && argc >= n && (argc -= n, argv += n))
    if (ARGMATCH("-v","--verbose",1)) isVerbose = !isVerbose ;
    else if (ARGMATCH("-o","--output",2))
      { if (!strcmp (argv[-1], "-"))
	  outFile = stdout ;
	else if (!(outFile = fopen (argv[-1], "w")))
	  { fprintf (stderr, "can't open output file %s - resetting to stdout\n", argv[-1]) ;
	    outFile = stdout ;
	  }
      }
    else if (!ms && ARGMATCH("-c","--create",1))
      { int B = 28, k = 19, w = 31, s = 17 ;
	if (argc && **argv != '-')
	  { if (!(B = atoi(*argv)) || B < 20 || B > 34) die ("bad moshbuild B %s", *argv) ;
	    if (--argc && **++argv != '-')
	      { if (!(k = atoi(*argv)) || k < 1) die ("bad moshbuild k %s", *argv) ;
		if (--argc && **++argv != '-')
		  { if (!(w = atoi(*argv)) || k < 1) die ("bad moshbuild w %s", *argv) ;
		    if (--argc && **++argv != '-')
		      { if (!(s = atoi(*argv))) die ("bad moshbuild w %s", *argv) ;
			--argc ; ++argv ;
		      }
		  }
	      }
	  }
	srandom (s) ;
	Seqhash *sh = seqhashCreate (k, w) ;
	ms = moshsetCreate (sh, B, 0) ;
      }
    else if (!ms && ARGMATCH("-r","--read",2))
      { if (!(f = fopen (argv[-1], "r"))) die ("failed to open mosh file %s", argv[-1]) ;
	ms = moshsetRead (f) ;
	fclose (f) ;
	seqhashReport (ms->hasher, outFile) ;
	fprintf (outFile, "read ") ; moshsetSummary (ms, outFile) ;
      }
    else if (ms && ARGMATCH("-w","--write",2))
      { if (!(f = fopen (argv[-1], "w"))) die ("failed to open mosh file %s", argv[-1]) ;
	moshsetWrite (ms, f) ;
	fclose (f) ;
      }
    else if (ms && ARGMATCH("-p","--prune",3))
      { moshsetDepthPrune (ms, atoi(argv[-2]), atoi(argv[-1])) ;
	fprintf (outFile, "prune ") ; moshsetSummary (ms, outFile) ;
      }
    else if (ms && ARGMATCH("-s","--setcopy",4))
      { int copy1min = atoi(argv[-3]), copy2min = atoi(argv[-2]), copyMmin = atoi(argv[-1]) ;
	U32 u ;
	for (u = 1 ; u <= ms->max ; ++u)
	  if (ms->depth[u] < copy1min) msSetCopy0(ms,u) ;
	  else if (ms->depth[u] < copy2min) msSetCopy1(ms,u) ;
	  else if (ms->depth[u] < copyMmin) msSetCopy2(ms,u) ;
	  else msSetCopyM(ms,u) ;

	fprintf (outFile, "setcopy ") ; moshsetSummary (ms, outFile) ;
      }
    else if (ms && ARGMATCH("-sM","--setcopyM",2))
      { int copyMmin = atoi(argv[-1]) ;
	U32 u ; for (u = 1 ; u <= ms->max ; ++u) if (ms->depth[u] >= copyMmin) msSetCopyM(ms,u) ;
	fprintf (outFile, "setcopyM ") ; moshsetSummary (ms, outFile) ;
      }
    else if (ms && ARGMATCH("-a","--add",2))
      { if (!addSequenceFile (ms, argv[-1], FALSE))
	  die ("failed to open sequence file %s", argv[-1]) ;
	fprintf (outFile, "add ") ; moshsetSummary (ms, outFile) ;
      }
    else if (ms && ARGMATCH("-x","--add10x",2))
      { if (!addSequenceFile (ms, argv[-1], TRUE))
	  die ("failed to open sequence file %s", argv[-1]) ;
	fprintf (outFile, "add10x ") ; moshsetSummary (ms, outFile) ;
      }
    else if (ms && ARGMATCH ("-m","--merge",2))
      { if (!(f = fopen (argv[-1], "r"))) die ("failed to open mosh file %s", argv[-1]) ;
	Moshset *ms2 = moshsetRead (f) ;
	fprintf (outFile, "read ") ; moshsetSummary (ms2, outFile) ;
	fclose (f) ;
	if (!moshsetMerge (ms, ms2))
	  fprintf (stderr, "moshset %s incompatible with current - unable to merge\n", argv[-1]) ;
	moshsetDestroy (ms2) ;
	fprintf (outFile, "merge ") ; moshsetSummary (ms, outFile) ;
      }
    else if (ms && ARGMATCH ("-H","--hist",2))
      { if (!(f = fopen (argv[-1], "w"))) die ("failed to open histogram file %s", argv[-1]) ;
       depthHistogram (ms, f) ;
       fclose (f) ;
      }
    else if (ms && ARGMATCH ("-d","--depths",2))
      { FILE *fd ;
	if (!(fd = fopen (argv[-1], "w"))) die ("failed to open depths file %s", argv[-1]) ;
	Array ma = arrayCreate (32, Moshset*) ;
	while (argc && **argv != '-')
	  { if (!(f = fopen (*argv, "r"))) die ("failed to open mosh file %s", *argv) ;
	    array(ma,arrayMax(ma),Moshset*) = moshsetRead (f) ;
	    fprintf (outFile, "read ") ; moshsetSummary (arr(ma,arrayMax(ma)-1,Moshset*), outFile) ;
	    fclose (f) ;
	    --argc ; ++argv ;
	  }
	reportDepths (ms, ma, fd) ;
	arrayDestroy (ma) ;
	fclose (fd) ;
      }
    else die ("unknown command %s - run without arguments for usage", *argv) ;

    timeUpdate (outFile) ;
  }

  fprintf (outFile, "total resources used: ") ; timeTotal (outFile) ;
  if (outFile != stdout) { printf ("total resources used: ") ; timeTotal (stdout) ; }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r13
movl %edi, %r12d
decl %r12d
jne 0x173e
callq 0x14d5
addq $0x8, %r13
movq 0x8887(%rip), %rax      # 0x9fd0
movq (%rax), %rdi
movq %rdi, 0x9bfd(%rip)      # 0xb350
pushq $0x1
popq %rbp
xorl %ebx, %ebx
callq 0x545f
testl %r12d, %r12d
je 0x22bf
movq (%r13), %rdx
cmpb $0x2d, (%rdx)
je 0x1784
leaq 0x4e32(%rip), %rdi      # 0x65a8
movq %rdx, %rsi
xorl %eax, %eax
callq 0x5198
movq (%r13), %rdx
movq 0x886d(%rip), %rax      # 0x9ff8
movq (%rax), %rdi
leaq 0x4e5e(%rip), %rsi      # 0x65f3
xorl %eax, %eax
callq 0x1120
movslq %r12d, %r14
movq %rbp, %r15
cmpq %r14, %rbp
jge 0x17ce
movq (%r13,%rbp,8), %rdx
cmpb $0x2d, (%rdx)
je 0x17ce
movq 0x8840(%rip), %rax      # 0x9ff8
movq (%rax), %rdi
leaq 0x4e9a(%rip), %rsi      # 0x665c
xorl %eax, %eax
callq 0x1120
incq %rbp
jmp 0x17a2
movq 0x8823(%rip), %rax      # 0x9ff8
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x10e0
movq (%r13), %rbp
movb (%rbp), %r14b
cmpb $0x2d, %r14b
jne 0x17fe
cmpb $0x76, 0x1(%rbp)
jne 0x17fe
cmpb $0x0, 0x2(%rbp)
je 0x192e
movq %rbp, %rdi
leaq 0x4df6(%rip), %rsi      # 0x65fe
callq 0x1100
testl %r12d, %r12d
jle 0x1833
testl %eax, %eax
jne 0x1833
addq $0x8, %r13
decl %r12d
cmpb $0x0, 0x9b24(%rip)      # 0xb348
sete 0x9b1d(%rip)            # 0xb348
movq %r15, %rbp
jmp 0x1cb8
cmpb $0x2d, %r14b
jne 0x1849
cmpb $0x6f, 0x1(%rbp)
jne 0x1849
cmpb $0x0, 0x2(%rbp)
je 0x1a3b
movq %rbp, %rdi
leaq 0x4db5(%rip), %rsi      # 0x6608
callq 0x1100
cmpl $0x2, %r12d
jl 0x18a4
testl %eax, %eax
jne 0x18a4
addl $-0x2, %r12d
leaq 0x10(%r13), %r14
movq 0x8(%r13), %rdi
cmpb $0x2d, (%rdi)
jne 0x187d
cmpb $0x0, 0x1(%rdi)
je 0x1a53
leaq 0x4d8d(%rip), %rsi      # 0x6611
callq 0x11c0
movq %rax, 0x9ac0(%rip)      # 0xb350
testq %rax, %rax
movq %r15, %rbp
je 0x1bcd
movq %r14, %r13
jmp 0x1cb8
testq %rbx, %rbx
je 0x193c
cmpb $0x2d, %r14b
jne 0x18c3
cmpb $0x77, 0x1(%rbp)
jne 0x18c3
cmpb $0x0, 0x2(%rbp)
je 0x1b65
movq %rbp, %rdi
leaq 0x4de2(%rip), %rsi      # 0x66af
callq 0x1100
cmpl $0x2, %r12d
jl 0x19ac
testl %eax, %eax
jne 0x19ac
movq 0x8(%r13), %rdi
leaq 0x4d22(%rip), %rsi      # 0x6611
callq 0x11c0
movq %rax, %r14
testq %rax, %rax
jne 0x190e
movq 0x8(%r13), %rsi
leaq 0x4d86(%rip), %rdi      # 0x668d
xorl %eax, %eax
callq 0x5198
addl $-0x2, %r12d
addq $0x10, %r13
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a29
movq %r14, %rdi
callq 0x1090
jmp 0x182b
testl %r12d, %r12d
jg 0x1816
jmp 0x1839
cmpb $0x2d, %r14b
jne 0x1952
cmpb $0x63, 0x1(%rbp)
jne 0x1952
cmpb $0x0, 0x2(%rbp)
je 0x1bff
movq %rbp, %rdi
leaq 0x4ce8(%rip), %rsi      # 0x6644
callq 0x1100
testl %r12d, %r12d
jle 0x1a6c
testl %eax, %eax
jne 0x1a6c
leaq 0x8(%r13), %r14
xorl %ebp, %ebp
movl %r12d, %eax
decl %eax
je 0x1b4a
movq (%r14), %rbx
cmpb $0x2d, (%rbx)
jne 0x1b74
movq %r14, 0x8(%rsp)
pushq $0x11
popq %r14
pushq $0x1f
popq %rbx
pushq $0x13
popq %r13
pushq $0x1c
popq %rcx
movl %ecx, %r12d
movl %eax, %ebp
jmp 0x221e
cmpb $0x2d, %r14b
jne 0x19c2
cmpb $0x70, 0x1(%rbp)
jne 0x19c2
cmpb $0x0, 0x2(%rbp)
je 0x1cc4
movq %rbp, %rdi
leaq 0x4ceb(%rip), %rsi      # 0x66b7
callq 0x1100
cmpl $0x3, %r12d
jl 0x1a7b
testl %eax, %eax
jne 0x1a7b
leaq 0x18(%r13), %r14
addl $-0x3, %r12d
movq 0x8(%r13), %rdi
callq 0x11f0
movl %eax, %ebp
movq 0x10(%r13), %rdi
callq 0x11f0
movq %rbx, %rdi
movl %ebp, %esi
movl %eax, %edx
callq 0x396a
movq 0x993e(%rip), %rcx      # 0xb350
leaq 0x4ca6(%rip), %rdi      # 0x66bf
pushq $0x6
popq %rsi
movq %r15, %rbp
movq %r15, %rdx
callq 0x1220
movq 0x9922(%rip), %rsi      # 0xb350
movq %rbx, %rdi
callq 0x3daf
jmp 0x189c
cmpl $0x2, %r12d
jge 0x1862
testq %rbx, %rbx
jne 0x18b3
jmp 0x1942
movq 0x8576(%rip), %rax      # 0x9fd0
movq (%rax), %rax
movq %rax, 0x98ec(%rip)      # 0xb350
movq %r14, %r13
jmp 0x182b
cmpb $0x2d, %r14b
je 0x1c08
jmp 0x1c18
cmpb $0x2d, %r14b
jne 0x1a91
cmpb $0x73, 0x1(%rbp)
jne 0x1a91
cmpb $0x0, 0x2(%rbp)
je 0x1d5e
movq %rbp, %rdi
leaq 0x4c2b(%rip), %rsi      # 0x66c6
callq 0x1100
cmpl $0x4, %r12d
jl 0x1d68
testl %eax, %eax
jne 0x1d68
addl $-0x4, %r12d
movq 0x8(%r13), %rdi
callq 0x11f0
movl %eax, %ebp
movq 0x10(%r13), %rdi
callq 0x11f0
movl %eax, %r14d
movq 0x18(%r13), %rdi
callq 0x11f0
pushq $0x1
popq %rcx
cmpl 0x40(%rbx), %ecx
ja 0x1b31
movq 0x30(%rbx), %rsi
movl %ecx, %edx
movzwl (%rsi,%rdx,2), %r8d
cmpl %r8d, %ebp
jle 0x1af8
movq 0x38(%rbx), %rsi
andb $-0x4, (%rsi,%rdx)
jmp 0x1b2d
cmpl %r8d, %r14d
jle 0x1b0e
movq 0x38(%rbx), %rsi
movb (%rsi,%rdx), %dil
andb $-0x4, %dil
incb %dil
jmp 0x1b29
movq 0x38(%rbx), %rsi
movb (%rsi,%rdx), %dil
cmpl %r8d, %eax
jle 0x1b25
andb $-0x4, %dil
orb $0x2, %dil
jmp 0x1b29
orb $0x3, %dil
movb %dil, (%rsi,%rdx)
incl %ecx
jmp 0x1ad9
addq $0x20, %r13
movq 0x9814(%rip), %rcx      # 0xb350
leaq 0x4b8d(%rip), %rdi      # 0x66d0
pushq $0x8
jmp 0x1c9d
movq %r14, 0x8(%rsp)
pushq $0x11
popq %r14
pushq $0x1f
popq %rbx
pushq $0x13
popq %r13
pushq $0x1c
popq %rax
movl %eax, %r12d
jmp 0x221e
cmpl $0x2, %r12d
jge 0x18e4
jmp 0x19b2
movq %rbx, %rdi
callq 0x11f0
movq %rax, (%rsp)
addl $-0x23, %eax
cmpl $-0x10, %eax
ja 0x1b99
leaq 0x4abe(%rip), %rdi      # 0x664d
movq %rbx, %rsi
xorl %eax, %eax
callq 0x5198
movl %r12d, %eax
addl $-0x2, %eax
je 0x1cd3
leaq 0x10(%r13), %r14
movq 0x10(%r13), %rbx
cmpb $0x2d, (%rbx)
jne 0x1d0c
movq %r14, 0x8(%rsp)
pushq $0x11
popq %r14
pushq $0x1f
popq %rbx
pushq $0x13
popq %r13
movl %eax, %ebp
jmp 0x1ce3
movq 0x8424(%rip), %rax      # 0x9ff8
movq (%rax), %rdi
movq 0x8(%r13), %rdx
leaq 0x4a31(%rip), %rsi      # 0x6613
xorl %eax, %eax
callq 0x1120
movq 0x83e0(%rip), %rax      # 0x9fd0
movq (%rax), %rax
movq %rax, 0x9756(%rip)      # 0xb350
jmp 0x189c
testl %r12d, %r12d
jg 0x1972
cmpb $0x72, 0x1(%rbp)
jne 0x1c18
cmpb $0x0, 0x2(%rbp)
je 0x1cec
movq %rbp, %rdi
leaq 0x4a64(%rip), %rsi      # 0x6686
callq 0x1100
cmpl $0x2, %r12d
jl 0x1cf6
testl %eax, %eax
jne 0x1cf6
movq 0x8(%r13), %rdi
leaq 0x50a2(%rip), %rsi      # 0x6ce6
callq 0x11c0
movq %rax, %r14
testq %rax, %rax
jne 0x1c63
movq 0x8(%r13), %rsi
leaq 0x4a31(%rip), %rdi      # 0x668d
xorl %eax, %eax
callq 0x5198
addl $-0x2, %r12d
addq $0x10, %r13
movq %r14, %rdi
callq 0x3b75
movq %rax, %rbx
movq %r14, %rdi
callq 0x1090
movq (%rbx), %rdi
movq 0x96c8(%rip), %rsi      # 0xb350
callq 0x3220
movq 0x96bc(%rip), %rcx      # 0xb350
leaq 0x4a0e(%rip), %rdi      # 0x66a9
pushq $0x5
popq %rsi
movq %r15, %rbp
movq %r15, %rdx
callq 0x1220
movq 0x96a0(%rip), %rsi      # 0xb350
movq %rbx, %rdi
callq 0x3daf
movq 0x9691(%rip), %rdi      # 0xb350
jmp 0x1758
cmpl $0x3, %r12d
jge 0x19e3
jmp 0x1a81
movq %r14, 0x8(%rsp)
pushq $0x11
popq %r14
pushq $0x1f
popq %rbx
pushq $0x13
popq %r13
movq (%rsp), %r12
jmp 0x221e
cmpl $0x2, %r12d
jge 0x1c39
leaq 0x4ac7(%rip), %rdi      # 0x67c4
movq %rbp, %rsi
xorl %eax, %eax
callq 0x5198
jmp 0x182b
movq %rbx, %rdi
callq 0x11f0
movl %eax, 0x10(%rsp)
testl %eax, %eax
jg 0x1d2d
leaq 0x493d(%rip), %rdi      # 0x6660
movq %rbx, %rsi
xorl %eax, %eax
callq 0x5198
movl %r12d, %eax
addl $-0x3, %eax
je 0x1fb6
leaq 0x18(%r13), %rcx
movq %rcx, 0x8(%rsp)
movq 0x18(%r13), %r14
cmpb $0x2d, (%r14)
jne 0x1fc7
pushq $0x11
popq %r14
pushq $0x1f
popq %rbx
movl %eax, %ebp
jmp 0x2215
cmpl $0x4, %r12d
jge 0x1ab2
movq %rbp, %rdi
leaq 0x4967(%rip), %rsi      # 0x66d9
callq 0x1100
testl %eax, %eax
je 0x1de3
movq %rbp, %rdi
leaq 0x4958(%rip), %rsi      # 0x66dd
callq 0x1100
cmpl $0x2, %r12d
jl 0x1de9
testl %eax, %eax
jne 0x1de9
addl $-0x2, %r12d
movq 0x8(%r13), %rdi
callq 0x11f0
pushq $0x1
popq %rcx
movq %r15, %rbp
cmpl 0x40(%rbx), %ecx
ja 0x1dc6
movq 0x30(%rbx), %rsi
movl %ecx, %edx
movzwl (%rsi,%rdx,2), %esi
cmpl %esi, %eax
jg 0x1dc2
movq 0x38(%rbx), %rsi
orb $0x3, (%rsi,%rdx)
incl %ecx
jmp 0x1da7
addq $0x10, %r13
movq 0x957f(%rip), %rcx      # 0xb350
leaq 0x4910(%rip), %rdi      # 0x66e8
pushq $0x9
popq %rsi
movq %rbp, %rdx
jmp 0x1ca4
cmpl $0x2, %r12d
jge 0x1d94
cmpb $0x2d, %r14b
jne 0x1dff
cmpb $0x61, 0x1(%rbp)
jne 0x1dff
cmpb $0x0, 0x2(%rbp)
je 0x2091
movq %rbp, %rdi
leaq 0x48e9(%rip), %rsi      # 0x66f2
callq 0x1100
cmpl $0x2, %r12d
jl 0x1e59
testl %eax, %eax
jne 0x1e59
movq 0x8(%r13), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0x231e
testb %al, %al
jne 0x1e3c
movq 0x8(%r13), %rsi
leaq 0x48c3(%rip), %rdi      # 0x66f8
xorl %eax, %eax
callq 0x5198
addl $-0x2, %r12d
addq $0x10, %r13
movq 0x9505(%rip), %rcx      # 0xb350
leaq 0x48c6(%rip), %rdi      # 0x6718
pushq $0x4
jmp 0x1c9d
cmpb $0x2d, %r14b
jne 0x1e6f
cmpb $0x78, 0x1(%rbp)
jne 0x1e6f
cmpb $0x0, 0x2(%rbp)
je 0x21d6
movq %rbp, %rdi
leaq 0x48a4(%rip), %rsi      # 0x671d
callq 0x1100
cmpl $0x2, %r12d
jl 0x1eca
testl %eax, %eax
jne 0x1eca
movq 0x8(%r13), %rsi
movq %rbx, %rdi
pushq $0x1
popq %rdx
callq 0x231e
testb %al, %al
jne 0x1ead
movq 0x8(%r13), %rsi
leaq 0x4852(%rip), %rdi      # 0x66f8
xorl %eax, %eax
callq 0x5198
addl $-0x2, %r12d
addq $0x10, %r13
movq 0x9494(%rip), %rcx      # 0xb350
leaq 0x4863(%rip), %rdi      # 0x6726
pushq $0x7
jmp 0x1c9d
cmpb $0x2d, %r14b
jne 0x1ee0
cmpb $0x6d, 0x1(%rbp)
jne 0x1ee0
cmpb $0x0, 0x2(%rbp)
je 0x2271
movq %rbp, %rdi
leaq 0x4844(%rip), %rsi      # 0x672e
callq 0x1100
cmpl $0x2, %r12d
jl 0x2020
testl %eax, %eax
jne 0x2020
movq 0x8(%r13), %rdi
leaq 0x4dda(%rip), %rsi      # 0x6ce6
callq 0x11c0
movq %rax, %rbp
testq %rax, %rax
jne 0x1f2b
movq 0x8(%r13), %rsi
leaq 0x4769(%rip), %rdi      # 0x668d
xorl %eax, %eax
callq 0x5198
movq %rbp, %rdi
callq 0x3b75
movq %rax, %r14
movq 0x9413(%rip), %rcx      # 0xb350
leaq 0x4765(%rip), %rdi      # 0x66a9
pushq $0x5
popq %rsi
movq %r15, %rdx
callq 0x1220
movq 0x93fa(%rip), %rsi      # 0xb350
movq %r14, %rdi
callq 0x3daf
movq %rbp, %rdi
callq 0x1090
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3cdc
testb %al, %al
je 0x228f
addl $-0x2, %r12d
addq $0x10, %r13
movq %r14, %rdi
callq 0x37e5
movq 0x93c0(%rip), %rcx      # 0xb350
leaq 0x47d7(%rip), %rdi      # 0x676e
pushq $0x6
popq %rsi
movq %r15, %rdx
callq 0x1220
movq 0x93a7(%rip), %rsi      # 0xb350
movq %rbx, %rdi
callq 0x3daf
jmp 0x182b
movq %r14, 0x8(%rsp)
pushq $0x11
popq %r14
pushq $0x1f
popq %rbx
jmp 0x2215
cmpl $0x0, 0x10(%rsp)
setg %bpl
movq %r14, %rdi
callq 0x11f0
movl %eax, %ebx
testl %eax, %eax
setne %al
testb %al, %bpl
jne 0x1ff5
leaq 0x4688(%rip), %rdi      # 0x6673
movq %r14, %rsi
xorl %eax, %eax
callq 0x5198
movl %r12d, %ebp
addl $-0x4, %ebp
je 0x21ce
movq 0x20(%r13), %rdi
cmpb $0x2d, (%rdi)
jne 0x21e5
addq $0x20, %r13
pushq $0x11
popq %r14
movq %r13, 0x8(%rsp)
jmp 0x2215
cmpb $0x2d, %r14b
jne 0x2036
cmpb $0x48, 0x1(%rbp)
jne 0x2036
cmpb $0x0, 0x2(%rbp)
je 0x2280
movq %rbp, %rdi
leaq 0x4735(%rip), %rsi      # 0x6775
callq 0x1100
cmpl $0x2, %r12d
jl 0x20a0
testl %eax, %eax
jne 0x20a0
movq 0x8(%r13), %rdi
leaq 0x45b7(%rip), %rsi      # 0x6611
callq 0x11c0
movq %rax, %r14
testq %rax, %rax
jne 0x2079
movq 0x8(%r13), %rsi
leaq 0x470a(%rip), %rdi      # 0x677c
xorl %eax, %eax
callq 0x5198
addl $-0x2, %r12d
addq $0x10, %r13
movq %rbx, %rdi
movq %r14, %rsi
callq 0x134c
jmp 0x1921
cmpl $0x2, %r12d
jge 0x1e18
jmp 0x1e5f
cmpb $0x2d, %r14b
jne 0x20b6
cmpb $0x64, 0x1(%rbp)
jne 0x20b6
cmpb $0x0, 0x2(%rbp)
je 0x22b0
movq %rbp, %rdi
leaq 0x46dd(%rip), %rsi      # 0x679d
callq 0x1100
cmpl $0x2, %r12d
jl 0x1cf6
testl %eax, %eax
jne 0x1cf6
movq 0x8(%r13), %rdi
leaq 0x452f(%rip), %rsi      # 0x6611
callq 0x11c0
movq %rax, 0x10(%rsp)
testq %rax, %rax
jne 0x2103
movq 0x8(%r13), %rsi
leaq 0x46aa(%rip), %rdi      # 0x67a6
xorl %eax, %eax
callq 0x5198
addl $-0x2, %r12d
addq $0x10, %r13
pushq $0x20
popq %rdi
pushq $0x8
popq %rsi
callq 0x4a24
movq %rax, (%rsp)
movl %r12d, %ebp
subl $0x1, %ebp
jb 0x224d
movq (%r13), %rdi
cmpb $0x2d, (%rdi)
je 0x224d
leaq 0x4bac(%rip), %rsi      # 0x6ce6
callq 0x11c0
movq %rax, %r14
testq %rax, %rax
jne 0x2159
movq (%r13), %rsi
leaq 0x453b(%rip), %rdi      # 0x668d
xorl %eax, %eax
callq 0x5198
movq %r14, %rdi
callq 0x3b75
movq %rax, %r12
movq %r14, 0x8(%rsp)
movq (%rsp), %r14
movl 0x18(%r14), %esi
movq %r14, %rdi
callq 0x4cbc
movq %r12, (%rax)
movq 0x91cd(%rip), %rcx      # 0xb350
leaq 0x451f(%rip), %rdi      # 0x66a9
pushq $0x5
popq %rsi
movq %r15, %rdx
callq 0x1220
movq 0x8(%r14), %rax
movslq 0x18(%r14), %rcx
decq %rcx
movslq 0x14(%r14), %rdx
imulq %rcx, %rdx
movq (%rax,%rdx), %rdi
movq 0x919d(%rip), %rsi      # 0xb350
callq 0x3daf
movq 0x8(%rsp), %rdi
callq 0x1090
addq $0x8, %r13
movl %ebp, %r12d
jmp 0x211d
pushq $0x11
popq %r14
xorl %ebp, %ebp
jmp 0x2215
cmpl $0x2, %r12d
jge 0x1e88
jmp 0x1ed0
movq %rdi, %rbp
callq 0x11f0
movl %eax, %r14d
testl %eax, %eax
jne 0x2205
leaq 0x4478(%rip), %rdi      # 0x6673
movq %rbp, %rsi
xorl %eax, %eax
callq 0x5198
addl $-0x5, %r12d
addq $0x28, %r13
movq %r13, 0x8(%rsp)
movl %r12d, %ebp
movq (%rsp), %r12
movl 0x10(%rsp), %r13d
movl %r14d, %edi
callq 0x1050
movl %r13d, %edi
movl %ebx, %esi
callq 0x3058
movq %rax, %rdi
movl %r12d, %esi
xorl %edx, %edx
callq 0x3710
movq %rax, %rbx
movq 0x8(%rsp), %r13
movl %ebp, %r12d
jmp 0x182b
movq %rbx, %rdi
movq (%rsp), %rbp
movq %rbp, %rsi
movq 0x10(%rsp), %r14
movq %r14, %rdx
callq 0x13e6
movq %rbp, %rdi
callq 0x4b64
jmp 0x1921
cmpl $0x2, %r12d
jge 0x1f01
jmp 0x2026
cmpl $0x2, %r12d
jge 0x204f
jmp 0x20a6
movq 0x7d62(%rip), %rax      # 0x9ff8
movq (%rax), %rdi
movq 0x8(%r13), %rdx
leaq 0x4492(%rip), %rsi      # 0x6736
xorl %eax, %eax
callq 0x1120
jmp 0x1f79
cmpl $0x2, %r12d
jl 0x1cf6
jmp 0x20d7
movq 0x908a(%rip), %rcx      # 0xb350
leaq 0x452c(%rip), %rdi      # 0x67f9
pushq $0x16
popq %rsi
pushq $0x1
popq %rdx
callq 0x1220
movq 0x9071(%rip), %rdi      # 0xb350
callq 0x5578
movq 0x9065(%rip), %rax      # 0xb350
movq 0x7cde(%rip), %rbx      # 0x9fd0
cmpq (%rbx), %rax
je 0x230d
leaq 0x44fb(%rip), %rdi      # 0x67f9
xorl %eax, %eax
callq 0x10b0
movq (%rbx), %rdi
callq 0x5578
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq