// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_sain.c
// Function: gt_sain_runner
static int gt_sain_runner(int argc, GT_UNUSED const char **argv,
                          int parsed_args, void *tool_arguments, GtError *err)
{
  GtSainArguments *arguments = tool_arguments;
  int had_err = 0;

  gt_error_check(err);
  gt_assert(arguments != NULL);

  gt_assert (argc >= parsed_args);
  if (parsed_args < argc)
  {
    gt_error_set(err,"superfluous arguments");
    had_err = -1;
  } else
  {
    GtUsainindextype *suftab = NULL;

    if (gt_str_length(arguments->encseqfile) > 0)
    {
      GtEncseqLoader *el = gt_encseq_loader_new();
      GtEncseq *encseq
        = gt_encseq_loader_load(el,gt_str_get(arguments->encseqfile),err);
      if (encseq == NULL)
      {
        had_err = -1;
      } else
      {
        if (gt_sain_checkmaxsequencelength(gt_encseq_total_length(encseq),true,
                                           err)
                       != 0)
        {
          had_err = -1;
        } else
        {
          if (!gt_alphabet_is_dna(gt_encseq_alphabet(encseq)) &&
              (arguments->readmode == GT_READMODE_COMPL ||
               arguments->readmode == GT_READMODE_REVCOMPL))
          {
            gt_error_set(err,"option -dir cpl and -dir rcl is only "
                             "possible for DNA sequences");
            had_err = -1;
          }
        }
        if (!had_err)
        {
          GtSainTimerandLogger *tl
            = gt_sain_timer_logger_new(arguments->verbose);
          suftab = gt_sain_encseq_sortsuffixes(encseq,
                                               arguments->readmode,
                                               arguments->icheck,
                                               arguments->fcheck,
                                               tl->logger,
                                               tl->timer);
          gt_sain_timer_logger_delete(tl);
          gt_free(suftab);
        }
      }
      gt_encseq_delete(encseq);
      gt_encseq_loader_delete(el);
    }
    if (!had_err && (gt_str_length(arguments->plainseqfile) > 0 ||
                     gt_str_length(arguments->fastafile) > 0))
    {
      GtUchar *filecontents;
      size_t len;
      const char *inputfile = gt_str_length(arguments->plainseqfile) > 0
                                ? gt_str_get(arguments->plainseqfile)
                                : gt_str_get(arguments->fastafile);

      if (arguments->dommap)
      {
        filecontents = gt_fa_mmap_read (inputfile,&len,err);
      } else
      {
        filecontents = gt_fa_heap_read (inputfile,&len,err);
      }
      if (filecontents == NULL)
      {
        had_err = -1;
      } else
      {
        GtBareEncseq *bare_encseq = NULL;

        if (!had_err)
        {
          if (gt_str_length(arguments->fastafile) > 0)
          {
            GtAlphabet *alphabet = gt_sain_getalphabet(arguments,err);

            if (alphabet == NULL)
            {
              had_err = -1;
            } else
            {
              bare_encseq = gt_bare_encseq_parse_new(filecontents,len,alphabet,
                                                     err);
              if (bare_encseq == NULL)
              {
                had_err = -1;
              }
            }
            gt_alphabet_delete(alphabet);
          }
        }
        if (!had_err &&
            gt_sain_checkmaxsequencelength((GtUword) len,false,err) != 0)
        {
          had_err = -1;
        }
        if (!had_err)
        {
          GtSainTimerandLogger *tl
            = gt_sain_timer_logger_new(arguments->verbose);
          if (gt_str_length(arguments->plainseqfile) > 0)
          {
            suftab = gt_sain_plain_sortsuffixes(filecontents,
                                                (GtUword) len,
                                                arguments->icheck,
                                                arguments->fcheck,
                                                tl->logger,
                                                tl->timer);
          } else
          {
            gt_assert(gt_str_length(arguments->fastafile) > 0 &&
                      bare_encseq != NULL);
            if (arguments->readmode != GT_READMODE_FORWARD)
            {
              bare_encseq_convert(bare_encseq,
                                  GT_ISDIRREVERSE(arguments->readmode)
                                    ? false : true,
                                  GT_ISDIRCOMPLEMENT(arguments->readmode)
                                    ? false : true);
            }
            suftab = gt_sain_bare_encseq_sortsuffixes(bare_encseq,
                                                      arguments->readmode,
                                                      arguments->icheck,
                                                      arguments->fcheck,
                                                      tl->logger,
                                                      tl->timer);
          }
          if (arguments->suftabout)
          {
            char *inputfile_basename = gt_basename(inputfile);
            FILE *fpout = gt_fa_fopen_with_suffix(inputfile_basename,
                                                  ".suf","wb",err);
            if (fpout == NULL)
            {
              had_err = -1;
            } else
            {
              GtUword totallength;
              if (bare_encseq != NULL)
              {
                totallength = gt_bare_encseq_total_length(bare_encseq);
              } else
              {
                totallength = len;
              }
              gt_xfwrite(suftab,sizeof *suftab,totallength+1,fpout);
              gt_fa_fclose(fpout);
            }
            gt_free(inputfile_basename);
          }
          if (arguments->tistabout)
          {
            char *inputfile_basename = gt_basename(inputfile);
            FILE *fpout = gt_fa_fopen_with_suffix(inputfile_basename,
                                                  ".tis","wb",err);
            if (fpout == NULL)
            {
              had_err = -1;
            } else
            {
              GtUword totallength;
              const GtUchar *sequence;

              if (bare_encseq != NULL)
              {
                totallength = gt_bare_encseq_total_length(bare_encseq);
                sequence = gt_bare_encseq_sequence(bare_encseq);
              } else
              {
                totallength = len;
                sequence = filecontents;
              }
              gt_xfwrite(sequence,sizeof *sequence,totallength,fpout);
              gt_fa_fclose(fpout);
            }
            gt_free(inputfile_basename);
          }
          if (!had_err && arguments->outlcptab)
          {
            unsigned int *lcptab;
            GtUword maxlcp = 0, partwidth, totallength;
            bool withspecial;

            if (gt_str_length(arguments->plainseqfile) > 0)
            {
              withspecial = false;
              totallength = (GtUword) len;
              partwidth = totallength;
            } else
            {
              withspecial = true;
              totallength = gt_bare_encseq_total_length(bare_encseq);
              partwidth = totallength -
                          gt_bare_encseq_specialcharacters(bare_encseq);
            }
            if (tl->timer != NULL && gt_logger_enabled(tl->logger))
            {
              gt_timer_show_progress(tl->timer,"compute lcp-value",stdout);
            }
            if (arguments->lcpkasai)
            {
              lcptab = gt_plain_lcp13_kasai(&maxlcp,
                                            filecontents,
                                            withspecial,
                                            partwidth,
                                            totallength,
                                            suftab);
            } else
            {
              lcptab = gt_plain_lcp_phialgorithm(false,
                                                 &maxlcp,
                                                 filecontents,
                                                 withspecial,
                                                 partwidth,
                                                 totallength,
                                                 suftab);
            }
            gt_logger_log(tl->logger,"maxlcp="GT_WU,maxlcp);
            gt_free(lcptab);
          }
          gt_free(suftab);
          gt_sain_timer_logger_delete(tl);
        }
        gt_bare_encseq_delete(bare_encseq);
      }
      if (arguments->dommap)
      {
        gt_fa_xmunmap(filecontents);
      } else
      {
        gt_free(filecontents);
      }
    }
  }
  return had_err;
}

