// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/reads2twobit.c
// Function: gt_reads2twobit_encode
int gt_reads2twobit_encode(GtReads2Twobit *r2t, GtError *err)
{
  int had_err = 0;
  const GtUword noflibraries = gt_array_size(r2t->collection);
  GtUword libnum;
  GtReads2TwobitEncodeState state;

  gt_error_check(err);
  gt_assert(r2t != NULL);
  gt_assert(r2t->twobitencoding == NULL);
  gt_reads2twobit_init_encode(r2t, &state);
  for (libnum = 0; libnum < noflibraries && !had_err; libnum++)
  {
    GtReadsLibraryInfo *rli = gt_array_get(r2t->collection, libnum);
    if (!rli->paired)
    {
      had_err = gt_reads2twobit_encode_unpaired_library(&state, rli, err);
    }
    else
    {
      had_err = gt_reads2twobit_encode_paired_library(&state, rli, err);
    }
  }
  gt_reads2twobit_finalize_encode(r2t, &state);
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc28, %rsp            # imm = 0xC28
movq %rsi, %r12
movq %rdi, %r13
movq 0x8(%rdi), %rdi
callq 0x586a4
movq %rax, 0x58(%rsp)
testq %r12, %r12
je 0x188ebe
movq %r12, %rdi
callq 0x89eb7
testb %al, %al
jne 0x18a5ab
cmpq $0x0, 0x10(%r13)
jne 0x18a549
movq 0x8(%r13), %rdi
callq 0x586a4
movq %rax, %rbx
andq $0x0, 0x868(%rsp)
movq 0x8(%r13), %rdi
leaq 0x30be(%rip), %rsi      # 0x18bfa7
callq 0x587b0
xorl %r15d, %r15d
xorl %r14d, %r14d
cmpq %r14, %rbx
je 0x188f16
movq 0x8(%r13), %rdi
movq %r14, %rsi
callq 0x581aa
addq 0x28(%rax), %r15
movq %r15, 0x868(%rsp)
incq %r14
jmp 0x188ef4
shrq $0x5, %r15
leaq 0x2(,%r15,8), %rdi
leaq 0x1c972d(%rip), %rsi    # 0x352656
movl $0x14c, %edx            # imm = 0x14C
callq 0x93160
movq %rax, 0x10(%r13)
leaq 0x888(%rsp), %rsi
xorpd %xmm0, %xmm0
movupd %xmm0, 0x8(%rsi)
movupd %xmm0, 0x18(%rsi)
movupd %xmm0, 0x28(%rsi)
movupd %xmm0, 0x38(%rsi)
movupd %xmm0, 0x48(%rsi)
movupd %xmm0, 0x58(%rsi)
movq %rax, (%rsi)
leaq 0x8f0(%rsp), %rdi
pushq $0xd
popq %rcx
rep  movsq (%rsi), %es:(%rdi)
xorl %eax, %eax
cmpq $0x100, %rax            # imm = 0x100
je 0x188f87
orq $-0x1, 0x68(%rsp,%rax,8)
incq %rax
jmp 0x188f74
andq $0x0, 0x270(%rsp)
andq $0x0, 0x370(%rsp)
pushq $0x1
popq %rax
movq %rax, 0x280(%rsp)
movq %rax, 0x380(%rsp)
pushq $0x2
popq %rax
movq %rax, 0x2a0(%rsp)
movq %rax, 0x3a0(%rsp)
pushq $0x3
popq %rax
movq %rax, 0x308(%rsp)
movq %rax, 0x408(%rsp)
andw $0x0, 0x958(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x870(%rsp)
andq $0x0, 0x880(%rsp)
movupd %xmm0, 0x960(%rsp)
xorl %eax, %eax
cmpq %rax, 0x38(%r13)
jne 0x18a57a
andq $0x0, 0x970(%rsp)
movupd %xmm0, 0x988(%rsp)
movupd %xmm0, 0x9a0(%rsp)
movb 0x80(%r13), %al
movb %al, 0x980(%rsp)
movb 0x81(%r13), %al
movb %al, 0x998(%rsp)
movq 0x88(%r13), %rax
movq %rax, 0x9c0(%rsp)
orq $-0x1, 0x9d0(%rsp)
movb $0x0, 0x9e0(%rsp)
movb 0x91(%r13), %al
movb %al, 0x9c8(%rsp)
cmpb $0x1, %al
movq %r12, 0x18(%rsp)
jne 0x189087
movq 0x868(%rsp), %rdi
addq $0x2, %rdi
callq 0x2c0178
jmp 0x189089
xorl %eax, %eax
leaq 0x870(%rsp), %rbx
movq %rax, 0x168(%rbx)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x178(%rbx)
movupd 0x98(%r13), %xmm0
movupd %xmm0, 0x188(%rbx)
movb 0xa8(%r13), %al
movb %al, 0x198(%rbx)
leaq 0xb0(%r13), %rax
movq %rax, 0x1a0(%rbx)
leaq 0xb8(%r13), %rax
movq %rax, 0x1a8(%rbx)
callq 0xacb84
movq %rax, 0x140(%rbx)
callq 0xacb84
movq %rax, 0x148(%rbx)
leaq 0xa20(%rsp), %r15
leaq 0xb20(%rsp), %r12
xorl %r14d, %r14d
xorl %ebx, %ebx
movq %r13, 0x28(%rsp)
cmpq 0x58(%rsp), %r14
jae 0x18a1b4
testl %ebx, %ebx
jne 0x18a1b4
movq 0x8(%r13), %rdi
movq %r14, %rsi
callq 0x581aa
movq %rax, %rcx
movq %rax, 0x10(%rsp)
addq $0x8, %rax
movq %rax, 0x20(%rsp)
movq 0x8(%rcx), %rdi
cmpb $0x0, (%rcx)
movq %r14, 0x60(%rsp)
je 0x1891e2
movq %rcx, 0x38(%rsp)
testq %rdi, %rdi
je 0x18a423
callq 0xad1fa
movq %rax, %rdi
leaq 0x171cbe(%rip), %rsi    # 0x2fae2d
leaq 0x1c94e0(%rip), %rdx    # 0x352656
movl $0x4f8, %ecx            # imm = 0x4F8
movq 0x18(%rsp), %r8
callq 0x8a156
pushq $-0x1
popq %rbx
testq %rax, %rax
je 0x18971b
movq %rax, %rbp
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
testq %rdi, %rdi
je 0x1893f8
callq 0xad1fa
movq %rax, %rdi
leaq 0x171c78(%rip), %rsi    # 0x2fae2d
leaq 0x1c949a(%rip), %rdx    # 0x352656
movl $0x4fd, %ecx            # imm = 0x4FD
movq 0x18(%rsp), %r8
callq 0x8a156
movq %rax, %r14
testq %rax, %rax
jne 0x1893fb
xorl %r14d, %r14d
pushq $-0x1
popq %rbx
jmp 0x1896cd
callq 0xad1fa
movq %rax, %rdi
leaq 0x171c3c(%rip), %rsi    # 0x2fae2d
leaq 0x1c945e(%rip), %rdx    # 0x352656
movl $0x351, %ecx            # imm = 0x351
movq 0x18(%rsp), %r8
callq 0x8a156
pushq $-0x1
popq %rbx
testq %rax, %rax
je 0x18971b
movq %rax, %r14
movq 0x968(%rsp), %rbx
movq 0x8c8(%rsp), %rax
movq 0x960(%rsp), %rcx
movq %rcx, 0x40(%rsp)
movq 0x10(%rsp), %rbp
movq %rax, 0x38(%rbp)
movq %r12, %rdi
movl $0x100, %esi            # imm = 0x100
movq %r14, %rdx
callq 0x17bc0
cmpq %r12, %rax
movq %rbx, 0x38(%rsp)
je 0x1892c4
movb $0x1, %bl
testq %rax, %rax
jne 0x18a4b6
cmpb $0x0, 0x959(%rsp)
jne 0x189275
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
movq 0x8c8(%rsp), %rax
movq 0x38(%rbp), %rdx
movq %rax, %rcx
subq %rdx, %rcx
jb 0x18a454
movq %rcx, 0x40(%rbp)
cmpb $0x1, 0x958(%rsp)
jne 0x1892b6
movq 0x970(%rsp), %rcx
testq %rdx, %rdx
je 0x189632
movq -0x8(%rcx,%rdx,8), %rdx
jmp 0x189634
imulq 0x8e8(%rsp), %rcx
jmp 0x18963f
movzbl 0xb20(%rsp), %eax
cmpl $0x40, %eax
je 0x189739
cmpl $0x3e, %eax
jne 0x1899a1
xorl %ebx, %ebx
cmpb $0x3e, %al
jne 0x18936c
movq 0x8c8(%rsp), %rax
cmpq 0x38(%rbp), %rax
jbe 0x189314
cmpb $0x0, 0x959(%rsp)
jne 0x18930a
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
leaq 0x68(%rsp), %rdi
callq 0x18c4cd
xorl %eax, %eax
movzbl %al, %ecx
andl $0x1, %ecx
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x18c7d7
movq %r12, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x189385
cmpb $0xa, 0xc1e(%rsp)
sete %al
notb %bl
orb %al, %bl
testb $0x1, %bl
jne 0x189385
movq %r12, %rdi
movl $0x100, %esi            # imm = 0x100
movq %r14, %rdx
callq 0x17bc0
xorl %ebx, %ebx
testq %rax, %rax
je 0x18932b
movb $0x1, %al
movb $0x1, %bl
jmp 0x189316
cmpb $0x0, 0x959(%rsp)
jne 0x1893d1
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
callq 0x18c805
jmp 0x1893d1
pushq $0xd
popq %rcx
leaq 0x8f0(%rsp), %rdi
leaq 0x888(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
incq 0x8c8(%rsp)
xorl %eax, %eax
movb %al, 0x959(%rsp)
leaq 0x870(%rsp), %rcx
xorpd %xmm0, %xmm0
movupd %xmm0, (%rcx)
andq $0x0, 0x10(%rcx)
orq $-0x1, 0x9d0(%rsp)
movb %al, 0x9e0(%rsp)
movq %r12, %rdi
movl $0x100, %esi            # imm = 0x100
movq %r14, %rdx
callq 0x17bc0
cmpq %r12, %rax
jne 0x189728
movb $0x1, %bl
movb 0xb20(%rsp), %al
jmp 0x1892e0
xorl %r14d, %r14d
addq $0x10, 0x38(%rsp)
movq 0x968(%rsp), %rbx
movq 0x8c8(%rsp), %rax
movq 0x960(%rsp), %rcx
movq %rcx, 0x50(%rsp)
movq 0x10(%rsp), %rcx
movq %rax, 0x38(%rcx)
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
cmpq %r15, %rax
movq %rbx, 0x40(%rsp)
je 0x1894a0
xorl %ebx, %ebx
testq %rax, %rax
jne 0x18a4e7
movq 0x8c8(%rsp), %rax
movq 0x10(%rsp), %rsi
movq 0x38(%rsi), %rdx
movq %rax, %rcx
subq %rdx, %rcx
jb 0x18a485
movq %rcx, 0x40(%rsi)
cmpb $0x1, 0x958(%rsp)
jne 0x189492
movq 0x970(%rsp), %rcx
testq %rdx, %rdx
je 0x18968a
movq -0x8(%rcx,%rdx,8), %rdx
jmp 0x18968c
imulq 0x8e8(%rsp), %rcx
jmp 0x189697
movzbl 0xa20(%rsp), %eax
cmpl $0x40, %eax
movq %r14, 0x30(%rsp)
je 0x1899cb
cmpl $0x3e, %eax
jne 0x189ca7
testq %r14, %r14
je 0x189ce3
xorl %ebx, %ebx
leaq 0x1c9c93(%rip), %rdi    # 0x353164
xorl %eax, %eax
callq 0x92a82
movb $0x0, 0xb20(%rsp)
cmpb $0x3e, 0xa20(%rsp)
jne 0x189514
movq 0x8c8(%rsp), %rcx
movb 0x959(%rsp), %al
movq 0x10(%rsp), %rdx
cmpq 0x38(%rdx), %rcx
jbe 0x189534
testb %al, %al
jne 0x189538
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
jmp 0x189538
cmpb $0x0, 0x959(%rsp)
jne 0x1895ec
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
callq 0x18c805
jmp 0x1895ec
testb %al, %al
je 0x189548
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x18cc3b
xorl %eax, %eax
movzbl %al, %ecx
andl $0x1, %ecx
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x18c7d7
movq %r15, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x1895a0
cmpb $0xa, 0xb1e(%rsp)
sete %al
notb %bl
orb %al, %bl
testb $0x1, %bl
jne 0x1895a0
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
xorl %ebx, %ebx
testq %rax, %rax
je 0x18955f
movb $0x1, %al
movb $0x1, %bl
jmp 0x18954a
pushq $0xd
popq %rcx
leaq 0x8f0(%rsp), %rdi
leaq 0x888(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
incq 0x8c8(%rsp)
xorl %eax, %eax
movb %al, 0x959(%rsp)
leaq 0x870(%rsp), %rcx
xorpd %xmm0, %xmm0
movupd %xmm0, (%rcx)
andq $0x0, 0x10(%rcx)
orq $-0x1, 0x9d0(%rsp)
movb %al, 0x9e0(%rsp)
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
movb $0x1, %bl
cmpq %r15, %rax
je 0x1894e0
cmpb $0x0, 0x959(%rsp)
jne 0x18961b
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x18cc3b
xorl %ebx, %ebx
jmp 0x18944c
xorl %edx, %edx
movq -0x8(%rcx,%rax,8), %rcx
incq %rcx
subq %rdx, %rcx
movq %rcx, 0x30(%rbp)
movq 0x38(%rsp), %rcx
subq 0x968(%rsp), %rcx
movq 0x960(%rsp), %rax
subq 0x40(%rsp), %rax
addq 0x28(%rbp), %rcx
imulq $-0x3, %rax, %rax
addq %rax, %rcx
movq %rcx, 0x28(%rbp)
testb %bl, %bl
je 0x18967a
movq 0x20(%rsp), %rax
jmp 0x189709
movq %r14, %rdi
callq 0x8a4fd
pushq $-0x1
popq %rbx
jmp 0x18971b
xorl %edx, %edx
movq -0x8(%rcx,%rax,8), %rcx
incq %rcx
subq %rdx, %rcx
movq 0x10(%rsp), %rdx
movq %rcx, 0x30(%rdx)
movq 0x40(%rsp), %rcx
subq 0x968(%rsp), %rcx
movq 0x960(%rsp), %rax
subq 0x50(%rsp), %rax
addq 0x28(%rdx), %rcx
imulq $-0x3, %rax, %rax
addq %rax, %rcx
movq %rcx, 0x28(%rdx)
testl %ebx, %ebx
je 0x1896e4
movq %rbp, %rdi
callq 0x8a4fd
testq %r14, %r14
je 0x18971b
movq %r14, %rdi
callq 0x8a4fd
jmp 0x18971b
movq 0x20(%rsp), %rax
movq (%rax), %rsi
movq %rbp, %rdi
movq 0x18(%rsp), %rdx
callq 0x18c42d
movl %eax, %ebx
testq %r14, %r14
je 0x1896d5
testl %ebx, %ebx
jne 0x1896d5
movq 0x38(%rsp), %rax
movq (%rax), %rsi
movq %r14, %rdi
movq 0x18(%rsp), %rdx
callq 0x18c42d
movl %eax, %ebx
movq 0x60(%rsp), %r14
incq %r14
jmp 0x189110
leaq 0x68(%rsp), %rdi
callq 0x18c4cd
movb $0x1, %bl
jmp 0x189261
andq $0x0, 0xa20(%rsp)
andq $0x0, 0x870(%rsp)
andq $0x0, 0x880(%rsp)
xorl %ebp, %ebp
xorl %r13d, %r13d
testb $0x1, %bpl
je 0x1897bd
movq 0x988(%rsp), %rdx
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rcx
callq 0x18cb32
movl %eax, %ebx
movq 0xa20(%rsp), %rdx
movb $0x1, %bpl
cmpq 0x880(%rsp), %rdx
jne 0x189945
cmpq $-0x1, 0x9c0(%rsp)
je 0x1897af
movq 0x988(%rsp), %rsi
leaq 0x68(%rsp), %rdi
callq 0x18cb61
andq $0x0, 0xa20(%rsp)
jmp 0x189943
movzbl 0xb20(%rsp), %eax
cmpl $0x40, %eax
je 0x189857
cmpl $0x2b, %eax
jne 0x189934
movq %r12, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x18980b
testq %r13, %r13
je 0x18980b
cmpb $0xa, 0xc1e(%rsp)
je 0x18980b
movq %r12, %rdi
movl $0x100, %esi            # imm = 0x100
movq %r14, %rdx
callq 0x17bc0
movq %rax, %r13
jmp 0x1897d7
movq 0x880(%rsp), %rsi
incq %rsi
movb $0x1, %bpl
xorl %ebx, %ebx
cmpq 0x9a0(%rsp), %rsi
jbe 0x189945
movq %rsi, 0x9a0(%rsp)
movq 0x988(%rsp), %rdi
leaq 0x1c8e16(%rip), %rdx    # 0x352656
movl $0x315, %ecx            # imm = 0x315
callq 0x93472
movq %rax, 0x988(%rsp)
jmp 0x189945
movq 0x8c8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jbe 0x189888
cmpb $0x0, 0x959(%rsp)
jne 0x18987e
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
leaq 0x68(%rsp), %rdi
callq 0x18c4cd
testq %r13, %r13
setne %bl
xorl %eax, %eax
movzbl %al, %ecx
andl $0x1, %ecx
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x18c7d7
movq %r12, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x1898e6
cmpb $0xa, 0xc1e(%rsp)
sete %al
notb %bl
orb %al, %bl
testb $0x1, %bl
jne 0x1898e6
movq %r12, %rdi
movl $0x100, %esi            # imm = 0x100
movq %r14, %rdx
callq 0x17bc0
xorl %ebx, %ebx
testq %rax, %rax
je 0x1898a5
movb $0x1, %al
movb $0x1, %bl
jmp 0x189890
pushq $0xd
popq %rcx
leaq 0x8f0(%rsp), %rdi
leaq 0x888(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
incq 0x8c8(%rsp)
xorl %ebx, %ebx
movb %bl, 0x959(%rsp)
leaq 0x870(%rsp), %rax
andq $0x0, 0x10(%rax)
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
orq $-0x1, 0x9d0(%rsp)
movb %bl, 0x9e0(%rsp)
jmp 0x189943
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
callq 0x18c805
xorl %ebx, %ebx
xorl %ebp, %ebp
movq %r12, %rdi
movl $0x100, %esi            # imm = 0x100
movq %r14, %rdx
callq 0x17bc0
cmpq %r12, %rax
jne 0x189965
movq %r12, %r13
testl %ebx, %ebx
je 0x189759
leaq 0x68(%rsp), %rdi
callq 0x18c4cd
testl %ebx, %ebx
je 0x189cd2
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0xad1fa
xorl %ebx, %ebx
movq 0x18(%rsp), %rdi
leaq 0x1c9368(%rip), %rsi    # 0x352cfa
movq %rax, %rdx
xorl %eax, %eax
callq 0x89dbb
jmp 0x189cd4
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0xad1fa
xorl %ebx, %ebx
movq 0x18(%rsp), %rdi
leaq 0x1c9358(%rip), %rsi    # 0x352d14
movq %rax, %rdx
xorl %eax, %eax
callq 0x89dbb
jmp 0x189261
testq %r14, %r14
je 0x189e8e
xorl %r14d, %r14d
leaq 0x1c97d3(%rip), %rdi    # 0x3531b1
xorl %eax, %eax
callq 0x92a82
andq $0x0, 0x48(%rsp)
movb $0x1, 0xf(%rsp)
movb $0x0, 0xb20(%rsp)
andq $0x0, 0x870(%rsp)
andq $0x0, 0x880(%rsp)
xorl %r13d, %r13d
testb $0x1, %r14b
je 0x189a6d
movq 0x988(%rsp), %rdx
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
leaq 0x48(%rsp), %rcx
callq 0x18cb32
movl %eax, %ebx
movq 0x48(%rsp), %rdx
movb $0x1, %r14b
cmpq 0x880(%rsp), %rdx
jne 0x189c45
cmpq $-0x1, 0x9c0(%rsp)
je 0x189a62
movq 0x988(%rsp), %rsi
leaq 0x68(%rsp), %rdi
callq 0x18cb61
andq $0x0, 0x48(%rsp)
jmp 0x189b45
movzbl 0xa20(%rsp), %eax
cmpl $0x40, %eax
je 0x189b07
cmpl $0x2b, %eax
jne 0x189b36
movq %r15, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x189abb
testq %r13, %r13
je 0x189abb
cmpb $0xa, 0xb1e(%rsp)
je 0x189abb
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
movq %rax, %r13
jmp 0x189a87
movq 0x880(%rsp), %rsi
incq %rsi
movb $0x1, %r14b
xorl %ebx, %ebx
cmpq 0x9a0(%rsp), %rsi
jbe 0x189c45
movq %rsi, 0x9a0(%rsp)
movq 0x988(%rsp), %rdi
leaq 0x1c8b66(%rip), %rdx    # 0x352656
movl $0x458, %ecx            # imm = 0x458
callq 0x93472
movq %rax, 0x988(%rsp)
jmp 0x189c45
movq 0x8c8(%rsp), %rcx
movb 0x959(%rsp), %al
movq 0x10(%rsp), %rdx
cmpq 0x38(%rdx), %rcx
movq 0x30(%rsp), %r14
jbe 0x189b4d
testb %al, %al
jne 0x189b53
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
jmp 0x189b53
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
callq 0x18c805
xorl %ebx, %ebx
xorl %r14d, %r14d
jmp 0x189c45
xorl %ebx, %ebx
testb %al, %al
je 0x189b6a
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
leaq 0xf(%rsp), %rcx
callq 0x18ce1c
movl %eax, %ebx
testq %r13, %r13
setne %r14b
xorl %eax, %eax
movzbl %al, %ecx
andl $0x1, %ecx
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x18c7d7
movq %r15, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x189bce
cmpb $0xa, 0xb1e(%rsp)
sete %al
notb %r14b
orb %al, %r14b
testb $0x1, %r14b
jne 0x189bce
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
xorl %r14d, %r14d
testq %rax, %rax
je 0x189b88
movb $0x1, %al
movb $0x1, %r14b
jmp 0x189b73
movq 0xa00(%rsp), %rax
orq 0x9f8(%rsp), %rax
je 0x189bf6
movq 0x9b0(%rsp), %rdi
callq 0xad289
testq %rax, %rax
je 0x18a518
pushq $0xd
popq %rcx
leaq 0x8f0(%rsp), %rdi
leaq 0x888(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
incq 0x8c8(%rsp)
xorl %r14d, %r14d
movb %r14b, 0x959(%rsp)
leaq 0x870(%rsp), %rax
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
andq $0x0, 0x10(%rax)
orq $-0x1, 0x9d0(%rsp)
movb %r14b, 0x9e0(%rsp)
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
cmpq %r15, %rax
jne 0x189c65
movq %r15, %r13
testl %ebx, %ebx
je 0x189a0d
testl %ebx, %ebx
movq 0x28(%rsp), %r13
movq 0x30(%rsp), %r14
jne 0x18a17a
cmpb $0x0, 0x959(%rsp)
jne 0x189c8b
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
leaq 0x68(%rsp), %rdi
movq %r12, %rsi
movq %r14, %rdx
leaq 0xf(%rsp), %rcx
callq 0x18ce1c
movl %eax, %ebx
jmp 0x18a17a
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0xad1fa
movq 0x18(%rsp), %rdi
leaq 0x1c9054(%rip), %rsi    # 0x352d14
movq %rax, %rdx
xorl %eax, %eax
callq 0x89dbb
pushq $-0x1
popq %rbx
jmp 0x18944c
movb $0x1, %bl
movq 0x28(%rsp), %r13
movq 0x10(%rsp), %rbp
jmp 0x189261
xorl %r13d, %r13d
leaq 0x1c944f(%rip), %rdi    # 0x35313c
xorl %eax, %eax
callq 0x92a82
movb $0x1, %bl
cmpb $0x3e, 0xa20(%rsp)
jne 0x189da3
movq 0x8c8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jbe 0x189d3a
cmpb $0x0, 0x959(%rsp)
jne 0x189d2b
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
testb $0x1, %bl
je 0x189d3a
leaq 0x68(%rsp), %rdi
callq 0x18c4cd
movl %ebx, %r14d
xorb $0x1, %r14b
xorl %eax, %eax
movzbl %r14b, %edx
andl $0x1, %edx
movzbl %al, %ecx
andl $0x1, %ecx
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
callq 0x18c7d7
movq %r15, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x189db5
cmpb $0xa, 0xb1e(%rsp)
sete %al
notb %r13b
orb %al, %r13b
testb $0x1, %r13b
jne 0x189db5
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
xorl %r13d, %r13d
testq %rax, %rax
je 0x189d5d
movb $0x1, %al
movb $0x1, %r13b
jmp 0x189d43
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
callq 0x18c805
jmp 0x189e48
testb $0x1, %bl
je 0x189e0d
pushq $0xd
popq %rcx
leaq 0x8f0(%rsp), %rdi
leaq 0x888(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
incq 0x8c8(%rsp)
xorl %ebx, %ebx
movb %bl, 0x959(%rsp)
leaq 0x870(%rsp), %rax
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
andq $0x0, 0x10(%rax)
orq $-0x1, 0x9d0(%rsp)
movb %bl, 0x9e0(%rsp)
movq 0x30(%rsp), %r14
jmp 0x189e48
cmpb $0x0, 0x959(%rsp)
movq 0x30(%rsp), %r14
jne 0x189e24
incq 0x8c8(%rsp)
movq 0x870(%rsp), %rax
movq %rax, 0x878(%rsp)
andq $0x0, 0x870(%rsp)
andq $0x0, 0x880(%rsp)
movb $0x1, %bl
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
movb $0x1, %r13b
cmpq %r15, %rax
je 0x189cf6
cmpb $0x0, 0x959(%rsp)
jne 0x189e78
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
leaq 0x68(%rsp), %rdi
callq 0x18c4cd
xorl %ebx, %ebx
movq 0x28(%rsp), %r13
jmp 0x18944c
xorl %r14d, %r14d
leaq 0x1c92f1(%rip), %rdi    # 0x353189
xorl %eax, %eax
callq 0x92a82
andq $0x0, 0xb20(%rsp)
andq $0x0, 0x870(%rsp)
andq $0x0, 0x880(%rsp)
movb $0x1, %r13b
testb $0x1, %r14b
je 0x189f21
movq 0x988(%rsp), %rdx
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rcx
callq 0x18cb32
movl %eax, %ebx
movq 0xb20(%rsp), %rdx
movb $0x1, %r14b
cmpq 0x880(%rsp), %rdx
jne 0x18a11e
cmpq $-0x1, 0x9c0(%rsp)
je 0x189f13
movq 0x988(%rsp), %rsi
leaq 0x68(%rsp), %rdi
callq 0x18cb61
andq $0x0, 0xb20(%rsp)
jmp 0x18a11b
movzbl 0xa20(%rsp), %eax
cmpl $0x40, %eax
je 0x189fbe
cmpl $0x2b, %eax
jne 0x18a0d3
movq %r15, %rbx
movq %r15, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x189f72
testq %rbx, %rbx
je 0x189f72
cmpb $0xa, 0xb1e(%rsp)
je 0x189f72
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
movq %rax, %rbx
jmp 0x189f3e
movq 0x880(%rsp), %rsi
incq %rsi
movb $0x1, %r14b
xorl %ebx, %ebx
cmpq 0x9a0(%rsp), %rsi
jbe 0x18a11e
movq %rsi, 0x9a0(%rsp)
movq 0x988(%rsp), %rdi
leaq 0x1c86af(%rip), %rdx    # 0x352656
movl $0x40d, %ecx            # imm = 0x40D
callq 0x93472
movq %rax, 0x988(%rsp)
jmp 0x18a11e
movq 0x8c8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jbe 0x189fe5
cmpb $0x0, 0x959(%rsp)
jne 0x189fe5
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
testb $0x1, %r13b
je 0x18a012
movq 0x8c8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x38(%rcx), %rax
ja 0x18a008
cmpb $0x1, 0x959(%rsp)
jne 0x18a012
leaq 0x68(%rsp), %rdi
callq 0x18c4cd
movl %r13d, %ebx
xorb $0x1, %bl
xorl %eax, %eax
movzbl %bl, %edx
andl $0x1, %edx
movzbl %al, %ecx
andl $0x1, %ecx
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
callq 0x18c7d7
movb $0x1, %r14b
movq %r15, %rdi
callq 0x172d0
cmpq $0xff, %rax
jne 0x18a079
cmpb $0xa, 0xb1e(%rsp)
sete %al
notb %r14b
orb %al, %r14b
testb $0x1, %r14b
jne 0x18a079
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
xorl %r14d, %r14d
testq %rax, %rax
je 0x18a036
movb $0x1, %al
jmp 0x18a01a
testb $0x1, %r13b
je 0x18a0e2
pushq $0xd
popq %rcx
leaq 0x8f0(%rsp), %rdi
leaq 0x888(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
incq 0x8c8(%rsp)
xorl %ebx, %ebx
movb %bl, 0x959(%rsp)
leaq 0x870(%rsp), %rax
andq $0x0, 0x10(%rax)
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
orq $-0x1, 0x9d0(%rsp)
movb %bl, 0x9e0(%rsp)
xorl %r14d, %r14d
xorl %r13d, %r13d
jmp 0x18a11e
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
callq 0x18c805
jmp 0x18a119
cmpb $0x0, 0x959(%rsp)
jne 0x18a0f4
incq 0x8c8(%rsp)
movq 0x870(%rsp), %rax
movq %rax, 0x878(%rsp)
andq $0x0, 0x870(%rsp)
andq $0x0, 0x880(%rsp)
movb $0x1, %r13b
xorl %ebx, %ebx
xorl %r14d, %r14d
movq %r15, %rdi
movl $0x100, %esi            # imm = 0x100
movq %rbp, %rdx
callq 0x17bc0
cmpq %r15, %rax
jne 0x18a13b
testl %ebx, %ebx
je 0x189ebd
testl %ebx, %ebx
jne 0x18a153
cmpb $0x0, 0x959(%rsp)
jne 0x18a153
leaq 0x68(%rsp), %rdi
callq 0x18bfb0
movq 0x8c8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x38(%rcx), %rax
movq 0x28(%rsp), %r13
movq 0x30(%rsp), %r14
jbe 0x18a17a
leaq 0x68(%rsp), %rdi
callq 0x18c4cd
movq 0x20(%rsp), %rax
cmpl $-0x1, %ebx
je 0x18a191
testl %ebx, %ebx
je 0x18944c
movq 0x38(%rsp), %rax
movq (%rax), %rdi
callq 0xad1fa
movq 0x18(%rsp), %rdi
leaq 0x1c8b55(%rip), %rsi    # 0x352cfa
movq %rax, %rdx
xorl %eax, %eax
callq 0x89dbb
jmp 0x18944c
movq 0x8c8(%rsp), %rsi
movq %rsi, 0x40(%r13)
movq $0x3, 0x68(%r13)
movupd 0x960(%rsp), %xmm0
movupd %xmm0, 0x70(%r13)
xorl %eax, %eax
cmpq $0x4, %rax
je 0x18a1f1
movq 0x8a0(%rsp,%rax,8), %rcx
movq %rcx, 0x18(%r13,%rax,8)
incq %rax
jmp 0x18a1d9
cmpb $0x1, 0x958(%rsp)
jne 0x18a24b
movq 0x970(%rsp), %rdi
shlq $0x3, %rsi
leaq 0x1c8448(%rip), %rdx    # 0x352656
movl $0x572, %ecx            # imm = 0x572
callq 0x93472
movq %rax, 0x970(%rsp)
andq $0x0, 0x48(%r13)
movupd 0x8d8(%rsp), %xmm0
movupd %xmm0, 0x50(%r13)
movq 0x8c8(%rsp), %rcx
movq -0x8(%rax,%rcx,8), %rsi
movq %rsi, 0x60(%r13)
movq %rax, 0x38(%r13)
jmp 0x18a280
movq 0x8e8(%rsp), %rax
movq %rax, 0x48(%r13)
movq %rax, 0x50(%r13)
imulq %rax, %rsi
decq %rsi
testq %rax, %rax
cmoveq %rax, %rsi
movq %rax, 0x58(%r13)
movq %rsi, 0x60(%r13)
cmpq $0x0, 0x970(%rsp)
jne 0x18a607
cmpb $0x1, 0x91(%r13)
jne 0x18a307
movq 0x9d8(%rsp), %rdi
testq %rsi, %rsi
je 0x18a302
movq %rdi, 0xc0(%r13)
callq 0x2c0241
movsd 0x15d635(%rip), %xmm0   # 0x2e78e0
movsd 0x9e8(%rsp), %xmm1
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movapd 0x15d631(%rip), %xmm2   # 0x2e78f0
subpd %xmm2, %xmm1
movapd %xmm1, %xmm3
unpckhpd %xmm1, %xmm3            # xmm3 = xmm3[1],xmm1[1]
addsd %xmm1, %xmm3
movsd 0x9f0(%rsp), %xmm1
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
subpd %xmm2, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd %xmm0, %xmm3
addsd 0x15bf31(%rip), %xmm3   # 0x2e6228
movsd %xmm3, 0xc8(%r13)
jmp 0x18a307
callq 0x2c020a
cmpq $0x0, 0x9a0(%rsp)
je 0x18a32b
movq 0x988(%rsp), %rdi
leaq 0x1c8335(%rip), %rsi    # 0x352656
movl $0x593, %edx            # imm = 0x593
callq 0x936f9
cmpq $0x0, 0x9a8(%rsp)
je 0x18a34f
movq 0x990(%rsp), %rdi
leaq 0x1c8311(%rip), %rsi    # 0x352656
movl $0x595, %edx            # imm = 0x595
callq 0x936f9
movq 0x9b0(%rsp), %rdi
callq 0xae103
movq 0x9b8(%rsp), %rdi
callq 0xae103
movzwl 0x898(%rsp), %ecx
testq %rcx, %rcx
je 0x18a39c
addl %ecx, %ecx
movq 0x890(%rsp), %rax
negb %cl
shlq %cl, %rax
movq 0x888(%rsp), %rcx
leaq 0x8(%rcx), %rdx
movq %rdx, 0x888(%rsp)
movq %rax, (%rcx)
movq 0x8c8(%rsp), %rdx
testq %rdx, %rdx
je 0x18a3f4
movq 0x60(%r13), %rsi
leaq 0x1c8fa2(%rip), %rdi    # 0x353356
xorl %eax, %eax
callq 0x92a82
movq 0x60(%r13), %rsi
testq %rsi, %rsi
je 0x18a5d9
movq 0x10(%r13), %rdi
shrq $0x2, %rsi
movabsq $0x3ffffffffffffff8, %rax # imm = 0x3FFFFFFFFFFFFFF8
andq %rax, %rsi
addq $0x10, %rsi
leaq 0x1c826e(%rip), %rdx    # 0x352656
movl $0x55c, %ecx            # imm = 0x55C
callq 0x93472
jmp 0x18a40b
movq 0x10(%r13), %rdi
leaq 0x1c8257(%rip), %rsi    # 0x352656
movl $0x560, %edx            # imm = 0x560
callq 0x936f9
xorl %eax, %eax
movq %rax, 0x10(%r13)
movl %ebx, %eax
addq $0xc28, %rsp            # imm = 0xC28
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x2adb3e(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15abdf(%rip), %rsi    # 0x2e5013
leaq 0x1c8cc4(%rip), %rdx    # 0x3530ff
leaq 0x1c8cd4(%rip), %rcx    # 0x353116
leaq 0x1c820d(%rip), %r8     # 0x352656
movl $0x4f7, %r9d            # imm = 0x4F7
jmp 0x18a633
movq 0x2adb0d(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15abae(%rip), %rsi    # 0x2e5013
leaq 0x1c88f7(%rip), %rdx    # 0x352d63
leaq 0x1c88c8(%rip), %rcx    # 0x352d3b
leaq 0x1c81dc(%rip), %r8     # 0x352656
movl $0x376, %r9d            # imm = 0x376
jmp 0x18a633
movq 0x2adadc(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15ab7d(%rip), %rsi    # 0x2e5013
leaq 0x1c88c6(%rip), %rdx    # 0x352d63
leaq 0x1c8c72(%rip), %rcx    # 0x353116
leaq 0x1c81ab(%rip), %r8     # 0x352656
movl $0x537, %r9d            # imm = 0x537
jmp 0x18a633
movq 0x2adaab(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15ab4c(%rip), %rsi    # 0x2e5013
leaq 0x1c8859(%rip), %rdx    # 0x352d27
leaq 0x1c8866(%rip), %rcx    # 0x352d3b
leaq 0x1c817a(%rip), %r8     # 0x352656
movl $0x372, %r9d            # imm = 0x372
jmp 0x18a633
movq 0x2ada7a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15ab1b(%rip), %rsi    # 0x2e5013
leaq 0x1c8828(%rip), %rdx    # 0x352d27
leaq 0x1c8c10(%rip), %rcx    # 0x353116
leaq 0x1c8149(%rip), %r8     # 0x352656
movl $0x535, %r9d            # imm = 0x535
jmp 0x18a633
movq 0x2ada49(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15aaea(%rip), %rsi    # 0x2e5013
leaq 0x1c8cf3(%rip), %rdx    # 0x353223
leaq 0x1c8d3f(%rip), %rcx    # 0x353276
leaq 0x1c8118(%rip), %r8     # 0x352656
movl $0x44e, %r9d            # imm = 0x44E
jmp 0x18a633
movq 0x2ada18(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15aab9(%rip), %rsi    # 0x2e5013
leaq 0x1c82df(%rip), %rdx    # 0x352840
leaq 0x1c82c1(%rip), %rcx    # 0x352829
leaq 0x1c80e7(%rip), %r8     # 0x352656
movl $0x5a4, %r9d            # imm = 0x5A4
jmp 0x18a633
movq 0x2ad9e7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15aa88(%rip), %rsi    # 0x2e5013
leaq 0x1c8738(%rip), %rdx    # 0x352cca
leaq 0x1c8745(%rip), %rcx    # 0x352cde
leaq 0x1c80b6(%rip), %r8     # 0x352656
movl $0x160, %r9d            # imm = 0x160
jmp 0x18a633
movq 0x2ad9b6(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15aa57(%rip), %rsi    # 0x2e5013
leaq 0x15abfc(%rip), %rdx    # 0x2e51bf
leaq 0x1c825f(%rip), %rcx    # 0x352829
leaq 0x1c8085(%rip), %r8     # 0x352656
movl $0x5a2, %r9d            # imm = 0x5A2
jmp 0x18a633
movq 0x2ad988(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15aa29(%rip), %rsi    # 0x2e5013
leaq 0x1c8d97(%rip), %rdx    # 0x353388
leaq 0x1c8da9(%rip), %rcx    # 0x3533a1
leaq 0x1c8057(%rip), %r8     # 0x352656
movl $0x559, %r9d            # imm = 0x559
jmp 0x18a633
movq 0x2ad95a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x15a9fb(%rip), %rsi    # 0x2e5013
leaq 0x1c8a1c(%rip), %rdx    # 0x35303b
leaq 0x1c8d10(%rip), %rcx    # 0x353336
leaq 0x1c8029(%rip), %r8     # 0x352656
movl $0x583, %r9d            # imm = 0x583
xorl %eax, %eax
callq 0x17a50
callq 0x17390