// File: /workspace/github_c_makefile_star2_O2/bluecmd[P]fst-example/gtkwave/lz4.c
// Function: LZ4_compress_fast_continue
int LZ4_compress_fast_continue (LZ4_stream_t* LZ4_stream, const char* source, char* dest, int inputSize, int maxOutputSize, int acceleration)
{
    LZ4_stream_t_internal* streamPtr = (LZ4_stream_t_internal*)LZ4_stream;
    const BYTE* const dictEnd = streamPtr->dictionary + streamPtr->dictSize;

    const BYTE* smallest = (const BYTE*) source;
    if (streamPtr->initCheck) return 0;   /* Uninitialized structure detected */
    if ((streamPtr->dictSize>0) && (smallest>dictEnd)) smallest = dictEnd;
    LZ4_renormDictT(streamPtr, smallest);
    if (acceleration < 1) acceleration = ACCELERATION_DEFAULT;

    /* Check overlapping input/dictionary space */
    {
        const BYTE* sourceEnd = (const BYTE*) source + inputSize;
        if ((sourceEnd > streamPtr->dictionary) && (sourceEnd < dictEnd))
        {
            streamPtr->dictSize = (U32)(dictEnd - sourceEnd);
            if (streamPtr->dictSize > 64 KB) streamPtr->dictSize = 64 KB;
            if (streamPtr->dictSize < 4) streamPtr->dictSize = 0;
            streamPtr->dictionary = dictEnd - streamPtr->dictSize;
        }
    }

    /* prefix mode : source data follows dictionary */
    if (dictEnd == (const BYTE*)source)
    {
        int result;
        if ((streamPtr->dictSize < 64 KB) && (streamPtr->dictSize < streamPtr->currentOffset))
            result = LZ4_compress_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limitedOutput, byU32, withPrefix64k, dictSmall, acceleration);
        else
            result = LZ4_compress_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limitedOutput, byU32, withPrefix64k, noDictIssue, acceleration);
        streamPtr->dictSize += (U32)inputSize;
        streamPtr->currentOffset += (U32)inputSize;
        return result;
    }

    /* external dictionary mode */
    {
        int result;
        if ((streamPtr->dictSize < 64 KB) && (streamPtr->dictSize < streamPtr->currentOffset))
            result = LZ4_compress_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limitedOutput, byU32, usingExtDict, dictSmall, acceleration);
        else
            result = LZ4_compress_generic(LZ4_stream, source, dest, inputSize, maxOutputSize, limitedOutput, byU32, usingExtDict, noDictIssue, acceleration);
        streamPtr->dictionary = (const BYTE*)source;
        streamPtr->dictSize = (U32)inputSize;
        streamPtr->currentOffset += (U32)inputSize;
        return result;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rsi, %r12
