// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x90, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
cmpl $0x0, -0x8(%rbp)
jne 0x1879
callq 0x15e0
movq 0xb750(%rip), %rax      # 0xcfd0
movq (%rax), %rax
movq %rax, 0xcace(%rip)      # 0xe358
movq 0xb73f(%rip), %rax      # 0xcfd0
movq (%rax), %rdi
callq 0x8590
movq $0x0, -0x18(%rbp)
cmpl $0x0, -0x8(%rbp)
je 0x26cb
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x18cf
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x7ce0(%rip), %rdi      # 0x95a8
movb $0x0, %al
callq 0x8180
movq 0xb722(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0x7d0c(%rip), %rsi      # 0x95f3
movb $0x0, %al
callq 0x1120
movl $0x1, -0x1c(%rbp)
movl -0x1c(%rbp), %ecx
xorl %eax, %eax
cmpl -0x8(%rbp), %ecx
movb %al, -0x71(%rbp)
jge 0x191a
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
setne %al
movb %al, -0x71(%rbp)
movb -0x71(%rbp), %al
testb $0x1, %al
jne 0x1923
jmp 0x1952
movq 0xb6ce(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x7d25(%rip), %rsi      # 0x9665
movb $0x0, %al
callq 0x1120
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x18f5
movq 0xb69f(%rip), %rax      # 0xcff8
movq (%rax), %rsi
movl $0xa, %edi
callq 0x10e0
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7c8a(%rip), %rsi      # 0x95fe
callq 0x1100
cmpl $0x0, %eax
je 0x1996
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7c75(%rip), %rsi      # 0x9601
callq 0x1100
cmpl $0x0, %eax
jne 0x19d3
cmpl $0x1, -0x8(%rbp)
jl 0x19d3
movl -0x8(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x19d3
cmpb $0x0, 0xc992(%rip)      # 0xe350
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movb %al, 0xc982(%rip)       # 0xe350
jmp 0x26ba
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7c2a(%rip), %rsi      # 0x960b
callq 0x1100
cmpl $0x0, %eax
je 0x1a07
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7c15(%rip), %rsi      # 0x960e
callq 0x1100
cmpl $0x0, %eax
jne 0x1ab5
cmpl $0x2, -0x8(%rbp)
jl 0x1ab5
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x1ab5
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x7bd8(%rip), %rsi      # 0x9617
callq 0x1100
cmpl $0x0, %eax
jne 0x1a5c
movq 0xb580(%rip), %rax      # 0xcfd0
movq (%rax), %rax
movq %rax, 0xc8fe(%rip)      # 0xe358
jmp 0x1ab0
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x7c51(%rip), %rsi      # 0x96bc
callq 0x11c0
movq %rax, 0xc8e1(%rip)      # 0xe358
cmpq $0x0, %rax
jne 0x1aae
movq 0xb574(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdx
leaq 0x7b83(%rip), %rsi      # 0x9619
movb $0x0, %al
callq 0x1120
movq 0xb52c(%rip), %rax      # 0xcfd0
movq (%rax), %rax
movq %rax, 0xc8aa(%rip)      # 0xe358
jmp 0x1ab0
jmp 0x26b8
cmpq $0x0, -0x18(%rbp)
jne 0x1ce6
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7b7c(%rip), %rsi      # 0x964a
callq 0x1100
cmpl $0x0, %eax
je 0x1af4
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7b67(%rip), %rsi      # 0x964d
callq 0x1100
cmpl $0x0, %eax
jne 0x1ce6
cmpl $0x1, -0x8(%rbp)
jl 0x1ce6
movl -0x8(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x1ce6
movl $0x1c, -0x2c(%rbp)
movl $0x13, -0x30(%rbp)
movl $0x1f, -0x34(%rbp)
movl $0x11, -0x38(%rbp)
cmpl $0x0, -0x8(%rbp)
je 0x1cb8
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x1cb8
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x11f0
movl %eax, -0x2c(%rbp)
cmpl $0x0, %eax
je 0x1b76
cmpl $0x14, -0x2c(%rbp)
jl 0x1b76
cmpl $0x22, -0x2c(%rbp)
jle 0x1b8b
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x7ad2(%rip), %rdi      # 0x9656
movb $0x0, %al
callq 0x8180
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x1cb6
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x1cb6
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x11f0
movl %eax, -0x30(%rbp)
cmpl $0x0, %eax
je 0x1bd6
cmpl $0x1, -0x30(%rbp)
jge 0x1beb
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x7a85(%rip), %rdi      # 0x9669
movb $0x0, %al
callq 0x8180
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x1cb4
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x1cb4
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x11f0
movl %eax, -0x34(%rbp)
cmpl $0x0, %eax
je 0x1c36
cmpl $0x1, -0x30(%rbp)
jge 0x1c4b
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x7a38(%rip), %rdi      # 0x967c
movb $0x0, %al
callq 0x8180
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
cmpl $0x0, %eax
je 0x1cb2
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x1cb2
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x11f0
movl %eax, -0x38(%rbp)
cmpl $0x0, %eax
jne 0x1c9d
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x79e6(%rip), %rdi      # 0x967c
movb $0x0, %al
callq 0x8180
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
jmp 0x1cb4
jmp 0x1cb6
jmp 0x1cb8
movl -0x38(%rbp), %edi
callq 0x1050
movl -0x30(%rbp), %edi
movl -0x34(%rbp), %esi
callq 0x4350
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
movl -0x2c(%rbp), %esi
xorl %edx, %edx
callq 0x5030
movq %rax, -0x18(%rbp)
jmp 0x26b6
cmpq $0x0, -0x18(%rbp)
jne 0x1dd5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7990(%rip), %rsi      # 0x968f
callq 0x1100
cmpl $0x0, %eax
je 0x1d25
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x797b(%rip), %rsi      # 0x9692
callq 0x1100
cmpl $0x0, %eax
jne 0x1dd5
cmpl $0x2, -0x8(%rbp)
jl 0x1dd5
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x1dd5
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x7933(%rip), %rsi      # 0x9690
callq 0x11c0
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x1d82
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x791e(%rip), %rdi      # 0x9699
movb $0x0, %al
callq 0x8180
movq -0x28(%rbp), %rdi
callq 0x57f0
movq %rax, -0x18(%rbp)
movq -0x28(%rbp), %rdi
callq 0x1090
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movq 0xc5b2(%rip), %rsi      # 0xe358
callq 0x45c0
movq 0xc5a6(%rip), %rdi      # 0xe358
leaq 0x78fc(%rip), %rsi      # 0x96b5
movb $0x0, %al
callq 0x1120
movq -0x18(%rbp), %rdi
movq 0xc58d(%rip), %rsi      # 0xe358
callq 0x5b20
jmp 0x26b4
cmpq $0x0, -0x18(%rbp)
je 0x1e80
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x78cd(%rip), %rsi      # 0x96bb
callq 0x1100
cmpl $0x0, %eax
je 0x1e10
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x78b8(%rip), %rsi      # 0x96be
callq 0x1100
cmpl $0x0, %eax
jne 0x1e80
cmpl $0x2, -0x8(%rbp)
jl 0x1e80
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x1e80
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x787c(%rip), %rsi      # 0x96bc
callq 0x11c0
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x1e65
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x783b(%rip), %rdi      # 0x9699
movb $0x0, %al
callq 0x8180
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x5630
movq -0x28(%rbp), %rdi
callq 0x1090
jmp 0x26b2
cmpq $0x0, -0x18(%rbp)
je 0x1f39
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x782d(%rip), %rsi      # 0x96c6
callq 0x1100
cmpl $0x0, %eax
je 0x1ebb
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7818(%rip), %rsi      # 0x96c9
callq 0x1100
cmpl $0x0, %eax
jne 0x1f39
cmpl $0x3, -0x8(%rbp)
jl 0x1f39
movl -0x8(%rbp), %eax
subl $0x3, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x1f39
movq -0x18(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x11f0
movl %eax, -0x78(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x11f0
movq -0x80(%rbp), %rdi
movl -0x78(%rbp), %esi
movl %eax, %edx
callq 0x5500
movq 0xc442(%rip), %rdi      # 0xe358
leaq 0x77b4(%rip), %rsi      # 0x96d1
movb $0x0, %al
callq 0x1120
movq -0x18(%rbp), %rdi
movq 0xc429(%rip), %rsi      # 0xe358
callq 0x5b20
jmp 0x26b0
cmpq $0x0, -0x18(%rbp)
je 0x2098
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7786(%rip), %rsi      # 0x96d8
callq 0x1100
cmpl $0x0, %eax
je 0x1f78
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7771(%rip), %rsi      # 0x96db
callq 0x1100
cmpl $0x0, %eax
jne 0x2098
cmpl $0x4, -0x8(%rbp)
jl 0x2098
movl -0x8(%rbp), %eax
subl $0x4, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x2098
movq -0x10(%rbp), %rax
movq -0x18(%rax), %rdi
callq 0x11f0
movl %eax, -0x44(%rbp)
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x11f0
movl %eax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x11f0
movl %eax, -0x4c(%rbp)
movl $0x1, -0x50(%rbp)
movl -0x50(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x40(%rcx), %eax
ja 0x206e
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x50(%rbp), %ecx
movzwl (%rax,%rcx,2), %eax
cmpl -0x44(%rbp), %eax
jge 0x200a
movq -0x18(%rbp), %rdi
movl -0x50(%rbp), %esi
callq 0x2730
jmp 0x205e
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x50(%rbp), %ecx
movzwl (%rax,%rcx,2), %eax
cmpl -0x48(%rbp), %eax
jge 0x202c
movq -0x18(%rbp), %rdi
movl -0x50(%rbp), %esi
callq 0x2760
jmp 0x205c
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x50(%rbp), %ecx
movzwl (%rax,%rcx,2), %eax
cmpl -0x4c(%rbp), %eax
jge 0x204e
movq -0x18(%rbp), %rdi
movl -0x50(%rbp), %esi
callq 0x27a0
jmp 0x205a
movq -0x18(%rbp), %rdi
movl -0x50(%rbp), %esi
callq 0x27e0
jmp 0x205c
jmp 0x205e
jmp 0x2060
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x1fd8
movq 0xc2e3(%rip), %rdi      # 0xe358
leaq 0x7669(%rip), %rsi      # 0x96e5
movb $0x0, %al
callq 0x1120
movq -0x18(%rbp), %rdi
movq 0xc2ca(%rip), %rsi      # 0xe358
callq 0x5b20
jmp 0x26ae
cmpq $0x0, -0x18(%rbp)
je 0x2176
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x763d(%rip), %rsi      # 0x96ee
callq 0x1100
cmpl $0x0, %eax
je 0x20d7
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7629(%rip), %rsi      # 0x96f2
callq 0x1100
cmpl $0x0, %eax
jne 0x2176
cmpl $0x2, -0x8(%rbp)
jl 0x2176
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x2176
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x11f0
movl %eax, -0x54(%rbp)
movl $0x1, -0x58(%rbp)
movl -0x58(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x40(%rcx), %eax
ja 0x214c
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movl -0x58(%rbp), %ecx
movzwl (%rax,%rcx,2), %eax
cmpl -0x54(%rbp), %eax
jl 0x213f
movq -0x18(%rbp), %rdi
movl -0x58(%rbp), %esi
callq 0x27e0
jmp 0x2141
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0x2113
movq 0xc205(%rip), %rdi      # 0xe358
leaq 0x75a3(%rip), %rsi      # 0x96fd
movb $0x0, %al
callq 0x1120
movq -0x18(%rbp), %rdi
movq 0xc1ec(%rip), %rsi      # 0xe358
callq 0x5b20
jmp 0x26ac
cmpq $0x0, -0x18(%rbp)
je 0x2229
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7578(%rip), %rsi      # 0x9707
callq 0x1100
cmpl $0x0, %eax
je 0x21b1
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7563(%rip), %rsi      # 0x970a
callq 0x1100
cmpl $0x0, %eax
jne 0x2229
cmpl $0x2, -0x8(%rbp)
jl 0x2229
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x2229
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
xorl %edx, %edx
callq 0x2810
cmpb $0x0, %al
jne 0x21ff
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x7518(%rip), %rdi      # 0x9710
movb $0x0, %al
callq 0x8180
movq 0xc152(%rip), %rdi      # 0xe358
leaq 0x7523(%rip), %rsi      # 0x9730
movb $0x0, %al
callq 0x1120
movq -0x18(%rbp), %rdi
movq 0xc139(%rip), %rsi      # 0xe358
callq 0x5b20
jmp 0x26aa
cmpq $0x0, -0x18(%rbp)
je 0x22df
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x74f3(%rip), %rsi      # 0x9735
callq 0x1100
cmpl $0x0, %eax
je 0x2264
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x74de(%rip), %rsi      # 0x9738
callq 0x1100
cmpl $0x0, %eax
jne 0x22df
cmpl $0x2, -0x8(%rbp)
jl 0x22df
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x22df
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
movl $0x1, %edx
callq 0x2810
cmpb $0x0, %al
jne 0x22b5
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x7462(%rip), %rdi      # 0x9710
movb $0x0, %al
callq 0x8180
movq 0xc09c(%rip), %rdi      # 0xe358
leaq 0x747e(%rip), %rsi      # 0x9741
movb $0x0, %al
callq 0x1120
movq -0x18(%rbp), %rdi
movq 0xc083(%rip), %rsi      # 0xe358
callq 0x5b20
jmp 0x26a8
cmpq $0x0, -0x18(%rbp)
je 0x241a
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7451(%rip), %rsi      # 0x9749
callq 0x1100
cmpl $0x0, %eax
je 0x231e
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x743c(%rip), %rsi      # 0x974c
callq 0x1100
cmpl $0x0, %eax
jne 0x241a
cmpl $0x2, -0x8(%rbp)
jl 0x241a
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x241a
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x733a(%rip), %rsi      # 0x9690
callq 0x11c0
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x237b
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x7325(%rip), %rdi      # 0x9699
movb $0x0, %al
callq 0x8180
movq -0x28(%rbp), %rdi
callq 0x57f0
movq %rax, -0x60(%rbp)
movq 0xbfc9(%rip), %rdi      # 0xe358
leaq 0x731f(%rip), %rsi      # 0x96b5
movb $0x0, %al
callq 0x1120
movq -0x60(%rbp), %rdi
movq 0xbfb0(%rip), %rsi      # 0xe358
callq 0x5b20
movq -0x28(%rbp), %rdi
callq 0x1090
movq -0x18(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x59a0
cmpb $0x0, %al
jne 0x23e7
movq 0xac2a(%rip), %rax      # 0xcff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdx
leaq 0x7374(%rip), %rsi      # 0x9754
movb $0x0, %al
callq 0x1120
movq -0x60(%rbp), %rdi
callq 0x5190
movq 0xbf61(%rip), %rdi      # 0xe358
leaq 0x738e(%rip), %rsi      # 0x978c
movb $0x0, %al
callq 0x1120
movq -0x18(%rbp), %rdi
movq 0xbf48(%rip), %rsi      # 0xe358
callq 0x5b20
jmp 0x26a6
cmpq $0x0, -0x18(%rbp)
je 0x24c5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7360(%rip), %rsi      # 0x9793
callq 0x1100
cmpl $0x0, %eax
je 0x2455
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x734b(%rip), %rsi      # 0x9796
callq 0x1100
cmpl $0x0, %eax
jne 0x24c5
cmpl $0x2, -0x8(%rbp)
jl 0x24c5
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x24c5
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x7237(%rip), %rsi      # 0x96bc
callq 0x11c0
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x24aa
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x72fa(%rip), %rdi      # 0x979d
movb $0x0, %al
callq 0x8180
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x1350
movq -0x28(%rbp), %rdi
callq 0x1090
jmp 0x26a4
cmpq $0x0, -0x18(%rbp)
je 0x268d
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x72e0(%rip), %rsi      # 0x97be
callq 0x1100
cmpl $0x0, %eax
je 0x2504
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x72cb(%rip), %rsi      # 0x97c1
callq 0x1100
cmpl $0x0, %eax
jne 0x268d
cmpl $0x2, -0x8(%rbp)
jl 0x268d
movl -0x8(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x268d
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x7180(%rip), %rsi      # 0x96bc
callq 0x11c0
movq %rax, -0x68(%rbp)
cmpq $0x0, %rax
jne 0x2561
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x7270(%rip), %rdi      # 0x97ca
movb $0x0, %al
callq 0x8180
movl $0x20, %edi
movl $0x8, %esi
callq 0x72a0
movq %rax, -0x70(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x8(%rbp)
movb %al, -0x81(%rbp)
je 0x2598
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
setne %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0x25a7
jmp 0x2668
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x70db(%rip), %rsi      # 0x9690
callq 0x11c0
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x25d9
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x70c7(%rip), %rdi      # 0x9699
movb $0x0, %al
callq 0x8180
movq -0x28(%rbp), %rdi
callq 0x57f0
movq %rax, -0x90(%rbp)
movq -0x70(%rbp), %rdi
movq -0x70(%rbp), %rax
movl 0x18(%rax), %esi
callq 0x7700
movq -0x90(%rbp), %rcx
movq %rcx, (%rax)
movq 0xbd4e(%rip), %rdi      # 0xe358
leaq 0x70a4(%rip), %rsi      # 0x96b5
movb $0x0, %al
callq 0x1120
movq -0x70(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x70(%rbp), %rcx
movl 0x18(%rcx), %ecx
subl $0x1, %ecx
movq -0x70(%rbp), %rdx
imull 0x14(%rdx), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx), %rdi
movq 0xbd18(%rip), %rsi      # 0xe358
callq 0x5b20
movq -0x28(%rbp), %rdi
callq 0x1090
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
jmp 0x2574
movq -0x18(%rbp), %rdi
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x1470
movq -0x70(%rbp), %rdi
callq 0x74a0
movq -0x68(%rbp), %rdi
callq 0x1090
jmp 0x26a2
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x714d(%rip), %rdi      # 0x97e8
movb $0x0, %al
callq 0x8180
jmp 0x26a4
jmp 0x26a6
jmp 0x26a8
jmp 0x26aa
jmp 0x26ac
jmp 0x26ae
jmp 0x26b0
jmp 0x26b2
jmp 0x26b4
jmp 0x26b6
jmp 0x26b8
jmp 0x26ba
movq 0xbc97(%rip), %rdi      # 0xe358
callq 0x8590
jmp 0x18a1
movq 0xbc86(%rip), %rdi      # 0xe358
leaq 0x7144(%rip), %rsi      # 0x981d
movb $0x0, %al
callq 0x1120
movq 0xbc71(%rip), %rdi      # 0xe358
callq 0x8720
movq 0xbc65(%rip), %rax      # 0xe358
movq 0xa8d6(%rip), %rcx      # 0xcfd0
cmpq (%rcx), %rax
je 0x271c
leaq 0x7117(%rip), %rdi      # 0x981d
movb $0x0, %al
callq 0x10b0
movq 0xa8bc(%rip), %rax      # 0xcfd0
movq (%rax), %rdi
callq 0x8720
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax,%rax)