// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_readjoiner_asqg.c
// Function: gt_readjoiner_asqg_runner
static int gt_readjoiner_asqg_runner(GT_UNUSED int argc,
    GT_UNUSED const char **argv, GT_UNUSED int parsed_args,
    void *tool_arguments, GtError *err)
{
  GtReadjoinerAsqgArguments *arguments = tool_arguments;
  GtLogger *verbose_logger, *default_logger;
  GtEncseqLoader *el;
  GtEncseq *reads;
  GtTimer *timer = NULL;
  GtStrgraph *strgraph = NULL;
  GtBitsequence *contained = NULL;
  const char *readset = gt_str_get(arguments->readset);
  bool eqlen;
  GtUword nreads;
  int had_err = 0;

  if (gt_showtime_enabled())
  {
    timer = gt_timer_new_with_progress_description(
        GT_READJOINER_ASQG_MSG_INIT);
    gt_timer_start(timer);
    gt_timer_show_cpu_time_by_progress(timer);
  }
  gt_assert(arguments);
  gt_error_check(err);
  default_logger = gt_logger_new(!arguments->quiet, GT_LOGGER_DEFLT_PREFIX,
      stdout);
  gt_logger_log(default_logger, "gt readjoiner asqg");
  verbose_logger = gt_logger_new(arguments->verbose, GT_LOGGER_DEFLT_PREFIX,
      stdout);
  gt_logger_log(verbose_logger, "verbose output activated");
  gt_logger_log(verbose_logger, "readset name = %s", readset);
  if (arguments->minmatchlength > 0)
    gt_logger_log(verbose_logger, "SPM length cutoff = %u",
        arguments->minmatchlength);

  el = gt_encseq_loader_new();
  gt_encseq_loader_drop_description_support(el);
  gt_encseq_loader_disable_autosupport(el);
  reads = gt_encseq_loader_load(el, readset, err);
  nreads = gt_encseq_num_of_sequences(reads);
  gt_assert(reads != NULL);
  eqlen = gt_encseq_accesstype_get(reads) == GT_ACCESS_TYPE_EQUALLENGTH;
  gt_readjoiner_asqg_show_current_space(GT_READJOINER_ASQG_MSG_INIT);
  if (!eqlen)
  {
    unsigned int i;
    GtUword nofreads;
    GtStr *filename = gt_str_clone(arguments->readset);
    if (gt_showtime_enabled())
      gt_timer_show_progress(timer, GT_READJOINER_ASQG_MSG_CNT, stdout);
    gt_logger_log(default_logger, GT_READJOINER_ASQG_MSG_CNT);
    gt_str_append_cstr(filename, ".0" GT_READJOINER_SUFFIX_CNTLIST);
    had_err = gt_cntlist_parse(gt_str_get(filename), true, &contained,
        &nofreads, err);
    for (i = 1U; i < arguments->nspmfiles && had_err == 0; i++)
    {
      GtUword nofreads_i;
      gt_str_reset(filename);
      gt_str_append_str(filename, arguments->readset);
      gt_str_append_char(filename, '.');
      gt_str_append_uint(filename, i);
      gt_str_append_cstr(filename, GT_READJOINER_SUFFIX_CNTLIST);
      had_err = gt_cntlist_parse(gt_str_get(filename), false, &contained,
          &nofreads_i, err);
      gt_assert(nofreads == nofreads_i);
    }
    gt_str_delete(filename);
    gt_readjoiner_asqg_show_current_space(GT_READJOINER_ASQG_MSG_CNT);
  }
  if (!arguments->sg)
  {
    GtStr *filename = NULL;
    GtFile *file = NULL;
    GtAsqgWriter *aw = NULL;
    if (had_err == 0)
    {
      filename = gt_str_clone(arguments->readset);
      gt_str_append_cstr(filename, arguments->gz ?
          GT_READJOINER_SUFFIX_SG_ASQG_GZ : GT_READJOINER_SUFFIX_SG_ASQG);
      file = gt_file_open(arguments->gz ? GT_FILE_MODE_GZIP :
          GT_FILE_MODE_UNCOMPRESSED, gt_str_get(filename), "w", err);
      if (file == NULL)
        had_err = -1;
    }
    if (had_err == 0)
    {
      aw = gt_asqg_writer_new(file, reads);
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_ASQG_MSG_VERTICES,
            stdout);
      gt_logger_log(default_logger, GT_READJOINER_ASQG_MSG_VERTICES);
      had_err = gt_asqg_writer_show_header(aw, 0.0,
          (GtUword)arguments->minmatchlength,
          gt_str_get(arguments->readset), false, false, err);
    }
    if (had_err == 0)
    {
      had_err = gt_asqg_writer_show_vertices(aw, err);
      gt_readjoiner_asqg_show_current_space(GT_READJOINER_ASQG_MSG_VERTICES);
    }
    if (had_err == 0)
    {
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_ASQG_MSG_EDGES, stdout);
      gt_logger_log(default_logger, GT_READJOINER_ASQG_MSG_EDGES);
      had_err = gt_readjoiner_asqg_use_spmfiles(gt_spmproc_show_asqg,
          aw, readset, arguments->minmatchlength, arguments->nspmfiles,
          contained, err);
      gt_readjoiner_asqg_show_current_space(GT_READJOINER_ASQG_MSG_EDGES);
    }
    gt_str_delete(filename);
    gt_file_delete(file);
    gt_asqg_writer_delete(aw);
  }
  else
  {
    if (had_err == 0)
    {
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_ASQG_MSG_COUNT, stdout);
      gt_logger_log(default_logger, GT_READJOINER_ASQG_MSG_COUNT);
      strgraph = gt_strgraph_new(nreads);
      had_err = gt_readjoiner_asqg_use_spmfiles(gt_spmproc_strgraph_count,
          strgraph, readset, arguments->minmatchlength, arguments->nspmfiles,
          contained, err);
      gt_readjoiner_asqg_show_current_space(GT_READJOINER_ASQG_MSG_COUNT);
    }
    if (had_err == 0)
    {
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_ASQG_MSG_INSERT, stdout);
      gt_logger_log(default_logger, GT_READJOINER_ASQG_MSG_INSERT);
      gt_strgraph_allocate_graph(strgraph,
          eqlen ? gt_encseq_seqlength(reads, 0) : 0,
          eqlen ? NULL : reads);
      had_err = gt_strgraph_load_spm_from_file(strgraph,
          (GtUword)arguments->minmatchlength, false,
          contained, readset, arguments->nspmfiles,
          GT_READJOINER_SUFFIX_SPMLIST, err);
      gt_readjoiner_asqg_show_current_space(GT_READJOINER_ASQG_MSG_INSERT);
    }
    if (had_err == 0)
    {
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_ASQG_MSG_OUTPUT, stdout);
      gt_logger_log(default_logger, GT_READJOINER_ASQG_MSG_OUTPUT);
      gt_strgraph_set_encseq(strgraph, reads);
      gt_strgraph_show(strgraph, arguments->gz ? GT_STRGRAPH_ASQG_GZ :
          GT_STRGRAPH_ASQG, gt_str_get(arguments->readset),
          arguments->gz ? GT_READJOINER_SUFFIX_SG_ASQG_GZ :
          GT_READJOINER_SUFFIX_SG_ASQG, false);
      gt_readjoiner_asqg_show_current_space(GT_READJOINER_ASQG_MSG_OUTPUT);
    }
  }
  if (gt_showtime_enabled())
  {
    gt_timer_show_progress_final(timer, stdout);
    gt_timer_delete(timer);
  }
  gt_free(contained);
  gt_strgraph_delete(strgraph);
  gt_encseq_loader_delete(el);
  gt_encseq_delete(reads);
  gt_logger_delete(default_logger);
  gt_logger_delete(verbose_logger);
  return had_err;
}

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movl %edi, 0x114(%rsp)
movq %rsi, 0x108(%rsp)
movl %edx, 0x104(%rsp)
movq %rcx, 0xf8(%rsp)
movq %r8, 0xf0(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq $0x0, 0xc0(%rsp)
movq $0x0, 0xb8(%rsp)
movq $0x0, 0xb0(%rsp)
movq 0xe8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11dee0
movq %rax, 0xa8(%rsp)
movl $0x0, 0x94(%rsp)
callq 0x11aa90
testb $0x1, %al
jne 0x4c900
jmp 0x4c92e
leaq 0x4dc8ef(%rip), %rdi    # 0x5291f6
callq 0x1213a0
movq %rax, 0xc0(%rsp)
movq 0xc0(%rsp), %rdi
callq 0x1213f0
movq 0xc0(%rsp), %rdi
callq 0x121ec0
jmp 0x4c930
cmpq $0x0, 0xe8(%rsp)
jne 0x4c973
movq 0x5ef65e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4c96c7(%rip), %rsi    # 0x516013
leaq 0x52e20c(%rip), %rdx    # 0x57ab5f
leaq 0x4d6e7c(%rip), %rcx    # 0x5237d6
leaq 0x4d6ce7(%rip), %r8     # 0x523648
movl $0xcd, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c975
jmp 0x4c977
cmpq $0x0, 0xf0(%rsp)
je 0x4c9cd
movq 0xf0(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x4c995
jmp 0x4c9cd
movq 0x5ef604(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4c966d(%rip), %rsi    # 0x516013
leaq 0x4c9812(%rip), %rdx    # 0x5161bf
leaq 0x4d6e22(%rip), %rcx    # 0x5237d6
leaq 0x4d6c8d(%rip), %r8     # 0x523648
movl $0xce, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c9cf
movq 0xe8(%rsp), %rax
movb 0x1(%rax), %al
xorb $-0x1, %al
movq 0x5ef555(%rip), %rcx    # 0x63bf38
movq (%rcx), %rdx
movzbl %al, %edi
andl $0x1, %edi
leaq 0x4caef9(%rip), %rsi    # 0x5178ec
callq 0xe7870
movq %rax, 0xd8(%rsp)
movq 0xd8(%rsp), %rdi
leaq 0x4d6de1(%rip), %rsi    # 0x5237f0
movb $0x0, %al
callq 0xe7cd0
movq 0xe8(%rsp), %rax
movb (%rax), %al
movq 0x5ef511(%rip), %rcx    # 0x63bf38
movq (%rcx), %rdx
leaq 0x4caebb(%rip), %rsi    # 0x5178ec
andb $0x1, %al
movzbl %al, %edi
callq 0xe7870
movq %rax, 0xe0(%rsp)
movq 0xe0(%rsp), %rdi
leaq 0x4d6db1(%rip), %rsi    # 0x523803
movb $0x0, %al
callq 0xe7cd0
movq 0xe0(%rsp), %rdi
movq 0xa8(%rsp), %rdx
leaq 0x4d6dac(%rip), %rsi    # 0x52381c
movb $0x0, %al
callq 0xe7cd0
movq 0xe8(%rsp), %rax
cmpl $0x0, 0x4(%rax)
jbe 0x4caa6
movq 0xe0(%rsp), %rdi
movq 0xe8(%rsp), %rax
movl 0x4(%rax), %edx
leaq 0x4d6d8f(%rip), %rsi    # 0x52382e
movb $0x0, %al
callq 0xe7cd0
callq 0xb7a40
movq %rax, 0xd0(%rsp)
movq 0xd0(%rsp), %rdi
callq 0xba570
movq 0xd0(%rsp), %rdi
callq 0xba760
movq 0xd0(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0xf0(%rsp), %rdx
callq 0xb7aa0
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rdi
callq 0xa9d50
movq %rax, 0x98(%rsp)
cmpq $0x0, 0xc8(%rsp)
jne 0x4cb4a
movq 0x5ef487(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4c94f0(%rip), %rsi    # 0x516013
leaq 0x532c54(%rip), %rdx    # 0x57f77e
leaq 0x4d6ca5(%rip), %rcx    # 0x5237d6
leaq 0x4d6b10(%rip), %r8     # 0x523648
movl $0xdf, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4cb4c
movq 0xc8(%rsp), %rdi
callq 0xc2d90
cmpl $0x2, %eax
sete %al
andb $0x1, %al
movb %al, 0xa7(%rsp)
leaq 0x4dc687(%rip), %rdi    # 0x5291f6
callq 0x4d360
testb $0x1, 0xa7(%rsp)
jne 0x4cd75
movq 0xe8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11e280
movq %rax, 0x80(%rsp)
callq 0x11aa90
testb $0x1, %al
jne 0x4cba6
jmp 0x4cbc4
movq 0xc0(%rsp), %rdi
movq 0x5ef383(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x4d6c86(%rip), %rsi    # 0x523845
callq 0x121930
movq 0xd8(%rsp), %rdi
leaq 0x4d6c72(%rip), %rsi    # 0x523845
movb $0x0, %al
callq 0xe7cd0
movq 0x80(%rsp), %rdi
leaq 0x4d6c7b(%rip), %rsi    # 0x523864
callq 0x11d550
movq 0x80(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0xf0(%rsp), %r8
movl $0x1, %esi
leaq 0xb0(%rsp), %rdx
leaq 0x88(%rsp), %rcx
callq 0x275430
movl %eax, 0x94(%rsp)
movl $0x1, 0x90(%rsp)
movl 0x90(%rsp), %ecx
movq 0xe8(%rsp), %rdx
xorl %eax, %eax
cmpl 0x14(%rdx), %ecx
movb %al, 0x5f(%rsp)
jae 0x4cc5b
cmpl $0x0, 0x94(%rsp)
sete %al
movb %al, 0x5f(%rsp)
movb 0x5f(%rsp), %al
testb $0x1, %al
jne 0x4cc68
jmp 0x4cd5c
movq 0x80(%rsp), %rdi
callq 0x11e110
movq 0x80(%rsp), %rdi
movq 0xe8(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x11d750
movq 0x80(%rsp), %rdi
movl $0x2e, %esi
callq 0x11da70
movq 0x80(%rsp), %rdi
movl 0x90(%rsp), %esi
callq 0x11de00
movq 0x80(%rsp), %rdi
leaq 0x4d6ba3(%rip), %rsi    # 0x523866
callq 0x11d550
movq 0x80(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0xf0(%rsp), %r8
xorl %esi, %esi
leaq 0xb0(%rsp), %rdx
leaq 0x78(%rsp), %rcx
callq 0x275430
movl %eax, 0x94(%rsp)
movq 0x88(%rsp), %rax
cmpq 0x78(%rsp), %rax
je 0x4cd42
movq 0x5ef28f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4c92f8(%rip), %rsi    # 0x516013
leaq 0x4d720b(%rip), %rdx    # 0x523f2d
leaq 0x4d6aad(%rip), %rcx    # 0x5237d6
leaq 0x4d6918(%rip), %r8     # 0x523648
movl $0xf7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4cd44
jmp 0x4cd46
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x4cc32
movq 0x80(%rsp), %rdi
callq 0x11f560
leaq 0x4d6ad5(%rip), %rdi    # 0x523845
callq 0x4d360
movq 0xe8(%rsp), %rax
testb $0x1, 0x11(%rax)
jne 0x4cffa
movq $0x0, 0x70(%rsp)
movq $0x0, 0x68(%rsp)
movq $0x0, 0x60(%rsp)
cmpl $0x0, 0x94(%rsp)
jne 0x4ce4b
movq 0xe8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11e280
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rdi
movq 0xe8(%rsp), %rax
movb 0x10(%rax), %cl
leaq 0x4d6a97(%rip), %rsi    # 0x523874
leaq 0x4d6a87(%rip), %rax    # 0x52386b
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x11d550
movq 0xe8(%rsp), %rax
movb 0x10(%rax), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, 0x58(%rsp)
movq 0x70(%rsp), %rdi
callq 0x11dee0
movl 0x58(%rsp), %edi
movq %rax, %rsi
movq 0xf0(%rsp), %rcx
leaq 0x519099(%rip), %rdx    # 0x565ec5
callq 0xdd3f0
movq %rax, 0x68(%rsp)
cmpq $0x0, 0x68(%rsp)
jne 0x4ce49
movl $0xffffffff, 0x94(%rsp) # imm = 0xFFFFFFFF
jmp 0x4ce4b
cmpl $0x0, 0x94(%rsp)
jne 0x4cf04
movq 0x68(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x201df0
movq %rax, 0x60(%rsp)
callq 0x11aa90
testb $0x1, %al
jne 0x4ce7b
jmp 0x4ce99
movq 0xc0(%rsp), %rdi
movq 0x5ef0ae(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x4d69e6(%rip), %rsi    # 0x52387a
callq 0x121930
movq 0xd8(%rsp), %rdi
leaq 0x4d69d2(%rip), %rsi    # 0x52387a
movb $0x0, %al
callq 0xe7cd0
movq 0x60(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0xe8(%rsp), %rax
movl 0x4(%rax), %eax
movq %rax, 0x50(%rsp)
movq 0xe8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11dee0
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rsi
movq %rax, %rdx
movq 0xf0(%rsp), %r9
xorps %xmm0, %xmm0
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x201e40
movl %eax, 0x94(%rsp)
cmpl $0x0, 0x94(%rsp)
jne 0x4cf33
movq 0x60(%rsp), %rdi
movq 0xf0(%rsp), %rsi
callq 0x201f20
movl %eax, 0x94(%rsp)
leaq 0x4d694c(%rip), %rdi    # 0x52387a
callq 0x4d360
cmpl $0x0, 0x94(%rsp)
jne 0x4cfd7
callq 0x11aa90
testb $0x1, %al
jne 0x4cf4c
jmp 0x4cf6a
movq 0xc0(%rsp), %rdi
movq 0x5eefdd(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x4d6934(%rip), %rsi    # 0x523899
callq 0x121930
movq 0xd8(%rsp), %rdi
leaq 0x4d6920(%rip), %rsi    # 0x523899
movb $0x0, %al
callq 0xe7cd0
movq 0x60(%rsp), %rsi
movq 0xa8(%rsp), %rdx
movq 0xe8(%rsp), %rax
movl 0x4(%rax), %ecx
movq 0xe8(%rsp), %rax
movl 0x14(%rax), %r8d
movq 0xb0(%rsp), %r9
movq 0xf0(%rsp), %rax
leaq 0x1b5245(%rip), %rdi    # 0x202200
movq %rax, (%rsp)
callq 0x4d450
movl %eax, 0x94(%rsp)
leaq 0x4d68c7(%rip), %rdi    # 0x523899
callq 0x4d360
movq 0x70(%rsp), %rdi
callq 0x11f560
movq 0x68(%rsp), %rdi
callq 0xde430
movq 0x60(%rsp), %rdi
callq 0x202520
jmp 0x4d2bf
cmpl $0x0, 0x94(%rsp)
jne 0x4d0b6
callq 0x11aa90
testb $0x1, %al
jne 0x4d013
jmp 0x4d031
movq 0xc0(%rsp), %rdi
movq 0x5eef16(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x4d6889(%rip), %rsi    # 0x5238b5
callq 0x121930
movq 0xd8(%rsp), %rdi
leaq 0x4d6875(%rip), %rsi    # 0x5238b5
movb $0x0, %al
callq 0xe7cd0
movq 0x98(%rsp), %rdi
callq 0x28fae0
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rsi
movq 0xa8(%rsp), %rdx
movq 0xe8(%rsp), %rax
movl 0x4(%rax), %ecx
movq 0xe8(%rsp), %rax
movl 0x14(%rax), %r8d
movq 0xb0(%rsp), %r9
movq 0xf0(%rsp), %rax
leaq 0x244376(%rip), %rdi    # 0x291410
movq %rax, (%rsp)
callq 0x4d450
movl %eax, 0x94(%rsp)
leaq 0x4d6804(%rip), %rdi    # 0x5238b5
callq 0x4d360
cmpl $0x0, 0x94(%rsp)
jne 0x4d1dc
callq 0x11aa90
testb $0x1, %al
jne 0x4d0cf
jmp 0x4d0ed
movq 0xc0(%rsp), %rdi
movq 0x5eee5a(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x4d67f1(%rip), %rsi    # 0x5238d9
callq 0x121930
movq 0xd8(%rsp), %rdi
leaq 0x4d67dd(%rip), %rsi    # 0x5238d9
movb $0x0, %al
callq 0xe7cd0
movq 0xb8(%rsp), %rax
movq %rax, 0x40(%rsp)
testb $0x1, 0xa7(%rsp)
je 0x4d132
movq 0xc8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xb09f0
movq %rax, 0x38(%rsp)
jmp 0x4d13b
xorl %eax, %eax
movq %rax, 0x38(%rsp)
jmp 0x4d13b
movq 0x38(%rsp), %rax
movq %rax, 0x30(%rsp)
testb $0x1, 0xa7(%rsp)
je 0x4d158
xorl %eax, %eax
movq %rax, 0x28(%rsp)
jmp 0x4d165
movq 0xc8(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rsi
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rdx
callq 0x28fbf0
movq 0xb8(%rsp), %rdi
movq 0xe8(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
movq 0xb0(%rsp), %rcx
movq 0xa8(%rsp), %r8
movq 0xe8(%rsp), %rax
movl 0x14(%rax), %r9d
movq 0xf0(%rsp), %rax
xorl %edx, %edx
leaq 0x4d7e15(%rip), %r10    # 0x524fd0
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x292070
movl %eax, 0x94(%rsp)
leaq 0x4d6702(%rip), %rdi    # 0x5238d9
callq 0x4d360
cmpl $0x0, 0x94(%rsp)
jne 0x4d2bd
callq 0x11aa90
testb $0x1, %al
jne 0x4d1f5
jmp 0x4d213
movq 0xc0(%rsp), %rdi
movq 0x5eed34(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x4d66f0(%rip), %rsi    # 0x5238fe
callq 0x121930
movq 0xd8(%rsp), %rdi
leaq 0x4d66dc(%rip), %rsi    # 0x5238fe
movb $0x0, %al
callq 0xe7cd0
movq 0xb8(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x292700
movq 0xb8(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0xe8(%rsp), %rax
movb 0x10(%rax), %dl
movl $0x5, %eax
movl $0x6, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, 0x24(%rsp)
movq 0xe8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11dee0
movq 0x18(%rsp), %rdi
movl 0x24(%rsp), %esi
movq %rax, %rdx
movq 0xe8(%rsp), %rax
movb 0x10(%rax), %r8b
leaq 0x4d65da(%rip), %rcx    # 0x523874
leaq 0x4d65ca(%rip), %rax    # 0x52386b
testb $0x1, %r8b
cmovneq %rax, %rcx
xorl %r8d, %r8d
callq 0x297ff0
leaq 0x4d6646(%rip), %rdi    # 0x5238fe
callq 0x4d360
jmp 0x4d2bf
callq 0x11aa90
testb $0x1, %al
jne 0x4d2ca
jmp 0x4d2ee
movq 0xc0(%rsp), %rdi
movq 0x5eec5f(%rip), %rax    # 0x63bf38
movq (%rax), %rsi
callq 0x121d70
movq 0xc0(%rsp), %rdi
callq 0x121f00
movq 0xb0(%rsp), %rdi
leaq 0x4d634b(%rip), %rsi    # 0x523648
movl $0x156, %edx            # imm = 0x156
callq 0xe88c0
movq 0xb8(%rsp), %rdi
callq 0x290110
movq 0xd0(%rsp), %rdi
callq 0xb7e50
movq 0xc8(%rsp), %rdi
callq 0xae070
movq 0xd8(%rsp), %rdi
callq 0xe7ed0
movq 0xe0(%rsp), %rdi
callq 0xe7ed0
movl 0x94(%rsp), %eax
addq $0x118, %rsp            # imm = 0x118
retq
nopw (%rax,%rax)