// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/tools/gt_sfxmap.c
// Function: gt_sfxmap_runner
static int gt_sfxmap_runner(GT_UNUSED int argc,
                            GT_UNUSED const char **argv,
                            GT_UNUSED int parsed_args,
                            void *tool_arguments, GtError *err)
{
  bool haserr = false;
  Sfxmapoptions *arguments = tool_arguments;
  GtLogger *logger;

  gt_error_check(err);
  logger = gt_logger_new(arguments->verbose, GT_LOGGER_DEFLT_PREFIX, stdout);
  if (gt_str_length(arguments->esaindexname) > 0)
  {
    if (arguments->compressedesa)
    {
      if (gt_sfxmap_compressedesa(gt_str_get(arguments->esaindexname),
                                   err) != 0)
      {
        haserr = true;
      }
    } else
    {
      if (arguments->compresslcp)
      {
        if (gt_sfxmap_compresslcp(gt_str_get(arguments->esaindexname),
                                  logger,err) != 0)
        {
          haserr = true;
        }
      } else
      {
        if (gt_sfxmap_esa(arguments,logger,err) != 0)
        {
          haserr = true;
        }
      }
    }
  }
  if (!haserr && gt_str_length(arguments->pckindexname) > 0)
  {
    if (gt_sfxmap_pck(arguments,logger,err) != 0)
    {
      haserr = true;
    }
  }
  if (!haserr && gt_str_array_size(arguments->streamesq) > 0)
  {
    if (gt_sfxmap_stream_esq(arguments,err) != 0)
    {
      haserr = true;
    }
  }
  if (!haserr && arguments->sortmaxdepth > 0)
  {
    if (gt_sfxmap_performsortmaxdepth(arguments,logger,err) != 0)
    {
      haserr = true;
    }
  }
  if (!haserr && arguments->diffcovercheck)
  {
    if (gt_sfxmap_run_diffcover_check(arguments, err) != 0)
    {
      haserr = true;
    }
  }
  if (!haserr && (arguments->enumlcpitvs || arguments->enumlcpitvtree ||
                  arguments->enumlcpitvtreeBU))
  {
    if (arguments->enumlcpitvtreeBU)
    {
      if (gt_runenumlcpvalues_bottomup(gt_str_get(arguments->esaindexname),
                                       logger, err) != 0)
      {
        haserr = true;
      }
    } else
    {
      if (gt_runenumlcpvalues_process(gt_str_get(arguments->esaindexname),
                                      arguments->enumlcpitvs ? showlcpinterval
                                                             : NULL,
                                      NULL,
                                     logger, err) != 0)
      {
        haserr = true;
      }
    }
  }
  if (!haserr && arguments->scanesa > 0)
  {
    if (gt_runscanesa(gt_str_get(arguments->esaindexname),arguments->scanesa,
                      logger,err) != 0)
    {
      haserr = true;
    }
  }
  if (!haserr && arguments->spmitv)
  {
    if (gt_process_spmitv(gt_str_get(arguments->esaindexname),logger,err) != 0)
    {
      haserr = true;
    }
  }
  if (!haserr && arguments->ownencseq2file)
  {
    if (gt_encseq_check_external_twobitencoding_to_file(
                                 gt_str_get(arguments->esaindexname), err) != 0)
    {
      haserr = true;
    }
  }
  gt_logger_delete(logger);
  return haserr ? -1 : 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movq %r8, %r12
movq %rcx, %r15
testq %r8, %r8
je 0xc8275
movq %r12, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc9795
movzbl 0x2(%r15), %edi
movq 0x3fbc67(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x287649(%rip), %rsi    # 0x34f8d4
callq 0x108ed0
movq %rax, %r13
movq 0x20(%r15), %rdi
callq 0x120d4c
testq %rax, %rax
movq %r12, 0x20(%rsp)
movq %r13, 0x10(%rsp)
je 0xc83a6
cmpb $0x1, 0x12(%r15)
jne 0xc83ad
movq 0x20(%r15), %rdi
callq 0x120d23
movq %rax, %r14
callq 0xf36ef
movq %rax, %r13
testq %r12, %r12
je 0xc82e3
movq %r12, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc97a4
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0xf374b
movq %r13, %rdi
movq %rax, %r13
callq 0xf424d
xorl %ebp, %ebp
testq %r13, %r13
sete %bl
je 0xc8750
movq %r13, 0x18(%rsp)
movq %r13, %rdi
callq 0xec1d8
movq %rax, 0x40(%rsp)
leaq 0x29a760(%rip), %rsi    # 0x362a83
leaq 0x2e6995(%rip), %rdx    # 0x3aecbf
leaq 0x29a1f3(%rip), %rcx    # 0x362524
movq %r14, %rdi
movl $0x36a, %r8d            # imm = 0x36A
movq %r12, %r9
callq 0x101dff
movq %rax, %r13
testq %rax, %rax
movb %bl, %bpl
movl $0x1, %ebx
cmovnel %ebp, %ebx
testb %bl, %bl
jne 0xc8396
leaq 0x78(%rsp), %rdi
movl $0x8, %esi
movl $0x1, %edx
movq %r13, %rcx
callq 0x17b40
cmpq $0x1, %rax
je 0xc8396
leaq 0x29a70e(%rip), %rsi    # 0x362a89
leaq 0x29a701(%rip), %r8     # 0x362a83
movq %r12, %rdi
movl $0x8, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %bl
testb %bl, %bl
je 0xc8527
xorl %r14d, %r14d
jmp 0xc8598
xorl %ebx, %ebx
jmp 0xc8b53
cmpb $0x1, 0x13(%r15)
jne 0xc8488
movq 0x20(%r15), %rdi
callq 0x120d23
movq %rax, %r14
movq $0x0, 0x28(%rsp)
testq %r12, %r12
je 0xc83e2
movq %r12, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc97d6
movq %r14, %rdi
movl $0x5, %esi
movl $0x1, %edx
movq %r13, %rcx
movq %r12, %r8
callq 0x1ae094
movq %rax, 0x28(%rsp)
testq %rax, %rax
sete %bl
je 0xc8b53
movq %rax, %rdi
callq 0x1ae5a9
movq %rax, %r13
movq 0x28(%rsp), %rdi
callq 0x1ae5c1
movq %r12, %r9
movq %rax, %r12
leaq 0x29a762(%rip), %rsi    # 0x362b8f
leaq 0x2966d9(%rip), %rdx    # 0x35eb0d
leaq 0x29a0e9(%rip), %rcx    # 0x362524
movq %r14, %rdi
movl $0x3ec, %r8d            # imm = 0x3EC
callq 0x101dff
movq %rax, %r14
movq %r12, %rdi
callq 0x10af48
cmpq $0x0, 0x28(%rsp)
je 0xc97e0
movl %eax, %ebp
movq %r13, 0x40(%rsp)
testq %r14, %r14
movq %r14, 0x18(%rsp)
je 0xc8852
movzwl %bp, %esi
movq %r14, %rdi
callq 0xd8b38
movq %rax, %r13
jmp 0xc8857
testq %r12, %r12
je 0xc849d
movq %r12, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc97db
cmpb $0x0, 0x5(%r15)
jne 0xc84b4
cmpq $0x0, 0x18(%r15)
jne 0xc84b4
xorl %eax, %eax
cmpb $0x1, 0x6(%r15)
jne 0xc84b9
movl $0x1, %eax
cmpb $0x0, 0x7(%r15)
leal 0x10(%rax), %ecx
cmovel %eax, %ecx
leal 0x20(%rcx), %eax
cmpb $0x0, 0x8(%r15)
cmovel %ecx, %eax
leal 0x2(%rax), %ecx
cmpb $0x0, 0x6(%r15)
cmovel %eax, %ecx
movl %ecx, %eax
orl $0x4, %eax
cmpb $0x0, 0xa(%r15)
cmovel %ecx, %eax
movl %eax, %ecx
orl $0x8, %ecx
cmpb $0x0, 0x9(%r15)
cmovel %eax, %ecx
movl %ecx, %eax
orl $0x40, %eax
cmpb $0x0, 0xb(%r15)
cmovel %ecx, %eax
movl %eax, %ebp
orl $0x80, %ebp
cmpb $0x0, 0xc(%r15)
cmovel %eax, %ebp
cmpb $0x0, (%r15)
je 0xc8762
leaq 0xe1a30(%rip), %rbx     # 0x1a9f52
jmp 0xc8769
leaq 0xf(%rsp), %rdi
movl $0x1, %esi
movl $0x1, %edx
movq %r13, %rcx
callq 0x17b40
cmpq $0x1, %rax
je 0xc856c
leaq 0x29a569(%rip), %rsi    # 0x362ab4
leaq 0x29a531(%rip), %r8     # 0x362a83
movq %r12, %rdi
movl $0x1, %edx
movq %r14, %rcx
movl $0x8, %r9d
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %bl
movq 0x78(%rsp), %rax
movzbl 0xf(%rsp), %ecx
xorl %edx, %edx
divq %rcx
testq %rdx, %rdx
jne 0xc97e5
movq %rax, %r14
movq 0x40(%rsp), %rax
incq %rax
cmpq %rax, %r14
jne 0xc97ea
testb %bl, %bl
jne 0xc8743
leaq 0x28(%rsp), %rbp
movq $0x0, (%rbp)
movzbl 0xf(%rsp), %r12d
leaq (,%r14,8), %rdi
leaq 0x299f62(%rip), %rsi    # 0x362524
movl $0x392, %edx            # imm = 0x392
callq 0x1092b2
movq %r14, 0x60(%rsp)
leaq (%rax,%r14,8), %rcx
movq %rcx, 0x70(%rsp)
xorl %edi, %edi
movq %rax, 0x58(%rsp)
movq %rax, 0x68(%rsp)
movq $0x0, 0x48(%rsp)
movq %r12, 0x50(%rsp)
movl %r12d, %r14d
movl %edi, %edx
xorl %r12d, %r12d
testl %edx, %edx
jne 0xc8625
movl $0x8, %esi
movl $0x1, %edx
movq %rbp, %rdi
movq %r13, %rcx
callq 0x17b40
movl $0x40, %edx
cmpq $0x1, %rax
je 0xc85fc
jmp 0xc86da
movl %edx, %edi
subl %r14d, %edi
jae 0xc866b
cmpl $0x40, %edx
jae 0xc97b8
movq 0x28(%rsp), %rax
movq $-0x1, %rsi
movl %edx, %ecx
shlq %cl, %rsi
notq %rsi
andq %rax, %rsi
movq 0x50(%rsp), %rcx
subl %r14d, %ecx
shlq %cl, %rsi
movl %edx, %ecx
shrq %cl, %rax
orq %rsi, %r12
movq %rax, 0x28(%rsp)
subl %edx, %r14d
xorl %edx, %edx
jmp 0xc85fc
movq 0x68(%rsp), %rax
cmpq 0x70(%rsp), %rax
jae 0xc86da
movq 0x28(%rsp), %rsi
movq $-0x1, %rdx
movl %r14d, %ecx
shlq %cl, %rdx
notq %rdx
andq %rsi, %rdx
movq 0x50(%rsp), %rax
movl %eax, %ecx
subl %r14d, %ecx
shlq %cl, %rdx
movl %r14d, %ecx
shrq %cl, %rsi
orq %r12, %rdx
movq %rax, %r12
movq %rsi, 0x28(%rsp)
movq %rdx, %rsi
movl %r12d, %ecx
shrq %cl, %rsi
testq %rsi, %rsi
jne 0xc97fe
movq 0x68(%rsp), %rax
movq %rdx, (%rax)
addq $0x8, %rax
movq %rax, 0x68(%rsp)
incq 0x48(%rsp)
jmp 0xc85f4
movq 0x48(%rsp), %rax
cmpq 0x60(%rsp), %rax
jne 0xc97ef
movq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0xf02b7
subq $0x8, %rsp
leaq 0x113b(%rip), %rdi      # 0xc983d
leaq -0xab1(%rip), %rsi      # 0xc7c58
movq %r14, %rdx
xorl %ecx, %ecx
movq 0x48(%rsp), %r8
movl %eax, %r9d
pushq $0x0
pushq $0x8
movq 0x70(%rsp), %r14
pushq %r14
callq 0x1f757c
addq $0x20, %rsp
leaq 0x299df3(%rip), %rsi    # 0x362524
movq %r14, %rdi
movl $0x3c9, %edx            # imm = 0x3C9
callq 0x109670
movq 0x20(%rsp), %r12
movq %r13, %rdi
callq 0x101e80
movq 0x18(%rsp), %r13
movq %r13, %rdi
callq 0xee90c
movq 0x10(%rsp), %r13
jmp 0xc8b53
leaq 0xe23b7(%rip), %rbx     # 0x1aab20
movq 0x20(%r15), %rdi
callq 0x120d23
leaq 0x78(%rsp), %r14
movq %r14, %rdi
movl %ebp, %esi
movq %rax, %rdx
movq %r13, %rcx
movq %r12, %r8
callq *%rbx
xorl %r13d, %r13d
testl %eax, %eax
setne %bl
movq (%r14), %rdi
testq %rdi, %rdi
sete %al
orb %bl, %al
jne 0xc8b17
movq 0x18(%r15), %r14
testq %r14, %r14
je 0xc89cb
movq %rdi, 0x18(%rsp)
movl $0x1, %esi
callq 0xef3d9
movq %rax, %r12
leaq 0x303483(%rip), %rdi    # 0x3cbc49
callq 0x17bd0
leaq 0x28(%rsp), %rsi
movq %r12, %rdi
callq 0xef451
testb %al, %al
je 0xc8acf
xorl %ecx, %ecx
leaq 0x28(%rsp), %r13
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rbp
movq %rbp, %rdx
subq %rax, %rdx
jbe 0xc9790
cmpq %r14, %rdx
jbe 0xc8838
testq %rax, %rax
je 0xc883b
cmpq %rcx, %rax
jbe 0xc8838
movq 0x3fb6d5(%rip), %rdx    # 0x4c3ee8
movq (%rdx), %rdi
movq %r14, %r8
subq %rcx, %r8
addq %rax, %r8
movl $0x46, %r9d
movq 0x18(%rsp), %rsi
xorl %edx, %edx
callq 0x1a1056
movq 0x30(%rsp), %rbp
jmp 0xc883b
movq %rcx, %rbp
movq %r12, %rdi
movq %r13, %rsi
callq 0xef451
movq %rbp, %rcx
testb %al, %al
jne 0xc87e7
jmp 0xc8ad1
movb $0x1, %bl
xorl %r13d, %r13d
movq 0x20(%rsp), %r12
testl %ebp, %ebp
je 0xc89a1
testb %bl, %bl
je 0xc8888
xorl %ebp, %ebp
testb $0x1, %bl
jne 0xc899c
cmpq 0x40(%rsp), %rbp
movq 0x20(%rsp), %r12
je 0xc89a1
callq 0x1fceb
movq %r13, %rdi
xorl %esi, %esi
callq 0xd8ddd
xorl %ebp, %ebp
movq 0x28(%rsp), %rax
cmpb $0x1, 0x40(%rax)
jne 0xc88d1
movq (%rax), %rsi
movl $0xd0, %eax
addq %rax, %rsi
leaq 0xf(%rsp), %rdi
callq 0xc9842
testl %eax, %eax
je 0xc8929
movzbl 0xf(%rsp), %eax
cmpq $0xff, %rax
je 0xc894d
movb $0x1, %r14b
movq %rax, %r12
jmp 0xc892c
movq 0x20(%rax), %rcx
cmpq 0x10(%rax), %rcx
jae 0xc8929
movq (%rax), %rdx
movq 0x60(%rdx), %rsi
leaq 0x1(%rcx), %rdi
movq %rdi, 0x20(%rax)
movzbl (%rsi,%rcx), %r12d
movb %r12b, 0xf(%rsp)
cmpq $0xff, %r12
jne 0xc8924
movq 0x68(%rdx), %rdx
movq 0x28(%rax), %rsi
movq %rsi, %rdi
shlq $0x4, %rdi
cmpq %rcx, (%rdx,%rdi)
jne 0xc97f4
addq %rdi, %rdx
incq %rsi
movq %rsi, 0x28(%rax)
movq 0x8(%rdx), %r12
movb $0x1, %r14b
jmp 0xc892c
xorl %r14d, %r14d
testb %r14b, %r14b
je 0xc893f
movq %r13, %rdi
movq %r12, %rsi
callq 0xd8ddd
incq %rbp
testb %r14b, %r14b
jne 0xc8894
jmp 0xc886a
movq 0x28(%rsp), %rax
movq (%rax), %rsi
movl $0xe8, %eax
addq %rax, %rsi
leaq 0x78(%rsp), %rdi
callq 0xc98b3
testl %eax, %eax
setne %r14b
je 0xc8979
movq 0x80(%rsp), %r12
jmp 0xc892c
movq 0x20(%rsp), %rdi
leaq 0x29a21d(%rip), %rsi    # 0x362ba2
leaq 0x299b98(%rip), %rdx    # 0x362524
movl $0x401, %ecx            # imm = 0x401
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %bl
jmp 0xc892c
movq 0x20(%rsp), %r12
leaq 0x28(%rsp), %rdi
callq 0x1ae1ac
movq %r13, %rdi
callq 0xd8f35
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0xc8758
callq 0x101e80
jmp 0xc8758
callq 0xec1d8
movq %rax, %rbp
cmpb $0x1, 0x6(%r15)
jne 0xc89e4
cmpb $0x0, (%r15)
je 0xc9562
movq 0x10(%rsp), %r13
testb %bl, %bl
jne 0xc8b1c
cmpb $0x1, 0x9(%r15)
jne 0xc8b1c
cmpb $0x0, 0xb0(%rsp)
je 0xc97f9
cmpb $0x1, 0x6(%r15)
jne 0xc8a56
cmpb $0x0, (%r15)
jne 0xc8a56
leaq 0x1(%rbp), %rax
cmpq %rax, 0xc8(%rsp)
jne 0xc9808
movq 0xb8(%rsp), %rax
cmpq %rbp, %rax
jae 0xc980d
movq 0xd0(%rsp), %rcx
testq %rcx, %rcx
je 0xc9812
cmpq $0x0, (%rcx,%rax,8)
jne 0xc9817
cmpb $0x0, (%r15)
je 0xc95aa
leaq 0x130(%rsp), %r13
leaq 0x28(%rsp), %rdi
movq %r13, %rsi
callq 0xc9842
testl %eax, %eax
je 0xc971a
movq %rbp, 0x18(%rsp)
leaq 0xf(%rsp), %rdi
movq %r13, %rsi
callq 0xc9842
testl %eax, %eax
je 0xc971f
movb 0x28(%rsp), %r12b
xorl %r14d, %r14d
leaq 0xf(%rsp), %rbp
movb 0xf(%rsp), %al
cmpb %al, %r12b
setne %cl
cmpb $-0x2, %al
setae %al
orb %cl, %al
movzbl %al, %eax
addq %rax, %r14
movq %rbp, %rdi
movq %r13, %rsi
callq 0xc9842
testl %eax, %eax
jne 0xc8aa4
jmp 0xc9722
xorl %ebp, %ebp
movq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0xec1d8
leaq -0x1(%rax), %rcx
cmpq %rcx, %rbp
jae 0xc8b0a
movq 0x3fb3fa(%rip), %rcx    # 0x4c3ee8
movq (%rcx), %rdi
subq %rbp, %rax
movl $0x46, %r9d
movq %r14, %rsi
xorl %edx, %edx
movq %rbp, %rcx
movq %rax, %r8
callq 0x1a1056
movq %r12, %rdi
callq 0xefa48
movq 0x20(%rsp), %r12
movq 0x10(%rsp), %r13
testb %bl, %bl
jne 0xc8b49
cmpb $0x1, 0x7(%r15)
jne 0xc8b49
cmpb $0x1, 0x8(%r15)
jne 0xc8b49
leaq 0x29a229(%rip), %rsi    # 0x362d5e
movq %r13, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x78(%rsp), %rdi
callq 0xf08e9
leaq 0x78(%rsp), %rdi
callq 0x1a9e1c
testb $0x1, %bl
jne 0xc8fd0
movq 0x28(%r15), %rdi
callq 0x120d4c
testq %rax, %rax
je 0xc8fd0
movq $0x0, 0x28(%rsp)
testq %r12, %r12
je 0xc8b8c
movq %r12, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc97a9
movq 0x28(%r15), %rdi
callq 0x120d4c
testq %rax, %rax
je 0xc979f
movq 0x28(%r15), %rdi
callq 0x120d23
movq %rax, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x1a86aa
xorl %r14d, %r14d
movq %rax, 0x50(%rsp)
testq %rax, %rax
sete %bpl
je 0xc8bef
movq 0x28(%r15), %rdi
callq 0x120d23
movq %rax, %rdi
movq %r12, %rsi
callq 0x1000e4
movq %rax, 0x48(%rsp)
testq %rax, %rax
movb %bpl, %r14b
movl $0x1, %ebp
cmovnel %r14d, %ebp
jmp 0xc8bf8
movq $0x0, 0x48(%rsp)
testb %bpl, %bpl
movq 0x48(%rsp), %r14
jne 0xc8c64
movq 0x20(%r15), %rdi
callq 0x120d4c
testq %rax, %rax
je 0xc8c64
cmpb $0x0, 0x3(%r15)
jne 0xc8c1e
cmpb $0x1, 0x4(%r15)
jne 0xc8c64
movq 0x20(%r15), %rdi
callq 0x120d23
movzbl 0x3(%r15), %ecx
xorl $0x1, %ecx
leal 0x2(,%rcx,2), %esi
movl $0x1, %r14d
movq %rax, %rdi
movl $0x1, %edx
movq %r13, %rcx
movq %r12, %r8
callq 0x1ae094
movq %rax, 0x28(%rsp)
testq %rax, %rax
movzbl %bpl, %ebp
cmovel %r14d, %ebp
movq 0x48(%rsp), %r14
xorl %eax, %eax
testb %bpl, %bpl
je 0xc8c79
movq $0x0, 0x60(%rsp)
jmp 0xc8f1c
testq %r14, %r14
je 0xc97bd
movq %r14, %rdi
callq 0x100d3c
movq %rax, %r12
movq %r14, %rsi
leaq 0x78(%rsp), %r14
movq %r14, %rdi
callq 0x100dec
movq (%r14), %r13
cmpq %r13, %r12
jb 0xc97cc
movq %r12, %r14
xorl %r12d, %r12d
movq 0x50(%rsp), %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x1a80c9
movq %rax, 0x18(%rsp)
leaq 0x29a351(%rip), %rsi    # 0x36301b
movq 0x10(%rsp), %rdi
xorl %eax, %eax
callq 0x10906e
movq %r14, 0x60(%rsp)
subq %r13, %r14
movq %r14, 0x40(%rsp)
jne 0xc8cef
movq 0x10(%rsp), %r13
jmp 0xc8efb
xorl %r12d, %r12d
xorl %r14d, %r14d
movq 0x10(%rsp), %r13
leaq 0x78(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x1a8115
testb %al, %al
je 0xc8ede
movq 0x28(%rsp), %rax
testq %rax, %rax
setne %cl
andb 0x3(%r15), %cl
cmpb $0x1, %cl
jne 0xc8eb3
movq (%rax), %r13
cmpb $0x1, 0x40(%rax)
jne 0xc8dae
movq 0xb0(%r13), %rcx
testq %rcx, %rcx
je 0xc8dc7
movl 0xa4(%r13), %eax
cmpl 0xa0(%r13), %eax
jb 0xc8e45
movq 0xa8(%r13), %rdi
movl $0x8, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, 0x58(%rsp)
movl %eax, 0xa0(%r13)
movq 0xb0(%r13), %rdi
callq 0x17f00
testl %eax, %eax
je 0xc8e33
movq 0x20(%rsp), %rdi
leaq 0x299eb6(%rip), %rsi    # 0x362c4e
leaq 0x3232d0(%rip), %rdx    # 0x3ec06f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %bpl
jmp 0xc8e45
movq 0x58(%r13), %rcx
movq 0x18(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x18(%rax)
movq (%rcx,%rdx,8), %rax
jmp 0xc8ea0
movl 0x8c(%r13), %eax
cmpl 0x88(%r13), %eax
jb 0xc8e75
movq 0x90(%r13), %rdi
movq 0x98(%r13), %rcx
movl $0x4, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, 0x58(%rsp)
movl %eax, 0x88(%r13)
movq 0x98(%r13), %rdi
callq 0x17f00
testl %eax, %eax
je 0xc8e63
movq 0x20(%rsp), %rdi
leaq 0x299e2e(%rip), %rsi    # 0x362c4e
leaq 0x29a248(%rip), %rdx    # 0x36306f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %bpl
jmp 0xc8e75
movl $0x0, 0xa4(%r13)
cmpl $0x0, 0x58(%rsp)
je 0xc8ec3
movq 0xa8(%r13), %rax
movl 0xa4(%r13), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0xa4(%r13)
movq (%rax,%rcx,8), %r14
jmp 0xc8e91
movl $0x0, 0x8c(%r13)
cmpl $0x0, 0x58(%rsp)
je 0xc8ec3
movq 0x90(%r13), %rax
movl 0x8c(%r13), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0x8c(%r13)
movl (%rax,%rcx,4), %r14d
movb $0x1, %r13b
testb %r13b, %r13b
movq %r14, %rax
je 0xc8ce5
movq %rax, %r14
cmpq %rax, 0x78(%rsp)
movq 0x10(%rsp), %r13
jne 0xc979a
incq %r12
cmpq %r12, 0x40(%rsp)
jne 0xc8cfa
jmp 0xc8ef6
xorl %r13d, %r13d
movq 0x20(%rsp), %rdi
leaq 0x29a185(%rip), %rsi    # 0x363057
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %bpl
jmp 0xc8e94
leaq 0x29a155(%rip), %rsi    # 0x36303a
movq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %bpl
jmp 0xc8efb
movq 0x40(%rsp), %r12
cmpq 0x40(%rsp), %r12
jne 0xc97d1
movq 0x18(%rsp), %rdi
callq 0x1a81ff
movq 0x20(%rsp), %r12
movq 0x48(%rsp), %r14
xorl %eax, %eax
testb $0x1, %bpl
jne 0xc8f41
movq %r14, %rdi
callq 0x100d2c
testq %rax, %rax
movzbl %bpl, %ecx
movl $0x1, %ebp
cmovnel %ecx, %ebp
movq %rax, %rdi
callq 0xd3713
testb $0x1, %bpl
jne 0xc8f9d
cmpb $0x1, 0x4(%r15)
jne 0xc8f9d
cmpq $0x0, 0x28(%rsp)
je 0xc8f9d
leaq 0x29a148(%rip), %rsi    # 0x3630a5
movq %r13, %rdi
movq %rax, 0x18(%rsp)
xorl %eax, %eax
callq 0x10906e
movq 0x28(%rsp), %r8
leaq 0x10d7(%rip), %rcx      # 0xca04f
movq 0x50(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x60(%rsp), %rdx
movq %r12, %r9
callq 0x1c1370
testl %eax, %eax
movzbl %bpl, %eax
movl $0x1, %ebp
cmovel %eax, %ebp
movq 0x50(%rsp), %rdi
callq 0x1a87ef
cmpq $0x0, 0x28(%rsp)
je 0xc8fb9
leaq 0x28(%rsp), %rdi
callq 0x1ae1ac
movq %r14, %rdi
callq 0x100e07
testb $0x1, %bpl
movzbl %bl, %eax
movl $0x1, %ebx
cmovel %eax, %ebx
testb $0x1, %bl
jne 0xc91d3
movq 0x40(%r15), %rdi
callq 0x121e78
testq %rax, %rax
je 0xc91d3
movl $0x0, 0x78(%rsp)
movq 0x40(%r15), %rdi
callq 0x121e78
movq %rax, %r14
testq %r12, %r12
je 0xc9014
movq %r12, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc97ae
movq %r14, %rax
andq $-0x2, %rax
cmpq $0x2, %rax
jne 0xc9070
movq 0x40(%r15), %rdi
movl $0x1, %esi
callq 0x121cfa
leaq 0x3f53ea(%rip), %rdi    # 0x4be420
leaq 0x29a0b7(%rip), %rdx    # 0x3630f4
movl $0x8, %esi
movq %rax, %rcx
movq %r12, %r8
callq 0x1c0a08
movb $0x1, %r13b
testl %eax, %eax
js 0xc908e
movl %eax, %ebp
cmpl $0x4, %eax
setb %al
cmpq $0x2, %r14
setne %cl
testb %cl, %al
je 0xc9095
leaq 0x29a09b(%rip), %rsi    # 0x363109
jmp 0xc90b8
movl $0x1, %ebp
leaq 0x29a1f1(%rip), %rsi    # 0x36326d
movq %r12, %rdi
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r13b
jmp 0xc9112
movl $0x1, %ebp
jmp 0xc90c7
cmpq $0x3, %r14
setne %al
movl %ebp, %ecx
andl $0x7ffffffc, %ecx       # imm = 0x7FFFFFFC
cmpl $0x4, %ecx
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0xc90c4
leaq 0x29a0df(%rip), %rsi    # 0x363197
movq %r12, %rdi
xorl %eax, %eax
callq 0x1019cf
jmp 0xc90c7
xorl %r13d, %r13d
cmpq $0x3, %r14
setne %al
orb %r13b, %al
jne 0xc9112
movq 0x40(%r15), %rdi
movl $0x2, %esi
callq 0x121cfa
leaq 0x30a5c2(%rip), %rsi    # 0x3d36aa
leaq 0x78(%rsp), %rdx
movq %rax, %rdi
xorl %eax, %eax
callq 0x177f0
leaq 0x29a118(%rip), %rsi    # 0x363216
cmpl $0x1, %eax
jne 0xc907c
cmpl $0x0, 0x78(%rsp)
jle 0xc907c
testb %r13b, %r13b
je 0xc9125
xorl %r12d, %r12d
movq $0x0, 0x18(%rsp)
jmp 0xc915f
callq 0xf36ef
movq %rax, %r14
movq 0x40(%r15), %rdi
xorl %esi, %esi
callq 0x121cfa
movq %r14, 0x18(%rsp)
movq %r14, %rdi
movq %rax, %rsi
movq %r12, %rdx
callq 0xf374b
movq %rax, %r12
testq %rax, %rax
movzbl %r13b, %eax
movl $0x1, %r13d
cmovnel %eax, %r13d
movq %r15, %r14
cmpl $0x7, %ebp
jne 0xc918e
testb %r13b, %r13b
jne 0xc918e
movl %ebp, %r15d
movq %r12, %rdi
movq 0x20(%rsp), %rsi
callq 0xf6aed
testl %eax, %eax
movzbl %r13b, %eax
movl $0x1, %r13d
cmovel %eax, %r13d
jmp 0xc9191
movl %ebp, %r15d
movb $0x1, %bpl
testb %r13b, %r13b
movq 0x10(%rsp), %r13
jne 0xc91b7
movl 0x78(%rsp), %edx
testl %edx, %edx
js 0xc97c7
movq %r12, %rdi
movl %r15d, %esi
callq 0x20a910
movl %ebx, %ebp
movq %r12, %rdi
callq 0xee90c
movq 0x18(%rsp), %rdi
callq 0xf424d
movl %ebp, %ebx
movq 0x20(%rsp), %r12
movq %r14, %r15
testb $0x1, %bl
jne 0xc93bf
cmpl $0x0, 0x30(%r15)
je 0xc93bf
testq %r12, %r12
je 0xc91fc
movq %r12, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc97b3
movq 0x20(%r15), %rdi
callq 0x120d23
movq %r12, %r13
movq %rax, %r12
callq 0xf36ef
movq %rax, %r14
movq %rax, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0xf374b
movq %rax, 0x28(%rsp)
testq %rax, %rax
sete %al
movq 0x10(%rsp), %r13
je 0xc92ea
movl 0x30(%r15), %r8d
leaq 0x29a21b(%rip), %rsi    # 0x36345d
leaq 0x29a1f6(%rip), %rdx    # 0x36343f
xorl %ebp, %ebp
movq %r13, %rdi
movq %r12, %rcx
xorl %eax, %eax
callq 0x10906e
movq 0x28(%rsp), %rdi
callq 0xef298
xorb $0x1, %al
movq $0x1, 0x78(%rsp)
movq $0x3, 0x80(%rsp)
movq $0x3e8, 0x88(%rsp) # imm = 0x3E8
movq $0xfa0, 0x90(%rsp) # imm = 0xFA0
movl %ebp, 0x98(%rsp)
movb %al, 0xa4(%rsp)
movl %ebp, 0xa5(%rsp)
movabsq $0x10000000000, %rax    # imm = 0x10000000000
movq %rax, 0xa8(%rsp)
movq $0x0, 0x9c(%rsp)
movq 0x38(%r15), %rdi
callq 0x121e78
testq %rax, %rax
je 0xc92f5
movq 0x38(%r15), %rsi
leaq 0x78(%rsp), %rdi
movq 0x20(%rsp), %rdx
callq 0x1bdf58
testl %eax, %eax
setne %al
movb $0x1, %bpl
testb %al, %al
jne 0xc93a6
leaq 0x28(%rsp), %r13
movq (%r13), %rdi
callq 0xec1d8
leaq 0x1(%rax), %r12
movq %r12, %rdi
movq %rax, %rsi
movl $0x1, %edx
movq 0x10(%rsp), %rcx
callq 0x205c84
movq %rax, 0x10(%r13)
movq %rax, %rdi
movq %r12, %rsi
callq 0x2061c3
xorl %ebp, %ebp
movl %ebp, 0x8(%r13)
movl 0x30(%r15), %r9d
movl %r9d, 0xc(%r13)
movq (%r13), %rdx
movq 0x10(%r13), %rdi
leaq 0xe43(%rip), %rax       # 0xca18b
leaq 0x78(%rsp), %r10
movq %r12, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
pushq 0x10(%rsp)
pushq %r13
pushq %rax
pushq %r10
callq 0x1ee49b
addq $0x20, %rsp
movq (%r13), %rdx
movl 0x8(%r13), %ecx
movq 0x10(%r13), %r8
movl 0xc(%r13), %eax
leaq 0x2991a6(%rip), %rdi    # 0x362524
movl $0x55b, %esi            # imm = 0x55B
xorl %r9d, %r9d
pushq %rax
pushq %rbp
pushq %rbp
pushq %r12
callq 0x2068a9
addq $0x20, %rsp
movq 0x10(%r13), %rdi
movq 0x10(%rsp), %r13
xorl %esi, %esi
callq 0x205e63
movl %ebx, %ebp
movq 0x28(%rsp), %rdi
callq 0xee90c
movq %r14, %rdi
callq 0xf424d
movl %ebp, %ebx
movq 0x20(%rsp), %r12
testb $0x1, %bl
jne 0xc9443
cmpb $0x1, 0x10(%r15)
jne 0xc9443
testq %r12, %r12
je 0xc93e0
movq %r12, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc97c2
movq 0x20(%r15), %rdi
callq 0x120d23
movq %r12, %r13
movq %rax, %r12
callq 0xf36ef
movq %rax, %r14
movq %rax, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0xf374b
movq %rax, %r12
testq %rax, %rax
je 0xc9427
xorl %ebp, %ebp
movq 0x10(%rsp), %r13
movq %r12, %rdi
movl %ebp, %esi
callq 0x1f33cf
incl %ebp
cmpl $0x4, %ebp
jne 0xc9414
jmp 0xc942e
movb $0x1, %bl
movq 0x10(%rsp), %r13
movq %r12, %rdi
callq 0xee90c
movq %r14, %rdi
callq 0xf424d
movq 0x20(%rsp), %r12
testb $0x1, %bl
jne 0xc94af
cmpb $0x0, 0xd(%r15)
jne 0xc945d
cmpb $0x0, 0xe(%r15)
jne 0xc945d
cmpb $0x1, 0xf(%r15)
jne 0xc94af
movb 0xf(%r15), %bpl
movq 0x20(%r15), %rdi
callq 0x120d23
cmpb $0x1, %bpl
jne 0xc9480
movq %rax, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x1a96d6
jmp 0xc94a2
leaq 0x395(%rip), %rsi       # 0xc981c
xorl %ecx, %ecx
cmpb $0x0, 0xd(%r15)
cmoveq %rcx, %rsi
movq %rax, %rdi
xorl %edx, %edx
movq %r13, %rcx
movq %r12, %r8
callq 0x1a9780
testl %eax, %eax
movzbl %bl, %eax
movl $0x1, %ebx
cmovel %eax, %ebx
testb $0x1, %bl
jne 0xc94e3
cmpl $0x0, 0x34(%r15)
je 0xc94e3
movq 0x20(%r15), %rdi
callq 0x120d23
movl 0x34(%r15), %esi
movq %rax, %rdi
movq %r13, %rdx
movq %r12, %rcx
callq 0x1a982c
testl %eax, %eax
movzbl %bl, %eax
movl $0x1, %ebx
cmovel %eax, %ebx
testb $0x1, %bl
jne 0xc9513
cmpb $0x1, 0x14(%r15)
jne 0xc9513
movq 0x20(%r15), %rdi
callq 0x120d23
movq %rax, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x1b0298
testl %eax, %eax
movzbl %bl, %eax
movl $0x1, %ebx
cmovel %eax, %ebx
testb $0x1, %bl
jne 0xc9540
cmpb $0x1, 0x15(%r15)
jne 0xc9540
movq 0x20(%r15), %rdi
callq 0x120d23
movq %rax, %rdi
movq %r12, %rsi
callq 0xf33fd
testl %eax, %eax
movzbl %bl, %eax
movl $0x1, %ebx
cmovel %eax, %ebx
movq %r13, %rdi
callq 0x10916a
andb $0x1, %bl
movzbl %bl, %eax
negl %eax
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1(%rbp), %rax
cmpq %rax, 0xc8(%rsp)
jne 0xc957b
cmpb $0x1, 0x1(%r15)
jne 0xc9660
cmpb $0x1, 0xa(%r15)
jne 0xc95eb
movq 0x20(%r15), %rdi
callq 0x120d23
movq %rax, %rdi
movl $0x5, %esi
movl $0x1, %edx
movq 0x10(%rsp), %r13
movq %r13, %rcx
movq %r12, %r8
callq 0x1ae094
jmp 0xc95f2
cmpq $0x2, %rbp
jb 0xc9715
movl $0x1, %eax
movq 0xe8(%rsp), %rcx
xorl %r14d, %r14d
movb (%rcx,%rax), %dl
cmpb %dl, -0x1(%rcx,%rax)
setne %sil
cmpb $-0x2, %dl
setae %dl
orb %sil, %dl
movzbl %dl, %edx
addq %rdx, %r14
incq %rax
cmpq %rax, %rbp
jne 0xc95c4
jmp 0xc9731
xorl %eax, %eax
movq 0x10(%rsp), %r13
movq %rax, 0x28(%rsp)
leaq 0x29967a(%rip), %rsi    # 0x362c78
movq %r13, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x78(%rsp), %rdi
movl 0xc0(%rsp), %esi
movq 0xd0(%rsp), %rdx
movq 0xc8(%rsp), %rcx
movzbl 0x11(%r15), %r8d
movq 0x28(%rsp), %r9
subq $0x8, %rsp
pushq %r12
callq 0xc992a
addq $0x10, %rsp
testl %eax, %eax
jne 0xc9803
cmpq $0x0, 0x28(%rsp)
je 0xc96f7
leaq 0x28(%rsp), %rdi
callq 0x1ae1ac
jmp 0xc96f7
movq 0x78(%rsp), %r14
movq %rbp, 0x18(%rsp)
movl 0xc0(%rsp), %ebp
movq %r14, %rdi
callq 0xf02b7
subq $0x8, %rsp
leaq 0x1b9(%rip), %rdi       # 0xc983d
leaq -0x1a33(%rip), %rsi     # 0xc7c58
movq %r14, %rdx
movl %ebp, %ecx
movq 0x20(%rsp), %rbp
movq %rbp, %r8
movl %eax, %r9d
movq 0x18(%rsp), %r14
pushq %r14
pushq $0x8
pushq 0xe8(%rsp)
callq 0x1f757c
addq $0x20, %rsp
cmpb $0x1, 0xa(%r15)
jne 0xc96f4
movq 0x20(%r15), %rdi
callq 0x120d23
movq 0x78(%rsp), %rsi
movl 0xc0(%rsp), %edx
movq 0xd0(%rsp), %rcx
movq %rax, %rdi
movq %r14, %r8
movq %r12, %r9
callq 0x1f7416
testl %eax, %eax
movb %bl, %r13b
movl $0x1, %ebx
cmovel %r13d, %ebx
movq %r14, %r13
testb %bl, %bl
jne 0xc89e9
leaq 0x290fc9(%rip), %rsi    # 0x35a6cf
movq %r13, %rdi
xorl %eax, %eax
callq 0x10906e
jmp 0xc89e9
xorl %r14d, %r14d
jmp 0xc9731
xorl %r14d, %r14d
jmp 0xc972c
xorl %r14d, %r14d
movq 0x20(%rsp), %r12
movq 0x18(%rsp), %rbp
movq 0x10(%rsp), %r13
movq %r14, %xmm1
movq 0x2871a2(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x2871a6(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %rbp, %xmm1
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
leaq 0x2995bd(%rip), %rsi    # 0x362d3b
movq %r13, %rdi
movq %r14, %rdx
movb $0x1, %al
callq 0x10906e
jmp 0xc8b1c
callq 0x1fafd
callq 0x1fa8b
callq 0x1feec
callq 0x1ffd0
callq 0x1fd5d
callq 0x1feb3
callq 0x20009
callq 0x2007b
callq 0x1fe41
callq 0x1ff97
callq 0x200b4
callq 0x20042
callq 0x1ff5e
callq 0x1ff25
callq 0x1fc79
callq 0x1fac4
callq 0x1fd24
callq 0x1fd96
callq 0x1fdcf
callq 0x1fe7a
callq 0x1fcb2
callq 0x1fb5c
callq 0x1fe08
callq 0x1fb34
callq 0x1fb95
callq 0x1fbce
callq 0x1fc40
callq 0x1fc07