// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/esa-map.c
// Function: inputsuffixarray
static int inputsuffixarray(bool map,
                            Suffixarray *suffixarray,
                            unsigned int demand,
                            const char *indexname,
                            GtLogger *logger,
                            GtError *err)
{
  bool haserr = false;
  GtEncseqLoader *el;
  GtUword totallength = 0;

  gt_error_check(err);
  initsuffixarray(suffixarray);
  el = gt_encseq_loader_new();
  if (!(demand & SARR_DESTAB))
    gt_encseq_loader_do_not_require_des_tab(el);
  else
    gt_encseq_loader_require_des_tab(el);
  if (!(demand & SARR_SDSTAB))
    gt_encseq_loader_do_not_require_sds_tab(el);
  else
    gt_encseq_loader_require_sds_tab(el);
  if (!(demand & SARR_SSPTAB))
    gt_encseq_loader_do_not_require_ssp_tab(el);
  else
    gt_encseq_loader_require_ssp_tab(el);
  gt_encseq_loader_set_logger(el, logger);
  suffixarray->encseq = gt_encseq_loader_load(el, indexname, err);
  gt_encseq_loader_delete(el);
  if (suffixarray->encseq == NULL)
  {
    haserr = true;
  }
  if (!haserr)
  {
    haserr = scanprjfileuintkeys(suffixarray,indexname,logger,err);
  }
  if (!haserr
        && suffixarray->mirroredencseq
        && !gt_encseq_is_mirrored(suffixarray->encseq))
  {
    if (gt_encseq_mirror(suffixarray->encseq, err) != 0)
      haserr = true;
  }
  if (!haserr)
  {
    totallength = gt_encseq_total_length(suffixarray->encseq);
  }
  if (!haserr && (demand & SARR_SUFTAB))
  {
    if (map)
    {
      if (suffixarray->numberofallsortedsuffixes > 0)
      {
        suffixarray->suftab
          = gt_fa_mmap_check_size_with_suffix(indexname,
                                       GT_SUFTABSUFFIX,
                                       suffixarray->numberofallsortedsuffixes,
                                       sizeof (*suffixarray->suftab),
                                       err);
        if (suffixarray->suftab == NULL)
        {
          haserr = true;
        }
      }
    } else
    {
#if defined (_LP64) || defined (_WIN64)
      off_t filesize = gt_file_size_with_suffix(indexname,GT_SUFTABSUFFIX);

      if (filesize == (off_t) sizeof (uint32_t) *
                              suffixarray->numberofallsortedsuffixes)
      {
        gt_logger_log(logger,"read suftab in units of 4 bytes");
        INITBufferedfile(indexname,&suffixarray->suftabstream_uint32_t,uint32_t,
                         GT_SUFTABSUFFIX);
      } else
      {
        gt_logger_log(logger,"read suftab in units of 8 bytes");
        INITBufferedfile(indexname,&suffixarray->suftabstream_GtUword,GtUword,
                         GT_SUFTABSUFFIX);
      }
#else
      gt_logger_log(logger,"read suftab in units of 4 bytes");
      INITBufferedfile(indexname,&suffixarray->suftabstream_GtUword,GtUword,
                       GT_SUFTABSUFFIX);
#endif
    }
    if (!haserr && !suffixarray->longest.defined)
    {
      gt_error_set(err,"longest not defined");
      haserr = true;
    }
  }
  if (!haserr && (demand & SARR_LCPTAB))
  {
    if (map)
    {
      if (suffixarray->numberofallsortedsuffixes > 0)
      {
        suffixarray->lcptab
          = gt_fa_mmap_check_size_with_suffix(indexname,
                                         GT_LCPTABSUFFIX,
                                         suffixarray->numberofallsortedsuffixes,
                                         sizeof (*suffixarray->lcptab),
                                         err);
        if (suffixarray->lcptab == NULL)
        {
          haserr = true;
        }
      }
    } else
    {
      INITBufferedfile(indexname,&suffixarray->lcptabstream,GtUchar,
                       GT_LCPTABSUFFIX);
      if (!haserr &&
          fseek(suffixarray->lcptabstream.fp,
                (GtWord) sizeof (GtUchar),SEEK_SET))
      {
        gt_error_set(err,"fseek(esastream) failed: %s",strerror(errno));
        haserr = true;
      }
    }
    if (!haserr && !suffixarray->numoflargelcpvalues.defined)
    {
      gt_error_set(err,"numoflargelcpvalues not defined");
      haserr = true;
    }
    if (!haserr && suffixarray->numoflargelcpvalues.valueunsignedlong > 0)
    {
      if (map)
      {
        suffixarray->llvtab
          = gt_fa_mmap_check_size_with_suffix(indexname,
                                           GT_LARGELCPTABSUFFIX,
                                           (GtUword)
                                           suffixarray->numoflargelcpvalues.
                                           valueunsignedlong,
                                           sizeof (*suffixarray->llvtab),
                                           err);
        if (suffixarray->llvtab == NULL)
        {
          haserr = true;
        }
      } else
      {
        INITBufferedfile(indexname,&suffixarray->llvtabstream,Largelcpvalue,
                         GT_LARGELCPTABSUFFIX);
      }
    }
  }
  if (!haserr && (demand & SARR_BWTTAB))
  {
    if (map)
    {
      suffixarray->bwttab
        = gt_fa_mmap_check_size_with_suffix(indexname,
                                         GT_BWTTABSUFFIX,
                                         totallength+1,
                                         sizeof (*suffixarray->bwttab),
                                         err);
      if (suffixarray->bwttab == NULL)
      {
        haserr = true;
      }
    } else
    {
      INITBufferedfile(indexname,&suffixarray->bwttabstream,GtUchar,
                       GT_BWTTABSUFFIX);
    }
  }
  if (!haserr && (demand & SARR_BCKTAB))
  {
    suffixarray->bcktab
      = gt_bcktab_map(indexname,
                      gt_encseq_alphabetnumofchars(suffixarray->encseq),
                      suffixarray->prefixlength,
                      totallength+1,
                      true,
                      err);
    if (suffixarray->bcktab == NULL)
    {
      haserr = true;
    }
  }
  if (haserr)
  {
    gt_freesuffixarray(suffixarray);
  }
  return haserr ? -1 : 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %r9, %r15
movq %r8, %r12
movq %rcx, %r13
movl %edx, %ebp
movq %rsi, %r14
movl %edi, 0x14(%rsp)
testq %r9, %r9
je 0x14d334
movq %r15, %rdi
callq 0x89eb7
testb %al, %al
jne 0x14ddbc
andq $0x0, (%r14)
andq $0x0, 0x80(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x50(%r14)
movups %xmm0, 0x60(%r14)
andq $0x0, 0x70(%r14)
movups %xmm0, 0x90(%r14)
movups %xmm0, 0xa8(%r14)
movups %xmm0, 0xc0(%r14)
movups %xmm0, 0xd8(%r14)
movups %xmm0, 0xf0(%r14)
callq 0x791cd
movq %rax, %rbx
movq %rax, %rdi
testb $0x10, %bpl
jne 0x14d392
callq 0x7d0cd
jmp 0x14d397
callq 0x7d08b
movq %rbx, %rdi
testb $0x20, %bpl
jne 0x14d3a7
callq 0x7d25b
jmp 0x14d3ac
callq 0x7d218
movq %rbx, %rdi
testb %bpl, %bpl
js 0x14d3bb
callq 0x7d193
jmp 0x14d3c0
callq 0x7d150
movq %rbx, %rdi
movq %r12, %rsi
callq 0x7d487
movq %rbx, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x7921d
movq %rax, (%r14)
movq %rbx, %rdi
callq 0x79f01
cmpq $0x0, (%r14)
je 0x14dd96
testq %r15, %r15
je 0x14d403
movq %r15, %rdi
callq 0x89eb7
testb %al, %al
jne 0x14ddea
leaq 0x50(%r14), %rbx
leaq 0x1a0513(%rip), %rsi    # 0x2ed921
leaq 0x1f8688(%rip), %rdx    # 0x345a9d
leaq 0x1f7128(%rip), %rcx    # 0x344544
movq %r13, %rdi
movl $0xf4, %r8d
movq %r15, %r9
callq 0x8a449
movq %rax, 0x48(%rsp)
testq %rax, %rax
movl %ebp, 0x10(%rsp)
movq %rbx, 0x28(%rsp)
je 0x14d7df
movq %r12, 0x50(%rsp)
movq %r13, 0x20(%rsp)
testq %r15, %r15
je 0x14d463
movq %r15, %rdi
callq 0x89eb7
testb %al, %al
jne 0x14de18
movq %r15, 0x40(%rsp)
callq 0x1510c4
movq %rax, %r13
leaq 0x1ac94f(%rip), %rsi    # 0x2f9dc6
xorl %ebp, %ebp
leaq 0x70(%rsp), %rdx
pushq $0x8
popq %r15
movq %rax, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x20cf44(%rip), %rsi    # 0x35a3de
leaq 0x78(%rsp), %rdx
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x80(%rsp), %rdx
leaq 0x1b7365(%rip), %rsi    # 0x304824
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x88(%rsp), %rdx
leaq 0x1f717f(%rip), %rsi    # 0x34465e
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x90(%rsp), %rdx
leaq 0x1b751f(%rip), %rsi    # 0x304a1e
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x98(%rsp), %rdx
leaq 0x1b7551(%rip), %rsi    # 0x304a70
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0xa0(%rsp), %rdx
leaq 0x1ab24c(%rip), %rsi    # 0x2f878b
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0xa8(%rsp), %rdx
leaq 0x1f7115(%rip), %rsi    # 0x344674
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0xb0(%rsp), %rdx
leaq 0x1f70f1(%rip), %rsi    # 0x344670
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0xb8(%rsp), %rdx
leaq 0x1f70e4(%rip), %rsi    # 0x344683
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0xc0(%rsp), %rdx
leaq 0x1f70db(%rip), %rsi    # 0x34469a
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x2081b3(%rip), %rsi    # 0x35578a
leaq 0x68(%rsp), %rdx
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x1bbc21(%rip), %rsi    # 0x309215
leaq 0x60(%rsp), %rdx
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x1f70a0(%rip), %rsi    # 0x3446b1
leaq 0x58(%rsp), %rdx
movq %r13, %rdi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x1f7098(%rip), %rsi    # 0x3446c5
movq %r13, %rdi
movq %rbx, %rdx
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x38(%r14), %r9
leaq 0x40(%r14), %rdx
leaq 0x1a3d08(%rip), %rsi    # 0x2f1358
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
callq 0x151109
leaq 0x78(%r14), %rdx
leaq 0x1f1e04(%rip), %rsi    # 0x33f46d
movq %r14, %rbx
pushq $0x4
popq %r14
movq %r13, %rdi
movq %r14, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x8(%rbx), %r9
leaq 0x10(%rbx), %rdx
leaq 0x2099b5(%rip), %rsi    # 0x357045
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
callq 0x151109
leaq 0x28(%rbx), %r9
leaq 0x30(%rbx), %rdx
leaq 0x1f7032(%rip), %rsi    # 0x3446df
pushq $0x1
popq %r8
movq %r13, %rdi
movq %r15, %rcx
callq 0x151109
leaq 0x18(%rbx), %r9
movq %rbx, 0x38(%rsp)
leaq 0x20(%rbx), %rdx
leaq 0x1f7d90(%rip), %rsi    # 0x345460
movq %r13, %rdi
movq %r15, %rcx
xorl %r8d, %r8d
callq 0x151109
leaq 0x1f7005(%rip), %rsi    # 0x3446ea
leaq 0x34(%rsp), %rdx
movq %r13, %rdi
movq %r14, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x1f6ff4(%rip), %rsi    # 0x3446f6
leaq 0x30(%rsp), %rdx
movq %r13, %rdi
movq %r14, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x1bbc58(%rip), %rsi    # 0x309377
leaq 0x1c(%rsp), %rdx
movq %r13, %rdi
movq %r14, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
leaq 0x1a0203(%rip), %rsi    # 0x2ed93f
leaq 0x18(%rsp), %rdx
movq %r13, %rdi
movq %r14, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x151109
callq 0xacb84
movq %rax, %r14
pushq $0x7
popq %r12
leaq 0x1a01bc(%rip), %rbx    # 0x2ed921
movq %r14, %rdi
movq 0x48(%rsp), %rsi
callq 0xad4de
cmpl $-0x1, %eax
je 0x14d7e6
movq %r14, %rdi
callq 0xad289
movq %rax, %r15
cmpq $0x7, %rax
jb 0x14d7a6
movq %r14, %rdi
callq 0xad1fa
leaq 0x1f6f6c(%rip), %rdi    # 0x344703
movq %rax, %rsi
movq %r12, %rdx
callq 0x177e0
testl %eax, %eax
je 0x14d7d3
movq %r14, %rdi
callq 0xad1fa
movq 0x40(%rsp), %rcx
movq %rcx, (%rsp)
movq 0x20(%rsp), %rdi
movq %rbx, %rsi
movl %ebp, %edx
movq %rax, %rcx
movq %r15, %r8
movq %r13, %r9
callq 0x151387
testl %eax, %eax
jne 0x14d7ea
movq %r14, %rdi
callq 0xad357
incl %ebp
jmp 0x14d765
movb $0x1, %bl
jmp 0x14d8f3
xorl %ebx, %ebx
jmp 0x14d7ec
movb $0x1, %bl
movq %r14, %rdi
callq 0xae103
testb %bl, %bl
movq 0x40(%rsp), %r15
movq 0x50(%rsp), %r12
jne 0x14d827
leaq 0x1a0118(%rip), %rsi    # 0x2ed921
movq 0x20(%rsp), %rdi
movq %r13, %rdx
movq %r12, %rcx
movq %r15, %r8
callq 0x1511ec
testl %eax, %eax
movzbl %bl, %eax
pushq $0x1
popq %rbx
cmovel %eax, %ebx
movq 0x38(%rsp), %r14
testb %bl, %bl
je 0x14d865
testb %bl, %bl
jne 0x14d8e6
movl 0x18(%rsp), %edx
cmpl $0x2, %edx
jb 0x14d858
leaq 0x1f7024(%rip), %rsi    # 0x34486c
movq %r15, %rdi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %bl
movl 0x18(%rsp), %edx
cmpl $0x1, %edx
sete 0x4c(%r14)
jmp 0x14d8e6
movl 0x34(%rsp), %eax
cmpl $0x20, %eax
je 0x14d892
cmpl $0x40, %eax
jne 0x14d8ab
callq 0x29447c
movl 0x30(%rsp), %ecx
testb %al, %al
je 0x14d8ca
cmpl $0x1, %ecx
je 0x14dc3c
leaq 0x1f6f00(%rip), %rsi    # 0x344790
jmp 0x14d8da
leaq 0x1f6ea7(%rip), %rsi    # 0x344740
pushq $0x20
popq %rdx
pushq $0x40
popq %rcx
movq %r15, %rdi
xorl %eax, %eax
callq 0x89dbb
jmp 0x14d8e4
leaq 0x1f6e59(%rip), %rsi    # 0x34470b
leaq 0x1a0068(%rip), %rcx    # 0x2ed921
movq %r15, %rdi
movq 0x20(%rsp), %rdx
xorl %eax, %eax
callq 0x89dbb
jmp 0x14d8e4
cmpl $0x1, %ecx
jne 0x14dc3c
leaq 0x1f6f1a(%rip), %rsi    # 0x3447f4
movq %r15, %rdi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %bl
movq %r13, %rdi
callq 0x1510ea
movq 0x20(%rsp), %r13
movq 0x48(%rsp), %rdi
callq 0x8a5e5
testb %bl, %bl
jne 0x14d92a
cmpb $0x1, 0x4c(%r14)
jne 0x14d92a
movq (%r14), %rdi
callq 0x81dea
testb %al, %al
jne 0x14d92a
movq (%r14), %rdi
movq %r15, %rsi
callq 0x7d4ca
testl %eax, %eax
movzbl %bl, %ebx
pushq $0x1
popq %rax
cmovnel %eax, %ebx
testb %bl, %bl
je 0x14d936
pushq $0x1
popq %rbp
jmp 0x14da9a
movq (%r14), %rdi
callq 0x7055e
movq %rax, %rbp
incq %rbp
testb $0x2, 0x10(%rsp)
je 0x14da9a
cmpb $0x0, 0x14(%rsp)
je 0x14d991
movq 0x28(%rsp), %rax
movq (%rax), %rdx
testq %rdx, %rdx
je 0x14da8b
leaq 0x1d9bff(%rip), %rsi    # 0x32756d
pushq $0x8
popq %rcx
movq %r13, %rdi
movq %r15, %r8
callq 0x8bbed
movq %rax, 0x58(%r14)
testq %rax, %rax
movzbl %bl, %ebx
pushq $0x1
popq %rax
cmovel %eax, %ebx
jmp 0x14da8b
leaq 0x1d9bd5(%rip), %rsi    # 0x32756d
movq %r13, %rdi
callq 0x8e1be
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
shlq $0x2, %rcx
cmpq %rcx, %rax
jne 0x14da1f
leaq 0x1f6bd5(%rip), %rsi    # 0x34458d
movq %r12, %rdi
xorl %eax, %eax
callq 0x92e71
leaq 0x1d9ba4(%rip), %rsi    # 0x32756d
leaq 0x1f80cd(%rip), %rdx    # 0x345a9d
leaq 0x1f6b6d(%rip), %rcx    # 0x344544
movq %r13, %rdi
movl $0x172, %r8d            # imm = 0x172
movq %r15, %r9
callq 0x8a449
movq %rax, 0x98(%r14)
testq %rax, %rax
je 0x14dc7b
andq $0x0, 0x88(%r14)
leaq 0x1f6b3d(%rip), %rsi    # 0x344544
movl $0x4000, %edi           # imm = 0x4000
movl $0x172, %edx            # imm = 0x172
callq 0x93160
movq %rax, 0x90(%r14)
jmp 0x14da8b
leaq 0x1f6b87(%rip), %rsi    # 0x3445ad
movq %r12, %rdi
xorl %eax, %eax
callq 0x92e71
leaq 0x1d9b36(%rip), %rsi    # 0x32756d
leaq 0x1f805f(%rip), %rdx    # 0x345a9d
leaq 0x1f6aff(%rip), %rcx    # 0x344544
movq %r13, %rdi
movl $0x177, %r8d            # imm = 0x177
movq %r15, %r9
callq 0x8a449
movq %rax, 0xb0(%r14)
testq %rax, %rax
je 0x14dc87
andq $0x0, 0xa0(%r14)
leaq 0x1f6acf(%rip), %rsi    # 0x344544
movl $0x8000, %edi           # imm = 0x8000
movl $0x177, %edx            # imm = 0x177
callq 0x93160
movq %rax, 0xa8(%r14)
testb %bl, %bl
jne 0x14da9a
cmpb $0x0, 0x38(%r14)
je 0x14dc65
testb $0x4, 0x10(%rsp)
je 0x14db88
testb %bl, %bl
jne 0x14db88
cmpb $0x0, 0x14(%rsp)
je 0x14daef
movq 0x28(%rsp), %rax
movq (%rax), %rdx
testq %rdx, %rdx
je 0x14db84
leaq 0x1f6b15(%rip), %rsi    # 0x3445e1
pushq $0x1
popq %rcx
movq %r13, %rdi
movq %r15, %r8
callq 0x8bbed
movq %rax, 0x60(%r14)
testq %rax, %rax
movzbl %bl, %ebx
pushq $0x1
popq %rax
cmovel %eax, %ebx
jmp 0x14db84
leaq 0x1f6aeb(%rip), %rsi    # 0x3445e1
leaq 0x1f7fa0(%rip), %rdx    # 0x345a9d
leaq 0x1f6a40(%rip), %rcx    # 0x344544
movq %r13, %rdi
movl $0x199, %r8d            # imm = 0x199
movq %r15, %r9
callq 0x8a449
movq %rax, 0xe0(%r14)
testq %rax, %rax
je 0x14dc27
andq $0x0, 0xd0(%r14)
leaq 0x1f6a10(%rip), %rsi    # 0x344544
movl $0x1000, %edi           # imm = 0x1000
movl $0x199, %edx            # imm = 0x199
callq 0x93160
movq %rax, 0xd8(%r14)
movq 0xe0(%r14), %rdi
pushq $0x1
popq %rsi
xorl %edx, %edx
callq 0x17840
testl %eax, %eax
je 0x14db84
callq 0x17060
movl (%rax), %edi
callq 0x17220
leaq 0x1f6a74(%rip), %rsi    # 0x3445e6
movq %r15, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x89dbb
jmp 0x14dd96
testb %bl, %bl
je 0x14dbd3
testb $0x8, 0x10(%rsp)
je 0x14dd4c
testb %bl, %bl
jne 0x14dd4c
cmpb $0x0, 0x14(%rsp)
je 0x14dcf5
leaq 0x1f6a7a(%rip), %rsi    # 0x344627
pushq $0x1
popq %rcx
movq %r13, %rdi
movq %rbp, %rdx
movq %r15, %r8
callq 0x8bbed
movq %rax, 0x70(%r14)
testq %rax, %rax
movzbl %bl, %ebx
pushq $0x1
popq %rax
cmovel %eax, %ebx
jmp 0x14dd4c
cmpb $0x0, 0x8(%r14)
je 0x14dc33
movq 0x10(%r14), %rdx
testq %rdx, %rdx
je 0x14db88
cmpb $0x0, 0x14(%rsp)
je 0x14dc93
leaq 0x1f6a2d(%rip), %rsi    # 0x344622
pushq $0x10
popq %rcx
movq %r13, %rdi
movq %r15, %r8
callq 0x8bbed
movq %rax, 0x68(%r14)
testq %rax, %rax
movzbl %bl, %ebx
pushq $0x1
popq %rax
cmovel %eax, %ebx
testb $0x8, 0x10(%rsp)
je 0x14dd4c
testb %bl, %bl
je 0x14dba6
jmp 0x14dd4c
leaq 0xd8(%r14), %rax
jmp 0x14dd92
leaq 0x1f69c8(%rip), %rsi    # 0x344602
jmp 0x14dc6c
movl 0x1c(%rsp), %edx
cmpl $0x4, %edx
jb 0x14dc5c
leaq 0x1f6c0c(%rip), %rsi    # 0x344858
movq %r15, %rdi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %bl
movl 0x1c(%rsp), %edx
movl %edx, 0x48(%r14)
jmp 0x14d830
leaq 0x1f6961(%rip), %rsi    # 0x3445cd
movq %r15, %rdi
xorl %eax, %eax
callq 0x89dbb
jmp 0x14dd96
leaq 0x90(%r14), %rax
jmp 0x14dd92
leaq 0xa8(%r14), %rax
jmp 0x14dd92
leaq 0x1f6988(%rip), %rsi    # 0x344622
leaq 0x1f7dfc(%rip), %rdx    # 0x345a9d
leaq 0x1f689c(%rip), %rcx    # 0x344544
movq %r13, %rdi
movl $0x1ba, %r8d            # imm = 0x1BA
movq %r15, %r9
callq 0x8a449
movq %rax, 0xf8(%r14)
testq %rax, %rax
je 0x14ddb3
andq $0x0, 0xe8(%r14)
leaq 0x1f686c(%rip), %rsi    # 0x344544
movl $0x10000, %edi          # imm = 0x10000
movl $0x1ba, %edx            # imm = 0x1BA
callq 0x93160
movq %rax, 0xf0(%r14)
testb $0x8, 0x10(%rsp)
je 0x14dd4c
leaq 0x1f692b(%rip), %rsi    # 0x344627
leaq 0x1f7d9a(%rip), %rdx    # 0x345a9d
leaq 0x1f683a(%rip), %rcx    # 0x344544
movq %r13, %rdi
movl $0x1cf, %r8d            # imm = 0x1CF
movq %r15, %r9
callq 0x8a449
movq %rax, 0xc8(%r14)
testq %rax, %rax
je 0x14dd8b
andq $0x0, 0xb8(%r14)
leaq 0x1f680e(%rip), %rsi    # 0x344544
movl $0x1000, %edi           # imm = 0x1000
movl $0x1cf, %edx            # imm = 0x1CF
callq 0x93160
movq %rax, 0xc0(%r14)
testb $0x40, 0x10(%rsp)
je 0x14dd83
testb %bl, %bl
jne 0x14dd83
movq (%r14), %rdi
callq 0x75487
movl 0x78(%r14), %edx
pushq $0x1
popq %r8
movq %r13, %rdi
movl %eax, %esi
movq %rbp, %rcx
movq %r15, %r9
callq 0x134dc2
movq %rax, 0x80(%r14)
testq %rax, %rax
je 0x14dd96
testb %bl, %bl
jne 0x14dd96
xorl %eax, %eax
jmp 0x14dda1
leaq 0xc0(%r14), %rax
andq $0x0, (%rax)
movq %r14, %rdi
callq 0x14d148
pushq $-0x1
popq %rax
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xf0(%r14), %rax
jmp 0x14dd92
movq 0x2ea1a5(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x197246(%rip), %rsi    # 0x2e5013
leaq 0x1973eb(%rip), %rdx    # 0x2e51bf
leaq 0x1f67a1(%rip), %rcx    # 0x34457c
leaq 0x1f6762(%rip), %r8     # 0x344544
movl $0x132, %r9d            # imm = 0x132
jmp 0x14de42
movq 0x2ea177(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x197218(%rip), %rsi    # 0x2e5013
leaq 0x1973bd(%rip), %rdx    # 0x2e51bf
leaq 0x1f6823(%rip), %rcx    # 0x34462c
leaq 0x1f6734(%rip), %r8     # 0x344544
movl $0xf3, %r9d
jmp 0x14de42
movq 0x2ea149(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1971ea(%rip), %rsi    # 0x2e5013
leaq 0x19738f(%rip), %rdx    # 0x2e51bf
leaq 0x1f6809(%rip), %rcx    # 0x344640
leaq 0x1f6706(%rip), %r8     # 0x344544
pushq $0x4b
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390