// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/external/bzip2-1.0.6/blocksort.c
// Function: BZ2_blockSort
void BZ2_blockSort ( EState* s )
{
   UInt32* ptr    = s->ptr; 
   UChar*  block  = s->block;
   UInt32* ftab   = s->ftab;
   Int32   nblock = s->nblock;
   Int32   verb   = s->verbosity;
   Int32   wfact  = s->workFactor;
   UInt16* quadrant;
   Int32   budget;
   Int32   budgetInit;
   Int32   i;

   if (nblock < 10000) {
      fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
   } else {
      /* Calculate the location for quadrant, remembering to get
         the alignment right.  Assumes that &(block[0]) is at least
         2-byte aligned -- this should be ok since block is really
         the first section of arr2.
      */
      i = nblock+BZ_N_OVERSHOOT;
      if (i & 1) i++;
      quadrant = (UInt16*)(&(block[i]));

      /* (wfact-1) / 3 puts the default-factor-30
         transition point at very roughly the same place as 
         with v0.1 and v0.9.0.  
         Not that it particularly matters any more, since the
         resulting compressed stream is now the same regardless
         of whether or not we use the main sort or fallback sort.
      */
      if (wfact < 1  ) wfact = 1;
      if (wfact > 100) wfact = 100;
      budgetInit = nblock * ((wfact-1) / 3);
      budget = budgetInit;

      mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
      if (verb >= 3) 
         VPrintf3 ( "      %d work, %d block, ratio %5.2f\n",
                    budgetInit - budget,
                    nblock, 
                    (float)(budgetInit - budget) /
                    (float)(nblock==0 ? 1 : nblock) ); 
      if (budget < 0) {
         if (verb >= 2) 
            VPrintf0 ( "    too repetitive; using fallback"
                       " sorting algorithm\n" );
         fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
      }
   }

   s->origPtr = -1;
   for (i = 0; i < s->nblock; i++)
      if (ptr[i] == 0)
         { s->origPtr = i; break; };

   AssertH( s->origPtr != -1, 1003 );
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x12c8, %rsp           # imm = 0x12C8
movq %rdi, %r14
movq 0x28(%rdi), %r12
movq 0x38(%rdi), %rbp
movslq 0x6c(%rdi), %rcx
movl 0x290(%rdi), %r8d
cmpq $0x270f, %rcx           # imm = 0x270F
jg 0xdbc34
movq 0x18(%r14), %rdi
movq 0x20(%r14), %rsi
movq %r12, %rdx
jmp 0xdca6a
movq 0x40(%r14), %rbx
movq %r14, 0xb8(%rsp)
movl 0x58(%r14), %eax
movl %ecx, %esi
andl $0x1, %esi
cmpl $0x2, %eax
movl $0x1, %edx
cmovgel %eax, %edx
cmpl $0x64, %edx
movl $0x64, %eax
cmovll %edx, %eax
movq %rcx, %r13
leal (%rcx,%rsi), %r15d
addl $0x22, %r15d
decl %eax
movl $0xaaaaaaab, %ecx       # imm = 0xAAAAAAAB
imulq %rax, %rcx
shrq $0x21, %rcx
imull %r13d, %ecx
movq %rcx, 0xe8(%rsp)
movl %ecx, 0xc(%rsp)
movl %r8d, 0x24(%rsp)
cmpl $0x4, %r8d
jge 0xdcacb
leaq (%rbx,%r15), %rax
movq %rax, 0x50(%rsp)
xorl %r14d, %r14d
movl $0x40004, %edx          # imm = 0x40004
movq %r12, %rdi
xorl %esi, %esi
callq 0xb2f0
movq %r13, 0x18(%rsp)
leal -0x1(%r13), %ecx
movzbl (%rbx), %edi
leaq 0x4(%rcx), %rax
leaq (%r15,%rbx), %rdx
addq $-0x6, %rdx
movq %rcx, 0xa0(%rsp)
movq %rbx, %r13
movw %r14w, -0x2(%rdx,%rax,2)
movzbl -0x4(%r13,%rax), %esi
movl %esi, %r8d
shll $0x8, %r8d
orl %edi, %r8d
incl (%r12,%r8,4)
movw %r14w, -0x4(%rdx,%rax,2)
movzbl -0x5(%r13,%rax), %edi
movl %edi, %r8d
shll $0xa, %r8d
leal (%r8,%rsi,4), %esi
incl (%r12,%rsi)
movw %r14w, -0x6(%rdx,%rax,2)
movzbl -0x6(%r13,%rax), %r8d
movl %r8d, %esi
shll $0xa, %esi
leal (%rsi,%rdi,4), %esi
incl (%r12,%rsi)
movw %r14w, -0x8(%rdx,%rax,2)
movzbl -0x7(%r13,%rax), %edi
movl %edi, %esi
shll $0x8, %esi
orl %r8d, %esi
incl (%r12,%rsi,4)
addl $-0x4, %ecx
addq $-0x4, %rax
cmpq $0x6, %rax
jg 0xdbcd6
cmpq $0x4, %rax
movq 0x50(%rsp), %rdx
jl 0xdbd79
movl %ecx, %eax
incq %rax
movw $0x0, -0x2(%rdx,%rax,2)
shrl $0x8, %esi
movzbl -0x1(%r13,%rax), %ecx
shll $0x8, %ecx
orl %esi, %ecx
incl (%r12,%rcx,4)
movl %ecx, %esi
decq %rax
jg 0xdbd59
movq 0x18(%rsp), %rcx
leaq (%r15,%rcx,2), %rax
movq %rcx, %rbx
addq %r13, %rax
addq %r13, %rcx
xorl %edx, %edx
movb (%r13,%rdx), %sil
movb %sil, (%rcx,%rdx)
movw $0x0, (%rax,%rdx,2)
incq %rdx
cmpq $0x22, %rdx
jne 0xdbd8d
cmpl $0x4, 0x24(%rsp)
jge 0xdcad5
movl (%r12), %eax
movl $0x1, %ecx
addl (%r12,%rcx,4), %eax
movl %eax, (%r12,%rcx,4)
incq %rcx
cmpq $0x10001, %rcx          # imm = 0x10001
jne 0xdbdb9
movzbl (%r13), %ecx
shll $0x8, %ecx
movl 0xa0(%rsp), %r9d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl $0xfffffffc, %edx       # imm = 0xFFFFFFFC
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
movl $0xfffffffe, %edi       # imm = 0xFFFFFFFE
movq %r9, %r8
movzbl (%r13,%r9), %r9d
shldw $0x8, %cx, %r9w
movzwl %r9w, %ecx
movl (%r12,%rcx,4), %r9d
decl %r9d
movl %r9d, (%r12,%rcx,4)
movslq %r9d, %r9
leal (%rbx,%rax), %r10d
movl %r10d, (%rbp,%r9,4)
movzbl -0x1(%r13,%r8), %r9d
shrdw $0x8, %r9w, %cx
movzwl %cx, %ecx
movl (%r12,%rcx,4), %r9d
decl %r9d
movl %r9d, (%r12,%rcx,4)
movslq %r9d, %r9
leal (%rbx,%rdi), %r10d
movl %r10d, (%rbp,%r9,4)
movzbl -0x2(%r13,%r8), %r9d
shrdw $0x8, %r9w, %cx
movzwl %cx, %ecx
movl (%r12,%rcx,4), %r9d
decl %r9d
movl %r9d, (%r12,%rcx,4)
movslq %r9d, %r9
leal (%rbx,%rsi), %r10d
movl %r10d, (%rbp,%r9,4)
movzbl -0x3(%r13,%r8), %r9d
shrdw $0x8, %r9w, %cx
movzwl %cx, %r9d
movl (%r12,%r9,4), %r10d
decl %r10d
movl %r10d, (%r12,%r9,4)
movslq %r10d, %r9
leal (%rbx,%rdx), %r10d
movl %r10d, (%rbp,%r9,4)
leaq -0x4(%r8), %r9
addl $-0x4, %eax
addl $-0x4, %edx
addl $-0x4, %esi
addl $-0x4, %edi
cmpq $0x6, %r8
jg 0xdbdf1
addq $0x4, %r9
cmpq $0x4, %r9
jl 0xdbedf
addl %ebx, %eax
movl %eax, %edx
incq %rdx
movzbl -0x1(%r13,%rdx), %esi
shrdw $0x8, %si, %cx
movzwl %cx, %esi
movl (%r12,%rsi,4), %edi
decl %edi
movl %edi, (%r12,%rsi,4)
movslq %edi, %rsi
movl %eax, (%rbp,%rsi,4)
decl %eax
decq %rdx
jg 0xdbeb9
movq %rbp, 0x10(%rsp)
leaq 0x110(%rsp), %rdi
xorl %ebx, %ebx
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0xb2f0
movdqa 0x3013e(%rip), %xmm0    # 0x10c040
movdqa 0x30146(%rip), %xmm1    # 0x10c050
movdqa %xmm0, 0x6c0(%rsp,%rbx,4)
addq $0x4, %rbx
paddd %xmm1, %xmm0
cmpq $0x100, %rbx            # imm = 0x100
jne 0xdbf0a
movl $0x16c, %eax            # imm = 0x16C
movslq %eax, %rdx
imulq $0x55555556, %rdx, %rcx # imm = 0x55555556
movq %rcx, %rsi
shrq $0x3f, %rsi
shrq $0x20, %rcx
addl %esi, %ecx
cmpl $0x2ff, %edx            # imm = 0x2FF
jg 0xdbfe6
movslq %ecx, %rdx
cmpl $0x100, %edx            # imm = 0x100
movl $0xff, %esi
cmovgel %ecx, %esi
incl %esi
xorl %edi, %edi
movl 0x6c0(%rsp,%rdx,4), %r8d
movl %r8d, %r10d
shll $0x8, %r10d
leal 0x100(%r10), %r9d
movslq %r9d, %r9
movl (%r12,%r9,4), %r9d
movslq %r10d, %r10
subl (%r12,%r10,4), %r9d
movl %edi, %r10d
leal (%rcx,%r10), %r11d
movslq %r10d, %rbx
movl 0x6c0(%rsp,%rbx,4), %ebx
movl %ebx, %r14d
shll $0x8, %r14d
leal 0x100(%r14), %ebp
movslq %ebp, %r15
movl (%r12,%r15,4), %ebp
movslq %r14d, %r14
subl (%r12,%r14,4), %ebp
cmpl %r9d, %ebp
jbe 0xdbfcd
movslq %r11d, %r11
movl %ebx, 0x6c0(%rsp,%r11,4)
subl %ecx, %r10d
jge 0xdbf88
addl %ecx, %r10d
movl %r10d, %r11d
movslq %r11d, %r9
movl %r8d, 0x6c0(%rsp,%r9,4)
incq %rdx
incl %edi
cmpq %rsi, %rdx
jne 0xdbf61
addl $-0x3, %eax
cmpl $0x2, %eax
movl %ecx, %eax
ja 0xdbf29
leaq 0x4(%r12), %rax
movq %rax, 0xf8(%rsp)
movq 0x10(%rsp), %rbp
leaq -0x4(%rbp), %rax
movq %rax, 0xf0(%rsp)
movl $0xffdfffff, %esi       # imm = 0xFFDFFFFF
xorl %eax, %eax
movq $0x0, 0x68(%rsp)
movq 0xb8(%rsp), %r14
movq %r12, 0xe0(%rsp)
movq %r13, 0x30(%rsp)
movq %rax, 0xb0(%rsp)
movl 0x6c0(%rsp,%rax,4), %ecx
movslq %ecx, %r9
movl %r9d, %eax
shll $0x8, %eax
movl %eax, 0x94(%rsp)
cltq
movq %rax, 0xa8(%rsp)
leaq (%r12,%rax,4), %rdx
xorl %edi, %edi
movl 0x24(%rsp), %ebx
movq %r9, 0x80(%rsp)
movq %rcx, 0xc0(%rsp)
movq %rdx, 0x100(%rsp)
cmpq %rcx, %rdi
je 0xdc78f
movl (%rdx,%rdi,4), %eax
btl $0x15, %eax
jb 0xdc78a
movl 0x4(%rdx,%rdi,4), %r9d
andl %esi, %r9d
leal -0x1(%r9), %r11d
movl %eax, %r8d
movb $0x1, %al
movl %r8d, 0x3c(%rsp)
movq %r11, 0xd8(%rsp)
cmpl %r8d, %r11d
jle 0xdc77a
movq %rdi, 0xc8(%rsp)
cmpl $0x4, %ebx
jge 0xdc7a1
movl 0x3c(%rsp), %eax
movl %eax, 0x530(%rsp)
movq 0xd8(%rsp), %rax
movl %eax, 0x3a0(%rsp)
movl $0x2, 0x210(%rsp)
movl $0x1, %eax
movq %rax, 0x28(%rsp)
movb $0x1, 0x8(%rsp)
movq 0x28(%rsp), %rax
leal -0x1(%rax), %ebx
movq %rbx, 0x88(%rsp)
cmpl $0x62, 0x28(%rsp)
jb 0xdc125
movl $0x3e9, %edi            # imm = 0x3E9
callq 0x97c40
movl 0x530(%rsp,%rbx,4), %r10d
movl 0x3a0(%rsp,%rbx,4), %eax
movslq %eax, %rsi
movl 0x210(%rsp,%rbx,4), %r15d
movl %esi, %ecx
subl %r10d, %ecx
cmpl $0x14, %ecx
movq %r10, 0x78(%rsp)
jl 0xdc2ff
cmpl $0xf, %r15d
jge 0xdc2ff
movslq %r10d, %rdi
movl (%rbp,%rdi,4), %ecx
addl %r15d, %ecx
movzbl (%r13,%rcx), %ecx
movl (%rbp,%rsi,4), %edx
addl %r15d, %edx
movzbl (%r13,%rdx), %r8d
leal (%rax,%r10), %edx
sarl %edx
movslq %edx, %rdx
movl (%rbp,%rdx,4), %edx
addl %r15d, %edx
cmpb %r8b, %cl
movl %r8d, %esi
cmoval %ecx, %esi
movzbl (%r13,%rdx), %edx
cmovbl %ecx, %r8d
cmpb %dl, %r8b
cmovbel %edx, %r8d
cmpb %dl, %sil
cmovbel %esi, %r8d
movl %eax, %ecx
movl %r10d, %edx
movl %eax, %r9d
cmpl %r9d, %r10d
jg 0xdc216
movslq %r9d, %r11
movslq %edx, %rdx
movslq %r10d, %r14
decq %r14
movl %r10d, %esi
movl 0x4(%rbp,%r14,4), %r12d
leal (%r12,%r15), %r13d
movq 0x30(%rsp), %rbx
cmpb %r8b, (%rbx,%r13)
movq 0x30(%rsp), %r13
je 0xdc1ed
ja 0xdc219
incl %esi
incq %r14
cmpq %r11, %r14
jl 0xdc1c6
jmp 0xdc20c
movl (%rbp,%rdx,4), %r10d
movl %r10d, 0x4(%rbp,%r14,4)
movl %r12d, (%rbp,%rdx,4)
incq %rdx
leal 0x1(%rsi), %r10d
cmpl %esi, %r9d
jg 0xdc1bd
incl %esi
jmp 0xdc219
cmpl %r9d, %r10d
cmovlel %r9d, %r10d
incl %r10d
movl %r10d, %esi
cmpl %r9d, %esi
jg 0xdc2c4
movslq %esi, %r10
movslq %ecx, %rcx
movslq %r9d, %r12
leaq 0x1(%r12), %r14
movl %r9d, %r11d
movl -0x4(%rbp,%r14,4), %r9d
leal (%r9,%r15), %r13d
movq 0x30(%rsp), %rbx
cmpb %r8b, (%rbx,%r13)
movq 0x30(%rsp), %r13
je 0xdc25b
jb 0xdc286
decq %r14
decl %r11d
cmpq %r10, %r14
jg 0xdc233
jmp 0xdc2b7
movq 0x10(%rsp), %r12
movl (%r12,%rcx,4), %ebp
movq 0x10(%rsp), %r12
movl %ebp, -0x4(%r12,%r14,4)
movq 0x10(%rsp), %rbp
movl %r9d, (%rbp,%rcx,4)
decq %rcx
leal -0x1(%r11), %r9d
cmpl %r11d, %esi
jl 0xdc228
jmp 0xdc2f7
movq 0x10(%rsp), %r12
movl (%r12,%r10,4), %ebp
movq 0x10(%rsp), %r12
movl %r9d, (%r12,%r10,4)
movq 0x10(%rsp), %r9
movl %ebp, -0x4(%r9,%r14,4)
movq 0x10(%rsp), %rbp
incl %esi
decl %r11d
movl %r11d, %r9d
movl %esi, %r10d
jmp 0xdc1b2
cmpq %r10, %r12
cmovlq %r12, %r10
decl %r10d
movl %r10d, %r9d
cmpl %edx, %ecx
movq 0xe0(%rsp), %r12
jge 0xdc593
incl %r15d
movq 0x88(%rsp), %rbx
movl %r15d, 0x210(%rsp,%rbx,4)
testb $0x1, 0x8(%rsp)
jne 0xdc114
jmp 0xdc72f
decl %r11d
movl %r11d, %r9d
jmp 0xdc2c4
testl %ecx, %ecx
jle 0xdc56e
movq $-0x1, %rdi
leaq 0x2fe9b(%rip), %rax     # 0x10c1b0
incq %rdi
leaq 0x4(%rax), %rdx
cmpl %ecx, (%rax)
movq %rdx, %rax
jle 0xdc315
movq %rdi, 0xd0(%rsp)
testq %rdi, %rdi
je 0xdc56e
movq 0x78(%rsp), %rax
leal 0x1(%rax), %ecx
movl %ecx, 0x9c(%rsp)
addl $0x2, %eax
movl %eax, 0x98(%rsp)
movq %rsi, 0x70(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x108(%rsp)
decq %rax
movq %rax, 0xd0(%rsp)
movl %eax, %eax
leaq 0x2fe3a(%rip), %rcx     # 0x10c1b0
movl (%rcx,%rax,4), %r12d
movq 0x78(%rsp), %rax
leal (%r12,%rax), %ecx
movl %ecx, 0x28(%rsp)
movslq %ecx, %rcx
movl 0x98(%rsp), %edx
movl %edx, 0x5c(%rsp)
movl 0x9c(%rsp), %edx
movl %edx, 0x60(%rsp)
movl %eax, 0x64(%rsp)
cmpq %rsi, %rcx
jg 0xdc55f
movq %rcx, 0x48(%rsp)
movl (%rbp,%rcx,4), %eax
movq %rax, 0x40(%rsp)
addl %r15d, %eax
movl %eax, 0x8(%rsp)
movq %rbp, %rbx
movl 0x64(%rsp), %eax
movl %eax, %ebp
leal (%r12,%rbp), %r13d
movslq %ebp, %rax
movl (%rbx,%rax,4), %r14d
leal (%r14,%r15), %edi
movl 0x8(%rsp), %esi
movq 0x30(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x18(%rsp), %r8
leaq 0xc(%rsp), %r9
callq 0xdd31d
testb %al, %al
je 0xdc414
movslq %r13d, %rax
movl %r14d, (%rbx,%rax,4)
movl %ebp, %r13d
subl %r12d, %r13d
cmpl 0x28(%rsp), %ebp
movl %r13d, %ebp
jge 0xdc3cb
addl %r12d, %r13d
movq 0x48(%rsp), %rcx
movq 0x40(%rsp), %rdx
movslq %r13d, %rax
movq 0x10(%rsp), %rbp
movl %edx, (%rbp,%rax,4)
movq 0x70(%rsp), %rsi
cmpq %rsi, %rcx
jge 0xdc55f
movl 0x4(%rbp,%rcx,4), %eax
movq %rax, 0x40(%rsp)
addl %r15d, %eax
movl %eax, 0x8(%rsp)
movq %rbp, %rbx
movl 0x60(%rsp), %eax
movl %eax, %ebp
leal (%r12,%rbp), %r13d
movslq %ebp, %rax
movl (%rbx,%rax,4), %r14d
leal (%r14,%r15), %edi
movl 0x8(%rsp), %esi
movq 0x30(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x18(%rsp), %r8
leaq 0xc(%rsp), %r9
callq 0xdd31d
testb %al, %al
je 0xdc49a
movslq %r13d, %rax
movl %r14d, (%rbx,%rax,4)
movl %ebp, %r13d
subl %r12d, %r13d
cmpl 0x28(%rsp), %ebp
movl %r13d, %ebp
jge 0xdc451
addl %r12d, %r13d
movq 0x48(%rsp), %rcx
movslq %r13d, %rax
movq 0x10(%rsp), %rbp
movq 0x40(%rsp), %rdx
movl %edx, (%rbp,%rax,4)
leaq 0x2(%rcx), %rax
movq 0x70(%rsp), %rsi
cmpq %rsi, %rax
jg 0xdc55f
movl 0x8(%rbp,%rcx,4), %eax
movq %rax, 0x40(%rsp)
addl %r15d, %eax
movl %eax, 0x8(%rsp)
movq %rbp, %rbx
movl 0x5c(%rsp), %eax
movl %eax, %ebp
leal (%r12,%rbp), %r13d
movslq %ebp, %rax
movl (%rbx,%rax,4), %r14d
leal (%r14,%r15), %edi
movl 0x8(%rsp), %esi
movq 0x30(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x18(%rsp), %r8
leaq 0xc(%rsp), %r9
callq 0xdd31d
testb %al, %al
je 0xdc524
movslq %r13d, %rax
movl %r14d, (%rbx,%rax,4)
movl %ebp, %r13d
subl %r12d, %r13d
cmpl 0x28(%rsp), %ebp
movl %r13d, %ebp
jge 0xdc4db
addl %r12d, %r13d
movq 0x70(%rsp), %rsi
movq 0x48(%rsp), %rcx
movslq %r13d, %rax
movq 0x10(%rsp), %rbp
movq 0x40(%rsp), %rdx
movl %edx, (%rbp,%rax,4)
addq $0x3, %rcx
addl $0x3, 0x64(%rsp)
addl $0x3, 0x60(%rsp)
addl $0x3, 0x5c(%rsp)
cmpl $0x0, 0xc(%rsp)
jns 0xdc3a4
jmp 0xdc56e
cmpq $0x1, 0x108(%rsp)
jg 0xdc352
cmpl $0x0, 0xc(%rsp)
movq 0xe0(%rsp), %r12
movq 0x30(%rsp), %r13
movq 0x88(%rsp), %rax
jns 0xdc71b
jmp 0xdc72f
movl %edx, %r10d
subl 0x78(%rsp), %r10d
movl %esi, %r8d
subl %edx, %r8d
cmpl %r8d, %r10d
cmovll %r10d, %r8d
testl %r8d, %r8d
jle 0xdc5e6
movl %esi, %r10d
subl %r8d, %r10d
movslq %r10d, %r10
movq 0x10(%rsp), %r11
leaq (%r11,%rdi,4), %rdi
leaq (%r11,%r10,4), %r10
incl %r8d
xorl %r11d, %r11d
movl (%rdi,%r11), %ebx
movl (%r10,%r11), %ebp
movl %ebp, (%rdi,%r11)
movl %ebx, (%r10,%r11)
addq $0x4, %r11
decl %r8d
cmpl $0x1, %r8d
jg 0xdc5c9
movl %eax, %edi
subl %ecx, %edi
subl %r9d, %ecx
cmpl %ecx, %edi
cmovgel %ecx, %edi
testl %edi, %edi
movq 0x10(%rsp), %rbp
jle 0xdc629
movl %eax, %r8d
subl %edi, %r8d
movslq %r8d, %r8
movslq %esi, %r9
incl %edi
movq %rbp, %r10
movl (%r10,%r9,4), %r11d
movl 0x4(%r10,%r8,4), %ebx
movl %ebx, (%r10,%r9,4)
movl %r11d, 0x4(%r10,%r8,4)
addq $0x4, %r10
decl %edi
cmpl $0x1, %edi
jg 0xdc60c
movq 0x78(%rsp), %r11
movl %r11d, %r10d
subl %edx, %r10d
leal (%r10,%rsi), %r8d
decl %r8d
movl %eax, %edx
subl %ecx, %edx
leal 0x1(%rdx), %edi
movl %r8d, %ecx
subl %r11d, %ecx
movl %eax, %r9d
subl %edi, %r9d
cmpl %r9d, %ecx
jge 0xdc65b
movl %r11d, %ecx
movl %r8d, %r9d
jmp 0xdc666
movl %edi, %ecx
movl %r11d, %edi
movl %eax, %r9d
movl %r8d, %eax
addl %esi, %r10d
leal 0x1(%r15), %esi
movl %r9d, %r8d
subl %ecx, %r8d
movl %edx, %r11d
subl %r10d, %r11d
cmpl %r11d, %r8d
jge 0xdc689
movl %r10d, %r11d
movl %r9d, %r8d
movl %r15d, %r9d
jmp 0xdc69b
movl %ecx, %r11d
movl %edx, %r8d
movl %r9d, %edx
movl %esi, %r9d
movl %r15d, %esi
movl %r10d, %ecx
movl %eax, %r10d
subl %edi, %r10d
movl %edx, %ebx
subl %r11d, %ebx
cmpl %ebx, %r10d
jge 0xdc6b5
movl %edi, %r10d
movl %eax, %edi
movl %r15d, %eax
jmp 0xdc6c4
movl %r11d, %r10d
movl %edi, %r11d
movl %edx, %edi
movl %eax, %edx
movl %esi, %eax
movl %r15d, %esi
movq 0x88(%rsp), %rbx
movl %r11d, 0x530(%rsp,%rbx,4)
movl %edx, 0x3a0(%rsp,%rbx,4)
movl %esi, 0x210(%rsp,%rbx,4)
movq 0x28(%rsp), %rsi
movl %esi, %edx
movl %r10d, 0x530(%rsp,%rdx,4)
movl %edi, 0x3a0(%rsp,%rdx,4)
movl %eax, 0x210(%rsp,%rdx,4)
movl %ecx, 0x534(%rsp,%rdx,4)
movl %r8d, 0x3a4(%rsp,%rdx,4)
movl %r9d, 0x214(%rsp,%rdx,4)
addl $0x2, %esi
movl %esi, %eax
movl %eax, %ecx
movq %rcx, 0x28(%rsp)
testl %eax, %eax
setg 0x8(%rsp)
jg 0xdc104
movq 0x68(%rsp), %rax
subl 0x3c(%rsp), %eax
movq 0xd8(%rsp), %rcx
addl %ecx, %eax
incl %eax
movq %rax, 0x68(%rsp)
cmpl $0x0, 0xc(%rsp)
setns %al
movq 0xb8(%rsp), %r14
movl 0x24(%rsp), %ebx
movl $0xffdfffff, %esi       # imm = 0xFFDFFFFF
movq 0xc0(%rsp), %rcx
movq 0x100(%rsp), %rdx
movq 0xc8(%rsp), %rdi
testb %al, %al
movq 0x80(%rsp), %r9
je 0xdca3e
orb $0x20, 0x2(%rdx,%rdi,4)
incq %rdi
cmpq $0x100, %rdi            # imm = 0x100
jne 0xdc082
jmp 0xdc7d8
movq 0x74818(%rip), %rax     # 0x150fc0
movq (%rax), %rdi
subl 0x3c(%rsp), %r9d
leaq 0x2f994(%rip), %rsi     # 0x10c14b
movq 0xc0(%rsp), %rdx
movq 0xc8(%rsp), %rcx
movq 0x68(%rsp), %r8
xorl %eax, %eax
callq 0xb8d0
jmp 0xdc0d0
cmpb $0x0, 0x110(%rsp,%r9)
movq 0x18(%rsp), %rbx
je 0xdc7ff
movl $0x3ee, %edi            # imm = 0x3EE
callq 0x97c40
movq 0x80(%rsp), %r9
movl $0xffdfffff, %esi       # imm = 0xFFDFFFFF
movq 0xf8(%rsp), %rax
leaq (%rax,%r9,4), %rax
xorl %ecx, %ecx
movl -0x4(%rax), %edx
andl %esi, %edx
movl %edx, 0xec0(%rsp,%rcx,4)
movl (%rax), %edx
andl %esi, %edx
decl %edx
movl %edx, 0xac0(%rsp,%rcx,4)
incq %rcx
addq $0x400, %rax            # imm = 0x400
cmpq $0x100, %rcx            # imm = 0x100
jne 0xdc80d
movq 0xa8(%rsp), %rax
movslq (%r12,%rax,4), %rcx
andq $-0x200001, %rcx        # imm = 0xFFDFFFFF
movl 0xec0(%rsp,%r9,4), %eax
cmpl %eax, %ecx
jge 0xdc8a5
movl (%rbp,%rcx,4), %eax
leal -0x1(%rax), %edx
sarl $0x1f, %edx
andl %ebx, %edx
addl %edx, %eax
decl %eax
movslq %eax, %rdx
movzbl (%r13,%rdx), %edx
cmpb $0x0, 0x110(%rsp,%rdx)
jne 0xdc895
movslq 0xec0(%rsp,%rdx,4), %rsi
leal 0x1(%rsi), %edi
movl %edi, 0xec0(%rsp,%rdx,4)
movl %eax, (%rbp,%rsi,4)
movl $0xffdfffff, %esi       # imm = 0xFFDFFFFF
incq %rcx
movslq 0xec0(%rsp,%r9,4), %rax
cmpq %rax, %rcx
jl 0xdc857
movl 0x94(%rsp), %ecx
addl $0x100, %ecx            # imm = 0x100
movslq %ecx, %rbx
movl (%r12,%rbx,4), %ecx
andl %esi, %ecx
decl %ecx
movl 0xac0(%rsp,%r9,4), %edx
cmpl %edx, %ecx
jle 0xdc91e
movslq %ecx, %rcx
movl (%rbp,%rcx,4), %edx
leal -0x1(%rdx), %esi
sarl $0x1f, %esi
andl 0x18(%rsp), %esi
addl %esi, %edx
decl %edx
movslq %edx, %rsi
movzbl (%r13,%rsi), %esi
cmpb $0x0, 0x110(%rsp,%rsi)
jne 0xdc909
movslq 0xac0(%rsp,%rsi,4), %rdi
leal -0x1(%rdi), %r8d
movl %r8d, 0xac0(%rsp,%rsi,4)
movl %edx, (%rbp,%rdi,4)
decq %rcx
movslq 0xac0(%rsp,%r9,4), %rdx
cmpq %rdx, %rcx
jg 0xdc8cc
movl $0xffdfffff, %esi       # imm = 0xFFDFFFFF
leal -0x1(%rax), %ecx
cmpl %edx, %ecx
je 0xdc949
testl %eax, %eax
jne 0xdc932
cmpl 0xa0(%rsp), %edx
je 0xdc949
movl $0x3ef, %edi            # imm = 0x3EF
callq 0x97c40
movq 0x80(%rsp), %r9
movl $0xffdfffff, %esi       # imm = 0xFFDFFFFF
leaq (%r12,%r9,4), %rax
xorl %ecx, %ecx
orb $0x20, 0x2(%rax,%rcx)
addq $0x400, %rcx            # imm = 0x400
cmpq $0x40000, %rcx          # imm = 0x40000
jne 0xdc94f
movb $0x1, 0x110(%rsp,%r9)
cmpq $0xff, 0xb0(%rsp)
je 0xdca1a
movl $0xffdfffff, %ecx       # imm = 0xFFDFFFFF
movq 0xa8(%rsp), %rax
movslq (%r12,%rax,4), %rsi
andq $-0x200001, %rsi        # imm = 0xFFDFFFFF
movl (%r12,%rbx,4), %eax
andl %ecx, %eax
subl %esi, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
incl %ecx
movl %eax, %edx
sarl %cl, %edx
cmpl $0xfffe, %edx           # imm = 0xFFFE
jg 0xdc9a4
testl %eax, %eax
movq 0x18(%rsp), %r9
movq 0x50(%rsp), %r10
jle 0xdc9fb
movl %eax, %edx
movq 0xf0(%rsp), %rdi
leaq (%rdi,%rsi,4), %rsi
movslq (%rsi,%rdx,4), %rdi
decq %rdx
movl %edx, %r8d
shrl %cl, %r8d
movw %r8w, (%r10,%rdi,2)
cmpq $0x21, %rdi
jg 0xdc9f1
addl %r9d, %edi
movslq %edi, %rdi
movw %r8w, (%r10,%rdi,2)
leaq 0x1(%rdx), %rdi
cmpq $0x1, %rdi
jg 0xdc9ce
decl %eax
sarl %cl, %eax
cmpl $0x10000, %eax          # imm = 0x10000
movl $0xffdfffff, %esi       # imm = 0xFFDFFFFF
jl 0xdca1a
movl $0x3ea, %edi            # imm = 0x3EA
callq 0x97c40
movl $0xffdfffff, %esi       # imm = 0xFFDFFFFF
movq 0xb0(%rsp), %rax
incq %rax
cmpq $0x100, %rax            # imm = 0x100
jne 0xdc037
movl 0x24(%rsp), %ebx
cmpl $0x4, %ebx
jge 0xdcb05
cmpl $0x3, %ebx
jge 0xdcadf
cmpl $0x0, 0xc(%rsp)
jns 0xdca6f
cmpl $0x2, %ebx
jge 0xdcafb
movq 0x18(%r14), %rdi
movq 0x20(%r14), %rsi
movq %r12, %rdx
movq 0x18(%rsp), %rcx
movl %ebx, %r8d
callq 0xdcb32
movl $0xffffffff, 0x30(%r14) # imm = 0xFFFFFFFF
movslq 0x6c(%r14), %rax
testq %rax, %rax
jle 0xdca97
xorl %ecx, %ecx
cmpl $0x0, (%rbp,%rcx,4)
je 0xdca93
incq %rcx
cmpq %rcx, %rax
jne 0xdca82
jmp 0xdca97
movl %ecx, 0x30(%r14)
cmpl $-0x1, 0x30(%r14)
je 0xdcab0
addq $0x12c8, %rsp           # imm = 0x12C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x3eb, %edi            # imm = 0x3EB
addq $0x12c8, %rsp           # imm = 0x12C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x97c40
callq 0x3424e
jmp 0xdbc98
callq 0x3426a
jmp 0xdbdb0
leaq 0xc(%rsp), %rdi
movq 0xe8(%rsp), %rsi
movq 0x18(%rsp), %rdx
callq 0x34286
jmp 0xdca47
callq 0x342b4
jmp 0xdca57
movq 0x744b4(%rip), %rax     # 0x150fc0
movq (%rax), %rdi
movq 0x18(%rsp), %rdx
movl %edx, %r8d
movq 0x68(%rsp), %rcx
subl %ecx, %r8d
leaq 0x2f655(%rip), %rsi     # 0x10c17b
xorl %eax, %eax
callq 0xb8d0
jmp 0xdca3e