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

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

  /* command line parameters */
  params.k = 21 ;
  params.w = 31 ;
  params.r = 17 ;
  params.B = 28 ;
  params.N = 0 ;
  params.chunkSize = 100000 ;
  params.clusterThreshold = 5 ;
#ifdef OMP
  numThreads = omp_get_max_threads () ;
  omp_set_num_threads (numThreads) ;
#endif
  
  if (!argc) usage () ;

#ifdef SIZES
  printf ("sizeof ClusterBlock is %d\n", sizeof(ClusterBlock)) ;
  printf ("sizeof ClusterHash is %d\n", sizeof(ClusterHash)) ;
  exit (0) ;
#endif

  clusterBlocks = arrayCreate (1200, ClusterBlock) ;

  FILE *f ;
  char inputBuffer[1024] ;	/* use these for interactive mode */
  char *inputArgs[32] ;
  Array inputArray = arrayCreate (1024, char) ;
  
  while (argc) {
    if (**argv != '-')
      die ("option/command %s does not start with '-': run without arguments for usage", *argv) ;
    if (!isInteractive)
      { fprintf (outFile, "COMMAND %s", *argv) ;
	int i ;
	for (i = 1 ; i < argc && *argv[i] != '-' ; ++i) fprintf (outFile, " %s", argv[i]) ;
	fputc ('\n', outFile) ;
	if (outFile != stdout)
	  { printf ("COMMAND %s", *argv) ;
	    int i ;
	    for (i = 1 ; i < argc && *argv[i] != '-' ; ++i) fprintf (outFile, " %s", argv[i]) ;
	    putchar ('\n') ;
	  }
      }
#define ARGMATCH(x,n)	(!strcmp (*argv, x) && argc >= n && (argc -= n, argv += n))
    if (ARGMATCH("-k",2)) params.k = atoi(argv[-1]) ;
    else if (ARGMATCH("-w",2)) params.w = atoi(argv[-1]) ;
    else if (ARGMATCH("-r",2)) params.r = atoi(argv[-1]) ;
    else if (ARGMATCH("-B",2)) params.B = atoi(argv[-1]) ;
    else if (ARGMATCH("-N",2)) params.N = atoi(argv[-1]) ;
    else if (ARGMATCH("-c",2)) params.chunkSize = atoi(argv[-1]) ;
    else if (ARGMATCH("-t",2) || ARGMATCH ("--threads",2))
      {
#ifdef OMP
	numThreads = atoi(argv[-1]) ;
	if (numThreads > omp_get_max_threads ()) numThreads = omp_get_max_threads () ;
	omp_set_num_threads (numThreads) ;
	fprintf (outFile, "  setting number of threads to %d\n", numThreads) ;
#else
	fprintf (stderr, "  can't set thread number - not compiled with OMP\n") ;
#endif
      }
    else if (ARGMATCH("-o",2) || ARGMATCH("--output",2))
      { if (!strcmp (argv[-1], "-"))
	  outFile = stdout ;
	else if (!(outFile = fopen (argv[-1], "w")))
	  { fprintf (stderr, "can't open output file %s\n", argv[-1]) ; outFile = stdout ; }
      }
    else if (ARGMATCH("--interactive",1)) isInteractive = TRUE ;
    else if (ARGMATCH("--tables",1)) isPrintTables = !isPrintTables ;
    else if (ARGMATCH("--verbose",1)) isVerbose = !isVerbose ;
    else if (ARGMATCH("--readFQB",2))
      { if (!(f = fopen (argv[-1], "r"))) die ("failed to open fqb file %s", argv[-1]) ;
	initialise (params.k, params.w, params.r, params.B) ;
        readFQB (f, params.N, params.chunkSize) ;
	fillHashTable () ;
      }
    else if (ARGMATCH("--readHash",2))
      { if (!(f = fopen (argv[-1], "r"))) die ("failed to open hash file %s", argv[-1]) ;
	initialise (params.k, params.w, params.r, params.B) ;
	readHashFile (f) ;
	fillHashTable () ;
      }
    else if (ARGMATCH("--writeHash",2))
      { if (!(f = fopen (argv[-1], "w"))) die ("failed to open hash file %s", argv[-1]) ;
	writeHashFile (f) ;
      }
    else if (ARGMATCH("--hashDepthRange",3))
      { hashWithinRangeBuild (atoi(argv[-2]), atoi(argv[-1])) ;
	goodHashesBuild () ;
      }
    else if (ARGMATCH("--hashInfo",4))
      hashInfo (atoi(argv[-3]), atoi(argv[-2]), atoi(argv[-1])) ;
    else if (ARGMATCH("--hashExplore",2))
      exploreHash (atoi(argv[-1])) ;
    else if (ARGMATCH("--doubleShared",3))
      doubleShared (atoi(argv[-2]), atoi(argv[-1])) ;
    else if (ARGMATCH("--codeExplore",2))
      if (goodHashes)
	codeExplore (atoi(argv[-1]), params.clusterThreshold) ;
      else
	{ fprintf (outFile, "!! you must set hashDepthRange before codeExplore\n") ;
	  if (outFile != stdout) fprintf (stderr, "!! you must set hashDepthRange before codeExplore\n") ;
	}
    else if (ARGMATCH("--cribBuild",3))
      { FILE *f1, *f2 ;
	if (!(f1 = fopen (argv[-2], "r"))) die ("failed to open .fa file %s", argv[-2]) ;
	if (!(f2 = fopen (argv[-1], "r"))) die ("failed to open .fa file %s", argv[-1]) ;
	cribBuild (f1, f2) ;
      }
    else if (ARGMATCH("-ct",2) || ARGMATCH ("--clusterThreshold",2))
      params.clusterThreshold = atoi(argv[-1]) ;
    else if (ARGMATCH("--cluster",3))
      { int code, codeMin = atoi(argv[-2]), codeMax = atoi(argv[-1]) ;
	if (!codeMin) codeMin = 1 ;
	if (!codeMax) codeMax = arrayMax(clusterBlocks) ;
	if (goodHashes)
	  {
#ifdef OMP
#pragma omp parallel for
#endif
	    for (code = codeMin ; code < codeMax ; ++code)
	      { codeClusterFind (code, params.clusterThreshold) ;
		codeClusterReadMerge (code) ;
	      }
	    fprintf (outFile, "  clustered codes %d to %d\n", codeMin, codeMax) ;
	    if (outFile != stdout) printf ("  clustered codes %d to %d\n", codeMin, codeMax) ;
	  }
      else
	{ fprintf (outFile, "!! you must set hashDepthRange before cluster\n") ;
	  if (outFile != stdout) fprintf (stderr, "!! you must set hashDepthRange before cluster\n") ;
	}
      }
    else if (ARGMATCH("--clusterReport",3))
      { int code, codeMin = atoi(argv[-2]), codeMax = atoi(argv[-1]) ;
	if (!codeMax) codeMax = arrayMax(clusterBlocks) ;
	codeClusterReport (codeMin, codeMax) ;
      }
    else if (ARGMATCH("--clusterSplit",1)) clusterSplitCodes () ;
    else if (ARGMATCH("--hashStats",1)) hashDepthHist () ;
    else if (ARGMATCH("--codeStats",1)) codeSizeHist () ;
    else if (ARGMATCH("--cribSummary",1)) cribSummary () ;
    else if (ARGMATCH("--errorFix",3)) errorFix (atoi(argv[-2]), atoi(argv[-1])) ;
    else if (ARGMATCH("--shareScan",3)) shareScan (atoi(argv[-2]), atoi(argv[-1])) ;
    else if (ARGMATCH("--help",1)) usage () ;
    else if (ARGMATCH("--quit",1) || ARGMATCH("--exit",1)) break ; /* end loop */
    else
      if (isInteractive) fprintf (stderr, "  unknown option/command %s", (*argv)+2) ;
      else die ("unknown option/command %s; run without arguments for usage", *argv) ;

    printf ("  ") ; timeUpdate (stdout) ; fflush (stdout) ;
    
    if (isInteractive)		/* get an input line from stdin and convert to *argv */
      { if (argc) fprintf (stderr, "INPUT ERROR - ignoring arguments starting %s\n", *argv) ;
	char c ;
	printf ("> ") ; fflush (stdout) ;
	while ((c = getchar())) if (!isspace (c) || c == '\n') break ; /* remove leading space */
	if (c == '\n') { argc = 1 ; argv = inputArgs ; *argv = "--help" ; continue ; }
	arr(inputArray,0,char) = '-' ; arr(inputArray,1,char) = '-' ; arrayMax(inputArray) = 2 ;
	while (c != '\n' && c != EOF)
	  { for ( ; isgraph(c) ; c = getchar ())
	      array(inputArray, arrayMax(inputArray), char) = c ;
	    array(inputArray, arrayMax(inputArray), char) = 0 ; /* string terminator */
	    while (isspace (c) && c != '\n') c = getchar() ;	/* eat whitespace separator */
	  }
	if (c == EOF) break ;	       /* end of file or error - exit program */
	argv = inputArgs ; argc = 0 ; int i = 0 ;
	while (i < arrayMax(inputArray))
	  { argv[argc++] = arrp(inputArray,i,char) ;
	    while (*arrp(inputArray,i++,char)) ;
	  }
      }
  }

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x580, %rsp            # imm = 0x580
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)
movq 0xc82b(%rip), %rax      # 0x12fd0
movq (%rax), %rax
movq %rax, 0xdc21(%rip)      # 0x143d0
movq 0xc81a(%rip), %rax      # 0x12fd0
movq (%rax), %rdi
callq 0xd4d0
movl $0x15, 0xdca8(%rip)     # 0x14470
movl $0x1f, 0xdca2(%rip)     # 0x14474
movl $0x11, 0xdc9c(%rip)     # 0x14478
movl $0x1c, 0xdc96(%rip)     # 0x1447c
movl $0x0, 0xdc90(%rip)      # 0x14480
movl $0x186a0, 0xdc8a(%rip)  # imm = 0x186A0
movl $0x5, 0xdc84(%rip)      # 0x14488
cmpl $0x0, -0x8(%rbp)
jne 0x680f
callq 0x6320
movl $0x4b0, %edi            # imm = 0x4B0
movl $0x20, %esi
callq 0xc1e0
movq %rax, 0xdba3(%rip)      # 0x143c8
movl $0x400, %edi            # imm = 0x400
movl $0x1, %esi
callq 0xc1e0
movq %rax, -0x528(%rbp)
cmpl $0x0, -0x8(%rbp)
je 0x7bd1
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x6869
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x8969(%rip), %rdi      # 0xf1cb
movb $0x0, %al
callq 0xd0c0
cmpb $0x0, 0xdb42(%rip)      # 0x143b2
jne 0x69d3
movq 0xdb53(%rip), %rdi      # 0x143d0
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0x898b(%rip), %rsi      # 0xf216
movb $0x0, %al
callq 0x1150
movl $0x1, -0x52c(%rbp)
movl -0x52c(%rbp), %ecx
xorl %eax, %eax
cmpl -0x8(%rbp), %ecx
movb %al, -0x561(%rbp)
jge 0x68cd
movq -0x10(%rbp), %rax
movslq -0x52c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
setne %al
movb %al, -0x561(%rbp)
movb -0x561(%rbp), %al
testb $0x1, %al
jne 0x68d9
jmp 0x690e
movq 0xdaf0(%rip), %rdi      # 0x143d0
movq -0x10(%rbp), %rax
movslq -0x52c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x7e2c(%rip), %rsi      # 0xe722
movb $0x0, %al
callq 0x1150
movl -0x52c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x52c(%rbp)
jmp 0x689c
movq 0xdabb(%rip), %rsi      # 0x143d0
movl $0xa, %edi
callq 0x1100
movq 0xdaaa(%rip), %rax      # 0x143d0
movq 0xc6a3(%rip), %rcx      # 0x12fd0
cmpq (%rcx), %rax
je 0x69d1
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x88d2(%rip), %rdi      # 0xf216
movb $0x0, %al
callq 0x10d0
movl $0x1, -0x530(%rbp)
movl -0x530(%rbp), %ecx
xorl %eax, %eax
cmpl -0x8(%rbp), %ecx
movb %al, -0x562(%rbp)
jge 0x6986
movq -0x10(%rbp), %rax
movslq -0x530(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
setne %al
movb %al, -0x562(%rbp)
movb -0x562(%rbp), %al
testb $0x1, %al
jne 0x6992
jmp 0x69c7
movq 0xda37(%rip), %rdi      # 0x143d0
movq -0x10(%rbp), %rax
movslq -0x530(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x7d73(%rip), %rsi      # 0xe722
movb $0x0, %al
callq 0x1150
movl -0x530(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x530(%rbp)
jmp 0x6955
movl $0xa, %edi
callq 0x1050
jmp 0x69d3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8840(%rip), %rsi      # 0xf221
callq 0x1130
cmpl $0x0, %eax
jne 0x6a24
cmpl $0x2, -0x8(%rbp)
jl 0x6a24
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 0x6a24
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, 0xda51(%rip)      # 0x14470
jmp 0x78e9
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x87f2(%rip), %rsi      # 0xf224
callq 0x1130
cmpl $0x0, %eax
jne 0x6a75
cmpl $0x2, -0x8(%rbp)
jl 0x6a75
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 0x6a75
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, 0xda04(%rip)      # 0x14474
jmp 0x78e7
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x87a4(%rip), %rsi      # 0xf227
callq 0x1130
cmpl $0x0, %eax
jne 0x6ac6
cmpl $0x2, -0x8(%rbp)
jl 0x6ac6
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 0x6ac6
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, 0xd9b7(%rip)      # 0x14478
jmp 0x78e5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8756(%rip), %rsi      # 0xf22a
callq 0x1130
cmpl $0x0, %eax
jne 0x6b17
cmpl $0x2, -0x8(%rbp)
jl 0x6b17
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 0x6b17
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, 0xd96a(%rip)      # 0x1447c
jmp 0x78e3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8708(%rip), %rsi      # 0xf22d
callq 0x1130
cmpl $0x0, %eax
jne 0x6b68
cmpl $0x2, -0x8(%rbp)
jl 0x6b68
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 0x6b68
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, 0xd91d(%rip)      # 0x14480
jmp 0x78e1
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x86ba(%rip), %rsi      # 0xf230
callq 0x1130
cmpl $0x0, %eax
jne 0x6bb9
cmpl $0x2, -0x8(%rbp)
jl 0x6bb9
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 0x6bb9
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, 0xd8d0(%rip)      # 0x14484
jmp 0x78df
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x866c(%rip), %rsi      # 0xf233
callq 0x1130
cmpl $0x0, %eax
jne 0x6bf2
cmpl $0x2, -0x8(%rbp)
jl 0x6bf2
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
jne 0x6c2b
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8636(%rip), %rsi      # 0xf236
callq 0x1130
cmpl $0x0, %eax
jne 0x6c48
cmpl $0x2, -0x8(%rbp)
jl 0x6c48
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 0x6c48
movq 0xc3c6(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x8604(%rip), %rsi      # 0xf240
movb $0x0, %al
callq 0x1150
jmp 0x78dd
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x861d(%rip), %rsi      # 0xf273
callq 0x1130
cmpl $0x0, %eax
jne 0x6c81
cmpl $0x2, -0x8(%rbp)
jl 0x6c81
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
jne 0x6cc6
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x85e7(%rip), %rsi      # 0xf276
callq 0x1130
cmpl $0x0, %eax
jne 0x6d4b
cmpl $0x2, -0x8(%rbp)
jl 0x6d4b
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 0x6d4b
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x85aa(%rip), %rsi      # 0xf27f
callq 0x1130
cmpl $0x0, %eax
jne 0x6cf2
movq 0xc2ea(%rip), %rax      # 0x12fd0
movq (%rax), %rax
movq %rax, 0xd6e0(%rip)      # 0x143d0
jmp 0x6d46
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x8524(%rip), %rsi      # 0xf225
callq 0x11e0
movq %rax, 0xd6c3(%rip)      # 0x143d0
cmpq $0x0, %rax
jne 0x6d44
movq 0xc2de(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdx
leaq 0x8555(%rip), %rsi      # 0xf281
movb $0x0, %al
callq 0x1150
movq 0xc296(%rip), %rax      # 0x12fd0
movq (%rax), %rax
movq %rax, 0xd68c(%rip)      # 0x143d0
jmp 0x6d46
jmp 0x78db
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8543(%rip), %rsi      # 0xf29c
callq 0x1130
cmpl $0x0, %eax
jne 0x6d90
cmpl $0x1, -0x8(%rbp)
jl 0x6d90
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 0x6d90
movb $0x1, 0xd627(%rip)      # 0x143b2
jmp 0x78d9
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x850c(%rip), %rsi      # 0xf2aa
callq 0x1130
cmpl $0x0, %eax
jne 0x6de5
cmpl $0x1, -0x8(%rbp)
jl 0x6de5
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 0x6de5
cmpb $0x0, 0xd5e0(%rip)      # 0x143b0
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movb %al, 0xd5d0(%rip)       # 0x143b0
jmp 0x78d7
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x84c0(%rip), %rsi      # 0xf2b3
callq 0x1130
cmpl $0x0, %eax
jne 0x6e3a
cmpl $0x1, -0x8(%rbp)
jl 0x6e3a
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 0x6e3a
cmpb $0x0, 0xd58c(%rip)      # 0x143b1
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movb %al, 0xd57c(%rip)       # 0x143b1
jmp 0x78d5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8475(%rip), %rsi      # 0xf2bd
callq 0x1130
cmpl $0x0, %eax
jne 0x6eeb
cmpl $0x2, -0x8(%rbp)
jl 0x6eeb
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 0x6eeb
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x839e(%rip), %rsi      # 0xf228
callq 0x11e0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x6eaf
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x841f(%rip), %rdi      # 0xf2c7
movb $0x0, %al
callq 0xd0c0
movl 0xd5bb(%rip), %edi      # 0x14470
movl 0xd5b9(%rip), %esi      # 0x14474
movl 0xd5b7(%rip), %edx      # 0x14478
movl 0xd5b5(%rip), %ecx      # 0x1447c
callq 0x6640
movq -0x18(%rbp), %rdi
movl 0xd5aa(%rip), %esi      # 0x14480
movl 0xd5a8(%rip), %edx      # 0x14484
callq 0x1ad0
callq 0x24f0
jmp 0x78d3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x83e9(%rip), %rsi      # 0xf2e2
callq 0x1130
cmpl $0x0, %eax
jne 0x6f8c
cmpl $0x2, -0x8(%rbp)
jl 0x6f8c
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 0x6f8c
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x82f1(%rip), %rsi      # 0xf228
callq 0x11e0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x6f5c
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x8398(%rip), %rdi      # 0xf2ed
movb $0x0, %al
callq 0xd0c0
movl 0xd50e(%rip), %edi      # 0x14470
movl 0xd50c(%rip), %esi      # 0x14474
movl 0xd50a(%rip), %edx      # 0x14478
movl 0xd508(%rip), %ecx      # 0x1447c
callq 0x6640
movq -0x18(%rbp), %rdi
callq 0x20d0
callq 0x24f0
jmp 0x78d1
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x836f(%rip), %rsi      # 0xf309
callq 0x1130
cmpl $0x0, %eax
jne 0x7007
cmpl $0x2, -0x8(%rbp)
jl 0x7007
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 0x7007
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x8251(%rip), %rsi      # 0xf225
callq 0x11e0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x6ff9
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x82fb(%rip), %rdi      # 0xf2ed
movb $0x0, %al
callq 0xd0c0
movq -0x18(%rbp), %rdi
callq 0x1e50
jmp 0x78cf
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8300(%rip), %rsi      # 0xf315
callq 0x1130
cmpl $0x0, %eax
jne 0x7077
cmpl $0x3, -0x8(%rbp)
jl 0x7077
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 0x7077
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x1210
movl %eax, -0x568(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl -0x568(%rbp), %edi
movl %eax, %esi
callq 0x3580
callq 0x4900
jmp 0x78cd
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x82a1(%rip), %rsi      # 0xf326
callq 0x1130
cmpl $0x0, %eax
jne 0x70fb
cmpl $0x4, -0x8(%rbp)
jl 0x70fb
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 0x70fb
movq -0x10(%rbp), %rax
movq -0x18(%rax), %rdi
callq 0x1210
movl %eax, -0x570(%rbp)
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x1210
movl %eax, -0x56c(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl -0x570(%rbp), %edi
movl -0x56c(%rbp), %esi
movl %eax, %edx
callq 0x3ec0
jmp 0x78cb
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8228(%rip), %rsi      # 0xf331
callq 0x1130
cmpl $0x0, %eax
jne 0x714d
cmpl $0x2, -0x8(%rbp)
jl 0x714d
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 0x714d
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, %edi
callq 0x3ac0
jmp 0x78c9
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x81e4(%rip), %rsi      # 0xf33f
callq 0x1130
cmpl $0x0, %eax
jne 0x71b8
cmpl $0x3, -0x8(%rbp)
jl 0x71b8
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 0x71b8
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x1210
movl %eax, -0x574(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl -0x574(%rbp), %edi
movl %eax, %esi
callq 0x3ca0
jmp 0x78c7
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8188(%rip), %rsi      # 0xf34e
callq 0x1130
cmpl $0x0, %eax
jne 0x7266
cmpl $0x2, -0x8(%rbp)
jl 0x7266
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 0x7266
cmpq $0x0, 0xd257(%rip)      # 0x14458
je 0x721f
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, %edi
movl 0xd270(%rip), %esi      # 0x14488
callq 0x7c30
jmp 0x7261
movq 0xd1aa(%rip), %rdi      # 0x143d0
leaq 0x812f(%rip), %rsi      # 0xf35c
movb $0x0, %al
callq 0x1150
movq 0xd195(%rip), %rax      # 0x143d0
movq 0xbd8e(%rip), %rcx      # 0x12fd0
cmpq (%rcx), %rax
je 0x725f
movq 0xbdaa(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x8104(%rip), %rsi      # 0xf35c
movb $0x0, %al
callq 0x1150
jmp 0x7261
jmp 0x78c5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x811b(%rip), %rsi      # 0xf38f
callq 0x1130
cmpl $0x0, %eax
jne 0x7331
cmpl $0x3, -0x8(%rbp)
jl 0x7331
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 0x7331
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
leaq 0x7f6e(%rip), %rsi      # 0xf228
callq 0x11e0
movq %rax, -0x538(%rbp)
cmpq $0x0, %rax
jne 0x72e2
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rsi
leaq 0x80c0(%rip), %rdi      # 0xf39b
movb $0x0, %al
callq 0xd0c0
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
leaq 0x7f37(%rip), %rsi      # 0xf228
callq 0x11e0
movq %rax, -0x540(%rbp)
cmpq $0x0, %rax
jne 0x7319
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rsi
leaq 0x8089(%rip), %rdi      # 0xf39b
movb $0x0, %al
callq 0xd0c0
movq -0x538(%rbp), %rdi
movq -0x540(%rbp), %rsi
callq 0x2d60
jmp 0x78c3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8077(%rip), %rsi      # 0xf3b6
callq 0x1130
cmpl $0x0, %eax
jne 0x736a
cmpl $0x2, -0x8(%rbp)
jl 0x736a
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
jne 0x73a3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8042(%rip), %rsi      # 0xf3ba
callq 0x1130
cmpl $0x0, %eax
jne 0x73bb
cmpl $0x2, -0x8(%rbp)
jl 0x73bb
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 0x73bb
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, 0xd0d2(%rip)      # 0x14488
jmp 0x78c1
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x8004(%rip), %rsi      # 0xf3cd
callq 0x1130
cmpl $0x0, %eax
jne 0x753e
cmpl $0x3, -0x8(%rbp)
jl 0x753e
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 0x753e
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x1210
movl %eax, -0x548(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, -0x54c(%rbp)
cmpl $0x0, -0x548(%rbp)
jne 0x7439
movl $0x1, -0x548(%rbp)
cmpl $0x0, -0x54c(%rbp)
jne 0x7452
movq 0xcf7f(%rip), %rax      # 0x143c8
movl 0x18(%rax), %eax
movl %eax, -0x54c(%rbp)
cmpq $0x0, 0xcffe(%rip)      # 0x14458
je 0x74f7
movl -0x548(%rbp), %eax
movl %eax, -0x544(%rbp)
movl -0x544(%rbp), %eax
cmpl -0x54c(%rbp), %eax
jge 0x74a7
movl -0x544(%rbp), %edi
movl 0xd002(%rip), %esi      # 0x14488
callq 0x4b60
movl -0x544(%rbp), %edi
callq 0x5020
movl -0x544(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x544(%rbp)
jmp 0x746c
movq 0xcf22(%rip), %rdi      # 0x143d0
movl -0x548(%rbp), %edx
movl -0x54c(%rbp), %ecx
leaq 0x7f16(%rip), %rsi      # 0xf3d7
movb $0x0, %al
callq 0x1150
movq 0xcf01(%rip), %rax      # 0x143d0
movq 0xbafa(%rip), %rcx      # 0x12fd0
cmpq (%rcx), %rax
je 0x74f5
movl -0x548(%rbp), %esi
movl -0x54c(%rbp), %edx
leaq 0x7ee9(%rip), %rdi      # 0xf3d7
movb $0x0, %al
callq 0x10d0
jmp 0x7539
movq 0xced2(%rip), %rdi      # 0x143d0
leaq 0x7eee(%rip), %rsi      # 0xf3f3
movb $0x0, %al
callq 0x1150
movq 0xcebd(%rip), %rax      # 0x143d0
movq 0xbab6(%rip), %rcx      # 0x12fd0
cmpq (%rcx), %rax
je 0x7537
movq 0xbad2(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x7ec3(%rip), %rsi      # 0xf3f3
movb $0x0, %al
callq 0x1150
jmp 0x7539
jmp 0x78bf
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7ed6(%rip), %rsi      # 0xf422
callq 0x1130
cmpl $0x0, %eax
jne 0x75cc
cmpl $0x3, -0x8(%rbp)
jl 0x75cc
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 0x75cc
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x1210
movl %eax, -0x554(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl %eax, -0x558(%rbp)
cmpl $0x0, -0x558(%rbp)
jne 0x75b6
movq 0xce1b(%rip), %rax      # 0x143c8
movl 0x18(%rax), %eax
movl %eax, -0x558(%rbp)
movl -0x554(%rbp), %edi
movl -0x558(%rbp), %esi
callq 0x5320
jmp 0x78bd
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7e58(%rip), %rsi      # 0xf432
callq 0x1130
cmpl $0x0, %eax
jne 0x760f
cmpl $0x1, -0x8(%rbp)
jl 0x760f
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 0x760f
callq 0x5910
jmp 0x78bb
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7e24(%rip), %rsi      # 0xf441
callq 0x1130
cmpl $0x0, %eax
jne 0x7652
cmpl $0x1, -0x8(%rbp)
jl 0x7652
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 0x7652
callq 0x2aa0
jmp 0x78b9
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7ded(%rip), %rsi      # 0xf44d
callq 0x1130
cmpl $0x0, %eax
jne 0x7695
cmpl $0x1, -0x8(%rbp)
jl 0x7695
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 0x7695
callq 0x2b60
jmp 0x78b7
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7db6(%rip), %rsi      # 0xf459
callq 0x1130
cmpl $0x0, %eax
jne 0x76d8
cmpl $0x1, -0x8(%rbp)
jl 0x76d8
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 0x76d8
callq 0x5e50
jmp 0x78b5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7d81(%rip), %rsi      # 0xf467
callq 0x1130
cmpl $0x0, %eax
jne 0x7743
cmpl $0x3, -0x8(%rbp)
jl 0x7743
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 0x7743
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x1210
movl %eax, -0x578(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl -0x578(%rbp), %edi
movl %eax, %esi
callq 0x4010
jmp 0x78b3
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7d21(%rip), %rsi      # 0xf472
callq 0x1130
cmpl $0x0, %eax
jne 0x77ae
cmpl $0x3, -0x8(%rbp)
jl 0x77ae
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 0x77ae
movq -0x10(%rbp), %rax
movq -0x10(%rax), %rdi
callq 0x1210
movl %eax, -0x57c(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rax), %rdi
callq 0x1210
movl -0x57c(%rbp), %edi
movl %eax, %esi
callq 0x4580
jmp 0x78b1
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7cc2(%rip), %rsi      # 0xf47e
callq 0x1130
cmpl $0x0, %eax
jne 0x77f1
cmpl $0x1, -0x8(%rbp)
jl 0x77f1
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 0x77f1
callq 0x6320
jmp 0x78af
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7c86(%rip), %rsi      # 0xf485
callq 0x1130
cmpl $0x0, %eax
jne 0x782a
cmpl $0x1, -0x8(%rbp)
jl 0x782a
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
jne 0x7863
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x7c54(%rip), %rsi      # 0xf48c
callq 0x1130
cmpl $0x0, %eax
jne 0x7868
cmpl $0x1, -0x8(%rbp)
jl 0x7868
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 0x7868
jmp 0x7bd1
cmpb $0x0, 0xcb43(%rip)      # 0x143b2
je 0x7896
movq 0xb780(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
addq $0x2, %rdx
leaq 0x7c06(%rip), %rsi      # 0xf493
movb $0x0, %al
callq 0x1150
jmp 0x78ab
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x7c0b(%rip), %rdi      # 0xf4af
movb $0x0, %al
callq 0xd0c0
jmp 0x78ad
jmp 0x78af
jmp 0x78b1
jmp 0x78b3
jmp 0x78b5
jmp 0x78b7
jmp 0x78b9
jmp 0x78bb
jmp 0x78bd
jmp 0x78bf
jmp 0x78c1
jmp 0x78c3
jmp 0x78c5
jmp 0x78c7
jmp 0x78c9
jmp 0x78cb
jmp 0x78cd
jmp 0x78cf
jmp 0x78d1
jmp 0x78d3
jmp 0x78d5
jmp 0x78d7
jmp 0x78d9
jmp 0x78db
jmp 0x78dd
jmp 0x78df
jmp 0x78e1
jmp 0x78e3
jmp 0x78e5
jmp 0x78e7
jmp 0x78e9
leaq 0x6f52(%rip), %rdi      # 0xe842
movb $0x0, %al
callq 0x10d0
movq 0xb6d2(%rip), %rax      # 0x12fd0
movq (%rax), %rdi
callq 0xd4d0
movq 0xb6c3(%rip), %rax      # 0x12fd0
movq (%rax), %rdi
callq 0x11a0
cmpb $0x0, 0xca96(%rip)      # 0x143b2
je 0x7bcc
cmpl $0x0, -0x8(%rbp)
je 0x7947
movq 0xb6c9(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0x7baa(%rip), %rsi      # 0xf4ea
movb $0x0, %al
callq 0x1150
leaq 0x7bca(%rip), %rdi      # 0xf518
movb $0x0, %al
callq 0x10d0
movq 0xb674(%rip), %rax      # 0x12fd0
movq (%rax), %rdi
callq 0x11a0
callq 0x1140
movb %al, -0x559(%rbp)
cmpb $0x0, %al
je 0x79a3
callq 0x1270
movq (%rax), %rax
movsbl -0x559(%rbp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x799f
movsbl -0x559(%rbp), %eax
cmpl $0xa, %eax
jne 0x79a1
jmp 0x79a3
jmp 0x7964
movsbl -0x559(%rbp), %eax
cmpl $0xa, %eax
jne 0x79d4
movl $0x1, -0x8(%rbp)
leaq -0x520(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x7ab2(%rip), %rcx      # 0xf47e
movq %rcx, (%rax)
jmp 0x683b
movq -0x528(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x528(%rbp), %rcx
imull $0x0, 0x14(%rcx), %ecx
movslq %ecx, %rcx
movb $0x2d, (%rax,%rcx)
movq -0x528(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x528(%rbp), %rcx
movl 0x14(%rcx), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
movb $0x2d, (%rax,%rcx)
movq -0x528(%rbp), %rax
movl $0x2, 0x18(%rax)
movsbl -0x559(%rbp), %ecx
xorl %eax, %eax
cmpl $0xa, %ecx
movb %al, -0x57d(%rbp)
je 0x7a45
movsbl -0x559(%rbp), %eax
cmpl $-0x1, %eax
setne %al
movb %al, -0x57d(%rbp)
movb -0x57d(%rbp), %al
testb $0x1, %al
jne 0x7a54
jmp 0x7b20
jmp 0x7a56
callq 0x1270
movq (%rax), %rax
movsbl -0x559(%rbp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x8000, %eax           # imm = 0x8000
cmpl $0x0, %eax
je 0x7aad
movb -0x559(%rbp), %al
movb %al, -0x57e(%rbp)
movq -0x528(%rbp), %rdi
movq -0x528(%rbp), %rax
movl 0x18(%rax), %esi
callq 0xc640
movb -0x57e(%rbp), %cl
movb %cl, (%rax)
callq 0x1140
movb %al, -0x559(%rbp)
jmp 0x7a56
movq -0x528(%rbp), %rdi
movq -0x528(%rbp), %rax
movl 0x18(%rax), %esi
callq 0xc640
movb $0x0, (%rax)
callq 0x1270
movq (%rax), %rax
movsbl -0x559(%rbp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x2000, %ecx           # imm = 0x2000
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x57f(%rbp)
je 0x7b02
movsbl -0x559(%rbp), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x57f(%rbp)
movb -0x57f(%rbp), %al
testb $0x1, %al
jne 0x7b0e
jmp 0x7b1b
callq 0x1140
movb %al, -0x559(%rbp)
jmp 0x7ac6
jmp 0x7a1e
movsbl -0x559(%rbp), %eax
cmpl $-0x1, %eax
jne 0x7b31
jmp 0x7bd1
leaq -0x520(%rbp), %rax
movq %rax, -0x10(%rbp)
movl $0x0, -0x8(%rbp)
movl $0x0, -0x560(%rbp)
movl -0x560(%rbp), %eax
movq -0x528(%rbp), %rcx
cmpl 0x18(%rcx), %eax
jge 0x7bca
movq -0x528(%rbp), %rax
movq 0x8(%rax), %rdx
movl -0x560(%rbp), %eax
movq -0x528(%rbp), %rcx
imull 0x14(%rcx), %eax
cltq
addq %rax, %rdx
movq -0x10(%rbp), %rax
movl -0x8(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x8(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x528(%rbp), %rax
movq 0x8(%rax), %rax
movl -0x560(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x560(%rbp)
movq -0x528(%rbp), %rdx
imull 0x14(%rdx), %ecx
movslq %ecx, %rcx
cmpb $0x0, (%rax,%rcx)
je 0x7bc8
jmp 0x7b96
jmp 0x7b4d
jmp 0x7bcc
jmp 0x683b
movq 0xc7f8(%rip), %rdi      # 0x143d0
leaq 0x793c(%rip), %rsi      # 0xf51b
movb $0x0, %al
callq 0x1150
movq 0xc7e3(%rip), %rdi      # 0x143d0
callq 0xd660
movq 0xc7d7(%rip), %rax      # 0x143d0
movq 0xb3d0(%rip), %rcx      # 0x12fd0
cmpq (%rcx), %rax
je 0x7c22
leaq 0x790f(%rip), %rdi      # 0xf51b
movb $0x0, %al
callq 0x10d0
movq 0xb3b6(%rip), %rax      # 0x12fd0
movq (%rax), %rdi
callq 0xd660
movl -0x4(%rbp), %eax
addq $0x580, %rsp            # imm = 0x580
popq %rbp
retq
nop