// File: /workspace/github_c_makefile_star2_O0/thegenemyers[P]DASCRUBBER/DB.c
// Function: Open_Track
DAZZ_TRACK *Open_Track(DAZZ_DB *db, char *track)
{ FILE       *afile, *dfile;
  int         tracklen, size;
  int         nreads, ispart;
  int         treads, ureads;
  int64       dmax;
  void       *anno;
  int        *alen;
  void       *data;
  char       *name;
  DAZZ_TRACK *record;

  if (track[0] == '.')
    { EPRINTF(EPLACE,"%s: Track name, '%s', cannot begin with a .\n",Prog_Name,track);
      EXIT(NULL);
    }

  for (record = db->tracks; record != NULL; record = record->next)
    if (strcmp(record->name,track) == 0)
      return (record);

  afile = NULL;
  if (db->part)
    { afile  = fopen(MyCatenate(db->path,MyNumbered_Suffix(".",db->part,"."),track,".anno"),"r");
      ispart = 1;
    }
  if (afile == NULL)
    { afile = fopen(MyCatenate(db->path,".",track,".anno"),"r");
      ispart = 0;
    }
  if (afile == NULL)
    { EPRINTF(EPLACE,"%s: Track '%s' does not exist\n",Prog_Name,track);
      return (NULL);
    }

  dfile  = NULL;
  anno   = NULL;
  alen   = NULL;
  data   = NULL;
  record = NULL;

  if (ispart)
    name = MyCatenate(db->path,MyNumbered_Suffix(".",db->part,"."),track,".data");
  else
    name = MyCatenate(db->path,".",track,".data");
  if (name == NULL)
    goto error;
  dfile = fopen(name,"r");

  if (fread(&tracklen,sizeof(int),1,afile) != 1)
    { EPRINTF(EPLACE,"%s: Track '%s' annotation file is junk\n",Prog_Name,track);
      goto error;
    }
  if (fread(&size,sizeof(int),1,afile) != 1)
    { EPRINTF(EPLACE,"%s: Track '%s' annotation file is junk\n",Prog_Name,track);
      goto error;
    }

  if (size < 0)
    { EPRINTF(EPLACE,"%s: Track '%s' annotation file is junk\n",Prog_Name,track);
      goto error;
    }
  if (size == 0)
    size = 8;

  if (ispart)
    { ureads = ((int *) (db->reads))[-1];
      treads = ((int *) (db->reads))[-2];
    }
  else
    { ureads = db->ureads;
      treads = db->treads;
    }

  if (db->trimmed)
    { if (tracklen != treads && tracklen != ureads)
        { EPRINTF(EPLACE,"%s: Track '%s' not same size as database !\n",Prog_Name,track);
          goto error;
        }
      if ( ! ispart && db->part > 0)
        { if (tracklen == treads)
            fseeko(afile,size*db->tfirst,SEEK_CUR);
          else
            fseeko(afile,size*db->ufirst,SEEK_CUR);
        }
    }
  else
    { if (tracklen != ureads)
        { if (tracklen == treads)
            EPRINTF(EPLACE,"%s: Track '%s' is for a trimmed DB !\n",Prog_Name,track);
          else
            EPRINTF(EPLACE,"%s: Track '%s' not same size as database !\n",Prog_Name,track);
          goto error;
        }
      if ( ! ispart && db->part > 0)
        fseeko(afile,size*db->ufirst,SEEK_CUR);
    }
  if (tracklen == treads)
    nreads = ((int *) (db->reads))[-2];
  else
    nreads = ((int *) (db->reads))[-1];

  anno = (void *) Malloc(size*(nreads+1),"Allocating Track Anno Vector");
  if (anno == NULL)
    goto error;

  if (dfile != NULL)
    { int64 *anno8;
      int   *anno4;
      int64  x, y;
      int    i;

      alen = (int *)  Malloc(sizeof(int)*nreads,"Allocating Track Anno Lengths");
      if (alen == NULL)
        goto error;

      if (fread(anno,size,nreads+1,afile) != (size_t) (nreads+1))
        { EPRINTF(EPLACE,"%s: Track '%s' annotation file is junk\n",Prog_Name,track);
          goto error;
        }

      dmax = 0;
      if (size == 4)
        { anno4 = (int *) anno;
          y = anno4[0];
          for (i = 1; i <= nreads; i++)
            { x = anno4[i];
              y = x-y;
              if (y > dmax)
                dmax = y; 
              alen[i-1] = y;
              y = x;
            }
        }
      else
        { anno8 = (int64 *) anno;
          y = anno8[0];
          for (i = 1; i <= nreads; i++)
            { x = anno8[i];
              y = x-y;
              if (y > dmax)
                dmax = y; 
              alen[i-1] = y;
              y = x;
            }
        }
    }
  else
    { dmax = 0;
      if (fread(anno,size,nreads,afile) != (size_t) nreads)
        { EPRINTF(EPLACE,"%s: Track '%s' annotation file is junk\n",Prog_Name,track);
          goto error;
        }
    }

  fclose(afile);

  record = (DAZZ_TRACK *) Malloc(sizeof(DAZZ_TRACK),"Allocating Track Record");
  if (record == NULL)
    goto error;
  record->name = Strdup(track,"Allocating Track Name");
  if (record->name == NULL)
    goto error;
  if (dfile == NULL)
    record->data = NULL;
  else
    record->data = (void *) dfile;
  record->anno   = anno;
  record->alen   = alen;
  record->size   = size;
  record->nreads = nreads;
  record->loaded = 0;
  record->dmax   = dmax;

  if (db->trimmed && tracklen != treads)
    { if (Late_Track_Trim(db,record,ispart))
        goto error;
    }

  if (db->tracks != NULL && (db->tracks->name == qtrack_name || db->tracks->name == atrack_name))
    { record->next     = db->tracks->next;
      db->tracks->next = record;
    }
  else
    { record->next = db->tracks;
      db->tracks   = record;
    }

  return (record);

error:
  if (record != NULL)
    free(record);
  if (data != NULL)
    free(data);
  if (alen != NULL)
    free(alen);
  if (anno != NULL)
    free(anno);
  if (dfile != NULL)
    fclose(dfile);
  fclose(afile);
  EXIT (NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x686c
movq 0xb7b2(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xe238(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x8037(%rip), %rsi      # 0xe892
movb $0x0, %al
callq 0x1180
movl $0x1, %edi
callq 0x1260
movq -0x10(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
je 0x68b1
movq -0x70(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x1170
cmpl $0x0, %eax
jne 0x68a2
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x70ce
jmp 0x68a4
movq -0x70(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0x6878
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
je 0x691c
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rax
movl 0x38(%rax), %esi
leaq 0x7c0e(%rip), %rdx      # 0xe4ee
movq %rdx, %rdi
callq 0x6710
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
leaq 0x7f69(%rip), %rcx      # 0xe866
callq 0x4550
movq %rax, %rdi
leaq 0x8448(%rip), %rsi      # 0xed54
callq 0x1230
movq %rax, -0x20(%rbp)
movl $0x1, -0x38(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x695c
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x7bb8(%rip), %rsi      # 0xe4ee
leaq 0x7f29(%rip), %rcx      # 0xe866
callq 0x4550
movq %rax, %rdi
leaq 0x8408(%rip), %rsi      # 0xed54
callq 0x1230
movq %rax, -0x20(%rbp)
movl $0x0, -0x38(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6993
movq 0xb68e(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xe114(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x7f40(%rip), %rsi      # 0xe8bf
movb $0x0, %al
callq 0x1180
movq $0x0, -0x8(%rbp)
jmp 0x70ce
movq $0x0, -0x28(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movq $0x0, -0x70(%rbp)
cmpl $0x0, -0x38(%rbp)
je 0x6a06
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rax
movl 0x38(%rax), %esi
leaq 0x7b10(%rip), %rdx      # 0xe4ee
movq %rdx, %rdi
callq 0x6710
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
leaq 0x7ee3(%rip), %rcx      # 0xe8de
callq 0x4550
movq %rax, -0x68(%rbp)
jmp 0x6a29
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x7ad5(%rip), %rsi      # 0xe4ee
leaq 0x7ebe(%rip), %rcx      # 0xe8de
callq 0x4550
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x6a35
jmp 0x706b
movq -0x68(%rbp), %rdi
leaq 0x8314(%rip), %rsi      # 0xed54
callq 0x1230
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rcx
leaq -0x2c(%rbp), %rdi
movl $0x4, %esi
movl $0x1, %edx
callq 0x10a0
cmpq $0x1, %rax
je 0x6a8e
movq 0xb58b(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xe011(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x7e62(%rip), %rsi      # 0xe8e4
movb $0x0, %al
callq 0x1180
jmp 0x706b
movq -0x20(%rbp), %rcx
leaq -0x30(%rbp), %rdi
movl $0x4, %esi
movl $0x1, %edx
callq 0x10a0
cmpq $0x1, %rax
je 0x6ad3
movq 0xb546(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xdfcc(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x7e1d(%rip), %rsi      # 0xe8e4
movb $0x0, %al
callq 0x1180
jmp 0x706b
cmpl $0x0, -0x30(%rbp)
jge 0x6b01
movq 0xb518(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xdf9e(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x7def(%rip), %rsi      # 0xe8e4
movb $0x0, %al
callq 0x1180
jmp 0x706b
cmpl $0x0, -0x30(%rbp)
jne 0x6b0e
movl $0x8, -0x30(%rbp)
cmpl $0x0, -0x38(%rbp)
je 0x6b32
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rax
movl -0x4(%rax), %eax
movl %eax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rax
movl -0x8(%rax), %eax
movl %eax, -0x3c(%rbp)
jmp 0x6b45
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x34(%rax)
je 0x6be4
movl -0x2c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
je 0x6b8b
movl -0x2c(%rbp), %eax
cmpl -0x40(%rbp), %eax
je 0x6b8b
movq 0xb48e(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xdf14(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x7d8d(%rip), %rsi      # 0xe90c
movb $0x0, %al
callq 0x1180
jmp 0x706b
cmpl $0x0, -0x38(%rbp)
jne 0x6bdf
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jle 0x6bdf
movl -0x2c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jne 0x6bc1
movq -0x20(%rbp), %rdi
movl -0x30(%rbp), %eax
movq -0x10(%rbp), %rcx
imull 0x40(%rcx), %eax
movslq %eax, %rsi
movl $0x1, %edx
callq 0x1220
jmp 0x6bdd
movq -0x20(%rbp), %rdi
movl -0x30(%rbp), %eax
movq -0x10(%rbp), %rcx
imull 0x3c(%rcx), %eax
movslq %eax, %rsi
movl $0x1, %edx
callq 0x1220
jmp 0x6bdf
jmp 0x6c6f
movl -0x2c(%rbp), %eax
cmpl -0x40(%rbp), %eax
je 0x6c41
movl -0x2c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jne 0x6c19
movq 0xb3fd(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xde83(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x7d28(%rip), %rsi      # 0xe938
movb $0x0, %al
callq 0x1180
jmp 0x6c3c
movq 0xb3d8(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xde5e(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x7cd7(%rip), %rsi      # 0xe90c
movb $0x0, %al
callq 0x1180
jmp 0x706b
cmpl $0x0, -0x38(%rbp)
jne 0x6c6d
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jle 0x6c6d
movq -0x20(%rbp), %rdi
movl -0x30(%rbp), %eax
movq -0x10(%rbp), %rcx
imull 0x3c(%rcx), %eax
movslq %eax, %rsi
movl $0x1, %edx
callq 0x1220
jmp 0x6c6f
movl -0x2c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jne 0x6c87
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rax
movl -0x8(%rax), %eax
movl %eax, -0x34(%rbp)
jmp 0x6c95
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rax
movl -0x4(%rax), %eax
movl %eax, -0x34(%rbp)
movl -0x30(%rbp), %eax
movl -0x34(%rbp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movslq %eax, %rdi
leaq 0x7cb3(%rip), %rsi      # 0xe95e
callq 0x22c0
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
jne 0x6cc0
jmp 0x706b
cmpq $0x0, -0x28(%rbp)
je 0x6eba
movslq -0x34(%rbp), %rdi
shlq $0x2, %rdi
leaq 0x7ca1(%rip), %rsi      # 0xe97b
callq 0x22c0
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
jne 0x6cef
jmp 0x706b
movq -0x50(%rbp), %rdi
movslq -0x30(%rbp), %rsi
movl -0x34(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdx
movq -0x20(%rbp), %rcx
callq 0x10a0
movl -0x34(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
cmpq %rcx, %rax
je 0x6d3f
movq 0xb2da(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xdd60(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x7bb1(%rip), %rsi      # 0xe8e4
movb $0x0, %al
callq 0x1180
jmp 0x706b
movq $0x0, -0x48(%rbp)
cmpl $0x4, -0x30(%rbp)
jne 0x6e06
movq -0x50(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movslq (%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x94(%rbp)
movl -0x94(%rbp), %eax
cmpl -0x34(%rbp), %eax
jg 0x6e01
movq -0x80(%rbp), %rax
movslq -0x94(%rbp), %rcx
movslq (%rax,%rcx,4), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
subq -0x90(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpq -0x48(%rbp), %rax
jle 0x6dc3
movq -0x90(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x90(%rbp), %rax
movl %eax, %edx
movq -0x58(%rbp), %rax
movl -0x94(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x6d71
jmp 0x6eb8
movq -0x50(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x90(%rbp)
movl $0x1, -0x94(%rbp)
movl -0x94(%rbp), %eax
cmpl -0x34(%rbp), %eax
jg 0x6eb6
movq -0x78(%rbp), %rax
movslq -0x94(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
subq -0x90(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpq -0x48(%rbp), %rax
jle 0x6e78
movq -0x90(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x90(%rbp), %rax
movl %eax, %edx
movq -0x58(%rbp), %rax
movl -0x94(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x6e26
jmp 0x6eb8
jmp 0x6f0a
movq $0x0, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movslq -0x30(%rbp), %rsi
movslq -0x34(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x10a0
movslq -0x34(%rbp), %rcx
cmpq %rcx, %rax
je 0x6f08
movq 0xb111(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq 0xdb97(%rip), %rdx      # 0x14a88
movq -0x18(%rbp), %rcx
leaq 0x79e8(%rip), %rsi      # 0xe8e4
movb $0x0, %al
callq 0x1180
jmp 0x706b
jmp 0x6f0a
movq -0x20(%rbp), %rdi
callq 0x10b0
movl $0x40, %edi
leaq 0x7a7a(%rip), %rsi      # 0xe999
callq 0x22c0
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
jne 0x6f34
jmp 0x706b
movq -0x18(%rbp), %rdi
leaq 0x7a72(%rip), %rsi      # 0xe9b1
callq 0x23e0
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x70(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x6f5f
jmp 0x706b
cmpq $0x0, -0x28(%rbp)
jne 0x6f74
movq -0x70(%rbp), %rax
movq $0x0, 0x28(%rax)
jmp 0x6f80
movq -0x28(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x50(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x58(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x20(%rax)
movl -0x30(%rbp), %ecx
movq -0x70(%rbp), %rax
movl %ecx, 0x10(%rax)
movl -0x34(%rbp), %ecx
movq -0x70(%rbp), %rax
movl %ecx, 0x14(%rax)
movq -0x70(%rbp), %rax
movl $0x0, 0x30(%rax)
movq -0x48(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x34(%rax)
je 0x6fee
movl -0x2c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
je 0x6fee
movq -0x10(%rbp), %rdi
movq -0x70(%rbp), %rsi
movl -0x38(%rbp), %edx
callq 0x70e0
cmpl $0x0, %eax
je 0x6fec
jmp 0x706b
jmp 0x6fee
movq -0x10(%rbp), %rax
cmpq $0x0, 0x68(%rax)
je 0x7046
movq -0x10(%rbp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0xb33c(%rip), %rax      # 0x12348
je 0x7023
movq -0x10(%rbp), %rax
movq 0x68(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0xb31f(%rip), %rax      # 0x12340
jne 0x7046
movq -0x10(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rcx
movq -0x70(%rbp), %rax
movq %rcx, (%rax)
movq -0x70(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x68(%rax), %rax
movq %rcx, (%rax)
jmp 0x7061
movq -0x10(%rbp), %rax
movq 0x68(%rax), %rcx
movq -0x70(%rbp), %rax
movq %rcx, (%rax)
movq -0x70(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x68(%rax)
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x70ce
cmpq $0x0, -0x70(%rbp)
je 0x707b
movq -0x70(%rbp), %rdi
callq 0x1030
cmpq $0x0, -0x60(%rbp)
je 0x708b
movq -0x60(%rbp), %rdi
callq 0x1030
cmpq $0x0, -0x58(%rbp)
je 0x709b
movq -0x58(%rbp), %rdi
callq 0x1030
cmpq $0x0, -0x50(%rbp)
je 0x70ab
movq -0x50(%rbp), %rdi
callq 0x1030
cmpq $0x0, -0x28(%rbp)
je 0x70bb
movq -0x28(%rbp), %rdi
callq 0x10b0
movq -0x20(%rbp), %rdi
callq 0x10b0
movl $0x1, %edi
callq 0x1260
movq -0x8(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax,%rax)