// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/external/bzip2-1.0.6/bzlib.c
// Function: BZ2_bzDecompress
int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
{
   Bool    corrupt;
   DState* s;
   if (strm == NULL) return BZ_PARAM_ERROR;
   s = strm->state;
   if (s == NULL) return BZ_PARAM_ERROR;
   if (s->strm != strm) return BZ_PARAM_ERROR;

   while (True) {
      if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR;
      if (s->state == BZ_X_OUTPUT) {
         if (s->smallDecompress)
            corrupt = unRLE_obuf_to_output_SMALL ( s ); else
            corrupt = unRLE_obuf_to_output_FAST  ( s );
         if (corrupt) return BZ_DATA_ERROR;
         if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
            BZ_FINALISE_CRC ( s->calculatedBlockCRC );
            if (s->verbosity >= 3) 
               VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC, 
                          s->calculatedBlockCRC );
            if (s->verbosity >= 2) VPrintf0 ( "]" );
            if (s->calculatedBlockCRC != s->storedBlockCRC)
               return BZ_DATA_ERROR;
            s->calculatedCombinedCRC 
               = (s->calculatedCombinedCRC << 1) | 
                    (s->calculatedCombinedCRC >> 31);
            s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
            s->state = BZ_X_BLKHDR_1;
         } else {
            return BZ_OK;
         }
      }
      if (s->state >= BZ_X_MAGIC_1) {
         Int32 r = BZ2_decompress ( s );
         if (r == BZ_STREAM_END) {
            if (s->verbosity >= 3)
               VPrintf2 ( "\n    combined CRCs: stored = 0x%08x, computed = 0x%08x", 
                          s->storedCombinedCRC, s->calculatedCombinedCRC );
            if (s->calculatedCombinedCRC != s->storedCombinedCRC)
               return BZ_DATA_ERROR;
            return r;
         }
         if (s->state != BZ_X_OUTPUT) return r;
      }
   }

   AssertH ( 0, 6001 );

   return 0;  /*NOTREACHED*/
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
pushq $-0x2
popq %rax
testq %rdi, %rdi
je 0x7915d
movq 0x30(%rdi), %rbx
testq %rbx, %rbx
je 0x7915d
cmpq %rdi, (%rbx)
jne 0x7915d
leaq 0x448(%rbx), %r14
movl 0x8(%rbx), %ecx
pushq $0x2
popq %rbp
cmpl $0x1, %ecx
je 0x7915a
cmpl $0x2, %ecx
je 0x78425
cmpl $0xa, %ecx
jl 0x7840d
jmp 0x79103
cmpb $0x0, 0x2c(%rbx)
movb 0x14(%rbx), %al
movq %r14, 0x28(%rsp)
je 0x7884f
movq (%rbx), %r14
testb %al, %al
je 0x78b4a
movl 0x20(%r14), %eax
leaq 0xb66f3(%rip), %rsi     # 0x12eb40
testl %eax, %eax
je 0x79085
cmpl $0x0, 0x10(%rbx)
je 0x7849e
movzbl 0xc(%rbx), %eax
movq 0x18(%r14), %rcx
movb %al, (%rcx)
movl 0xc70(%rbx), %ecx
movl %ecx, %edx
shll $0x8, %edx
shrl $0x18, %ecx
xorl %eax, %ecx
xorl (%rsi,%rcx,4), %edx
movl %edx, 0xc70(%rbx)
decl 0x10(%rbx)
movq (%rbx), %r14
incq 0x18(%r14)
movl 0x20(%r14), %eax
decl %eax
movl %eax, 0x20(%r14)
incl 0x24(%r14)
jne 0x7844d
incl 0x28(%r14)
jmp 0x7844d
movl 0x444(%rbx), %ecx
movl 0xfa50(%rbx), %eax
movq %rax, 0x10(%rsp)
incl %eax
movq %rcx, 0x20(%rsp)
cmpl %eax, %ecx
je 0x79085
jg 0x7916c
movl $0x1, 0x10(%rbx)
movl 0x3c(%rbx), %r15d
movl 0x40(%rbx), %eax
movl %eax, 0x38(%rsp)
movb %al, 0xc(%rbx)
imull $0x186a0, 0x28(%rbx), %eax # imm = 0x186A0
movl %eax, 0xc(%rsp)
cmpl %eax, %r15d
jae 0x7916c
movl %r15d, %edi
movq 0x28(%rsp), %rsi
callq 0x783ab
movq 0xc60(%rbx), %rsi
movl %r15d, %ecx
shrl %ecx
movzbl (%rsi,%rcx), %r13d
leal (,%r15,4), %ecx
andb $0x4, %cl
shrl %cl, %r13d
movq 0xc58(%rbx), %rdi
movzwl (%rdi,%r15,2), %ebp
andl $0xf, %r13d
shll $0x10, %r13d
orl %ebp, %r13d
movl %r13d, 0x3c(%rbx)
movl 0x18(%rbx), %r12d
testl %r12d, %r12d
jne 0x7855f
movslq 0x1c(%rbx), %rcx
leaq 0xb69f8(%rip), %rdx     # 0x12ef40
movl (%rdx,%rcx,4), %r12d
incl %ecx
cmpl $0x200, %ecx            # imm = 0x200
movl $0x0, %edx
cmovel %edx, %ecx
movl %ecx, 0x1c(%rbx)
decl %r12d
movl %r12d, 0x18(%rbx)
movq 0x20(%rsp), %rcx
leal 0x1(%rcx), %edx
movl %edx, 0x444(%rbx)
cmpl 0x10(%rsp), %ecx
je 0x78442
xorl %ecx, %ecx
cmpl $0x1, %r12d
sete %cl
movzbl %al, %eax
xorl %ecx, %eax
cmpl 0x38(%rsp), %eax
jne 0x78847
movl $0x2, 0x10(%rbx)
cmpl 0xc(%rsp), %r13d
jae 0x7916c
movl %edx, 0x44(%rsp)
movq %rdi, 0x30(%rsp)
movl %r13d, %edi
movq %rsi, 0x18(%rsp)
movq 0x28(%rsp), %rsi
callq 0x783ab
movl %r13d, %ecx
movq 0x30(%rsp), %rdx
movzwl (%rdx,%rcx,2), %esi
shrl %r13d
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r13), %r15d
shll $0x2, %ebp
andb $0x4, %bpl
movl %ebp, %ecx
shrl %cl, %r15d
andl $0xf, %r15d
shll $0x10, %r15d
orl %esi, %r15d
movl %r15d, 0x3c(%rbx)
testl %r12d, %r12d
jne 0x7861e
movslq 0x1c(%rbx), %rcx
leaq 0xb6939(%rip), %rdx     # 0x12ef40
movl (%rdx,%rcx,4), %r12d
incl %ecx
cmpl $0x200, %ecx            # imm = 0x200
movl $0x0, %edx
cmovel %edx, %ecx
movl %ecx, 0x1c(%rbx)
decl %r12d
movl %r12d, 0x18(%rbx)
movq 0x20(%rsp), %rcx
leal 0x2(%rcx), %ebp
movl %ebp, 0x444(%rbx)
movl 0x44(%rsp), %ecx
cmpl 0x10(%rsp), %ecx
je 0x78442
xorl %ecx, %ecx
cmpl $0x1, %r12d
sete %cl
movzbl %al, %eax
xorl %ecx, %eax
cmpl 0x38(%rsp), %eax
jne 0x78847
movl $0x3, 0x10(%rbx)
cmpl 0xc(%rsp), %r15d
jae 0x7916c
movl %esi, %r13d
movl %r15d, %edi
movq 0x28(%rsp), %rsi
callq 0x783ab
movl %r15d, %ecx
movq 0x30(%rsp), %rdx
movzwl (%rdx,%rcx,2), %esi
shrl %r15d
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r15), %r15d
shll $0x2, %r13d
andb $0x4, %r13b
movl %r13d, %ecx
shrl %cl, %r15d
andl $0xf, %r15d
shll $0x10, %r15d
orl %esi, %r15d
movl %r15d, 0x3c(%rbx)
testl %r12d, %r12d
jne 0x786d8
movslq 0x1c(%rbx), %rcx
leaq 0xb687f(%rip), %rdx     # 0x12ef40
movl (%rdx,%rcx,4), %r12d
incl %ecx
cmpl $0x200, %ecx            # imm = 0x200
movl $0x0, %edx
cmovel %edx, %ecx
movl %ecx, 0x1c(%rbx)
decl %r12d
movl %r12d, 0x18(%rbx)
movq 0x20(%rsp), %rcx
addl $0x3, %ecx
movl %ecx, 0x444(%rbx)
cmpl 0x10(%rsp), %ebp
je 0x78442
xorl %ecx, %ecx
cmpl $0x1, %r12d
sete %cl
movzbl %al, %eax
xorl %ecx, %eax
cmpl 0x38(%rsp), %eax
jne 0x78847
cmpl 0xc(%rsp), %r15d
jae 0x7916c
movl %esi, %r13d
movl %r15d, %edi
movq 0x28(%rsp), %rsi
callq 0x783ab
movl %r15d, %ecx
movq 0x30(%rsp), %rdx
movzwl (%rdx,%rcx,2), %ebp
shrl %r15d
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r15), %r15d
movl %r13d, %ecx
shll $0x2, %ecx
andb $0x4, %cl
shrl %cl, %r15d
andl $0xf, %r15d
shll $0x10, %r15d
orl %ebp, %r15d
movl %r15d, 0x3c(%rbx)
testl %r12d, %r12d
jne 0x78785
movslq 0x1c(%rbx), %rcx
leaq 0xb67d2(%rip), %rdx     # 0x12ef40
movl (%rdx,%rcx,4), %r12d
incl %ecx
cmpl $0x200, %ecx            # imm = 0x200
movl $0x0, %edx
cmovel %edx, %ecx
movl %ecx, 0x1c(%rbx)
decl %r12d
movl %r12d, 0x18(%rbx)
xorl %ecx, %ecx
cmpl $0x1, %r12d
sete %cl
movq 0x20(%rsp), %rdx
addl $0x4, %edx
movl %edx, 0x444(%rbx)
movzbl %al, %eax
xorl %ecx, %eax
addl $0x4, %eax
movl %eax, 0x10(%rbx)
cmpl 0xc(%rsp), %r15d
jae 0x7916c
movl %r15d, %edi
movq 0x28(%rsp), %rsi
callq 0x783ab
movl %eax, 0x40(%rbx)
movl %r15d, %ecx
movq 0x30(%rsp), %rdx
movzwl (%rdx,%rcx,2), %edx
shrl %r15d
movq 0x18(%rsp), %rcx
movzbl (%rcx,%r15), %esi
shll $0x2, %ebp
andb $0x4, %bpl
movl %ebp, %ecx
shrl %cl, %esi
andl $0xf, %esi
shll $0x10, %esi
orl %edx, %esi
movl %esi, 0x3c(%rbx)
testl %r12d, %r12d
jne 0x7881f
movslq 0x1c(%rbx), %rcx
leaq 0xb6738(%rip), %rdx     # 0x12ef40
movl (%rdx,%rcx,4), %r12d
incl %ecx
cmpl $0x200, %ecx            # imm = 0x200
movl $0x0, %edx
cmovel %edx, %ecx
movl %ecx, 0x1c(%rbx)
decl %r12d
movl %r12d, 0x18(%rbx)
xorl %ecx, %ecx
cmpl $0x1, %r12d
sete %cl
xorl %ecx, %eax
movl %eax, 0x40(%rbx)
movq 0x20(%rsp), %rax
addl $0x5, %eax
movl %eax, 0x444(%rbx)
jmp 0x78442
movl %eax, 0x40(%rbx)
jmp 0x78442
testb %al, %al
je 0x78e2b
movq (%rbx), %rax
leaq 0xb62df(%rip), %r12     # 0x12eb40
movl 0x20(%rax), %ecx
testl %ecx, %ecx
je 0x79085
cmpl $0x0, 0x10(%rbx)
je 0x788b2
movzbl 0xc(%rbx), %ecx
movq 0x18(%rax), %rax
movb %cl, (%rax)
movl 0xc70(%rbx), %eax
movl %eax, %edx
shll $0x8, %edx
shrl $0x18, %eax
xorl %ecx, %eax
xorl (%r12,%rax,4), %edx
movl %edx, 0xc70(%rbx)
decl 0x10(%rbx)
movq (%rbx), %rax
incq 0x18(%rax)
movl 0x20(%rax), %ecx
decl %ecx
movl %ecx, 0x20(%rax)
incl 0x24(%rax)
jne 0x78864
incl 0x28(%rax)
jmp 0x78864
movl 0x444(%rbx), %ecx
movl 0xfa50(%rbx), %r9d
leal 0x1(%r9), %edx
cmpl %edx, %ecx
je 0x79085
jg 0x7916c
movl $0x1, 0x10(%rbx)
movl 0x3c(%rbx), %edx
movl 0x40(%rbx), %r8d
movb %r8b, 0xc(%rbx)
imull $0x186a0, 0x28(%rbx), %esi # imm = 0x186A0
cmpl %esi, %edx
jae 0x7916c
movq 0xc50(%rbx), %rdi
movl (%rdi,%rdx,4), %ebp
movl %ebp, %r11d
shrl $0x8, %r11d
movl %r11d, 0x3c(%rbx)
movl 0x18(%rbx), %edx
testl %edx, %edx
jne 0x78935
movslq 0x1c(%rbx), %r10
leaq 0xb6627(%rip), %rdx     # 0x12ef40
movl (%rdx,%r10,4), %edx
incl %r10d
cmpl $0x200, %r10d           # imm = 0x200
movl $0x0, %r14d
cmovel %r14d, %r10d
movl %r10d, 0x1c(%rbx)
decl %edx
movl %edx, 0x18(%rbx)
leal 0x1(%rcx), %r10d
movl %r10d, 0x444(%rbx)
cmpl %r9d, %ecx
je 0x78861
xorl %r14d, %r14d
cmpl $0x1, %edx
sete %r14b
movzbl %bpl, %ebp
xorl %r14d, %ebp
cmpl %r8d, %ebp
jne 0x78b30
movl $0x2, 0x10(%rbx)
cmpl %esi, %r11d
jae 0x7916c
movl (%rdi,%r11,4), %ebp
movl %ebp, %r14d
shrl $0x8, %r14d
movl %r14d, 0x3c(%rbx)
testl %edx, %edx
jne 0x789b2
movslq 0x1c(%rbx), %r11
leaq 0xb65aa(%rip), %rdx     # 0x12ef40
movl (%rdx,%r11,4), %edx
incl %r11d
cmpl $0x200, %r11d           # imm = 0x200
movl $0x0, %r15d
cmovel %r15d, %r11d
movl %r11d, 0x1c(%rbx)
decl %edx
movl %edx, 0x18(%rbx)
leal 0x2(%rcx), %r11d
movl %r11d, 0x444(%rbx)
cmpl %r9d, %r10d
je 0x78861
xorl %r15d, %r15d
cmpl $0x1, %edx
sete %r15b
movzbl %bpl, %r10d
xorl %r15d, %r10d
cmpl %r8d, %r10d
jne 0x78b38
movl $0x3, 0x10(%rbx)
cmpl %esi, %r14d
jae 0x7916c
movl (%rdi,%r14,4), %ebp
movl %ebp, %r10d
shrl $0x8, %r10d
movl %r10d, 0x3c(%rbx)
testl %edx, %edx
jne 0x78a2f
movslq 0x1c(%rbx), %r14
leaq 0xb652d(%rip), %rdx     # 0x12ef40
movl (%rdx,%r14,4), %edx
incl %r14d
cmpl $0x200, %r14d           # imm = 0x200
movl $0x0, %r15d
cmovel %r15d, %r14d
movl %r14d, 0x1c(%rbx)
decl %edx
movl %edx, 0x18(%rbx)
leal 0x3(%rcx), %r14d
movl %r14d, 0x444(%rbx)
cmpl %r9d, %r11d
je 0x78861
xorl %r11d, %r11d
cmpl $0x1, %edx
sete %r11b
movzbl %bpl, %r9d
xorl %r11d, %r9d
cmpl %r8d, %r9d
jne 0x78b41
cmpl %esi, %r10d
jae 0x7916c
movl (%rdi,%r10,4), %r9d
movl %r9d, %r8d
shrl $0x8, %r8d
movl %r8d, 0x3c(%rbx)
testl %edx, %edx
jne 0x78aa5
movslq 0x1c(%rbx), %r10
leaq 0xb64b7(%rip), %rdx     # 0x12ef40
movl (%rdx,%r10,4), %edx
incl %r10d
cmpl $0x200, %r10d           # imm = 0x200
movl $0x0, %r11d
cmovel %r11d, %r10d
movl %r10d, 0x1c(%rbx)
decl %edx
movl %edx, 0x18(%rbx)
xorl %r10d, %r10d
cmpl $0x1, %edx
sete %r10b
leal 0x4(%rcx), %r11d
movl %r11d, 0x444(%rbx)
movzbl %r9b, %r9d
xorl %r10d, %r9d
addl $0x4, %r9d
movl %r9d, 0x10(%rbx)
cmpl %esi, %r8d
jae 0x7916c
movl (%rdi,%r8,4), %edi
movzbl %dil, %esi
movl %esi, 0x40(%rbx)
shrl $0x8, %edi
movl %edi, 0x3c(%rbx)
testl %edx, %edx
jne 0x78b0f
movslq 0x1c(%rbx), %rdi
leaq 0xb6449(%rip), %rdx     # 0x12ef40
movl (%rdx,%rdi,4), %edx
incl %edi
cmpl $0x200, %edi            # imm = 0x200
movl $0x0, %r8d
cmovel %r8d, %edi
movl %edi, 0x1c(%rbx)
decl %edx
movl %edx, 0x18(%rbx)
xorl %edi, %edi
cmpl $0x1, %edx
sete %dil
xorl %edi, %esi
movl %esi, 0x40(%rbx)
addl $0x5, %ecx
movl %ecx, 0x444(%rbx)
jmp 0x78861
movl %ebp, 0x40(%rbx)
jmp 0x78861
movl %r10d, 0x40(%rbx)
jmp 0x78861
movl %r9d, 0x40(%rbx)
jmp 0x78861
movl 0x20(%r14), %r13d
testl %r13d, %r13d
leaq 0xb5fe8(%rip), %rsi     # 0x12eb40
je 0x79085
cmpl $0x0, 0x10(%rbx)
je 0x78ba8
movzbl 0xc(%rbx), %eax
movq 0x18(%r14), %rcx
movb %al, (%rcx)
movl 0xc70(%rbx), %ecx
movl %ecx, %edx
shll $0x8, %edx
shrl $0x18, %ecx
xorl %eax, %ecx
xorl (%rsi,%rcx,4), %edx
movl %edx, 0xc70(%rbx)
decl 0x10(%rbx)
movq (%rbx), %r14
incq 0x18(%r14)
movl 0x20(%r14), %r13d
decl %r13d
movl %r13d, 0x20(%r14)
incl 0x24(%r14)
jne 0x78b4e
incl 0x28(%r14)
jmp 0x78b4e
movl 0x444(%rbx), %ecx
movl 0xfa50(%rbx), %eax
movq %rax, 0x20(%rsp)
incl %eax
cmpl %eax, %ecx
je 0x79085
jg 0x7916c
movl $0x1, 0x10(%rbx)
movl 0x3c(%rbx), %r12d
movl 0x40(%rbx), %eax
movl %eax, 0x38(%rsp)
movb %al, 0xc(%rbx)
imull $0x186a0, 0x28(%rbx), %eax # imm = 0x186A0
cmpl %eax, %r12d
jae 0x7916c
movl %eax, 0xc(%rsp)
movl %r12d, %edi
movq 0x28(%rsp), %rsi
movq %rcx, 0x10(%rsp)
callq 0x783ab
movq 0x10(%rsp), %rdx
movq 0xc58(%rbx), %rsi
movq 0xc60(%rbx), %rdi
movl %r12d, %ecx
shrl %ecx
movzbl (%rdi,%rcx), %r15d
leal (,%r12,4), %ecx
andb $0x4, %cl
shrl %cl, %r15d
movzwl (%rsi,%r12,2), %ebp
andl $0xf, %r15d
shll $0x10, %r15d
orl %ebp, %r15d
movl %r15d, 0x3c(%rbx)
leal 0x1(%rdx), %r12d
movl %r12d, 0x444(%rbx)
cmpl 0x20(%rsp), %edx
je 0x78b4e
movzbl %al, %eax
cmpl 0x38(%rsp), %eax
jne 0x78e23
movl $0x2, 0x10(%rbx)
cmpl 0xc(%rsp), %r15d
jae 0x7916c
movq %rdi, 0x30(%rsp)
movl %r15d, %edi
movq %rsi, 0x18(%rsp)
movq 0x28(%rsp), %rsi
callq 0x783ab
movl %r15d, %edx
shrl %r15d
movq 0x30(%rsp), %rcx
movzbl (%rcx,%r15), %r15d
shll $0x2, %ebp
andb $0x4, %bpl
movl %ebp, %ecx
shrl %cl, %r15d
movq 0x18(%rsp), %rcx
movzwl (%rcx,%rdx,2), %ebp
andl $0xf, %r15d
shll $0x10, %r15d
orl %ebp, %r15d
movl %r15d, 0x3c(%rbx)
movq 0x10(%rsp), %rcx
addl $0x2, %ecx
movl %ecx, 0x444(%rbx)
cmpl 0x20(%rsp), %r12d
je 0x78b4e
movzbl %al, %eax
cmpl 0x38(%rsp), %eax
jne 0x78e23
movl $0x3, 0x10(%rbx)
cmpl 0xc(%rsp), %r15d
jae 0x7916c
movl %r15d, %edi
movq 0x28(%rsp), %rsi
movl %ecx, %r12d
callq 0x783ab
movl %r15d, %edx
shrl %r15d
movq 0x30(%rsp), %rcx
movzbl (%rcx,%r15), %r15d
shll $0x2, %ebp
andb $0x4, %bpl
movl %ebp, %ecx
shrl %cl, %r15d
movq 0x18(%rsp), %rcx
movzwl (%rcx,%rdx,2), %ebp
andl $0xf, %r15d
shll $0x10, %r15d
orl %ebp, %r15d
movl %r15d, 0x3c(%rbx)
movq 0x10(%rsp), %rcx
addl $0x3, %ecx
movl %ecx, 0x444(%rbx)
cmpl 0x20(%rsp), %r12d
je 0x78b4e
movzbl %al, %eax
cmpl 0x38(%rsp), %eax
jne 0x78e23
cmpl 0xc(%rsp), %r15d
jae 0x7916c
movl %r15d, %edi
movq 0x28(%rsp), %rsi
callq 0x783ab
movl %r15d, %edx
shrl %r15d
movq 0x30(%rsp), %rcx
movzbl (%rcx,%r15), %r15d
shll $0x2, %ebp
andb $0x4, %bpl
movl %ebp, %ecx
shrl %cl, %r15d
movq 0x18(%rsp), %rcx
movzwl (%rcx,%rdx,2), %ebp
andl $0xf, %r15d
shll $0x10, %r15d
orl %ebp, %r15d
movl %r15d, 0x3c(%rbx)
movq 0x10(%rsp), %r12
leal 0x4(%r12), %ecx
movl %ecx, 0x444(%rbx)
movzbl %al, %eax
addl $0x4, %eax
movl %eax, 0x10(%rbx)
cmpl 0xc(%rsp), %r15d
jae 0x7916c
movl %r15d, %edi
movq 0x28(%rsp), %rsi
callq 0x783ab
movl %eax, 0x40(%rbx)
movl %r15d, %eax
shrl %r15d
movq 0x30(%rsp), %rcx
movzbl (%rcx,%r15), %edx
shll $0x2, %ebp
andb $0x4, %bpl
movl %ebp, %ecx
shrl %cl, %edx
movq 0x18(%rsp), %rcx
movzwl (%rcx,%rax,2), %eax
andl $0xf, %edx
shll $0x10, %edx
orl %eax, %edx
movl %edx, 0x3c(%rbx)
addl $0x5, %r12d
movl %r12d, 0x444(%rbx)
jmp 0x78b4e
movl %eax, 0x40(%rbx)
jmp 0x78b4e
movl 0xc70(%rbx), %esi
movb 0xc(%rbx), %r14b
movl 0x10(%rbx), %r12d
movl 0x444(%rbx), %r15d
movl 0x40(%rbx), %ebp
movq 0xc50(%rbx), %rax
movq %rax, 0x10(%rsp)
movl 0x3c(%rbx), %r8d
movq (%rbx), %rax
movq 0x18(%rax), %rcx
movl 0x20(%rax), %edi
movl 0xfa50(%rbx), %eax
movq %rax, 0x38(%rsp)
incl %eax
movl %eax, 0xc(%rsp)
imull $0x186a0, 0x28(%rbx), %eax # imm = 0x186A0
movl %eax, 0x20(%rsp)
movl %edi, 0x18(%rsp)
testl %r12d, %r12d
jle 0x78ec3
movzbl %r14b, %r13d
movl %r12d, %edx
decq %rdx
movl %edi, %eax
xorl %r10d, %r10d
cmpl %r10d, %eax
je 0x7903d
cmpl %r10d, %edx
je 0x78edc
movb %r13b, (%rcx,%r10)
movl %esi, %r11d
shll $0x8, %r11d
shrl $0x18, %esi
xorl %r13d, %esi
leaq 0xb5c89(%rip), %r9      # 0x12eb40
xorl (%r9,%rsi,4), %r11d
incq %r10
movl %r11d, %esi
jmp 0x78e91
movl %r15d, %r10d
movl %ebp, %r13d
leaq 0xb5c70(%rip), %r11     # 0x12eb40
movq 0x10(%rsp), %r9
movl 0xc(%rsp), %r12d
jmp 0x78f1d
addq %r10, %rcx
subl %r10d, %edi
leaq 0xb5c57(%rip), %r11     # 0x12eb40
movq 0x10(%rsp), %r9
movl 0xc(%rsp), %r12d
testl %edi, %edi
je 0x79141
movb %r14b, (%rcx)
movl %esi, %eax
shll $0x8, %eax
shrl $0x18, %esi
movzbl %r14b, %edx
xorl %esi, %edx
xorl (%r11,%rdx,4), %eax
incq %rcx
decl %edi
movl %r15d, %r10d
movl %ebp, %r13d
movl %eax, %esi
cmpl %r12d, %r10d
jg 0x7916c
je 0x7914c
movl 0x20(%rsp), %edx
cmpl %edx, %r8d
jae 0x7916c
movl %r8d, %eax
movl (%r9,%rax,4), %eax
movzbl %al, %ebp
movl %eax, %r8d
shrl $0x8, %r8d
leal 0x1(%r10), %r15d
cmpl %r13d, %ebp
jne 0x78f5d
cmpl 0x38(%rsp), %r10d
jne 0x78f62
movl %r13d, %ebp
movl %r13d, %r14d
jmp 0x78ef3
cmpl %edx, %r8d
jae 0x7916c
movl (%r9,%r8,4), %eax
movl %eax, %r8d
shrl $0x8, %r8d
leal 0x2(%r10), %edx
movl %r12d, %r9d
pushq $0x2
popq %r12
movl %r9d, %r15d
movl %r13d, %ebp
movl %r13d, %r14d
cmpl %r9d, %edx
je 0x78e7d
movzbl %al, %ebp
movl %edx, %r15d
movl %r13d, %r14d
cmpl %r13d, %ebp
jne 0x78e7d
cmpl 0x20(%rsp), %r8d
jae 0x7916c
movq 0x10(%rsp), %rax
movl (%rax,%r8,4), %eax
movl %eax, %r8d
shrl $0x8, %r8d
leal 0x3(%r10), %edx
pushq $0x3
popq %r12
movl 0xc(%rsp), %r9d
movl %r9d, %r15d
movl %r13d, %ebp
movl %r13d, %r14d
cmpl %r9d, %edx
je 0x78e7d
movzbl %al, %ebp
movl %edx, %r15d
movl %r13d, %r14d
cmpl %r13d, %ebp
jne 0x78e7d
movl 0x20(%rsp), %edx
cmpl %edx, %r8d
jae 0x7916c
movq 0x10(%rsp), %r9
movl (%r9,%r8,4), %r12d
movl %r12d, %eax
shrl $0x8, %eax
cmpl %edx, %eax
jae 0x7916c
movl $0xff, %edx
andl %edx, %r12d
addl $0x4, %r12d
movl (%r9,%rax,4), %r8d
movl %r8d, %ebp
andl %edx, %ebp
shrl $0x8, %r8d
addl $0x5, %r10d
movl %r10d, %r15d
movl %r13d, %r14d
jmp 0x78e7d
subl %r10d, %r12d
addq %r10, %rcx
xorl %edi, %edi
movl 0x18(%rsp), %edx
movq (%rbx), %rax
subl %edi, %edx
addl %edx, 0x24(%rax)
jae 0x79056
incl 0x28(%rax)
movl %esi, 0xc70(%rbx)
movb %r14b, 0xc(%rbx)
movl %r12d, 0x10(%rbx)
movl %r15d, 0x444(%rbx)
movl %ebp, 0x40(%rbx)
movq 0x10(%rsp), %rdx
movq %rdx, 0xc50(%rbx)
movl %r8d, 0x3c(%rbx)
movq %rcx, 0x18(%rax)
movl %edi, 0x20(%rax)
movl 0xfa50(%rbx), %ecx
incl %ecx
xorl %eax, %eax
cmpl %ecx, 0x444(%rbx)
jne 0x7915d
cmpl $0x0, 0x10(%rbx)
movq 0x28(%rsp), %r14
pushq $0x2
popq %rbp
jne 0x7915d
movl 0xc70(%rbx), %ecx
notl %ecx
movl %ecx, 0xc70(%rbx)
movl 0x34(%rbx), %eax
cmpl $0x3, %eax
jge 0x7911e
cmpl $0x2, %eax
jl 0x790da
movq 0xb4ee9(%rip), %rax     # 0x12dfb8
movq (%rax), %rsi
pushq $0x5d
popq %rdi
callq 0xb7d0
movl 0xc70(%rbx), %eax
cmpl 0xc68(%rbx), %eax
jne 0x7916c
movl 0xc74(%rbx), %ecx
roll %ecx
xorl %eax, %ecx
movl %ecx, 0xc74(%rbx)
movl $0xe, 0x8(%rbx)
movq %rbx, %rdi
callq 0x97514
cmpl $0x4, %eax
je 0x79170
cmpl $0x2, 0x8(%rbx)
movl %ebp, %ecx
je 0x7840d
jmp 0x7915d
movq 0xb4e93(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
movl 0xc68(%rbx), %edx
leaq 0x67eb7(%rip), %rsi     # 0xe0fec
xorl %eax, %eax
callq 0xb8c0
movl 0x34(%rbx), %eax
jmp 0x790c3
xorl %edi, %edi
pushq $0x1
popq %r12
jmp 0x79045
movl %r12d, %r15d
xorl %r12d, %r12d
movl %r13d, %ebp
jmp 0x79045
pushq $-0x1
popq %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $-0x4
jmp 0x7915c
cmpl $0x3, 0x34(%rbx)
jge 0x79190
movl 0xc74(%rbx), %eax
xorl %ecx, %ecx
cmpl 0xc6c(%rbx), %eax
sete %cl
leal -0x4(,%rcx,8), %eax
jmp 0x7915d
movq 0xb4e21(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
movl 0xc6c(%rbx), %edx
movl 0xc74(%rbx), %ecx
leaq 0x67e51(%rip), %rsi     # 0xe0ffe
xorl %eax, %eax
callq 0xb8c0
jmp 0x79176