xorl %esi, %esi
cmpl $0x0, 0x4004(%rdi)
jne 0xdc64
movl %r9d, %r15d
movl %ecx, %r14d
movq %rdi, %r13
movl %r8d, -0x74(%rbp)
movq %rdx, -0x58(%rbp)
movl 0x4018(%rdi), %eax
movq %rax, %rbx
addq 0x4008(%rdi), %rbx
cmpq %r12, %rbx
movq %r12, %rsi
cmovbq %rbx, %rsi
testl %eax, %eax
cmoveq %r12, %rsi
callq 0xdcd6
cmpl $0x2, %r15d
pushq $0x1
popq %rax
cmovll %eax, %r15d
movl %r15d, %r9d
movslq %r14d, %r15
addq %r12, %r15
movq 0x4008(%r13), %r8
cmpq %r8, %r15
seta %al
cmpq %rbx, %r15
setb %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0xcc29
movl %ebx, %eax
subl %r15d, %eax
movl $0x10000, %ecx          # imm = 0x10000
cmpl %ecx, %eax
cmovbl %eax, %ecx
xorl %edx, %edx
cmpl $0x4, %eax
cmovael %ecx, %edx
movl %edx, 0x4018(%r13)
movq %rbx, %r8
subq %rdx, %r8
movq %r8, 0x4008(%r13)
movl 0x4018(%r13), %ecx
movslq -0x74(%rbp), %rax
movq %rax, -0x68(%rbp)
cmpq %r12, %rbx
movl %r14d, -0x3c(%rbp)
movq %r13, -0x50(%rbp)
movq %r15, -0xa8(%rbp)
je 0xd093
cmpl $0xffff, %ecx           # imm = 0xFFFF
movq -0x58(%rbp), %r10
movq %r12, -0x48(%rbp)
movq %r8, -0x60(%rbp)
ja 0xd07a
movl 0x4000(%r13), %eax
cmpl %eax, %ecx
jae 0xd07a
cmpl $0x7e000000, %r14d      # imm = 0x7E000000
ja 0xd083
movq %r10, %rdi
movq %r12, %rsi
cmpl $0xd, %r14d
jb 0xd833
movq %r12, %rbx
subq %rcx, %rbx
addq %r8, %rcx
movq %rcx, -0xb0(%rbp)
subq %r12, %rcx
movq %rcx, -0x90(%rbp)
leaq -0xc(%r15), %rcx
movq %rcx, -0x38(%rbp)
leaq -0x5(%r15), %rcx
movq %rcx, -0xa0(%rbp)
addq %r10, -0x68(%rbp)
movq %r12, %rcx
subq %rax, %rcx
movq %rcx, -0x70(%rbp)
movq %rax, %rsi
negq %rsi
movq (%r12), %rcx
movabsq $0xcf1bbcdcbb, %rdx     # imm = 0xCF1BBCDCBB
imulq %rdx, %rcx
shrq $0x1c, %rcx
andl $0xfff, %ecx            # imm = 0xFFF
movl %eax, (%r13,%rcx,4)
movl %r9d, %eax
shll $0x6, %eax
addq %r12, %rsi
movq %rsi, -0xb8(%rbp)
pushq $0x1
popq %rcx
movq %r10, -0x80(%rbp)
movq %r12, %rsi
movl %eax, -0x2c(%rbp)
movq %rbx, -0x98(%rbp)
leaq 0x1(%rsi), %r10
movq 0x1(%rsi), %rdx
movl %ecx, %edi
addq %r10, %rdi
cmpq -0x38(%rbp), %rdi
ja 0xdc9c
movabsq $0xcf1bbcdcbb, %rcx     # imm = 0xCF1BBCDCBB
imulq %rcx, %rdx
shrq $0x1c, %rdx
movl %edx, %r8d
andl $0xfff, %r8d            # imm = 0xFFF
movl (%r13,%r8,4), %ecx
movq -0x70(%rbp), %r14
leaq (%r14,%rcx), %r9
movq (%rdi), %rdx
movl %r10d, %r11d
subl %r14d, %r11d
movl %r11d, (%r13,%r8,4)
cmpq %rbx, %r9
jb 0xcd9a
movq -0x70(%rbp), %r8
addq %rcx, %r8
addq $0xffff, %r8            # imm = 0xFFFF
cmpq %r10, %r8
jb 0xcd9a
cmpq %r12, %r9
movl $0x0, %r8d
cmovbq -0x90(%rbp), %r8
movl (%r9,%r8), %r11d
cmpl (%r10), %r11d
je 0xcda9
movl %eax, %ecx
shrl $0x6, %ecx
incl %eax
movq %rdi, %r10
jmp 0xcd22
cmpq %r12, %r9
movq %r12, %r9
cmovbq -0x60(%rbp), %r9
leaq (%r8,%rcx), %rax
addq -0xb8(%rbp), %rax
movl %r10d, %r14d
shlb $0x4, %r14b
movl %esi, %edx
shlb $0x4, %dl
subb %dl, %r14b
xorl %r11d, %r11d
leaq (%r10,%r11), %rbx
cmpq %rsi, %rbx
jbe 0xcdf8
leaq (%rax,%r11), %rdx
cmpq %r9, %rdx
jbe 0xcdf8
movb -0x1(%r10,%r11), %dl
cmpb -0x1(%rax,%r11), %dl
jne 0xcdf8
decq %r11
addb $-0x10, %r14b
jmp 0xcdd1
movl %r10d, %edi
subl %esi, %edi
leal (%rdi,%r11), %r15d
addq %r11, %rdi
movq -0x80(%rbp), %rax
addq %r15, %rax
incq %rax
movq %rax, -0xc0(%rbp)
movq $0x0, -0x88(%rbp)
movl %edi, %eax
xorl %edx, %edx
movl $0xff, %r12d
divl %r12d
movq -0xc0(%rbp), %rdx
addq %rdx, %rax
addq $0x8, %rax
cmpq -0x68(%rbp), %rax
ja 0xdcc9
cmpl $0xf, %edi
jb 0xce7a
subl %esi, %r10d
leal (%r10,%r11), %edx
addl $-0xf, %edx
movq -0x80(%rbp), %rdi
movb $-0x10, (%rdi)
leaq 0x2(%rdi), %rax
movq -0x60(%rbp), %r10
cmpl $0xff, %edx
jl 0xce8b
movb $-0x1, -0x1(%rax)
addl $0xffffff01, %edx       # imm = 0xFFFFFF01
incq %rax
jmp 0xce63
movq -0x80(%rbp), %rdi
leaq 0x1(%rdi), %rax
movb %r14b, (%rdi)
movq -0x60(%rbp), %r10
jmp 0xce8e
movb %dl, -0x1(%rax)
addq -0xb8(%rbp), %rcx
addq %r11, %rcx
addq %rax, %r15
movq (%rsi), %rdx
movq %rdx, (%rax)
addq $0x8, %rax
addq $0x8, %rsi
cmpq %r15, %rax
jb 0xce9b
jmp 0xceb7
leaq 0x1(%rdi), %r15
movb $0x0, (%rdi)
movq %rdi, %r14
movl %ebx, %eax
subl %ecx, %eax
movw %ax, (%r15)
cmpq %r10, %r9
je 0xcee9
leaq 0x4(%rbx), %rdi
addq $0x4, %rcx
movq %rcx, %rsi
movq -0xa0(%rbp), %rdx
callq 0x111df
movl %eax, %r12d
addl $0x4, %eax
addq %rax, %rbx
jmp 0xcf47
leaq (%rcx,%r8), %rax
movq -0xb0(%rbp), %r13
subq %rax, %r13
addq %rbx, %r13
movq -0xa0(%rbp), %rax
cmpq %rax, %r13
cmovaq %rax, %r13
leaq 0x4(%rbx), %rdi
leaq (%rcx,%r8), %rsi
addq $0x4, %rsi
movq %r13, %rdx
callq 0x111df
movl %eax, %r12d
leal 0x4(%r12), %eax
addq %rax, %rbx
cmpq %r13, %rbx
jne 0xcf47
movq %r13, %rdi
movq -0x48(%rbp), %rsi
movq -0xa0(%rbp), %rdx
callq 0x111df
addl %eax, %r12d
movl %eax, %ebx
addq %r13, %rbx
movl %r12d, %eax
shrl $0x8, %eax
addq %r15, %rax
addq $0x8, %rax
cmpq -0x68(%rbp), %rax
movq -0x50(%rbp), %r13
ja 0xdcc9
addq $0x2, %r15
movb (%r14), %al
cmpl $0xf, %r12d
movq -0x60(%rbp), %r10
jb 0xcf97
addb $0xf, %al
movb %al, (%r14)
addl $-0xf, %r12d
cmpl $0x1fe, %r12d           # imm = 0x1FE
jb 0xcf9f
orw $-0x1, (%r15)
addq $0x2, %r15
addl $0xfffffe02, %r12d      # imm = 0xFFFFFE02
jmp 0xcf7c
addb %r12b, %al
movb %al, (%r14)
jmp 0xcfbc
cmpl $0xff, %r12d
jb 0xcfb6
addl $0xffffff01, %r12d      # imm = 0xFFFFFF01
movb $-0x1, (%r15)
incq %r15
movb %r12b, (%r15)
incq %r15
movq %r15, %rdi
cmpq -0x38(%rbp), %rbx
movl -0x3c(%rbp), %r14d
movq -0xa8(%rbp), %r15
movq -0x48(%rbp), %r12
ja 0xd82c
leaq -0x2(%rbx), %rax
movq -0x2(%rbx), %rcx
movabsq $0xcf1bbcdcbb, %rdx     # imm = 0xCF1BBCDCBB
imulq %rdx, %rcx
shrq $0x1c, %rcx
movl $0xfff, %esi            # imm = 0xFFF
andl %esi, %ecx
movq -0x70(%rbp), %r11
subl %r11d, %eax
movl %eax, (%r13,%rcx,4)
movq (%rbx), %rax
imulq %rdx, %rax
shrq $0x1c, %rax
andl %esi, %eax
movl (%r13,%rax,4), %edx
leaq (%r11,%rdx), %rcx
cmpq %r12, %rcx
movl $0x0, %r8d
cmovbq -0x90(%rbp), %r8
movq %r12, %r9
cmovbq %r10, %r9
movl %ebx, %esi
subl %r11d, %esi
movl %esi, (%r13,%rax,4)
leaq (%r11,%rdx), %rax
addq $0xffff, %rax           # imm = 0xFFFF
cmpq -0x98(%rbp), %rcx
jb 0xd061
cmpq %rbx, %rax
jb 0xd061
movl (%rcx,%r8), %eax
cmpl (%rbx), %eax
je 0xceb0
movq %rdi, -0x80(%rbp)
movq %rbx, %rsi
movl -0x2c(%rbp), %eax
movq -0x98(%rbp), %rbx
pushq $0x1
popq %rcx
jmp 0xcd1a
cmpl $0x7e000000, %r14d      # imm = 0x7E000000
jbe 0xd0d9
movq $0x0, -0x88(%rbp)
jmp 0xd8b5
cmpl $0xffff, %ecx           # imm = 0xFFFF
movq -0x58(%rbp), %rbx
ja 0xd0c5
movl 0x4000(%r13), %eax
cmpl %eax, %ecx
jae 0xd0c5
cmpl $0x7e000000, %r14d      # imm = 0x7E000000
ja 0xd0d2
cmpl $0xd, %r14d
jae 0xd8ed
movq %rbx, %rdi
jmp 0xdbc5
cmpl $0x7e000000, %r14d      # imm = 0x7E000000
jbe 0xd496
xorl %esi, %esi
jmp 0xdc48
movq %r10, %rdi
movq %r12, %rsi
cmpl $0xd, %r14d
jb 0xd4b6
addq %r8, %rcx
movq %rcx, -0xb0(%rbp)
movq %rcx, %rbx
subq %r12, %rbx
leaq -0xc(%r15), %rax
movq %rax, -0x70(%rbp)
leaq -0x5(%r15), %rax
movq %rax, -0x90(%rbp)
addq %r10, -0x68(%rbp)
movl 0x4000(%r13), %eax
movq %r12, %r15
subq %rax, %r15
movq (%r12), %rcx
movabsq $0xcf1bbcdcbb, %r14     # imm = 0xCF1BBCDCBB
imulq %r14, %rcx
shrq $0x1c, %rcx
andl $0xfff, %ecx            # imm = 0xFFF
movl %eax, (%r13,%rcx,4)
movq %rax, %rcx
negq %rcx
movl %r9d, %eax
shll $0x6, %eax
addq %r12, %rcx
movq %rcx, -0x98(%rbp)
movq %r10, -0x38(%rbp)
movq %r12, %rsi
movl %eax, -0x2c(%rbp)
movq %rbx, -0xa0(%rbp)
leaq 0x1(%rsi), %r10
movq 0x1(%rsi), %rdx
pushq $0x1
popq %rcx
movl %ecx, %edi
addq %r10, %rdi
cmpq -0x70(%rbp), %rdi
ja 0xdc78
imulq %r14, %rdx
shrq $0x1c, %rdx
movl %edx, %r8d
andl $0xfff, %r8d            # imm = 0xFFF
movl (%r13,%r8,4), %ecx
movq (%rdi), %rdx
movl %r10d, %r9d
subl %r15d, %r9d
movl %r9d, (%r13,%r8,4)
leaq (%r15,%rcx), %r8
addq $0xffff, %r8            # imm = 0xFFFF
cmpq %r10, %r8
jb 0xd1ce
leaq (%r15,%rcx), %r9
cmpq %r12, %r9
movl $0x0, %r8d
cmovbq %rbx, %r8
movl (%r9,%r8), %r11d
cmpl (%r10), %r11d
je 0xd1da
movl %eax, %ecx
shrl $0x6, %ecx
incl %eax
movq %rdi, %r10
jmp 0xd170
cmpq %r12, %r9
movq %r12, %r9
cmovbq -0x60(%rbp), %r9
leaq (%r8,%rcx), %rax
addq -0x98(%rbp), %rax
movl %r10d, %r12d
shlb $0x4, %r12b
movl %esi, %edx
shlb $0x4, %dl
subb %dl, %r12b
xorl %r11d, %r11d
leaq (%r10,%r11), %rbx
cmpq %rsi, %rbx
jbe 0xd229
leaq (%rax,%r11), %rdx
cmpq %r9, %rdx
jbe 0xd229
movb -0x1(%r10,%r11), %dl
cmpb -0x1(%rax,%r11), %dl
jne 0xd229
decq %r11
addb $-0x10, %r12b
jmp 0xd202
movl %r10d, %edi
subl %esi, %edi
leal (%rdi,%r11), %r14d
addq %r11, %rdi
movq -0x38(%rbp), %rax
addq %r14, %rax
incq %rax
movq %rax, -0x80(%rbp)
movq $0x0, -0x88(%rbp)
movl %edi, %eax
xorl %edx, %edx
movl $0xff, %r13d
divl %r13d
movq -0x80(%rbp), %rdx
addq %rdx, %rax
addq $0x8, %rax
cmpq -0x68(%rbp), %rax
ja 0xdcb6
cmpl $0xf, %edi
jb 0xd2a5
subl %esi, %r10d
leal (%r10,%r11), %edx
addl $-0xf, %edx
movq -0x38(%rbp), %rdi
movb $-0x10, (%rdi)
leaq 0x2(%rdi), %rax
movq -0x60(%rbp), %r10
cmpl $0xff, %edx
jl 0xd2b6
movb $-0x1, -0x1(%rax)
addl $0xffffff01, %edx       # imm = 0xFFFFFF01
incq %rax
jmp 0xd28e
movq -0x38(%rbp), %rdi
leaq 0x1(%rdi), %rax
movb %r12b, (%rdi)
movq -0x60(%rbp), %r10
jmp 0xd2b9
movb %dl, -0x1(%rax)
addq -0x98(%rbp), %rcx
addq %r11, %rcx
addq %rax, %r14
movq (%rsi), %rdx
movq %rdx, (%rax)
addq $0x8, %rax
addq $0x8, %rsi
cmpq %r14, %rax
jb 0xd2c6
jmp 0xd2e2
leaq 0x1(%rdi), %r14
movb $0x0, (%rdi)
movq %rdi, -0x38(%rbp)
movl %ebx, %eax
subl %ecx, %eax
movw %ax, (%r14)
cmpq %r10, %r9
je 0xd315
leaq 0x4(%rbx), %rdi
addq $0x4, %rcx
movq %rcx, %rsi
movq -0x90(%rbp), %rdx
callq 0x111df
movl %eax, %r13d
addl $0x4, %eax
addq %rax, %rbx
jmp 0xd372
leaq (%rcx,%r8), %rax
movq -0xb0(%rbp), %r12
subq %rax, %r12
addq %rbx, %r12
movq -0x90(%rbp), %rax
cmpq %rax, %r12
cmovaq %rax, %r12
leaq 0x4(%rbx), %rdi
leaq (%rcx,%r8), %rsi
addq $0x4, %rsi
movq %r12, %rdx
callq 0x111df
movl %eax, %r13d
leal 0x4(%r13), %eax
addq %rax, %rbx
cmpq %r12, %rbx
jne 0xd372
movq %r12, %rdi
movq -0x48(%rbp), %rsi
movq -0x90(%rbp), %rdx
callq 0x111df
addl %eax, %r13d
movl %eax, %ebx
addq %r12, %rbx
movl %r13d, %eax
shrl $0x8, %eax
addq %r14, %rax
addq $0x8, %rax
cmpq -0x68(%rbp), %rax
ja 0xdcb6
addq $0x2, %r14
movq -0x38(%rbp), %rcx
movb (%rcx), %al
cmpl $0xf, %r13d
jb 0xd3c4
addb $0xf, %al
movb %al, (%rcx)
addl $-0xf, %r13d
movq -0x48(%rbp), %r12
movq -0x60(%rbp), %r10
cmpl $0x1fe, %r13d           # imm = 0x1FE
jb 0xd3d6
orw $-0x1, (%r14)
addq $0x2, %r14
addl $0xfffffe02, %r13d      # imm = 0xFFFFFE02
jmp 0xd3a9
addb %r13b, %al
movb %al, (%rcx)
movq %r14, %rdi
movq -0x48(%rbp), %r12
movq -0x60(%rbp), %r10
jmp 0xd3f6
cmpl $0xff, %r13d
jb 0xd3ed
addl $0xffffff01, %r13d      # imm = 0xFFFFFF01
movb $-0x1, (%r14)
incq %r14
movb %r13b, (%r14)
incq %r14
movq %r14, %rdi
cmpq -0x70(%rbp), %rbx
movq -0x50(%rbp), %r13
movabsq $0xcf1bbcdcbb, %r14     # imm = 0xCF1BBCDCBB
ja 0xd4a4
leaq -0x2(%rbx), %rax
movq -0x2(%rbx), %rcx
imulq %r14, %rcx
shrq $0x1c, %rcx
movl $0xfff, %edx            # imm = 0xFFF
andl %edx, %ecx
subl %r15d, %eax
movl %eax, (%r13,%rcx,4)
movq (%rbx), %rax
imulq %r14, %rax
shrq $0x1c, %rax
andl %edx, %eax
movl (%r13,%rax,4), %edx
leaq (%r15,%rdx), %rcx
cmpq %r12, %rcx
movl $0x0, %r8d
cmovbq -0xa0(%rbp), %r8
movq %r12, %r9
cmovbq %r10, %r9
movl %ebx, %esi
subl %r15d, %esi
movl %esi, (%r13,%rax,4)
leaq (%r15,%rdx), %rax
addq $0xffff, %rax           # imm = 0xFFFF
cmpq %rbx, %rax
jb 0xd480
movl (%rcx,%r8), %eax
cmpl (%rbx), %eax
je 0xd2db
movq %rdi, -0x38(%rbp)
movq %rbx, %rsi
movl -0x2c(%rbp), %eax
movq -0xa0(%rbp), %rbx
jmp 0xd165
cmpl $0xd, %r14d
jae 0xd51b
movq %rbx, %r15
jmp 0xd7c4
movq %rbx, %rsi
movl -0x3c(%rbp), %r14d
movq -0x58(%rbp), %r10
movq -0xa8(%rbp), %r15
subq %rsi, %r15
leaq 0xf0(%r15), %rax
movq $0x0, -0x88(%rbp)
movl $0xff, %ecx
xorl %edx, %edx
divq %rcx
movq %rdi, %rcx
subq %r10, %rcx
addq %r15, %rcx
addq %rcx, %rax
incq %rax
movl -0x74(%rbp), %ecx
cmpq %rcx, %rax
ja 0xd8b5
cmpq $0xf, %r15
jb 0xd88c
leaq -0xf(%r15), %rax
movb $-0x10, (%rdi)
incq %rdi
cmpq $0xff, %rax
jb 0xd896
movb $-0x1, (%rdi)
addq $-0xff, %rax
jmp 0xd501
movq %r12, %rax
subq %rcx, %rax
movq %rax, -0x70(%rbp)
movq %r12, %rdx
leaq -0xc(%r15), %r12
leaq -0x5(%r15), %rax
movq %rax, -0x38(%rbp)
addq %rbx, -0x68(%rbp)
movl 0x4000(%r13), %eax
movq %rbx, %r15
movq %rdx, %rbx
subq %rax, %rbx
movq (%rdx), %rcx
movabsq $0xcf1bbcdcbb, %r10     # imm = 0xCF1BBCDCBB
imulq %r10, %rcx
shrq $0x1c, %rcx
andl $0xfff, %ecx            # imm = 0xFFF
movl %eax, (%r13,%rcx,4)
negq %rax
movl %r9d, %ecx
shll $0x6, %ecx
addq %rdx, %rax
movq %rax, -0x60(%rbp)
pushq $0x1
popq %rax
movl %ecx, -0x2c(%rbp)
leaq 0x1(%rdx), %rdi
movq %rdx, %r11
movq 0x1(%rdx), %rdx
movl %eax, %esi
addq %rdi, %rsi
cmpq %r12, %rsi
ja 0xdc90
imulq %r10, %rdx
shrq $0x1c, %rdx
movl %edx, %r8d
andl $0xfff, %r8d            # imm = 0xFFF
movl (%r13,%r8,4), %eax
movq (%rsi), %rdx
movl %edi, %r9d
subl %ebx, %r9d
movl %r9d, (%r13,%r8,4)
leaq (%rbx,%rax), %r8
addq $0xffff, %r8            # imm = 0xFFFF
cmpq %rdi, %r8
jb 0xd5d8
leaq (%rbx,%rax), %r8
movl (%r8), %r8d
cmpl (%rdi), %r8d
je 0xd5e4
movl %ecx, %eax
shrl $0x6, %eax
incl %ecx
movq %rsi, %rdi
jmp 0xd589
addq -0x60(%rbp), %rax
movl %edi, %ecx
shlb $0x4, %cl
movl %r11d, %edx
shlb $0x4, %dl
subb %dl, %cl
xorl %edx, %edx
movq %rdx, %r8
movl %ecx, %r9d
leaq (%rax,%rdx), %rsi
leaq (%rdi,%rdx), %r13
cmpq %r11, %r13
jbe 0xd624
cmpq -0x70(%rbp), %rsi
jbe 0xd624
movb -0x1(%rdi,%r8), %r10b
leaq -0x1(%r8), %rdx
leal -0x10(%r9), %ecx
cmpb -0x1(%rax,%r8), %r10b
je 0xd5f7
movl %edi, %ecx
subl %r11d, %ecx
leal (%rcx,%r8), %r14d
addq %r8, %rcx
leaq (%r15,%r14), %rax
incq %rax
movq %rax, -0x48(%rbp)
movl %ecx, %eax
xorl %edx, %edx
movl $0xff, %r10d
divl %r10d
movq -0x48(%rbp), %rdx
addq %rdx, %rax
addq $0x8, %rax
cmpq -0x68(%rbp), %rax
ja 0xdcc0
cmpl $0xf, %ecx
jb 0xd68b
subl %r11d, %edi
leal (%rdi,%r8), %ecx
addl $-0xf, %ecx
movb $-0x10, (%r15)
leaq 0x2(%r15), %rax
cmpl $0xff, %ecx
jl 0xd694
movb $-0x1, -0x1(%rax)
addl $0xffffff01, %ecx       # imm = 0xFFFFFF01
incq %rax
jmp 0xd674
leaq 0x1(%r15), %rax
movb %r9b, (%r15)
jmp 0xd697
movb %cl, -0x1(%rax)
addq %rax, %r14
movq (%r11), %rcx
movq %rcx, (%rax)
addq $0x8, %rax
addq $0x8, %r11
cmpq %r14, %rax
jb 0xd69a
jmp 0xd6b7
leaq 0x1(%r15), %r14
movb $0x0, (%r15)
movl %r13d, %eax
subl %esi, %eax
movw %ax, (%r14)
leaq 0x4(%r13), %rdi
addq $0x4, %rsi
movq -0x38(%rbp), %rdx
callq 0x111df
movl %eax, %ecx
shrl $0x8, %ecx
addq %r14, %rcx
addq $0x8, %rcx
cmpq -0x68(%rbp), %rcx
ja 0xdcc0
addq $0x2, %r14
movb (%r15), %cl
cmpl $0xf, %eax
jb 0xd715
addb $0xf, %cl
movb %cl, (%r15)
leal -0xf(%rax), %ecx
cmpl $0x1fe, %ecx            # imm = 0x1FE
jb 0xd71c
orw $-0x1, (%r14)
addq $0x2, %r14
addl $0xfffffe02, %ecx       # imm = 0xFFFFFE02
jmp 0xd6fc
addb %al, %cl
movb %cl, (%r15)
jmp 0xd737
cmpl $0xff, %ecx
jb 0xd731
addl $0xffffff01, %ecx       # imm = 0xFFFFFF01
movb $-0x1, (%r14)
incq %r14
movb %cl, (%r14)
incq %r14
movq %r14, %r15
addl $0x4, %eax
addq %rax, %r13
cmpq %r12, %r13
movabsq $0xcf1bbcdcbb, %r10     # imm = 0xCF1BBCDCBB
ja 0xd7b9
leaq -0x2(%r13), %rax
movq -0x2(%r13), %rcx
imulq %r10, %rcx
shrq $0x1c, %rcx
movl $0xfff, %edx            # imm = 0xFFF
andl %edx, %ecx
subl %ebx, %eax
movq -0x50(%rbp), %rdi
movl %eax, (%rdi,%rcx,4)
movq (%r13), %rax
imulq %r10, %rax
shrq $0x1c, %rax
andl %edx, %eax
movl (%rdi,%rax,4), %ecx
leaq (%rbx,%rcx), %rsi
movl %r13d, %edx
subl %ebx, %edx
movl %edx, (%rdi,%rax,4)
leaq (%rbx,%rcx), %rax
addq $0xffff, %rax           # imm = 0xFFFF
cmpq %r13, %rax
jb 0xd7a7
movl (%rsi), %eax
cmpl (%r13), %eax
je 0xd6af
movq %r13, %rdx
movq -0x50(%rbp), %r13
movl -0x2c(%rbp), %ecx
pushq $0x1
popq %rax
jmp 0xd57e
movq %r13, %r12
movq -0x50(%rbp), %r13
movq -0x58(%rbp), %rbx
movq -0xa8(%rbp), %r14
subq %r12, %r14
leaq 0xf0(%r14), %rax
xorl %esi, %esi
movl $0xff, %ecx
xorl %edx, %edx
divq %rcx
movq %r15, %rcx
subq %rbx, %rcx
addq %r14, %rcx
addq %rcx, %rax
incq %rax
movl -0x74(%rbp), %ecx
cmpq %rcx, %rax
ja 0xdc48
cmpq $0xf, %r14
jb 0xd8cb
movq %r14, %rcx
leaq -0xf(%r14), %rax
movb $-0x10, (%r15)
incq %r15
cmpq $0xff, %rax
jb 0xd8d6
movb $-0x1, (%r15)
addq $-0xff, %rax
jmp 0xd811
movq %rbx, %rsi
movq -0x58(%rbp), %r10
subq %rsi, %r15
leaq 0xf0(%r15), %rax
movq $0x0, -0x88(%rbp)
movl $0xff, %ecx
xorl %edx, %edx
divq %rcx
movq %rdi, %rcx
subq %r10, %rcx
addq %r15, %rcx
addq %rcx, %rax
incq %rax
movl -0x74(%rbp), %ecx
cmpq %rcx, %rax
ja 0xd8b5
cmpq $0xf, %r15
jb 0xd88c
leaq -0xf(%r15), %rax
movb $-0x10, (%rdi)
incq %rdi
cmpq $0xff, %rax
jb 0xd896
movb $-0x1, (%rdi)
addq $-0xff, %rax
jmp 0xd876
movl %r15d, %eax
shlb $0x4, %al
movb %al, (%rdi)
jmp 0xd898
movb %al, (%rdi)
incq %rdi
movq %r15, %rdx
movq %rdi, %rbx
callq 0x2240
addl %r15d, %ebx
subl -0x58(%rbp), %ebx
movl %ebx, %eax
movq %rax, -0x88(%rbp)
movq %r12, 0x4008(%r13)
movl %r14d, %eax
movq -0x88(%rbp), %rsi
jmp 0xdc56
movl %r14d, %eax
shlb $0x4, %al
movb %al, (%r15)
jmp 0xd8dc
movb %al, (%r15)
movq %rcx, %r14
incq %r15
movq %r15, %rdi
movq %r12, %rsi
movq %r14, %rdx
jmp 0xdc3a
movq %r13, %rdx
movq %r12, %r13
subq %rcx, %r13
leaq -0xc(%r15), %rcx
movq %rcx, -0x70(%rbp)
leaq -0x5(%r15), %rcx
movq %rcx, -0x60(%rbp)
addq %rbx, -0x68(%rbp)
movq %r12, %rsi
subq %rax, %r12
movq %rax, %rdi
negq %rdi
movq (%rsi), %rcx
movabsq $0xcf1bbcdcbb, %r14     # imm = 0xCF1BBCDCBB
imulq %r14, %rcx
shrq $0x1c, %rcx
andl $0xfff, %ecx            # imm = 0xFFF
movl %eax, (%rdx,%rcx,4)
movl %r9d, %ecx
shll $0x6, %ecx
addq %rsi, %rdi
movq %rdi, -0x90(%rbp)
pushq $0x1
popq %r8
movq %rbx, -0x38(%rbp)
movl %ecx, -0x2c(%rbp)
leaq 0x1(%rsi), %rdi
movq %rsi, -0x48(%rbp)
movq 0x1(%rsi), %rdx
movl %r8d, %eax
movl %eax, %esi
addq %rdi, %rsi
cmpq -0x70(%rbp), %rsi
ja 0xdca9
movl %r8d, %r15d
imulq %r14, %rdx
shrq $0x1c, %rdx
movl %edx, %r9d
andl $0xfff, %r9d            # imm = 0xFFF
movq -0x50(%rbp), %r11
movl (%r11,%r9,4), %eax
leaq (%r12,%rax), %r8
movq (%rsi), %rdx
movl %edi, %r10d
subl %r12d, %r10d
movl %r10d, (%r11,%r9,4)
cmpq %r13, %r8
jb 0xd9b8
leaq (%r12,%rax), %r9
addq $0xffff, %r9            # imm = 0xFFFF
cmpq %rdi, %r9
jb 0xd9b8
movl (%r8), %r8d
cmpl (%rdi), %r8d
je 0xd9c7
movl %ecx, %eax
shrl $0x6, %eax
incl %ecx
movq %rsi, %rdi
movl %r15d, %r8d
jmp 0xd95e
addq -0x90(%rbp), %rax
movl %edi, %ecx
shlb $0x4, %cl
movq -0x48(%rbp), %rdx
shlb $0x4, %dl
subb %dl, %cl
xorl %edx, %edx
movq %rdx, %r8
movl %ecx, %r9d
leaq (%rax,%rdx), %rsi
leaq (%rdi,%rdx), %rbx
cmpq -0x48(%rbp), %rbx
jbe 0xda0b
cmpq %r13, %rsi
jbe 0xda0b
movb -0x1(%rdi,%r8), %r10b
leaq -0x1(%r8), %rdx
leal -0x10(%r9), %ecx
cmpb -0x1(%rax,%r8), %r10b
je 0xd9de
movl %edi, %ecx
subl -0x48(%rbp), %ecx
leal (%rcx,%r8), %r14d
addq %r8, %rcx
movq -0x38(%rbp), %rax
leaq (%rax,%r14), %r10
incq %r10
movl %ecx, %eax
xorl %edx, %edx
movl $0xff, %r11d
divl %r11d
addq %r10, %rax
addq $0x8, %rax
cmpq -0x68(%rbp), %rax
ja 0xdcc0
cmpl $0xf, %ecx
jb 0xda71
subl -0x48(%rbp), %edi
leal (%rdi,%r8), %ecx
addl $-0xf, %ecx
movq -0x38(%rbp), %rax
movb $-0x10, (%rax)
addq $0x2, %rax
cmpl $0xff, %ecx
jl 0xda7e
movb $-0x1, -0x1(%rax)
addl $0xffffff01, %ecx       # imm = 0xFFFFFF01
incq %rax
jmp 0xda5a
movq -0x38(%rbp), %rcx
leaq 0x1(%rcx), %rax
movb %r9b, (%rcx)
jmp 0xda81
movb %cl, -0x1(%rax)
addq %rax, %r14
movq -0x48(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, (%rax)
addq $0x8, %rax
addq $0x8, %rdx
cmpq %r14, %rax
jb 0xda88
jmp 0xdaa8
movq -0x38(%rbp), %rax
leaq 0x1(%rax), %r14
movb $0x0, (%rax)
movl %ebx, %eax
subl %esi, %eax
movw %ax, (%r14)
leaq 0x4(%rbx), %rdi
addq $0x4, %rsi
movq -0x60(%rbp), %rdx
callq 0x111df
movl %eax, %ecx
shrl $0x8, %ecx
addq %r14, %rcx
addq $0x8, %rcx
cmpq -0x68(%rbp), %rcx
ja 0xdcc0
addq $0x2, %r14
movq -0x38(%rbp), %rdx
movb (%rdx), %cl
cmpl $0xf, %eax
jb 0xdb0a
addb $0xf, %cl
movb %cl, (%rdx)
leal -0xf(%rax), %ecx
movl %r15d, %r8d
cmpl $0x1fe, %ecx            # imm = 0x1FE
jb 0xdb17
orw $-0x1, (%r14)
addq $0x2, %r14
addl $0xfffffe02, %ecx       # imm = 0xFFFFFE02
jmp 0xdaf1
addb %al, %cl
movb %cl, (%rdx)
movq %r14, -0x38(%rbp)
movl %r15d, %r8d
jmp 0xdb36
cmpl $0xff, %ecx
jb 0xdb2c
addl $0xffffff01, %ecx       # imm = 0xFFFFFF01
movb $-0x1, (%r14)
incq %r14
movb %cl, (%r14)
incq %r14
movq %r14, -0x38(%rbp)
addl $0x4, %eax
addq %rax, %rbx
cmpq -0x70(%rbp), %rbx
movabsq $0xcf1bbcdcbb, %r14     # imm = 0xCF1BBCDCBB
ja 0xdbb6
leaq -0x2(%rbx), %rax
movq -0x2(%rbx), %rcx
imulq %r14, %rcx
shrq $0x1c, %rcx
movl $0xfff, %edx            # imm = 0xFFF
andl %edx, %ecx
subl %r12d, %eax
movq -0x50(%rbp), %rdi
movl %eax, (%rdi,%rcx,4)
movq (%rbx), %rax
imulq %r14, %rax
shrq $0x1c, %rax
andl %edx, %eax
movl (%rdi,%rax,4), %ecx
leaq (%r12,%rcx), %rsi
movl %ebx, %edx
subl %r12d, %edx
movl %edx, (%rdi,%rax,4)
leaq (%r12,%rcx), %rax
addq $0xffff, %rax           # imm = 0xFFFF
cmpq %r13, %rsi
jb 0xdba7
cmpq %rbx, %rax
jb 0xdba7
movl (%rsi), %eax
cmpl (%rbx), %eax
je 0xda9d
movq %rbx, %rsi
movq -0x58(%rbp), %rbx
movl -0x2c(%rbp), %ecx
jmp 0xd94f
movq %rbx, %r12
movq -0x50(%rbp), %r13
movq -0x58(%rbp), %rbx
movq -0x38(%rbp), %rdi
movq -0xa8(%rbp), %r14
subq %r12, %r14
leaq 0xf0(%r14), %rax
xorl %esi, %esi
movl $0xff, %ecx
xorl %edx, %edx
divq %rcx
movq %rdi, %rcx
subq %rbx, %rcx
addq %r14, %rcx
addq %rcx, %rax
incq %rax
movl -0x74(%rbp), %ecx
cmpq %rcx, %rax
ja 0xdc48
cmpq $0xf, %r14
jb 0xdc1f
movq %r14, %rcx
leaq -0xf(%r14), %rax
movb $-0x10, (%rdi)
incq %rdi
cmpq $0xff, %rax
jb 0xdc29
movb $-0x1, (%rdi)
addq $-0xff, %rax
jmp 0xdc09
movl %r14d, %eax
shlb $0x4, %al
movb %al, (%rdi)
jmp 0xdc2e
movb %al, (%rdi)
movq %rcx, %r14
incq %rdi
movq %r12, %rsi
movq %r14, %rdx
movq %rdi, %r15
callq 0x2240
addl %r14d, %r15d
subl %ebx, %r15d
movl %r15d, %esi
movl 0x4018(%r13), %eax
movl -0x3c(%rbp), %r14d
addl %r14d, %eax
movl %eax, 0x4018(%r13)
addl %r14d, 0x4000(%r13)
movl %esi, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl -0x3c(%rbp), %r14d
movq -0xa8(%rbp), %r15
movq -0x38(%rbp), %rdi
movq -0x58(%rbp), %r10
jmp 0xd4b6
movq -0x58(%rbp), %rbx
movq %r11, %r12
jmp 0xd7c4
movq -0x80(%rbp), %rdi
movl -0x3c(%rbp), %r14d
jmp 0xd82f
movq -0x50(%rbp), %r13
movq -0x48(%rbp), %r12
jmp 0xdbc1
movl -0x3c(%rbp), %r14d
movq -0x50(%rbp), %r13
jmp 0xdccd
movq -0x50(%rbp), %r13
jmp 0xd0d2
movl -0x3c(%rbp), %r14d
movq -0x48(%rbp), %r12
jmp 0xd8b5