// Assembly:
subq $0x128, %rsp            # imm = 0x128
movl %edi, 0x124(%rsp)
movq %rsi, 0x118(%rsp)
movl %edx, 0x114(%rsp)
movq %rcx, 0x108(%rsp)
movq %r8, 0x100(%rsp)
movq 0x108(%rsp), %rax
movq %rax, 0xf8(%rsp)
movl $0x0, 0xf4(%rsp)
cmpq $0x0, 0x100(%rsp)
je 0x5b14e
movq 0x100(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x5b116
jmp 0x5b14e
movq 0x5e0e83(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4baeec(%rip), %rsi    # 0x516013
leaq 0x4bb091(%rip), %rdx    # 0x5161bf
leaq 0x4cb9c6(%rip), %rcx    # 0x526afb
leaq 0x4cb7d4(%rip), %r8     # 0x526910
movl $0x12c, %r9d            # imm = 0x12C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x5b150
jmp 0x5b152
cmpq $0x0, 0xf8(%rsp)
jne 0x5b195
movq 0x5e0e3c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4baea5(%rip), %rsi    # 0x516013
leaq 0x4bc10f(%rip), %rdx    # 0x517284
leaq 0x4cb97f(%rip), %rcx    # 0x526afb
leaq 0x4cb78d(%rip), %r8     # 0x526910
movl $0x12d, %r9d            # imm = 0x12D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x5b197
jmp 0x5b199
movl 0x124(%rsp), %eax
cmpl 0x114(%rsp), %eax
jge 0x5b1e1
movq 0x5e0df0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4bae59(%rip), %rsi    # 0x516013
leaq 0x4cb949(%rip), %rdx    # 0x526b0a
leaq 0x4cb933(%rip), %rcx    # 0x526afb
leaq 0x4cb741(%rip), %r8     # 0x526910
movl $0x12f, %r9d            # imm = 0x12F
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x5b1e3
movl 0x114(%rsp), %eax
cmpl 0x124(%rsp), %eax
jge 0x5b219
movq 0x100(%rsp), %rdi
leaq 0x4c5def(%rip), %rsi    # 0x520ff1
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5bbf8
movq $0x0, 0xe8(%rsp)
movq 0xf8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x5b3f3
callq 0xb7a40
movq %rax, 0xe0(%rsp)
movq 0xe0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0xf8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0x38(%rsp), %rdi
movq %rax, %rsi
movq 0x100(%rsp), %rdx
callq 0xb7aa0
movq %rax, 0xd8(%rsp)
cmpq $0x0, 0xd8(%rsp)
jne 0x5b2a3
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5b3d9
movq 0xd8(%rsp), %rdi
callq 0xa9d00
movq %rax, %rdi
movq 0x100(%rsp), %rdx
movl $0x1, %esi
callq 0x2d1af0
cmpl $0x0, %eax
je 0x5b2d7
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5b32f
movq 0xd8(%rsp), %rdi
callq 0xb0f00
movq %rax, %rdi
callq 0x7f400
testb $0x1, %al
jne 0x5b32d
movq 0xf8(%rsp), %rax
cmpl $0x2, 0x38(%rax)
je 0x5b30c
movq 0xf8(%rsp), %rax
cmpl $0x3, 0x38(%rax)
jne 0x5b32d
movq 0x100(%rsp), %rdi
leaq 0x4cb803(%rip), %rsi    # 0x526b1e
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5b32f
cmpl $0x0, 0xf4(%rsp)
jne 0x5b3d7
movq 0xf8(%rsp), %rax
movb 0x4(%rax), %al
andb $0x1, %al
movzbl %al, %edi
callq 0x5bc10
movq %rax, 0xd0(%rsp)
movq 0xd8(%rsp), %rdi
movq 0xf8(%rsp), %rax
movl 0x38(%rax), %esi
movq 0xf8(%rsp), %rax
movb (%rax), %cl
movq 0xf8(%rsp), %rax
movb 0x1(%rax), %al
movq 0xd0(%rsp), %rdx
movq 0x8(%rdx), %r8
movq 0xd0(%rsp), %rdx
movq (%rdx), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %edx
movzbl %al, %ecx
callq 0x2d0660
movq %rax, 0xe8(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x5bcd0
movq 0xe8(%rsp), %rdi
leaq 0x4cb543(%rip), %rsi    # 0x526910
movl $0x15d, %edx            # imm = 0x15D
callq 0xe88c0
jmp 0x5b3d9
movq 0xd8(%rsp), %rdi
callq 0xae070
movq 0xe0(%rsp), %rdi
callq 0xb7e50
cmpl $0x0, 0xf4(%rsp)
jne 0x5bbf6
movq 0xf8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
ja 0x5b433
movq 0xf8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x5bbf6
movq 0xf8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x5b462
movq 0xf8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dee0
movq %rax, 0x30(%rsp)
jmp 0x5b478
movq 0xf8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dee0
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq 0xf8(%rsp), %rax
testb $0x1, 0x5(%rax)
je 0x5b4c6
movq 0xb8(%rsp), %rdi
movq 0x100(%rsp), %r8
leaq 0xc0(%rsp), %rsi
leaq 0x4cb45e(%rip), %rdx    # 0x526910
movl $0x16e, %ecx            # imm = 0x16E
callq 0xda4d0
movq %rax, 0xc8(%rsp)
jmp 0x5b4f7
movq 0xb8(%rsp), %rdi
movq 0x100(%rsp), %r8
leaq 0xc0(%rsp), %rsi
leaq 0x4cb42b(%rip), %rdx    # 0x526910
movl $0x171, %ecx            # imm = 0x171
callq 0xdadb0
movq %rax, 0xc8(%rsp)
cmpq $0x0, 0xc8(%rsp)
jne 0x5b512
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5bbbe
movq $0x0, 0xb0(%rsp)
cmpl $0x0, 0xf4(%rsp)
jne 0x5b5d0
movq 0xf8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x5b5ce
movq 0xf8(%rsp), %rdi
movq 0x100(%rsp), %rsi
callq 0x5bd40
movq %rax, 0xa8(%rsp)
cmpq $0x0, 0xa8(%rsp)
jne 0x5b57c
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5b5c1
movq 0xc8(%rsp), %rdi
movq 0xc0(%rsp), %rsi
movq 0xa8(%rsp), %rdx
movq 0x100(%rsp), %rcx
callq 0x202980
movq %rax, 0xb0(%rsp)
cmpq $0x0, 0xb0(%rsp)
jne 0x5b5bf
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5b5c1
movq 0xa8(%rsp), %rdi
callq 0x7e3d0
jmp 0x5b5d0
cmpl $0x0, 0xf4(%rsp)
jne 0x5b601
movq 0xc0(%rsp), %rdi
movq 0x100(%rsp), %rdx
xorl %esi, %esi
callq 0x2d1af0
cmpl $0x0, %eax
je 0x5b601
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0xf4(%rsp)
jne 0x5bbb1
movq 0xf8(%rsp), %rax
movb 0x4(%rax), %al
andb $0x1, %al
movzbl %al, %edi
callq 0x5bc10
movq %rax, 0xa0(%rsp)
movq 0xf8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x5b69c
movq 0xc8(%rsp), %rdi
movq 0xc0(%rsp), %rsi
movq 0xf8(%rsp), %rax
movb (%rax), %cl
movq 0xf8(%rsp), %rax
movb 0x1(%rax), %al
movq 0xa0(%rsp), %rdx
movq 0x8(%rdx), %r8
movq 0xa0(%rsp), %rdx
movq (%rdx), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %edx
movzbl %al, %ecx
callq 0x2d1920
movq %rax, 0xe8(%rsp)
jmp 0x5b80c
jmp 0x5b69e
movq 0xf8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x5b6c0
cmpq $0x0, 0xb0(%rsp)
jne 0x5b6f8
movq 0x5e08d9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4ba942(%rip), %rsi    # 0x516013
leaq 0x4cb486(%rip), %rdx    # 0x526b5e
leaq 0x4cb41c(%rip), %rcx    # 0x526afb
leaq 0x4cb22a(%rip), %r8     # 0x526910
movl $0x1a3, %r9d            # imm = 0x1A3
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x5b6fa
movq 0xf8(%rsp), %rax
cmpl $0x0, 0x38(%rax)
je 0x5b7b5
movq 0xb0(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0xf8(%rsp), %rcx
movb $0x1, %al
cmpl $0x1, 0x38(%rcx)
movb %al, 0x2f(%rsp)
je 0x5b740
movq 0xf8(%rsp), %rax
cmpl $0x3, 0x38(%rax)
sete %al
movb %al, 0x2f(%rsp)
movb 0x2f(%rsp), %dl
movl $0x1, %eax
xorl %ecx, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
cmpl $0x0, %eax
setne %al
movb %al, 0x1e(%rsp)
movq 0xf8(%rsp), %rcx
movb $0x1, %al
cmpl $0x2, 0x38(%rcx)
movb %al, 0x1f(%rsp)
je 0x5b782
movq 0xf8(%rsp), %rax
cmpl $0x3, 0x38(%rax)
sete %al
movb %al, 0x1f(%rsp)
movq 0x20(%rsp), %rdi
movb 0x1e(%rsp), %cl
movb 0x1f(%rsp), %sil
movl $0x1, %eax
xorl %edx, %edx
testb $0x1, %sil
cmovnel %edx, %eax
cmpl $0x0, %eax
setne %al
movzbl %cl, %esi
andl $0x1, %esi
movzbl %al, %edx
andl $0x1, %edx
callq 0x203490
movq 0xb0(%rsp), %rdi
movq 0xf8(%rsp), %rax
movl 0x38(%rax), %esi
movq 0xf8(%rsp), %rax
movb (%rax), %cl
movq 0xf8(%rsp), %rax
movb 0x1(%rax), %al
movq 0xa0(%rsp), %rdx
movq 0x8(%rdx), %r8
movq 0xa0(%rsp), %rdx
movq (%rdx), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %edx
movzbl %al, %ecx
callq 0x2d16c0
movq %rax, 0xe8(%rsp)
movq 0xf8(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x5b901
movq 0xb8(%rsp), %rdi
callq 0x83ee0
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rdi
movq 0x100(%rsp), %r9
leaq 0x4fe0a7(%rip), %rsi    # 0x5598f1
leaq 0x4cb34c(%rip), %rdx    # 0x526b9d
leaq 0x4cb0b8(%rip), %rcx    # 0x526910
movl $0x1b7, %r8d            # imm = 0x1B7
callq 0xd92c0
movq %rax, 0x90(%rsp)
cmpq $0x0, 0x90(%rsp)
jne 0x5b883
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5b8e8
cmpq $0x0, 0xb0(%rsp)
je 0x5b8a5
movq 0xb0(%rsp), %rdi
callq 0x2030f0
movq %rax, 0x88(%rsp)
jmp 0x5b8b5
movq 0xc0(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0xe8(%rsp), %rdi
movq 0x88(%rsp), %rdx
addq $0x1, %rdx
movq 0x90(%rsp), %rcx
movl $0x4, %esi
callq 0x126d30
movq 0x90(%rsp), %rdi
callq 0xd9390
movq 0x98(%rsp), %rdi
leaq 0x4cb019(%rip), %rsi    # 0x526910
movl $0x1c8, %edx            # imm = 0x1C8
callq 0xe88c0
movq 0xf8(%rsp), %rax
testb $0x1, 0x9(%rax)
je 0x5b9f9
movq 0xb8(%rsp), %rdi
callq 0x83ee0
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rdi
movq 0x100(%rsp), %r9
leaq 0x4cb261(%rip), %rsi    # 0x526ba0
leaq 0x4cb257(%rip), %rdx    # 0x526b9d
leaq 0x4cafc3(%rip), %rcx    # 0x526910
movl $0x1ce, %r8d            # imm = 0x1CE
callq 0xd92c0
movq %rax, 0x78(%rsp)
cmpq $0x0, 0x78(%rsp)
jne 0x5b972
movl $0xffffffff, 0xf4(%rsp) # imm = 0xFFFFFFFF
jmp 0x5b9e0
cmpq $0x0, 0xb0(%rsp)
je 0x5b9a3
movq 0xb0(%rsp), %rdi
callq 0x2030f0
movq %rax, 0x70(%rsp)
movq 0xb0(%rsp), %rdi
callq 0x203080
movq %rax, 0x68(%rsp)
jmp 0x5b9bd
movq 0xc0(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0xc8(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rdi
movq 0x70(%rsp), %rdx
movq 0x78(%rsp), %rcx
movl $0x1, %esi
callq 0x126d30
movq 0x78(%rsp), %rdi
callq 0xd9390
movq 0x80(%rsp), %rdi
leaq 0x4caf21(%rip), %rsi    # 0x526910
movl $0x1e3, %edx            # imm = 0x1E3
callq 0xe88c0
cmpl $0x0, 0xf4(%rsp)
jne 0x5bb8b
movq 0xf8(%rsp), %rax
testb $0x1, 0x2(%rax)
je 0x5bb8b
movq $0x0, 0x58(%rsp)
movq 0xf8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x5ba57
movb $0x0, 0x47(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x5ba95
movb $0x1, 0x47(%rsp)
movq 0xb0(%rsp), %rdi
callq 0x2030f0
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0xb0(%rsp), %rdi
callq 0x203210
movq %rax, %rcx
movq 0x10(%rsp), %rax
subq %rcx, %rax
movq %rax, 0x50(%rsp)
movq 0xa0(%rsp), %rax
cmpq $0x0, (%rax)
je 0x5badb
movq 0xa0(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xe7980
testb $0x1, %al
jne 0x5baba
jmp 0x5badb
movq 0xa0(%rsp), %rax
movq (%rax), %rdi
movq 0x5e046c(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x4cb0cf(%rip), %rsi    # 0x526ba5
callq 0x121930
movq 0xf8(%rsp), %rax
testb $0x1, 0x3(%rax)
je 0x5bb1d
movq 0xc8(%rsp), %rsi
movb 0x47(%rsp), %al
movq 0x50(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0xe8(%rsp), %r9
leaq 0x58(%rsp), %rdi
andb $0x1, %al
movzbl %al, %edx
callq 0x2c7e50
movq %rax, 0x60(%rsp)
jmp 0x5bb56
movq 0xc8(%rsp), %rdx
movb 0x47(%rsp), %cl
movq 0x50(%rsp), %r8
movq 0x48(%rsp), %r9
movq 0xe8(%rsp), %rax
xorl %edi, %edi
leaq 0x58(%rsp), %rsi
andb $0x1, %cl
movzbl %cl, %ecx
movq %rax, (%rsp)
callq 0x2c8140
movq %rax, 0x60(%rsp)
movq 0xa0(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x58(%rsp), %rdx
leaq 0x4cb049(%rip), %rsi    # 0x526bb7
movb $0x0, %al
callq 0xe7cd0
movq 0x60(%rsp), %rdi
leaq 0x4cad8f(%rip), %rsi    # 0x526910
movl $0x20e, %edx            # imm = 0x20E
callq 0xe88c0
movq 0xe8(%rsp), %rdi
leaq 0x4cad76(%rip), %rsi    # 0x526910
movl $0x210, %edx            # imm = 0x210
callq 0xe88c0
movq 0xa0(%rsp), %rdi
callq 0x5bcd0
movq 0xb0(%rsp), %rdi
callq 0x202540
movq 0xf8(%rsp), %rax
testb $0x1, 0x5(%rax)
je 0x5bbdb
movq 0xc8(%rsp), %rdi
callq 0xdb2a0
jmp 0x5bbf4
movq 0xc8(%rsp), %rdi
leaq 0x4cad26(%rip), %rsi    # 0x526910
movl $0x21a, %edx            # imm = 0x21A
callq 0xe88c0
jmp 0x5bbf6
jmp 0x5bbf8
movl 0xf4(%rsp), %eax
addq $0x128, %rsp            # imm = 0x128
retq
nopw (%rax,%rax)