// File: /workspace/github_c_makefile_star2_O0/thegenemyers[P]DASCRUBBER/DASmap.c
// Function: main
int main(int argc, char *argv[])
{ DAZZ_DB     _db, *db = &_db;
  DAZZ_TRACK *map;

  int            reps, *pts;
  int            input_pts;
  File_Iterator *iter = NULL;
  FILE          *input;

  int PRETTY;

  //  Process arguments

  { int   i, j, k;
    int   flags[128];

    ARG_INIT("DASmap")

    j = 1;
    for (i = 1; i < argc; i++)
      if (argv[i][0] == '-')
        ARG_FLAGS("p")
      else
        argv[j++] = argv[i];
    argc = j;

    PRETTY = flags['p'];

    if (argc <= 1)
      { fprintf(stderr,"Usage: %s %s\n",Prog_Name,Usage);
        fprintf(stderr,"\n");
        fprintf(stderr,"      -p: Pretty print (vs easy to parse).\n");
        exit (1);
      }
  }

  //  Open DB or DAM, and if a DAM open also .hdr file

  { int   status, kind;

    status = Open_DB(argv[1],db);
    if (status < 0)
      exit (1);
    if (status == 1)
      { fprintf(stderr,"%s: Cannot be called on a .dam index: %s\n",Prog_Name,argv[1]);
        exit (1);
      }
    if (db->part)
      { fprintf(stderr,"%s: Cannot be called on a block: %s\n",Prog_Name,argv[1]);
        exit (1);
      }

    status = Check_Track(db,"map",&kind);
    if (status == -2)
      { fprintf(stderr,"%s: 'map' track not found.\n",Prog_Name);
        exit (1);
      }
    else if (status == -1)
      { fprintf(stderr,"%s: Warning: 'map' track not sync'd with db.\n",Prog_Name);
        exit (1);
      }
    map = Open_Track(db,"map");
    Load_All_Track_Data(map);
  }

  //  Process read index arguments into a list of read ranges

  input_pts = 0;
  if (argc == 3)
    { if (argv[2][0] != LAST_READ_SYMBOL || argv[2][1] != '\0')
        { char *eptr, *fptr;
          int   b, e;

          b = strtol(argv[2],&eptr,10);
          if (eptr > argv[2] && b > 0)
            { if (*eptr == '-')
                { if (eptr[1] != LAST_READ_SYMBOL || eptr[2] != '\0')
                    { e = strtol(eptr+1,&fptr,10);
                      input_pts = (fptr <= eptr+1 || *fptr != '\0' || e <= 0);
                    }
                }
              else
                input_pts = (*eptr != '\0');
            }
          else
            input_pts = 1;
        }
    }

  if (input_pts)
    { input = Fopen(argv[2],"r");
      if (input == NULL)
        exit (1);

      iter = init_file_iterator(input);
    }
  else
    { pts  = (int *) Malloc(sizeof(int)*2*(argc-1),"Allocating read parameters");
      if (pts == NULL)
        exit (1);

      reps = 0;
      if (argc > 2)
        { int   c, b, e;
          char *eptr, *fptr;

          for (c = 2; c < argc; c++)
            { if (argv[c][0] == LAST_READ_SYMBOL)
                { b = db->nreads;
                  eptr = argv[c]+1;
                }
              else
                b = strtol(argv[c],&eptr,10);
              if (eptr > argv[c])
                { if (b <= 0)
                    { fprintf(stderr,"%s: %d is not a valid index\n",Prog_Name,b);
                      exit (1);
                    }
                  if (*eptr == 0)
                    { pts[reps++] = b;
                      pts[reps++] = b;
                      continue;
                    }
                  else if (*eptr == '-')
                    { if (eptr[1] == LAST_READ_SYMBOL)
                        { e = db->nreads;
                          fptr = eptr+2;
                        }
                      else
                        e = strtol(eptr+1,&fptr,10);
                      if (fptr > eptr+1 && *fptr == 0 && e > 0)
                        { pts[reps++] = b;
                          pts[reps++] = e;
                          if (b > e)
                            { fprintf(stderr,"%s: Empty range '%s'\n",Prog_Name,argv[c]);
                              exit (1);
                            }
                          continue;
                        }
                    }
                }
              fprintf(stderr,"%s: argument '%s' is not an integer range\n",Prog_Name,argv[c]);
              exit (1);
            }
        }
      else
        { pts[reps++] = 1;
          pts[reps++] = db->nreads;
        }
    }

  //  Display each read (and/or QV streams) in the active DB according to the
  //    range pairs in pts[0..reps) and according to the display options.

  { int         c, b, e, i;
    int64      *anno;
    int        *data;
    int64       s, f, j;

    anno = (int64 *) map->anno;
    data =   (int *) map->data;

    c = 0;
    while (1)
      { if (input_pts)
          { if (next_read(iter))
              break;
            e = iter->read;
            b = e-1;
          }
        else
          { if (c >= reps)
              break;
            b = pts[c]-1;
            e = pts[c+1];
            if (e > db->nreads)
              e = db->nreads;
            c += 2;
          }

        if (PRETTY)
          for (i = b; i < e; i++)
            { s = (anno[i] >> 2);
              f = (anno[i+1] >> 2);
              printf(" %d -> %d(%d)",i+1,data[s]+1,data[s+1]);
              for (j = s+2; j < f; j += 3)
                { printf(" [%d,%d]",data[j],data[j+1]);
                  if (j+2 < f)
                    printf(" %d",data[j+2]);
                }
              printf("\n");
            }
        else
          for (i = b; i < e; i++)
            { s = (anno[i] >> 2);
              f = (anno[i+1] >> 2);
              printf(" %d %d %d %lld",i+1,data[s]+1,data[s+1],(f-s)-2);
              for (j = s+2; j < f; j += 3)
                { printf(" %d %d",data[j],data[j+1]);
                  if (j+2 < f)
                    printf(" %d",data[j+2]);
                }
              printf("\n");
            }
      }
  }

  if (input_pts)
    { fclose(input);
      free(iter);
    }
  else
    free(pts);

  Close_DB(db);

  exit (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x350, %rsp            # imm = 0x350
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x80(%rbp), %rax
movq %rax, -0x88(%rbp)
movq $0x0, -0xb0(%rbp)
leaq 0xcb16(%rip), %rdi      # 0xe0ac
leaq 0xd3c0(%rip), %rsi      # 0xe95d
callq 0x23e0
movq %rax, %rcx
leaq 0x134dc(%rip), %rax     # 0x14a88
movq %rcx, (%rax)
movl $0x0, -0xc0(%rbp)
cmpl $0x80, -0xc0(%rbp)
jge 0x15e8
movslq -0xc0(%rbp), %rax
movl $0x0, -0x2d0(%rbp,%rax,4)
movl -0xc0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc0(%rbp)
jmp 0x15b9
movl $0x1, -0xc4(%rbp)
movl $0x1, -0xc0(%rbp)
movl -0xc0(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x1743
movq -0x10(%rbp), %rax
movslq -0xc0(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x1702
movl $0x1, -0xc8(%rbp)
movq -0x10(%rbp), %rax
movslq -0xc0(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xc8(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x1700
movq -0x10(%rbp), %rax
movslq -0xc0(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xc8(%rbp), %rcx
movsbl (%rax,%rcx), %esi
leaq 0xca3d(%rip), %rdi      # 0xe0b1
callq 0x1130
cmpq $0x0, %rax
jne 0x16c5
movq 0x10972(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x133f8(%rip), %rax     # 0x14a88
movq (%rax), %rdx
movq -0x10(%rbp), %rax
movslq -0xc0(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xc8(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
leaq 0xc9ff(%rip), %rsi      # 0xe0b3
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
movq -0x10(%rbp), %rax
movslq -0xc0(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xc8(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cltq
movl $0x1, -0x2d0(%rbp,%rax,4)
movl -0xc8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc8(%rbp)
jmp 0x1630
jmp 0x172d
movq -0x10(%rbp), %rax
movslq -0xc0(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x10(%rbp), %rax
movl -0xc4(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xc4(%rbp)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x172f
movl -0xc0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc0(%rbp)
jmp 0x15fc
movl -0xc4(%rbp), %eax
movl %eax, -0x8(%rbp)
movl -0x110(%rbp), %eax
movl %eax, -0xbc(%rbp)
cmpl $0x1, -0x8(%rbp)
jg 0x17c1
movq 0x10893(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x13319(%rip), %rax     # 0x14a88
movq (%rax), %rdx
leaq 0xc958(%rip), %rsi      # 0xe0d1
leaq 0x109e0(%rip), %rcx     # 0x12160
movb $0x0, %al
callq 0x1180
movq 0x1086a(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0xd1c4(%rip), %rsi      # 0xe95c
movb $0x0, %al
callq 0x1180
movq 0x10852(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0xc92f(%rip), %rsi      # 0xe0df
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x88(%rbp), %rsi
callq 0x3a70
movl %eax, -0x2d4(%rbp)
cmpl $0x0, -0x2d4(%rbp)
jge 0x17ee
movl $0x1, %edi
callq 0x1260
cmpl $0x1, -0x2d4(%rbp)
jne 0x182b
movq 0x107fa(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x13280(%rip), %rax     # 0x14a88
movq (%rax), %rdx
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
leaq 0xc8f1(%rip), %rsi      # 0xe10b
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
movq -0x88(%rbp), %rax
cmpl $0x0, 0x38(%rax)
je 0x186c
movq 0x107b9(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x1323f(%rip), %rax     # 0x14a88
movq (%rax), %rdx
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
leaq 0xc8da(%rip), %rsi      # 0xe135
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
movq -0x88(%rbp), %rdi
leaq 0xc835(%rip), %rsi      # 0xe0af
leaq -0x2d8(%rbp), %rdx
callq 0x64d0
movl %eax, -0x2d4(%rbp)
cmpl $-0x2, -0x2d4(%rbp)
jne 0x18c1
movq 0x1075c(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x131e2(%rip), %rax     # 0x14a88
movq (%rax), %rdx
leaq 0xc8aa(%rip), %rsi      # 0xe15a
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
cmpl $-0x1, -0x2d4(%rbp)
jne 0x18f6
movq 0x10727(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x131ad(%rip), %rax     # 0x14a88
movq (%rax), %rdx
leaq 0xc891(%rip), %rsi      # 0xe176
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
jmp 0x18f8
movq -0x88(%rbp), %rdi
leaq 0xc7a9(%rip), %rsi      # 0xe0af
callq 0x6820
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
callq 0x7740
movl $0x0, -0xa4(%rbp)
cmpl $0x3, -0x8(%rbp)
jne 0x1a71
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movsbl (%rax), %eax
cmpl $0x24, %eax
jne 0x1957
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
je 0x1a6f
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq -0x2e0(%rbp), %rsi
movl $0xa, %edx
callq 0x11b0
movl %eax, -0x2ec(%rbp)
movq -0x2e0(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x1a63
cmpl $0x0, -0x2ec(%rbp)
jle 0x1a63
movq -0x2e0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x1a46
movq -0x2e0(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x24, %eax
jne 0x19cb
movq -0x2e0(%rbp), %rax
movsbl 0x2(%rax), %eax
cmpl $0x0, %eax
je 0x1a44
movq -0x2e0(%rbp), %rdi
addq $0x1, %rdi
leaq -0x2e8(%rbp), %rsi
movl $0xa, %edx
callq 0x11b0
movl %eax, -0x2f0(%rbp)
movq -0x2e8(%rbp), %rcx
movq -0x2e0(%rbp), %rdx
addq $0x1, %rdx
movb $0x1, %al
cmpq %rdx, %rcx
movb %al, -0x349(%rbp)
jbe 0x1a33
movq -0x2e8(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x349(%rbp)
jne 0x1a33
cmpl $0x0, -0x2f0(%rbp)
setle %al
movb %al, -0x349(%rbp)
movb -0x349(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0xa4(%rbp)
jmp 0x1a61
movq -0x2e0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0xa4(%rbp)
jmp 0x1a6d
movl $0x1, -0xa4(%rbp)
jmp 0x1a6f
jmp 0x1a71
cmpl $0x0, -0xa4(%rbp)
je 0x1ac1
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0xd2cb(%rip), %rsi      # 0xed54
callq 0x2480
movq %rax, -0xb8(%rbp)
cmpq $0x0, -0xb8(%rbp)
jne 0x1aa9
movl $0x1, %edi
callq 0x1260
movq -0xb8(%rbp), %rdi
callq 0x13a0
movq %rax, -0xb0(%rbp)
jmp 0x1e18
movl -0x8(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rdi
shlq $0x3, %rdi
leaq 0xc6cf(%rip), %rsi      # 0xe1a4
callq 0x22c0
movq %rax, -0xa0(%rbp)
cmpq $0x0, -0xa0(%rbp)
jne 0x1af5
movl $0x1, %edi
callq 0x1260
movl $0x0, -0x94(%rbp)
cmpl $0x2, -0x8(%rbp)
jle 0x1dcc
movl $0x2, -0x2f4(%rbp)
movl -0x2f4(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x1dca
movq -0x10(%rbp), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
cmpl $0x24, %eax
jne 0x1b65
movq -0x88(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x2f8(%rbp)
movq -0x10(%rbp), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
addq $0x1, %rax
movq %rax, -0x308(%rbp)
jmp 0x1b8b
movq -0x10(%rbp), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq -0x308(%rbp), %rsi
movl $0xa, %edx
callq 0x11b0
movl %eax, -0x2f8(%rbp)
movq -0x308(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq -0x2f4(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jbe 0x1d7b
cmpl $0x0, -0x2f8(%rbp)
jg 0x1be2
movq 0x10441(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x12ec7(%rip), %rax     # 0x14a88
movq (%rax), %rdx
movl -0x2f8(%rbp), %ecx
leaq 0xc5ee(%rip), %rsi      # 0xe1bf
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
movq -0x308(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x1c3e
movl -0x2f8(%rbp), %edx
movq -0xa0(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x2f8(%rbp), %edx
movq -0xa0(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
jmp 0x1db6
movq -0x308(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x1d77
movq -0x308(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x24, %eax
jne 0x1c85
movq -0x88(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x2fc(%rbp)
movq -0x308(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x310(%rbp)
jmp 0x1ca7
movq -0x308(%rbp), %rdi
addq $0x1, %rdi
leaq -0x310(%rbp), %rsi
movl $0xa, %edx
callq 0x11b0
movl %eax, -0x2fc(%rbp)
movq -0x310(%rbp), %rax
movq -0x308(%rbp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jbe 0x1d75
movq -0x310(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x1d75
cmpl $0x0, -0x2fc(%rbp)
jle 0x1d75
movl -0x2f8(%rbp), %edx
movq -0xa0(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x2fc(%rbp), %edx
movq -0xa0(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x2f8(%rbp), %eax
cmpl -0x2fc(%rbp), %eax
jle 0x1d73
movq 0x102b9(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x12d3f(%rip), %rax     # 0x14a88
movq (%rax), %rdx
movq -0x10(%rbp), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0xc47a(%rip), %rsi      # 0xe1dc
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
jmp 0x1db6
jmp 0x1d77
jmp 0x1d79
jmp 0x1d7b
movq 0x10276(%rip), %rax     # 0x11ff8
movq (%rax), %rdi
leaq 0x12cfc(%rip), %rax     # 0x14a88
movq (%rax), %rdx
movq -0x10(%rbp), %rax
movslq -0x2f4(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0xc44d(%rip), %rsi      # 0xe1f2
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
movl -0x2f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2f4(%rbp)
jmp 0x1b13
jmp 0x1e16
movq -0xa0(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x94(%rbp)
movslq %ecx, %rcx
movl $0x1, (%rax,%rcx,4)
movq -0x88(%rbp), %rax
movl 0x30(%rax), %edx
movq -0xa0(%rbp), %rax
movl -0x94(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x94(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
jmp 0x1e18
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x328(%rbp)
movq -0x90(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x330(%rbp)
movl $0x0, -0x314(%rbp)
cmpl $0x0, -0xa4(%rbp)
je 0x1e86
movq -0xb0(%rbp), %rdi
callq 0x13f0
cmpl $0x0, %eax
je 0x1e65
jmp 0x21e3
movq -0xb0(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x31c(%rbp)
movl -0x31c(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x318(%rbp)
jmp 0x1f00
movl -0x314(%rbp), %eax
cmpl -0x94(%rbp), %eax
jl 0x1e99
jmp 0x21e3
movq -0xa0(%rbp), %rax
movslq -0x314(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movl %eax, -0x318(%rbp)
movq -0xa0(%rbp), %rax
movl -0x314(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x31c(%rbp)
movl -0x31c(%rbp), %eax
movq -0x88(%rbp), %rcx
cmpl 0x30(%rcx), %eax
jle 0x1ef1
movq -0x88(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x31c(%rbp)
movl -0x314(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x314(%rbp)
cmpl $0x0, -0xbc(%rbp)
je 0x206e
movl -0x318(%rbp), %eax
movl %eax, -0x320(%rbp)
movl -0x320(%rbp), %eax
cmpl -0x31c(%rbp), %eax
jge 0x2069
movq -0x328(%rbp), %rax
movslq -0x320(%rbp), %rcx
movq (%rax,%rcx,8), %rax
sarq $0x2, %rax
movq %rax, -0x338(%rbp)
movq -0x328(%rbp), %rax
movl -0x320(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
sarq $0x2, %rax
movq %rax, -0x340(%rbp)
movl -0x320(%rbp), %esi
addl $0x1, %esi
movq -0x330(%rbp), %rax
movq -0x338(%rbp), %rcx
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
movq -0x330(%rbp), %rax
movq -0x338(%rbp), %rcx
movl 0x4(%rax,%rcx,4), %ecx
leaq 0xc27d(%rip), %rdi      # 0xe21d
movb $0x0, %al
callq 0x10f0
movq -0x338(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x348(%rbp)
movq -0x348(%rbp), %rax
cmpq -0x340(%rbp), %rax
jge 0x2047
movq -0x330(%rbp), %rax
movq -0x348(%rbp), %rcx
movl (%rax,%rcx,4), %esi
movq -0x330(%rbp), %rax
movq -0x348(%rbp), %rcx
movl 0x4(%rax,%rcx,4), %edx
leaq 0xc238(%rip), %rdi      # 0xe22b
movb $0x0, %al
callq 0x10f0
movq -0x348(%rbp), %rax
addq $0x2, %rax
cmpq -0x340(%rbp), %rax
jge 0x202e
movq -0x330(%rbp), %rax
movq -0x348(%rbp), %rcx
movl 0x8(%rax,%rcx,4), %esi
leaq 0xc04f(%rip), %rdi      # 0xe076
movb $0x0, %al
callq 0x10f0
jmp 0x2030
movq -0x348(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x348(%rbp)
jmp 0x1fb9
leaq 0xc90e(%rip), %rdi      # 0xe95c
movb $0x0, %al
callq 0x10f0
movl -0x320(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x320(%rbp)
jmp 0x1f19
jmp 0x21de
movl -0x318(%rbp), %eax
movl %eax, -0x320(%rbp)
movl -0x320(%rbp), %eax
cmpl -0x31c(%rbp), %eax
jge 0x21dc
movq -0x328(%rbp), %rax
movslq -0x320(%rbp), %rcx
movq (%rax,%rcx,8), %rax
sarq $0x2, %rax
movq %rax, -0x338(%rbp)
movq -0x328(%rbp), %rax
movl -0x320(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
sarq $0x2, %rax
movq %rax, -0x340(%rbp)
movl -0x320(%rbp), %esi
addl $0x1, %esi
movq -0x330(%rbp), %rax
movq -0x338(%rbp), %rcx
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
movq -0x330(%rbp), %rax
movq -0x338(%rbp), %rcx
movl 0x4(%rax,%rcx,4), %ecx
movq -0x340(%rbp), %r8
subq -0x338(%rbp), %r8
subq $0x2, %r8
leaq 0xc121(%rip), %rdi      # 0xe234
movb $0x0, %al
callq 0x10f0
movq -0x338(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x348(%rbp)
movq -0x348(%rbp), %rax
cmpq -0x340(%rbp), %rax
jge 0x21ba
movq -0x330(%rbp), %rax
movq -0x348(%rbp), %rcx
movl (%rax,%rcx,4), %esi
movq -0x330(%rbp), %rax
movq -0x348(%rbp), %rcx
movl 0x4(%rax,%rcx,4), %edx
leaq 0xbf0d(%rip), %rdi      # 0xe073
movb $0x0, %al
callq 0x10f0
movq -0x348(%rbp), %rax
addq $0x2, %rax
cmpq -0x340(%rbp), %rax
jge 0x21a1
movq -0x330(%rbp), %rax
movq -0x348(%rbp), %rcx
movl 0x8(%rax,%rcx,4), %esi
leaq 0xbedc(%rip), %rdi      # 0xe076
movb $0x0, %al
callq 0x10f0
jmp 0x21a3
movq -0x348(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x348(%rbp)
jmp 0x212c
leaq 0xc79b(%rip), %rdi      # 0xe95c
movb $0x0, %al
callq 0x10f0
movl -0x320(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x320(%rbp)
jmp 0x207a
jmp 0x21de
jmp 0x1e46
cmpl $0x0, -0xa4(%rbp)
je 0x2206
movq -0xb8(%rbp), %rdi
callq 0x10b0
movq -0xb0(%rbp), %rdi
callq 0x1030
jmp 0x2212
movq -0xa0(%rbp), %rdi
callq 0x1030
movq -0x88(%rbp), %rdi
callq 0x53c0
xorl %edi, %edi
callq 0x1260
nopw %cs:(%rax,%rax)
nop