// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/translator.c
// Function: gt_translator_unit_test
int gt_translator_unit_test(GtError *err)
{
  int had_err = 0;
  GtTranslatorStatus test_errnum;
  GtTranslator *tr;
  GtCodonIterator *ci;
  GtError *test_err;
  GtStrArray *codons, *invalidcodons;
  const char *seq = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGT"
                    "GGATTAAAAAAAGAGTGTCTGATAGCAGCTTCTGAACTGGT"
                    "TACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGG";
  const char *no_startcodon = "AAAAAAAAAATCATCTCCCCATTTTTTT";
  const char *invalidseq  = "ZAGCTTTTCATTCTGACTGCAAATATGTCTCTGTGT";
  const char *invalidseq2 = "AGCTTTTCATTCTGACZTGCAAATATGTCTCTGTGT";

  char translated;
  unsigned int frame;
  GtUword pos = 0;
  GtStr *protein[3];
  gt_error_check(err);

  test_err = gt_error_new();
  ci = gt_codon_iterator_simple_new(seq, (GtUword) strlen(seq), test_err);
  tr = gt_translator_new(ci);
  protein[0] = gt_str_new();
  protein[1] = gt_str_new();
  protein[2] = gt_str_new();
  codons = gt_str_array_new();
  gt_str_array_add_cstr(codons, "ACG");
  gt_str_array_add_cstr(codons, "ACT");
  invalidcodons = gt_str_array_new();
  gt_str_array_add_cstr(invalidcodons, "ACG");
  gt_str_array_add_cstr(invalidcodons, "AC");

  /* do 3-frame translation */
  gt_error_unset(test_err);
  test_errnum = gt_translator_next(tr, &translated, &frame, test_err);
  while (!test_errnum && translated) {
    gt_str_append_char(protein[frame], translated);
    test_errnum = gt_translator_next(tr, &translated, &frame, test_err);
    gt_ensure(
           test_errnum != GT_TRANSLATOR_ERROR && !gt_error_is_set(test_err));
  }
  gt_ensure(
         test_errnum == GT_TRANSLATOR_END && !gt_error_is_set(test_err));

  /* check 3-frame translation */
  gt_ensure(strcmp(gt_str_get(protein[0]),
                         "SFSF*LQRAICLCVD*KKSV**QLLNWLPAVSKLKFY*LR") == 0);
  gt_ensure(strcmp(gt_str_get(protein[1]),
                         "AFHSDCNGQYVSVWIKKRVSDSSF*TGYLP*VN*NFIDL") == 0);
  gt_ensure(strcmp(gt_str_get(protein[2]),
                         "LFILTATGNMSLCGLKKECLIAASELVTCRE*IKILLT*") == 0);

  /* find start codon -- positive */
  gt_error_unset(test_err);
  gt_codon_iterator_rewind(ci);
  test_errnum = gt_translator_find_startcodon(tr, &pos, test_err);
  gt_ensure(!test_errnum && !gt_error_is_set(test_err));
  gt_ensure(pos == 11UL);

  /* find stop codon -- positive */
  gt_error_unset(test_err);
  gt_codon_iterator_rewind(ci);
  test_errnum = gt_translator_find_stopcodon(tr, &pos, test_err);
  gt_ensure(!test_errnum && !gt_error_is_set(test_err));
  gt_ensure(pos == 12UL);

  /* find arbitrary codons -- positive */
  gt_error_unset(test_err);
  gt_codon_iterator_rewind(ci);
  test_errnum = gt_translator_find_codon(tr, codons, &pos, test_err);
  gt_ensure(!test_errnum && !gt_error_is_set(test_err));
  gt_ensure(pos == 14UL);

  /* find arbitrary codons -- negative (invalid codons) */
  gt_error_unset(test_err);
  gt_codon_iterator_rewind(ci);
  test_errnum = gt_translator_find_codon(tr, invalidcodons, &pos, test_err);
  gt_ensure(
         test_errnum == GT_TRANSLATOR_ERROR && gt_error_is_set(test_err));

  gt_error_unset(test_err);
  gt_codon_iterator_delete(ci);
  ci = gt_codon_iterator_simple_new(invalidseq,
                                    (GtUword) strlen(invalidseq),
                                    test_err);
  gt_ensure(ci && !gt_error_is_set(test_err));
  gt_translator_reset(tr, ci);
  /* check translation of sequence with invalid beginning */
  test_errnum = gt_translator_next(tr, &translated, &frame, test_err);
  gt_ensure(test_errnum && gt_error_is_set(test_err));

  /* check translation of sequence with invalid character within */
  gt_error_unset(test_err);
  gt_codon_iterator_delete(ci);
  ci = gt_codon_iterator_simple_new(invalidseq2,
                                    (GtUword) strlen(invalidseq2),
                                    test_err);
  gt_ensure(ci && !gt_error_is_set(test_err));
  gt_translator_reset(tr, ci);
  test_errnum = gt_translator_next(tr, &translated, &frame, test_err);
  while (!test_errnum && translated) {
    gt_str_append_char(protein[frame], translated);
    test_errnum = gt_translator_next(tr, &translated, &frame, test_err);
  }
  gt_ensure(
         test_errnum == GT_TRANSLATOR_ERROR && gt_error_is_set(test_err));

  /* find start codon -- fail */
  gt_error_unset(test_err);
  gt_codon_iterator_delete(ci);
  ci = gt_codon_iterator_simple_new(no_startcodon,
                                    (GtUword) strlen(no_startcodon),
                                    test_err);
  gt_ensure(ci && !gt_error_is_set(test_err));
  gt_translator_reset(tr, ci);
  test_errnum = gt_translator_find_startcodon(tr, &pos, test_err);
  gt_ensure(
         test_errnum == GT_TRANSLATOR_END && !gt_error_is_set(test_err));

  /* find stop codon -- fail */
  gt_error_unset(test_err);
  gt_codon_iterator_rewind(ci);
  test_errnum = gt_translator_find_stopcodon(tr, &pos, test_err);
  gt_ensure(
         test_errnum == GT_TRANSLATOR_END && !gt_error_is_set(test_err));

  /* find arbitrary codons -- negative (none there) */
  gt_error_unset(test_err);
  gt_codon_iterator_rewind(ci);
  test_errnum = gt_translator_find_codon(tr, codons, &pos, test_err);
  gt_ensure(
         test_errnum == GT_TRANSLATOR_END && !gt_error_is_set(test_err));

  gt_codon_iterator_delete(ci);
  gt_translator_delete(tr);
  gt_str_delete(protein[0]);
  gt_str_delete(protein[1]);
  gt_str_delete(protein[2]);
  gt_str_array_delete(codons);
  gt_str_array_delete(invalidcodons);
  gt_error_delete(test_err);

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %rbx
andq $0x0, 0x8(%rsp)
testq %rdi, %rdi
je 0x87527
movq %rbx, %rdi
callq 0xc103
testb %al, %al
jne 0x87e32
movq %rbx, 0x18(%rsp)
callq 0xbff0
movq %rax, %rbx
leaq 0x5d06f(%rip), %rdi     # 0xe45aa
pushq $0x78
popq %rsi
movq %rax, %rdx
callq 0x83627
movq %rax, 0x20(%rsp)
movq %rax, %rdi
callq 0x86e46
movq %rax, %r15
callq 0x13d5c
movq %rax, 0x40(%rsp)
movq %rax, 0x50(%rsp)
callq 0x13d5c
movq %rax, 0x38(%rsp)
movq %rax, 0x58(%rsp)
callq 0x13d5c
movq %rax, 0x30(%rsp)
movq %rax, 0x60(%rsp)
callq 0x1532c
movq %rax, %r12
leaq 0x5d110(%rip), %r14     # 0xe46a2
movq %rax, %rdi
movq %r14, %rsi
callq 0x15407
leaq 0x5d102(%rip), %rsi     # 0xe46a6
movq %r12, 0x28(%rsp)
movq %r12, %rdi
callq 0x15407
callq 0x1532c
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x15407
leaq 0x5d0df(%rip), %rsi     # 0xe46aa
movq %r12, 0x48(%rsp)
movq %r12, %rdi
callq 0x15407
movq %rbx, %rdi
callq 0xc146
leaq 0x7(%rsp), %r13
leaq 0x14(%rsp), %rbp
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %rbx, %rcx
callq 0x87367
movl %eax, %r12d
movb $0x1, %r14b
testl %r12d, %r12d
jne 0x8768e
movb 0x7(%rsp), %al
testb %al, %al
je 0x8768e
movl 0x14(%rsp), %ecx
movq 0x50(%rsp,%rcx,8), %rdi
movsbl %al, %esi
callq 0x140b1
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %rbx, %rcx
callq 0x87367
movl %eax, %r12d
testb $0x1, %r14b
movl $0x0, %r14d
je 0x87601
cmpl $-0x2, %r12d
je 0x87658
movq %rbx, %rdi
callq 0xc103
movb $0x1, %r14b
testb %al, %al
je 0x87601
xorl %r14d, %r14d
movq 0x18(%rsp), %rdi
leaq 0x44af2(%rip), %rsi     # 0xcc159
leaq 0x5d03f(%rip), %rdx     # 0xe46ad
leaq 0x5d015(%rip), %rcx     # 0xe468a
leaq 0x5cd7b(%rip), %r8      # 0xe43f7
movl $0xfa, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x87601
testb $0x1, %r14b
je 0x876df
cmpl $-0x1, %r12d
movq 0x18(%rsp), %r14
jne 0x876af
movq %rbx, %rdi
callq 0xc103
testb %al, %al
je 0x87c91
leaq 0x44aa3(%rip), %rsi     # 0xcc159
leaq 0x5d031(%rip), %rdx     # 0xe46ee
leaq 0x5cfc6(%rip), %rcx     # 0xe468a
leaq 0x5cd2c(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0xfd, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x876e6
xorl %ebp, %ebp
movq 0x18(%rsp), %r14
movq 0x20(%rsp), %r12
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x832bc
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
movq %rbx, %rdx
callq 0x86f91
testb %bpl, %bpl
je 0x87754
testl %eax, %eax
jne 0x87724
movq %rbx, %rdi
callq 0xc103
testb %al, %al
je 0x87ce3
leaq 0x44a2e(%rip), %rsi     # 0xcc159
leaq 0x5d162(%rip), %rdx     # 0xe4894
leaq 0x5cf51(%rip), %rcx     # 0xe468a
leaq 0x5ccb7(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x10b, %r9d            # imm = 0x10B
xorl %eax, %eax
callq 0xc007
jmp 0x87756
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x832bc
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
movq %rbx, %rdx
callq 0x870ab
testb %bpl, %bpl
je 0x877bf
testl %eax, %eax
jne 0x8778f
movq %rbx, %rdi
callq 0xc103
testb %al, %al
je 0x87d1e
leaq 0x449c3(%rip), %rsi     # 0xcc159
leaq 0x5d0f7(%rip), %rdx     # 0xe4894
leaq 0x5cee6(%rip), %rcx     # 0xe468a
leaq 0x5cc4c(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x112, %r9d            # imm = 0x112
xorl %eax, %eax
callq 0xc007
jmp 0x877c1
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x832bc
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq 0x28(%rsp), %rsi
movq %rbx, %rcx
callq 0x871c5
testb %bpl, %bpl
je 0x8782f
testl %eax, %eax
jne 0x877ff
movq %rbx, %rdi
callq 0xc103
testb %al, %al
je 0x87d59
leaq 0x44953(%rip), %rsi     # 0xcc159
leaq 0x5d087(%rip), %rdx     # 0xe4894
leaq 0x5ce76(%rip), %rcx     # 0xe468a
leaq 0x5cbdc(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x119, %r9d            # imm = 0x119
xorl %eax, %eax
callq 0xc007
jmp 0x87831
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x832bc
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq 0x48(%rsp), %rsi
movq %rbx, %rcx
callq 0x871c5
testb %bpl, %bpl
je 0x8789f
cmpl $-0x2, %eax
jne 0x8786f
movq %rbx, %rdi
callq 0xc103
movb $0x1, %bpl
testb %al, %al
jne 0x878a1
leaq 0x448e3(%rip), %rsi     # 0xcc159
leaq 0x5d066(%rip), %rdx     # 0xe48e3
leaq 0x5ce06(%rip), %rcx     # 0xe468a
leaq 0x5cb6c(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x121, %r9d            # imm = 0x121
xorl %eax, %eax
callq 0xc007
jmp 0x878a1
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x83360
leaq 0x5cd88(%rip), %rdi     # 0xe4640
pushq $0x24
popq %rsi
movq %rbx, %rdx
callq 0x83627
movq %rax, %r12
testb %bpl, %bpl
je 0x8790f
testq %r12, %r12
je 0x878df
movq %rbx, %rdi
callq 0xc103
movb $0x1, %bpl
testb %al, %al
je 0x87911
leaq 0x44873(%rip), %rsi     # 0xcc159
leaq 0x5d036(%rip), %rdx     # 0xe4923
leaq 0x5cd96(%rip), %rcx     # 0xe468a
leaq 0x5cafc(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x128, %r9d            # imm = 0x128
xorl %eax, %eax
callq 0xc007
jmp 0x87911
xorl %ebp, %ebp
movq %r15, %rdi
movq %r12, %rsi
callq 0x86e9d
leaq 0x7(%rsp), %rsi
leaq 0x14(%rsp), %rdx
movq %r15, %rdi
movq %rbx, %rcx
callq 0x87367
testb %bpl, %bpl
je 0x87979
testl %eax, %eax
je 0x87949
movq %rbx, %rdi
callq 0xc103
movb $0x1, %bpl
testb %al, %al
jne 0x8797b
leaq 0x44809(%rip), %rsi     # 0xcc159
leaq 0x5cfed(%rip), %rdx     # 0xe4944
leaq 0x5cd2c(%rip), %rcx     # 0xe468a
leaq 0x5ca92(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x12c, %r9d            # imm = 0x12C
xorl %eax, %eax
callq 0xc007
jmp 0x8797b
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x83360
leaq 0x5ccd3(%rip), %rdi     # 0xe4665
pushq $0x24
popq %rsi
movq %rbx, %rdx
callq 0x83627
movq %rax, %r12
testb %bpl, %bpl
je 0x879e9
testq %r12, %r12
je 0x879b9
movq %rbx, %rdi
callq 0xc103
movb $0x1, %bpl
testb %al, %al
je 0x879eb
leaq 0x44799(%rip), %rsi     # 0xcc159
leaq 0x5cf5c(%rip), %rdx     # 0xe4923
leaq 0x5ccbc(%rip), %rcx     # 0xe468a
leaq 0x5ca22(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x134, %r9d            # imm = 0x134
xorl %eax, %eax
callq 0xc007
jmp 0x879eb
xorl %ebp, %ebp
movq %r15, %rdi
movq %r12, %rsi
callq 0x86e9d
leaq 0x7(%rsp), %r14
leaq 0x14(%rsp), %r13
movq %r15, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %rbx, %rcx
callq 0x87367
testl %eax, %eax
jne 0x87a30
movb 0x7(%rsp), %cl
testb %cl, %cl
je 0x87a30
movl 0x14(%rsp), %eax
movq 0x50(%rsp,%rax,8), %rdi
movsbl %cl, %esi
callq 0x140b1
jmp 0x87a00
testb %bpl, %bpl
je 0x87a7e
cmpl $-0x2, %eax
movq 0x18(%rsp), %r13
jne 0x87a4e
movq %rbx, %rdi
callq 0xc103
movb $0x1, %bpl
testb %al, %al
jne 0x87a85
leaq 0x44704(%rip), %rsi     # 0xcc159
leaq 0x5ce87(%rip), %rdx     # 0xe48e3
leaq 0x5cc27(%rip), %rcx     # 0xe468a
leaq 0x5c98d(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r13, %rdi
movl $0x13c, %r9d            # imm = 0x13C
xorl %eax, %eax
callq 0xc007
jmp 0x87a85
xorl %ebp, %ebp
movq 0x18(%rsp), %r13
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x83360
leaq 0x5cb87(%rip), %rdi     # 0xe4623
pushq $0x1c
popq %rsi
movq %rbx, %rdx
callq 0x83627
movq %rax, %r12
testb %bpl, %bpl
je 0x87af3
testq %r12, %r12
je 0x87ac3
movq %rbx, %rdi
callq 0xc103
movb $0x1, %bpl
testb %al, %al
je 0x87af5
leaq 0x4468f(%rip), %rsi     # 0xcc159
leaq 0x5ce52(%rip), %rdx     # 0xe4923
leaq 0x5cbb2(%rip), %rcx     # 0xe468a
leaq 0x5c918(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r13, %rdi
movl $0x144, %r9d            # imm = 0x144
xorl %eax, %eax
callq 0xc007
jmp 0x87af5
xorl %ebp, %ebp
movq %r15, %rdi
movq %r12, %rsi
callq 0x86e9d
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
movq %rbx, %rdx
callq 0x86f91
testb %bpl, %bpl
je 0x87b59
cmpl $-0x1, %eax
jne 0x87b29
movq %rbx, %rdi
callq 0xc103
movb $0x1, %bpl
testb %al, %al
je 0x87b5b
leaq 0x44629(%rip), %rsi     # 0xcc159
leaq 0x5cbb7(%rip), %rdx     # 0xe46ee
leaq 0x5cb4c(%rip), %rcx     # 0xe468a
leaq 0x5c8b2(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r13, %rdi
movl $0x148, %r9d            # imm = 0x148
xorl %eax, %eax
callq 0xc007
jmp 0x87b5b
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x832bc
leaq 0x8(%rsp), %rsi
movq %r15, %rdi
movq %rbx, %rdx
callq 0x870ab
testb %bpl, %bpl
je 0x87bc4
cmpl $-0x1, %eax
jne 0x87b94
movq %rbx, %rdi
callq 0xc103
movb $0x1, %bpl
testb %al, %al
je 0x87bc6
leaq 0x445be(%rip), %rsi     # 0xcc159
leaq 0x5cb4c(%rip), %rdx     # 0xe46ee
leaq 0x5cae1(%rip), %rcx     # 0xe468a
leaq 0x5c847(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r13, %rdi
movl $0x14f, %r9d            # imm = 0x14F
xorl %eax, %eax
callq 0xc007
jmp 0x87bc6
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0xc146
movq %r12, %rdi
callq 0x832bc
leaq 0x8(%rsp), %rdx
movq %r15, %rdi
movq 0x28(%rsp), %rsi
movq %rbx, %rcx
callq 0x871c5
pushq $-0x1
popq %r14
testb %bpl, %bpl
je 0x87c33
cmpl $-0x1, %eax
jne 0x87c07
movq %rbx, %rdi
callq 0xc103
xorl %ebp, %ebp
testb %al, %al
je 0x87c36
leaq 0x4454b(%rip), %rsi     # 0xcc159
leaq 0x5cad9(%rip), %rdx     # 0xe46ee
leaq 0x5ca6e(%rip), %rcx     # 0xe468a
leaq 0x5c7d4(%rip), %r8      # 0xe43f7
movq %r13, %rdi
movl $0x156, %r9d            # imm = 0x156
xorl %eax, %eax
callq 0xc007
movl %r14d, %ebp
movq %r12, %rdi
callq 0x83360
movq %r15, %rdi
callq 0x874ce
movq 0x40(%rsp), %rdi
callq 0x152db
movq 0x38(%rsp), %rdi
callq 0x152db
movq 0x30(%rsp), %rdi
callq 0x152db
movq 0x28(%rsp), %rdi
callq 0x1583a
movq 0x48(%rsp), %rdi
callq 0x1583a
movq %rbx, %rdi
callq 0xc291
movl %ebp, %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x40(%rsp), %rdi
callq 0x143d2
leaq 0x5ca8b(%rip), %rsi     # 0xe472d
movq %rax, %rdi
callq 0xb880
testl %eax, %eax
movq 0x20(%rsp), %r12
je 0x87d94
leaq 0x4449b(%rip), %rsi     # 0xcc159
leaq 0x5ca91(%rip), %rdx     # 0xe4756
leaq 0x5c9be(%rip), %rcx     # 0xe468a
leaq 0x5c724(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x101, %r9d            # imm = 0x101
jmp 0x87e1e
movb $0x1, %bpl
cmpq $0xb, 0x8(%rsp)
je 0x87756
leaq 0x44460(%rip), %rsi     # 0xcc159
leaq 0x5cbbf(%rip), %rdx     # 0xe48bf
leaq 0x5c983(%rip), %rcx     # 0xe468a
leaq 0x5c6e9(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x10c, %r9d            # imm = 0x10C
jmp 0x8774b
movb $0x1, %bpl
cmpq $0xc, 0x8(%rsp)
je 0x877c1
leaq 0x44425(%rip), %rsi     # 0xcc159
leaq 0x5cb90(%rip), %rdx     # 0xe48cb
leaq 0x5c948(%rip), %rcx     # 0xe468a
leaq 0x5c6ae(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x113, %r9d            # imm = 0x113
jmp 0x877b6
movb $0x1, %bpl
cmpq $0xe, 0x8(%rsp)
je 0x87831
leaq 0x443ea(%rip), %rsi     # 0xcc159
leaq 0x5cb61(%rip), %rdx     # 0xe48d7
leaq 0x5c90d(%rip), %rcx     # 0xe468a
leaq 0x5c673(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x11a, %r9d            # imm = 0x11A
jmp 0x87826
movq 0x38(%rsp), %rdi
callq 0x143d2
leaq 0x5ca01(%rip), %rsi     # 0xe47a6
movq %rax, %rdi
callq 0xb880
testl %eax, %eax
je 0x87dda
leaq 0x443a1(%rip), %rsi     # 0xcc159
leaq 0x5ca0f(%rip), %rdx     # 0xe47ce
leaq 0x5c8c4(%rip), %rcx     # 0xe468a
leaq 0x5c62a(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x103, %r9d            # imm = 0x103
jmp 0x87e1e
movq 0x30(%rsp), %rdi
callq 0x143d2
leaq 0x5ca32(%rip), %rsi     # 0xe481d
movq %rax, %rdi
callq 0xb880
testl %eax, %eax
je 0x87e2a
leaq 0x4435b(%rip), %rsi     # 0xcc159
leaq 0x5ca40(%rip), %rdx     # 0xe4845
leaq 0x5c87e(%rip), %rcx     # 0xe468a
leaq 0x5c5e4(%rip), %r8      # 0xe43f7
xorl %ebp, %ebp
movq %r14, %rdi
movl $0x105, %r9d            # imm = 0x105
xorl %eax, %eax
callq 0xc007
jmp 0x876eb
movb $0x1, %bpl
jmp 0x876eb
movq 0xa617f(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x42223(%rip), %rsi     # 0xca066
leaq 0x4280f(%rip), %rdx     # 0xca659
leaq 0x5c839(%rip), %rcx     # 0xe468a
leaq 0x5c59f(%rip), %r8      # 0xe43f7
movl $0xe4, %r9d
xorl %eax, %eax
callq 0xb8c0
callq 0xb300
nop