// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/tools/gt_seqcorrect.c
// Function: gt_seqcorrect_runner
static int gt_seqcorrect_runner(GT_UNUSED int argc,
    GT_UNUSED const char **argv,
    GT_UNUSED int parsed_args,
    void *tool_arguments,
    GtError *err)
{
  GtSeqcorrectArguments *arguments = tool_arguments;
  GtEncseqLoader *el = NULL;
  GtEncseq *encseq = NULL;
  GtTimer *timer = NULL;
  GtLogger *default_logger, *verbose_logger;
  bool haserr = false;

  gt_error_check(err);
  gt_assert(arguments);

  if (gt_showtime_enabled())
  {
    timer = gt_timer_new_with_progress_description("for initialization");
    gt_timer_show_cpu_time_by_progress(timer);
    gt_timer_start(timer);
  }
  default_logger =
    gt_logger_new(!arguments->quiet, GT_LOGGER_DEFLT_PREFIX, stdout);
  gt_logger_log(default_logger, "gt seqcorrect");
  verbose_logger =
    gt_logger_new(arguments->verbose, GT_LOGGER_DEFLT_PREFIX, stdout);
  gt_logger_log(verbose_logger, "verbose output enabled");

  if (gt_str_array_size(arguments->db) != 0)
  {
    haserr =
      gt_seqcorrect_encode(arguments, default_logger, verbose_logger, err);
  }
  else
  {
    gt_logger_log(verbose_logger, "input is an encseq: %s",
        gt_str_get(arguments->encseqinput));
  }
  if (!haserr)
  {
    el = gt_encseq_loader_new();
    gt_encseq_loader_drop_description_support(el);
    gt_encseq_loader_disable_autosupport(el);
    encseq = gt_encseq_loader_load(el, gt_str_get(arguments->encseqinput),
        err);
    if (encseq == NULL)
    {
      haserr = true;
    }
    if (!haserr)
    {
      if (gt_encseq_mirror(encseq, err) != 0)
      {
        haserr = true;
      }
      if (!haserr && gt_encseq_has_md5_support(encseq))
      {
        GtStr *md5path = gt_str_clone(arguments->encseqinput);
        gt_str_append_cstr(md5path, GT_MD5TABFILESUFFIX);
        gt_xunlink(gt_str_get(md5path));
        gt_warning("the input encseq %s had MD5 support, however sequence "
                   "invalidates the MD5 table, thus MD5 support will "
                   "be disabled", gt_str_get(arguments->encseqinput));
        gt_str_delete(md5path);
      }
    }
  }
  if (!haserr)
  {
    if (!arguments->find_seldom)
      haserr = gt_seqcorrect_correct(arguments, encseq, verbose_logger, timer,
          err);
    else
      haserr = gt_seqcorrect_find_seldom(arguments, encseq, verbose_logger,
          timer, err);
  }
  gt_encseq_delete(encseq);
  gt_encseq_loader_delete(el);
  if (timer != NULL)
  {
    gt_timer_show_progress_final(timer, stdout);
    gt_timer_delete(timer);
  }
  gt_logger_delete(default_logger);
  gt_logger_delete(verbose_logger);
  return haserr ? -1 : 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %r8, %rbx
movq %rcx, %r15
testq %r8, %r8
je 0xc41a5
movq %rbx, %rdi
callq 0x101a9a
testb %al, %al
jne 0xc4f9d
testq %r15, %r15
je 0xc4f98
movq %rbx, 0x8(%rsp)
callq 0x11ed94
testb %al, %al
je 0xc41e2
leaq 0x29cf87(%rip), %rdi    # 0x36114a
callq 0x1226d6
movq %rax, %rbx
movq %rax, %rdi
callq 0x122d69
movq %rbx, 0x20(%rsp)
movq %rbx, %rdi
callq 0x122733
jmp 0xc41eb
movq $0x0, 0x20(%rsp)
movzbl 0x2(%r15), %edi
movq 0x3ffcf1(%rip), %r14    # 0x4c3ee8
movq (%r14), %rdx
xorl $0x1, %edi
leaq 0x28b6d0(%rip), %rbx    # 0x34f8d4
movq %rbx, %rsi
callq 0x108ed0
leaq 0x29cf4a(%rip), %rsi    # 0x36115d
movq %rax, 0x70(%rsp)
movq %rax, %rdi
xorl %eax, %eax
callq 0x10906e
movzbl 0x1(%r15), %edi
movq (%r14), %rdx
movq %rbx, %rsi
callq 0x108ed0
movq %rax, %r13
leaq 0x29cf2f(%rip), %rsi    # 0x36116b
movq %rax, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x58(%r15), %rdi
callq 0x121e78
testq %rax, %rax
movq %r13, 0x28(%rsp)
movq %r15, (%rsp)
je 0xc4285
leaq 0x29cfa8(%rip), %rsi    # 0x36120c
movq %r13, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x48(%r15), %rdi
callq 0x120d4c
testq %rax, %rax
je 0xc42a9
leaq 0x29cfcd(%rip), %rbx    # 0x361250
jmp 0xc42ca
movq 0x38(%r15), %rdi
callq 0x120d23
leaq 0x29ceed(%rip), %rsi    # 0x361182
xorl %ebp, %ebp
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10906e
jmp 0xc45d6
movq 0x48(%r15), %rbx
movq 0x58(%r15), %rdi
xorl %esi, %esi
callq 0x121cfa
movq %rbx, %rdi
movq %rax, %rsi
callq 0x12097f
leaq 0x29cf72(%rip), %rbx    # 0x36123c
movq 0x48(%r15), %rdi
callq 0x120d23
leaq 0x29cf4f(%rip), %rsi    # 0x361229
movq %r13, %rdi
movq %rax, %rdx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x10906e
movq 0x48(%r15), %rdi
callq 0x1e4814
movq %rax, %rbx
cmpb $0x1, 0x60(%r15)
jne 0xc4305
movq %rbx, %rdi
callq 0x1e4d99
movq 0x68(%r15), %rsi
cmpq $-0x1, %rsi
je 0xc431c
movsbl 0x70(%r15), %edx
movq %rbx, %rdi
callq 0x1e4dac
movq 0x58(%r15), %rdi
callq 0x121e78
testq %rax, %rax
je 0xc437e
movl $0x1, %r14d
xorl %ebp, %ebp
movl $0x1, %r15d
movq (%rsp), %r12
leaq -0x1(%r14), %rsi
movq 0x58(%r12), %rdi
callq 0x121d35
movq %rbx, %rdi
movq %rax, %rsi
movq 0x8(%rsp), %rdx
callq 0x1e4a75
testl %eax, %eax
movzbl %bpl, %ebp
cmovnel %r15d, %ebp
movq 0x58(%r12), %rdi
callq 0x121e78
cmpq %rax, %r14
jae 0xc4380
incq %r14
testb $0x1, %bpl
je 0xc433c
jmp 0xc4380
xorl %ebp, %ebp
testb $0x1, %bpl
jne 0xc43a1
movq %rbx, %rdi
movq 0x8(%rsp), %rsi
callq 0x1e4dba
testl %eax, %eax
movzbl %bpl, %eax
movl $0x1, %ebp
cmovel %eax, %ebp
movq (%rsp), %r15
movq 0x38(%r15), %rdi
callq 0x120d4c
testq %rax, %rax
jne 0xc4fa2
movq 0x38(%r15), %r14
movq 0x48(%r15), %rdi
callq 0x120d23
movq %r14, %rdi
movq %rax, %rsi
callq 0x12097f
testb $0x1, %bpl
jne 0xc45ce
movq %rbx, %rdi
callq 0x1e7980
movq %rax, %r12
movq %rbx, %rdi
callq 0x1e7960
movq %rax, %r13
leaq (%rax,%r12), %r14
movq %rbx, %rdi
callq 0x1e79c0
movq %rax, %r15
movq %rbx, %rdi
callq 0x1e7980
subq %rax, %r15
movq %r15, 0x18(%rsp)
leaq 0x29ce8a(%rip), %rsi    # 0x36129f
movq 0x70(%rsp), %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10906e
movq %rbx, %rdi
callq 0x1e7990
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
testq %rax, %rax
je 0xc445a
callq 0x1e7990
leaq -0x1(%rax), %rdx
leaq 0x2979ea(%rip), %rsi    # 0x35be33
movq 0x28(%rsp), %r15
movq %r15, %rdi
xorl %eax, %eax
callq 0x10906e
jmp 0xc4490
callq 0x1e79b0
movq %r12, 0x30(%rsp)
movq %rax, %r12
movq %rbx, %rdi
callq 0x1e79a0
leaq 0x2994c8(%rip), %rsi    # 0x35d93e
movq 0x28(%rsp), %r15
movq %r15, %rdi
movq %r12, %rdx
movq 0x30(%rsp), %r12
movq %rax, %rcx
xorl %eax, %eax
callq 0x10906e
movq %rbx, %rdi
callq 0x1e7970
movq 0x18(%rsp), %rcx
leaq (%rax,%rcx), %rdx
leaq 0x29ce22(%rip), %rsi    # 0x3612ca
movq %r15, %rdi
xorl %eax, %eax
callq 0x10906e
testq %r13, %r13
js 0xc44be
cvtsi2ss %r13, %xmm0
jmp 0xc44d6
movq %r13, %rax
shrq %rax
movl %r13d, %ecx
andl $0x1, %ecx
orq %rax, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
mulss 0x298e12(%rip), %xmm0   # 0x35d2f0
testq %r14, %r14
js 0xc44ea
cvtsi2ss %r14, %xmm1
jmp 0xc4500
movq %r14, %rax
shrq %rax
andl $0x1, %r14d
orq %rax, %r14
cvtsi2ss %r14, %xmm1
addss %xmm1, %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x299478(%rip), %rsi    # 0x35d987
movq 0x28(%rsp), %rdi
movq %r13, %rdx
movb $0x1, %al
callq 0x10906e
movq (%rsp), %rax
cmpb $0x0, 0x1(%rax)
jne 0xc453e
leaq 0x299483(%rip), %rsi    # 0x35d9b2
movq 0x70(%rsp), %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0x10906e
movq %rbx, %rdi
movq 0x8(%rsp), %rsi
callq 0x1e732a
testl %eax, %eax
movzbl %bpl, %eax
movl $0x1, %ebp
cmovel %eax, %ebp
testb $0x1, %bpl
je 0xc4566
movq 0x28(%rsp), %r13
jmp 0xc45ce
leaq 0x29cd85(%rip), %rsi    # 0x3612f2
movq 0x28(%rsp), %r13
movq %r13, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x10906e
leaq 0x29cd95(%rip), %rsi    # 0x36131b
movq %r13, %rdi
movq 0x18(%rsp), %rdx
xorl %eax, %eax
callq 0x10906e
movq (%rsp), %rax
movq 0x48(%rax), %rdi
callq 0x120d23
cmpq $0x0, 0x10(%rsp)
leaq 0x299422(%rip), %rdx    # 0x35d9d1
leaq 0x29dfd8(%rip), %rcx    # 0x36258e
cmoveq %rdx, %rcx
leaq 0x29cd80(%rip), %rsi    # 0x361341
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10906e
movq %rbx, %rdi
callq 0x1e48cf
testb $0x1, %bpl
je 0xc45e6
xorl %edi, %edi
xorl %r12d, %r12d
jmp 0xc46c1
callq 0xf36ef
movq %rax, %r12
movq %rax, %rdi
callq 0xf6920
movq %r12, %rdi
callq 0xf69cc
movq (%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x120d23
movq %r12, %rdi
movq %rax, %rsi
movq 0x8(%rsp), %r14
movq %r14, %rdx
callq 0xf374b
movq %rax, %rdi
testq %rax, %rax
movzbl %bpl, %ebp
movl $0x1, %ebx
cmovel %ebx, %ebp
testb $0x1, %bpl
jne 0xc46c1
movq %rdi, %r15
movq %r14, %rsi
callq 0xf6aed
testl %eax, %eax
movzbl %bpl, %eax
cmovel %eax, %ebx
movl %ebx, %ebp
testb $0x1, %bl
je 0xc465a
movq %r15, %rdi
jmp 0xc46c1
movq %r15, 0x10(%rsp)
movq %r15, %rdi
callq 0xf0ec3
testb %al, %al
je 0xc46bc
movq (%rsp), %r14
movq 0x38(%r14), %rdi
callq 0x120e13
movq %rax, %rbx
leaq 0x28b3b2(%rip), %rsi    # 0x34fa34
movq %rax, %rdi
callq 0x12097f
movq %rbx, %rdi
callq 0x120d23
movq %rax, %rdi
callq 0x1259fb
movq 0x38(%r14), %rdi
callq 0x120d23
leaq 0x29caef(%rip), %rdi    # 0x361199
movq %rax, %rsi
xorl %eax, %eax
callq 0x125448
movq %rbx, %rdi
callq 0x121b03
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rbx
testb $0x1, %bpl
jne 0xc4f3e
leaq 0x400741(%rip), %rax    # 0x4c4e18
movl (%rax), %r15d
movq (%rsp), %rbp
cmpb $0x0, 0x8(%rbp)
movq %r15, 0x18(%rsp)
movq %r12, 0x68(%rsp)
movq %rdi, 0x10(%rsp)
je 0xc4961
movq %rbx, 0x20(%rsp)
movq $0x0, 0x58(%rsp)
callq 0xec1e8
movq %rax, %rcx
shrq %rcx
movq %rcx, 0x30(%rsp)
leaq -0x1(%rcx), %r12
shrq $0x6, %r12
incq %r12
cmpq $0x80, %rax
movl $0x1, %r13d
cmovbq %r13, %r12
leaq (,%r15,8), %rbx
leaq 0x29c70c(%rip), %r14    # 0x360e4b
movq %rbx, %rdi
movq %r14, %rsi
movl $0x259, %edx            # imm = 0x259
callq 0x1092b2
movq %rax, %r15
movq %rbx, %rdi
movq %r14, %rsi
movl $0x25a, %edx            # imm = 0x25A
callq 0x1092b2
movq %rax, %r14
movl 0xc(%rbp), %esi
leaq 0x29ce49(%rip), %rdi    # 0x3615b8
xorl %eax, %eax
callq 0x108e02
leaq 0x60(%rsp), %rsi
movq %rbp, %rdi
movq 0x8(%rsp), %rdx
callq 0xc4fa7
movl %eax, %ebp
leaq 0x29cbe9(%rip), %rsi    # 0x36137a
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rbx
movl %ebx, %edx
xorl %eax, %eax
callq 0x10906e
testl %ebx, %ebx
sete %al
orb %bpl, %al
jne 0xc481f
leaq (,%r12,8), %rbx
xorl %edi, %edi
movq %rbx, %rsi
leaq 0x29c689(%rip), %rdx    # 0x360e4b
movl $0x263, %ecx            # imm = 0x263
callq 0x1094e6
movq %rax, -0x8(%r14,%r13,8)
movq %rax, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x173a0
movq (%rsp), %rax
movl 0xc(%rax), %esi
movl 0x14(%rax), %edx
movq -0x8(%r14,%r13,8), %rcx
movq 0x10(%rsp), %rdi
callq 0x1c5b73
movq %rax, -0x8(%r15,%r13,8)
testq %rax, %rax
movzbl %bpl, %ebp
movl $0x1, %eax
cmovel %eax, %ebp
testb $0x1, %bpl
jne 0xc481f
leaq 0x1(%r13), %rax
cmpq 0x18(%rsp), %r13
movq %rax, %r13
jb 0xc47b6
testb $0x1, %bpl
jne 0xc48e8
movl 0x60(%rsp), %esi
movq (%rsp), %rdi
movl 0x18(%rdi), %edx
movq 0x30(%rdi), %rcx
xorl %r8d, %r8d
cmpb $0x1, 0x7(%rdi)
jne 0xc4845
movl 0xc(%rdi), %r8d
movzbl (%rdi), %eax
movq %rax, 0x50(%rsp)
movl 0xc(%rdi), %r9d
movl 0x10(%rdi), %eax
movq %rax, 0x48(%rsp)
movzbl 0x6(%rdi), %eax
movq %rax, 0x40(%rsp)
movzbl 0x3(%rdi), %eax
movq %rax, 0x38(%rsp)
movzbl 0x4(%rdi), %r13d
movl 0x20(%rdi), %eax
xorl %r10d, %r10d
cmpb $0x0, 0x5(%rdi)
sete %r10b
movl 0x1c(%rdi), %r11d
subq $0x8, %rsp
movq 0x18(%rsp), %rdi
pushq 0x10(%rsp)
pushq 0x30(%rsp)
pushq 0x40(%rsp)
pushq %r15
movl $0x0, %ebx
pushq %rbx
movl $0x0, %ebx
pushq 0x3ff736(%rip)          # 0x4c3fe0
pushq %r11
pushq %r10
pushq %rbx
pushq %rax
pushq %r13
pushq 0x98(%rsp)
pushq 0xa8(%rsp)
pushq 0xb8(%rsp)
pushq 0xc8(%rsp)
callq 0x1c5e51
addq $0x80, %rsp
testl %eax, %eax
movzbl %bpl, %eax
movl $0x1, %ebp
cmovel %eax, %ebp
cmpq $0x0, 0x18(%rsp)
je 0xc494d
xorl %ebx, %ebx
leaq 0x29c552(%rip), %r13    # 0x360e4b
testb $0x1, %bpl
jne 0xc490f
movq (%r15,%rbx,8), %rdi
movl %ebx, %esi
leaq 0x58(%rsp), %rdx
callq 0x1c5be7
movq (%r15,%rbx,8), %rdi
callq 0x1c5c12
testq %rbx, %rbx
je 0xc4943
movq (%r14,%rbx,8), %rdi
movq (%r14), %rax
xorl %ecx, %ecx
movq (%rdi,%rcx,8), %rdx
orq %rdx, (%rax,%rcx,8)
incq %rcx
cmpq %rcx, %r12
jne 0xc4926
movq %r13, %rsi
movl $0x293, %edx            # imm = 0x293
callq 0x109670
incq %rbx
cmpq 0x18(%rsp), %rbx
jne 0xc48f9
testb $0x1, %bpl
je 0xc4e86
movq 0x28(%rsp), %r13
jmp 0xc4ef8
leaq (,%r15,8), %rdi
leaq 0x29c4db(%rip), %rsi    # 0x360e4b
movl $0x1ec, %edx            # imm = 0x1EC
callq 0x1092b2
movq %rax, %r14
movl 0xc(%rbp), %esi
leaq 0x29c9dc(%rip), %rdi    # 0x361363
movq $0x0, 0x38(%rsp)
xorl %eax, %eax
callq 0x108e02
leaq 0x84(%rsp), %rsi
movq %rbp, %rdi
movq 0x8(%rsp), %rdx
callq 0xc4fa7
movq %rbp, %rbx
movl %eax, %ebp
leaq 0x29c9c2(%rip), %rsi    # 0x36137a
movq %r13, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0x10906e
movl 0x28(%rbx), %edx
leaq 0x29c9c3(%rip), %rsi    # 0x361392
movq %r13, %rdi
xorl %eax, %eax
callq 0x10906e
testb %bpl, %bpl
jne 0xc4e44
cmpl $0x0, 0x28(%rbx)
je 0xc4e44
movq $0x0, 0x38(%rsp)
movl $0x1, %r12d
movq %r14, 0x30(%rsp)
xorl %eax, %eax
movq %rax, 0x60(%rsp)
movq %rax, 0x90(%rsp)
movq %rax, 0x78(%rsp)
movq %rax, 0x88(%rsp)
movq %r13, %rdi
leaq 0x29c986(%rip), %rsi    # 0x3613ac
movl %r12d, %edx
xorl %eax, %eax
callq 0x10906e
testq %r15, %r15
je 0xc4aad
testb $0x1, %bpl
jne 0xc4aad
xorl %ebx, %ebx
movq (%rsp), %rax
movl 0xc(%rax), %r14d
movl 0x14(%rax), %r15d
movq 0x38(%rax), %rdi
callq 0x120d23
subq $0x8, %rsp
movq 0x18(%rsp), %rdi
movl %r14d, %esi
movl %r15d, %edx
movq %rax, %rcx
leaq 0x29c960(%rip), %r8     # 0x3613cb
movl %ebx, %r9d
pushq 0x10(%rsp)
callq 0x1c5740
addq $0x10, %rsp
movq 0x30(%rsp), %rcx
movq %rax, (%rcx,%rbx,8)
testq %rax, %rax
movzbl %bpl, %ebp
movl $0x1, %eax
cmovel %eax, %ebp
testb $0x1, %bpl
jne 0xc4aa8
incq %rbx
movq 0x18(%rsp), %r15
cmpq %r15, %rbx
jb 0xc4a3d
jmp 0xc4aad
movq 0x18(%rsp), %r15
testb $0x1, %bpl
jne 0xc4b76
xorl %r8d, %r8d
movq (%rsp), %rax
cmpb $0x1, 0x7(%rax)
jne 0xc4ac8
movl 0xc(%rax), %r8d
movl 0x84(%rsp), %esi
movl 0x18(%rax), %edx
movq 0x30(%rax), %rcx
movzbl (%rax), %edi
movq %rdi, 0x50(%rsp)
movl 0xc(%rax), %r9d
movl 0x10(%rax), %edi
movq %rdi, 0x48(%rsp)
movzbl 0x6(%rax), %edi
movq %rdi, 0x40(%rsp)
movzbl 0x3(%rax), %ebx
movzbl 0x4(%rax), %r14d
movl 0x20(%rax), %r15d
xorl %r10d, %r10d
cmpb $0x0, 0x5(%rax)
sete %r10b
movl 0x1c(%rax), %eax
subq $0x8, %rsp
movq 0x18(%rsp), %rdi
pushq 0x10(%rsp)
pushq 0x30(%rsp)
movq 0x40(%rsp), %r13
pushq %r13
pushq 0x50(%rsp)
movl $0x0, %r11d
pushq %r11
pushq 0x3ff438(%rip)          # 0x4c3f70
pushq %rax
pushq %r10
pushq %r11
pushq %r15
pushq %r14
pushq %rbx
pushq 0xa8(%rsp)
pushq 0xb8(%rsp)
pushq 0xc8(%rsp)
callq 0x1c5e51
addq $0x80, %rsp
testl %eax, %eax
movzbl %bpl, %ebp
movl $0x1, %eax
cmovnel %eax, %ebp
movq 0x18(%rsp), %r15
testq %r15, %r15
movq 0x30(%rsp), %r14
je 0xc4bbe
xorl %ebx, %ebx
testb $0x1, %bpl
jne 0xc4bad
movq (%r14,%rbx,8), %rdi
movl %ebx, %esi
leaq 0x60(%rsp), %rdx
leaq 0x90(%rsp), %rcx
leaq 0x88(%rsp), %r8
leaq 0x78(%rsp), %r9
callq 0x1c5940
movq (%r14,%rbx,8), %rdi
callq 0x1c58e5
incq %rbx
cmpq %rbx, %r15
jne 0xc4b82
movq 0x38(%rsp), %rax
addq 0x78(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x88(%rsp), %rcx
movq %r13, %rdi
leaq 0x29c7f1(%rip), %rsi    # 0x3613d0
movl %r12d, %edx
xorl %eax, %eax
callq 0x10906e
movq 0x90(%rsp), %rcx
movq %r13, %rdi
leaq 0x29c800(%rip), %rsi    # 0x3613fb
movl %r12d, %edx
xorl %eax, %eax
callq 0x10906e
movq 0x60(%rsp), %rcx
movq %r13, %rdi
leaq 0x29c816(%rip), %rsi    # 0x36142a
movl %r12d, %edx
xorl %eax, %eax
callq 0x10906e
movq 0x78(%rsp), %rcx
movq %r13, %rdi
leaq 0x29c82e(%rip), %rsi    # 0x36145b
movl %r12d, %edx
xorl %eax, %eax
callq 0x10906e
testb $0x1, %bpl
jne 0xc4e2d
movq %r13, %rdi
leaq 0x29c83f(%rip), %rsi    # 0x36148a
movl %r12d, 0x80(%rsp)
movl %r12d, %edx
xorl %eax, %eax
callq 0x10906e
movq (%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x120d23
movq 0x10(%rsp), %rdi
movq %rax, 0x48(%rsp)
movq %rax, %rsi
movq 0x8(%rsp), %rdx
callq 0x1e461c
movq %rax, %r14
testq %rax, %rax
sete %r12b
leaq 0x29c8cf(%rip), %rdi    # 0x361561
movl %r15d, %esi
xorl %eax, %eax
callq 0x108e02
testq %r15, %r15
je 0xc4e03
testq %r14, %r14
je 0xc4e03
xorl %r12d, %r12d
xorl %ebx, %ebx
movl %ebp, 0x40(%rsp)
movl %r12d, 0x50(%rsp)
movq 0x48(%rsp), %rbp
movq %rbp, %rdi
callq 0x120955
movq %rax, %r15
movq %rax, %rdi
movl $0x2e, %esi
callq 0x120ba5
movq %r15, %rdi
movl %ebx, %esi
callq 0x120cd6
movq %r15, %rdi
leaq 0x29c6de(%rip), %r12    # 0x3613cb
movq %r12, %rsi
callq 0x12097f
movq %r15, %rdi
callq 0x120d23
movq %rax, %rdi
leaq 0x29f1c2(%rip), %rsi    # 0x363ec9
leaq 0x29c13d(%rip), %rdx    # 0x360e4b
movl $0x161, %ecx            # imm = 0x161
movq 0x8(%rsp), %r8
callq 0x101c23
movq %rax, %r13
leaq 0x29c859(%rip), %rdi    # 0x361580
movq %rbp, %rsi
movl %ebx, %edx
movq %r12, %rcx
xorl %eax, %eax
callq 0x108e02
testq %r13, %r13
je 0xc4dd7
movl $0x8, %esi
movl $0x1, %edx
leaq 0x58(%rsp), %r12
movq %r12, %rdi
movq %r13, %rcx
callq 0x17b40
cmpq $0x1, %rax
jne 0xc4d87
movq 0x58(%rsp), %rdx
movq %rdx, %rsi
shrq $0x2, %rsi
movq %rsi, 0x58(%rsp)
andl $0x3, %edx
movq %r14, %rdi
callq 0x1e46f5
movl $0x8, %esi
movl $0x1, %edx
jmp 0xc4d4e
movq %r13, %rdi
callq 0x17f00
testl %eax, %eax
movl 0x40(%rsp), %ebp
movl 0x50(%rsp), %r12d
je 0xc4dbd
movq %r15, %rdi
callq 0x120d23
movq 0x8(%rsp), %rdi
leaq 0x29c7ef(%rip), %rsi    # 0x36159f
movq %rax, %rdx
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r12b
movq %r13, %rdi
callq 0x101e80
movq %r15, %rdi
callq 0x120d23
movq %rax, %rdi
callq 0x1259fb
jmp 0xc4dde
movb $0x1, %r12b
movl 0x40(%rsp), %ebp
movq %r15, %rdi
callq 0x121b03
testb $0x1, %r12b
jne 0xc4dfe
incl %ebx
movq 0x18(%rsp), %r15
cmpl %r15d, %ebx
jb 0xc4cb7
jmp 0xc4e03
movq 0x18(%rsp), %r15
movq %r14, %rdi
callq 0x1e474b
movzbl %bpl, %ebp
testb $0x1, %r12b
movl $0x1, %eax
cmovnel %eax, %ebp
movq 0x28(%rsp), %r13
movq 0x30(%rsp), %r14
movl 0x80(%rsp), %r12d
incl %r12d
movq (%rsp), %rax
cmpl 0x28(%rax), %r12d
ja 0xc4e44
testb $0x1, %bpl
je 0xc4a00
leaq 0x29c663(%rip), %rsi    # 0x3614ae
movq %r13, %rdi
movq 0x38(%rsp), %rdx
xorl %eax, %eax
callq 0x10906e
leaq 0x29bfea(%rip), %rsi    # 0x360e4b
movq %r14, %rdi
movl $0x244, %edx            # imm = 0x244
callq 0x109670
andb $0x1, %bpl
movq 0x20(%rsp), %rbx
movq 0x68(%rsp), %r12
movq 0x10(%rsp), %rdi
jmp 0xc4f3e
movq (%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x120e13
movq %rax, %rbx
movq 0x58(%rsp), %rdx
leaq 0x29c730(%rip), %rsi    # 0x3615d2
movq 0x28(%rsp), %r13
movq %r13, %rdi
xorl %eax, %eax
callq 0x10906e
leaq 0x29c733(%rip), %rsi    # 0x3615eb
movq %rbx, %rdi
callq 0x12097f
movq (%r14), %r12
movq %rbx, %rdi
callq 0x120d23
movq %r12, %rdi
movq 0x30(%rsp), %rsi
movq %rax, %rdx
xorl %ecx, %ecx
movq 0x8(%rsp), %r8
callq 0x1cada7
testl %eax, %eax
movzbl %bpl, %eax
movl $0x1, %ebp
cmovel %eax, %ebp
movq %rbx, %rdi
callq 0x121b03
movq 0x68(%rsp), %r12
leaq 0x29bf47(%rip), %rbx    # 0x360e4b
movq %r15, %rdi
movq %rbx, %rsi
movl $0x2a5, %edx            # imm = 0x2A5
callq 0x109670
movq (%r14), %rdi
movq %rbx, %rsi
movl $0x2a6, %edx            # imm = 0x2A6
callq 0x109670
movq %r14, %rdi
movq %rbx, %rsi
movl $0x2a7, %edx            # imm = 0x2A7
callq 0x109670
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rbx
callq 0xee90c
movq %r12, %rdi
callq 0xf424d
testq %rbx, %rbx
je 0xc4f6a
movq 0x3fef91(%rip), %rax    # 0x4c3ee8
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x122c67
movq %rbx, %rdi
callq 0x122d79
movq 0x70(%rsp), %rdi
callq 0x10916a
movq %r13, %rdi
callq 0x10916a
andb $0x1, %bpl
movzbl %bpl, %eax
negl %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1f0b6
callq 0x1f044
callq 0x1f07d