// File: /workspace/github_c_makefile_star2_O2/Aethlas[P]fflz4/./lib/lz4/lz4.c
// Function: LZ4_compress_destSize
int LZ4_compress_destSize(const char* src, char* dst, int* srcSizePtr, int targetDstSize)
{
#if (LZ4_HEAPMODE)
    LZ4_stream_t* ctx = (LZ4_stream_t*)ALLOC(sizeof(LZ4_stream_t));   /* malloc-calloc always properly aligned */
    if (ctx == NULL) return 0;
#else
    LZ4_stream_t ctxBody;
    LZ4_stream_t* ctx = &ctxBody;
#endif

    int result = LZ4_compress_destSize_extState(ctx, src, dst, srcSizePtr, targetDstSize);

#if (LZ4_HEAPMODE)
    FREEMEM(ctx);
#endif
    return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4068, %rsp           # imm = 0x4068
movl %ecx, %ebp
movq %rdx, %r15
movq %rsi, 0x18(%rsp)
movq %rdi, %r14
leaq 0x48(%rsp), %rdi
xorl %ebx, %ebx
movl $0x4020, %edx           # imm = 0x4020
xorl %esi, %esi
callq 0x10c0
movq %r15, 0x38(%rsp)
movslq (%r15), %rcx
cmpq $0x7e000000, %rcx       # imm = 0x7E000000
ja 0x53f5
movl $0xff, %esi
movl %ecx, %eax
xorl %edx, %edx
divl %esi
leal (%rcx,%rax), %ebx
addl $0x10, %ebx
cmpl %ebp, %ebx
jle 0x580d
cmpl $0x7e000001, %ecx       # imm = 0x7E000001
setae %dl
movslq %ebp, %r10
addq 0x18(%rsp), %r10
testl %ebp, %ebp
setle %al
orb %dl, %al
cmpl $0x1000a, %ecx          # imm = 0x1000A
movq %r10, 0x8(%rsp)
jg 0x582d
testb %al, %al
jne 0x5831
leaq (%r14,%rcx), %r12
movl %ecx, 0x4060(%rsp)
movl %ecx, 0x4048(%rsp)
movw $0x3, 0x404e(%rsp)
movq 0x18(%rsp), %rdx
movq %r14, %rbp
cmpl $0xd, %ecx
jb 0x5cb8
imull $0x9e3779b1, (%r14), %eax # imm = 0x9E3779B1
shrl $0x13, %eax
andw $0x0, 0x48(%rsp,%rax,2)
leaq (%r14,%rcx), %rdi
addq $-0xb, %rdi
leaq -0x5(%r14,%rcx), %rax
movq %rax, 0x30(%rsp)
leaq -0xc(%r12), %r9
leaq -0x8(%r12), %rax
movq %rax, 0x28(%rsp)
leaq -0x6(%r12), %rax
movq %rax, 0x20(%rsp)
pushq $0x40
popq %rdx
pushq $0x1
popq %r10
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %r14, %rbp
leaq 0x1(%rbp), %rcx
movl 0x1(%rbp), %ebx
movq %rcx, %r8
movl %r10d, %ecx
addq %r8, %rcx
cmpq %rdi, %rcx
ja 0x5d76
movl %edx, %r10d
shrl $0x6, %r10d
incl %edx
imull $0x9e3779b1, %ebx, %r11d # imm = 0x9E3779B1
shrl $0x13, %r11d
movzwl 0x48(%rsp,%r11,2), %eax
movl %r8d, %r15d
subl %r14d, %r15d
movl (%rcx), %ebx
movw %r15w, 0x48(%rsp,%r11,2)
movl (%r14,%rax), %r11d
cmpl (%r8), %r11d
jne 0x54b1
addq %r14, %rax
movl %r8d, %edx
shlb $0x4, %dl
movl %ebp, %ecx
shlb $0x4, %cl
subb %cl, %dl
xorl %r11d, %r11d
movq %r11, %r10
movl %edx, %r13d
leaq (%rax,%r11), %rbx
leaq (%r8,%r11), %rcx
cmpq %r14, %rbx
jbe 0x5533
cmpq %rbp, %rcx
jbe 0x5533
movb -0x1(%r8,%r10), %r15b
leaq -0x1(%r10), %r11
leal -0x10(%r13), %edx
cmpb -0x1(%rax,%r10), %r15b
je 0x5507
movl %r8d, %r11d
subl %ebp, %r11d
leal (%r11,%r10), %r15d
addq %r10, %r11
leal 0xf0(%r11), %eax
xorl %edx, %edx
movl $0xff, %esi
divl %esi
movq 0x10(%rsp), %rdx
addq %rdx, %rax
incq %rax
addq %r15, %rax
addq $0xb, %rax
cmpq 0x8(%rsp), %rax
ja 0x5d7b
cmpl $0xf, %r11d
jb 0x55a1
movl %r8d, %eax
subl %ebp, %eax
movq %rdx, %r11
leal (%rax,%r10), %edx
addl $-0xf, %edx
movb $-0x10, (%r11)
leaq 0x2(%r11), %rax
cmpl $0xff, %edx
jl 0x55aa
movb $-0x1, -0x1(%rax)
addl $0xffffff01, %edx       # imm = 0xFFFFFF01
incq %rax
jmp 0x558a
leaq 0x1(%rdx), %rax
movb %r13b, (%rdx)
jmp 0x55ad
movb %dl, -0x1(%rax)
addq %rax, %r15
xorl %edx, %edx
movq (%rbp,%rdx), %r10
leaq (%rax,%rdx), %r11
addq $0x8, %r11
movq %r10, -0x8(%r11)
addq $0x8, %rdx
cmpq %r15, %r11
jb 0x55b2
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %r10
leaq 0xb(%r15), %rax
cmpq %r10, %rax
ja 0x5cb8
movq %rdx, %rsi
movl %ecx, %eax
subl %ebx, %eax
movw %ax, (%r15)
leaq 0x4(%rcx), %rax
leaq 0x4(%rbx), %rdx
cmpq %rax, %r9
jbe 0x57a7
movq (%rdx), %rdx
movq (%rax), %r10
cmpq %r10, %rdx
jne 0x563e
leaq 0xc(%rcx), %r10
addq $0xc, %rbx
movq %rbx, %rdx
movl %r10d, %ebx
subl %ecx, %ebx
addl $-0x4, %ebx
cmpq %r9, %r10
jae 0x5759
movq (%rdx), %r11
movq (%r10), %r13
cmpq %r13, %r11
jne 0x564b
addq $0x8, %r10
addq $0x8, %rdx
addl $0x8, %ebx
jmp 0x561d
xorq %rdx, %r10
bsfq %r10, %r10
shrl $0x3, %r10d
jmp 0x5659
xorq %r11, %r13
bsfq %r13, %r10
shrl $0x3, %r10d
addl %ebx, %r10d
leaq 0x2(%r15), %r13
movl %r10d, %eax
leaq (%rax,%rcx), %rbp
addq $0x4, %rbp
leal 0xf0(%r10), %eax
xorl %edx, %edx
movl $0xff, %ecx
divl %ecx
addq %r15, %rax
addq $0x8, %rax
cmpq 0x8(%rsp), %rax
ja 0x57af
movq %rsi, %rcx
movb (%rcx), %al
cmpl $0xf, %r10d
jb 0x56bc
addb $0xf, %al
movb %al, (%rcx)
leal -0xf(%r10), %eax
orl $-0x1, (%r13)
xorl %ebx, %ebx
cmpl $0x3fc, %eax            # imm = 0x3FC
jb 0x56c3
orl $-0x1, 0x6(%r15,%rbx)
addl $0xfffffc04, %eax       # imm = 0xFFFFFC04
addq $0x4, %rbx
jmp 0x56a4
addb %r10b, %al
movb %al, (%rcx)
jmp 0x56f7
movzwl %ax, %ecx
movq %rcx, %rax
xorl %edx, %edx
movl $0xff, %esi
divq %rsi
addq %rax, %r15
movl %ecx, %eax
xorl %edx, %edx
movw $0xff, %cx
divw %cx
addb %r10b, %al
addb $-0xf, %al
movzbl %al, %eax
addl %ebx, %eax
leaq (%rbx,%r15), %r13
addq $0x3, %r13
movb %al, -0x1(%r13)
cmpq %rdi, %rbp
movq 0x8(%rsp), %r10
jae 0x5cb5
leaq -0x2(%rbp), %rax
imull $0x9e3779b1, -0x2(%rbp), %ecx # imm = 0x9E3779B1
subl %r14d, %eax
shrl $0x13, %ecx
movw %ax, 0x48(%rsp,%rcx,2)
imull $0x9e3779b1, (%rbp), %eax # imm = 0x9E3779B1
movl %ebp, %ecx
subl %r14d, %ecx
shrl $0x13, %eax
movzwl 0x48(%rsp,%rax,2), %edx
leaq (%r14,%rdx), %rbx
movw %cx, 0x48(%rsp,%rax,2)
movl (%r14,%rdx), %eax
cmpl (%rbp), %eax
jne 0x57fc
leaq 0x1(%r13), %r15
movb $0x0, (%r13)
movq %r13, %rdx
movq %rbp, %rcx
jmp 0x55d6
cmpq 0x28(%rsp), %r10
jae 0x5770
movl (%rdx), %r11d
cmpl (%r10), %r11d
jne 0x5770
addq $0x4, %r10
addq $0x4, %rdx
cmpq 0x20(%rsp), %r10
jae 0x5789
movzwl (%rdx), %r11d
cmpw (%r10), %r11w
jne 0x5789
addq $0x2, %r10
addq $0x2, %rdx
cmpq 0x30(%rsp), %r10
jae 0x579f
movb (%rdx), %dl
xorl %r11d, %r11d
cmpb (%r10), %dl
sete %r11b
addq %r11, %r10
subl %eax, %r10d
jmp 0x5659
movq %rax, %r10
jmp 0x5615
movq 0x8(%rsp), %rax
subl %r13d, %eax
imull $0xff, %eax, %eax
addl $0xfffffa14, %eax       # imm = 0xFFFFFA14
subl %eax, %r10d
subq %r10, %rbp
cmpq %r8, %rbp
jbe 0x57d8
movq %rsi, %rcx
movl %eax, %r10d
jmp 0x568d
movq %rbp, %rcx
cmpq %r8, %rcx
ja 0x57f4
imull $0x9e3779b1, (%rcx), %edx # imm = 0x9E3779B1
shrl $0x13, %edx
andw $0x0, 0x48(%rsp,%rdx,2)
incq %rcx
jmp 0x57db
movl %eax, %r10d
jmp 0x568a
movq %r13, 0x10(%rsp)
pushq $0x40
popq %rdx
pushq $0x1
popq %r10
jmp 0x54aa
leaq 0x48(%rsp), %rdi
pushq $0x1
popq %r9
movq %r14, %rsi
movq 0x18(%rsp), %rdx
movl %ebp, %r8d
callq 0x2023
movl %eax, %ecx
jmp 0x5d58
testb %al, %al
je 0x5838
xorl %ecx, %ecx
jmp 0x5d58
pushq $0x1
popq %rdi
pushq $0x40
popq %rbx
leaq (%r14,%rcx), %rdx
leaq -0xb(%r14,%rcx), %r9
leaq -0x5(%r14,%rcx), %rax
movq %rax, 0x28(%rsp)
movabsq $-0x30e4432345000000, %r11 # imm = 0xCF1BBCDCBB000000
movl %ecx, 0x4060(%rsp)
movl %ecx, 0x4048(%rsp)
movw $0x2, 0x404e(%rsp)
movq (%r14), %rax
imulq %r11, %rax
shrq $0x34, %rax
andl $0x0, 0x48(%rsp,%rax,4)
leaq -0xc(%rdx), %r10
leaq -0x8(%rdx), %rax
movq %rax, 0x20(%rsp)
movq %rdx, 0x30(%rsp)
leaq -0x6(%rdx), %rax
movq %rax, 0x40(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %r14, %rbp
leaq 0x1(%rbp), %r8
movq 0x1(%rbp), %rdx
movl %edi, %eax
movl %ebx, %ecx
movl %eax, %edi
addq %r8, %rdi
cmpq %r9, %rdi
ja 0x5d6c
imulq %r11, %rdx
movq %rdx, %rbx
shrq $0x34, %rbx
movl 0x48(%rsp,%rbx,4), %eax
movl %r8d, %r15d
subl %r14d, %r15d
movq (%rdi), %rdx
movl %r15d, 0x48(%rsp,%rbx,4)
leal 0xffff(%rax), %ebx
cmpl %r15d, %ebx
jb 0x58f6
movl (%r14,%rax), %ebx
cmpl (%r8), %ebx
je 0x5902
movl %ecx, %eax
shrl $0x6, %eax
incl %ecx
movq %rdi, %r8
jmp 0x58b7
addq %r14, %rax
movl %r8d, %edx
shlb $0x4, %dl
movl %ebp, %ecx
shlb $0x4, %cl
subb %cl, %dl
xorl %r15d, %r15d
movq %r15, %rbx
movl %edx, %r12d
leaq (%rax,%r15), %rdi
leaq (%r8,%r15), %rcx
cmpq %r14, %rdi
jbe 0x5942
cmpq %rbp, %rcx
jbe 0x5942
movb -0x1(%r8,%rbx), %r13b
leaq -0x1(%rbx), %r15
leal -0x10(%r12), %edx
cmpb -0x1(%rax,%rbx), %r13b
je 0x5915
movl %r8d, %r13d
subl %ebp, %r13d
leal (%rbx,%r13), %r15d
addq %rbx, %r13
leal 0xf0(%r13), %eax
xorl %edx, %edx
movl $0xff, %esi
divl %esi
movq 0x10(%rsp), %rdx
addq %rdx, %rax
incq %rax
addq %r15, %rax
addq $0xb, %rax
cmpq 0x8(%rsp), %rax
ja 0x5c13
cmpl $0xf, %r13d
jb 0x59b1
movl %r8d, %eax
subl %ebp, %eax
movq %rdx, %r12
leal (%rax,%rbx), %edx
addl $-0xf, %edx
movb $-0x10, (%r12)
leaq 0x2(%r12), %rax
cmpl $0xff, %edx
jl 0x59ba
movb $-0x1, -0x1(%rax)
addl $0xffffff01, %edx       # imm = 0xFFFFFF01
incq %rax
jmp 0x599a
leaq 0x1(%rdx), %rax
movb %r12b, (%rdx)
jmp 0x59bd
movb %dl, -0x1(%rax)
addq %rax, %r15
xorl %edx, %edx
movq (%rbp,%rdx), %rbx
leaq (%rax,%rdx), %r12
addq $0x8, %r12
movq %rbx, -0x8(%r12)
addq $0x8, %rdx
cmpq %r15, %r12
jb 0x59c2
movq 0x10(%rsp), %rdx
leaq 0xb(%r15), %rax
cmpq 0x8(%rsp), %rax
ja 0x5c13
movq %rdx, %rsi
movl %ecx, %eax
subl %edi, %eax
movw %ax, (%r15)
leaq 0x4(%rcx), %rax
leaq 0x4(%rdi), %rdx
cmpq %rax, %r10
jbe 0x5bad
movq (%rdx), %rdx
movq (%rax), %rbx
cmpq %rbx, %rdx
jne 0x5a4b
leaq 0xc(%rcx), %rbx
addq $0xc, %rdi
movq %rdi, %rdx
movl %ebx, %edi
subl %ecx, %edi
addl $-0x4, %edi
cmpq %r10, %rbx
jae 0x5b66
movq (%rdx), %r12
movq (%rbx), %r13
cmpq %r13, %r12
jne 0x5a57
addq $0x8, %rbx
addq $0x8, %rdx
addl $0x8, %edi
jmp 0x5a2a
xorq %rdx, %rbx
bsfq %rbx, %rbx
shrl $0x3, %ebx
jmp 0x5a63
xorq %r12, %r13
bsfq %r13, %rbx
shrl $0x3, %ebx
addl %edi, %ebx
leaq 0x2(%r15), %r12
movl %ebx, %eax
leaq (%rax,%rcx), %rbp
addq $0x4, %rbp
leal 0xf0(%rbx), %eax
xorl %edx, %edx
movl $0xff, %ecx
divl %ecx
addq %r15, %rax
addq $0x8, %rax
cmpq 0x8(%rsp), %rax
ja 0x5bb5
movq %rsi, %rcx
movb (%rcx), %al
cmpl $0xf, %ebx
jb 0x5af8
addb $0xf, %al
movb %al, (%rcx)
leal -0xf(%rbx), %eax
orl $-0x1, (%r12)
xorl %edi, %edi
cmpl $0x3fc, %eax            # imm = 0x3FC
jb 0x5ac2
orl $-0x1, 0x6(%r15,%rdi)
addl $0xfffffc04, %eax       # imm = 0xFFFFFC04
addq $0x4, %rdi
jmp 0x5aaa
movzwl %ax, %ecx
movq %rcx, %rax
xorl %edx, %edx
movl $0xff, %esi
divq %rsi
addq %rax, %r15
movl %ecx, %eax
xorl %edx, %edx
movw $0xff, %cx
divw %cx
addb %bl, %al
addb $-0xf, %al
movzbl %al, %eax
addl %edi, %eax
leaq (%rdi,%r15), %r12
addq $0x3, %r12
movb %al, -0x1(%r12)
jmp 0x5afc
addb %bl, %al
movb %al, (%rcx)
cmpq %r9, %rbp
jae 0x5c10
leaq -0x2(%rbp), %rax
movq -0x2(%rbp), %rcx
imulq %r11, %rcx
shrq $0x34, %rcx
subl %r14d, %eax
movl %eax, 0x48(%rsp,%rcx,4)
movq (%rbp), %rax
imulq %r11, %rax
shrq $0x34, %rax
movl %ebp, %ecx
subl %r14d, %ecx
movl 0x48(%rsp,%rax,4), %edi
leal 0xffff(%rdi), %edx
addq %r14, %rdi
movl %ecx, 0x48(%rsp,%rax,4)
cmpl %ecx, %edx
jb 0x5c00
movl (%rdi), %eax
cmpl (%rbp), %eax
jne 0x5c00
leaq 0x1(%r12), %r15
movb $0x0, (%r12)
movq %r12, %rdx
movq %rbp, %rcx
jmp 0x59e2
cmpq 0x20(%rsp), %rbx
jae 0x5b7b
movl (%rdx), %edi
cmpl (%rbx), %edi
jne 0x5b7b
addq $0x4, %rbx
addq $0x4, %rdx
cmpq 0x40(%rsp), %rbx
jae 0x5b92
movzwl (%rdx), %edi
cmpw (%rbx), %di
jne 0x5b92
addq $0x2, %rbx
addq $0x2, %rdx
cmpq 0x28(%rsp), %rbx
jae 0x5ba6
movb (%rdx), %dl
xorl %edi, %edi
cmpb (%rbx), %dl
sete %dil
addq %rdi, %rbx
subl %eax, %ebx
jmp 0x5a63
movq %rax, %rbx
jmp 0x5a23
movq 0x8(%rsp), %rax
subl %r12d, %eax
imull $0xff, %eax, %eax
addl $0xfffffa14, %eax       # imm = 0xFFFFFA14
subl %eax, %ebx
subq %rbx, %rbp
cmpq %r8, %rbp
jbe 0x5bdc
movq %rsi, %rcx
movl %eax, %ebx
jmp 0x5a95
movq %rbp, %rcx
cmpq %r8, %rcx
ja 0x5bf9
movq (%rcx), %rdx
imulq %r11, %rdx
shrq $0x34, %rdx
andl $0x0, 0x48(%rsp,%rdx,4)
incq %rcx
jmp 0x5bdf
movl %eax, %ebx
jmp 0x5a92
movq %r12, 0x10(%rsp)
pushq $0x1
popq %rdi
pushq $0x40
popq %rbx
jmp 0x58ab
movq %r12, %rdx
movq 0x30(%rsp), %r8
subq %rbp, %r8
movq %rdx, %rsi
leaq (%rdx,%r8), %rdi
leaq 0xf0(%r8), %rax
movl $0xff, %ecx
xorl %edx, %edx
divq %rcx
addq %rdi, %rax
incq %rax
movq 0x8(%rsp), %rdx
cmpq %rdx, %rax
jbe 0x5c5e
movq %rsi, %rax
notq %rax
leaq (%rax,%rdx), %r8
addq %rdx, %rax
addq $0xf0, %rax
xorl %edx, %edx
divq %rcx
subq %rax, %r8
cmpq $0xf, %r8
jb 0x5c84
leaq -0xf(%r8), %rax
movq %rsi, %rdi
movb $-0x10, (%rsi)
incq %rdi
cmpq $0xff, %rax
jb 0x5c91
movb $-0x1, (%rdi)
addq $-0xff, %rax
jmp 0x5c6e
movl %r8d, %eax
shlb $0x4, %al
movq %rsi, %rdi
movb %al, (%rsi)
jmp 0x5c93
movb %al, (%rdi)
incq %rdi
movq %rbp, %rsi
movq %rdi, %rbx
movq %r8, %rdx
movq %r8, %r15
callq 0x1140
movq %rbx, %rcx
addl %r15d, %ebp
addl %r15d, %ecx
jmp 0x5d4a
movq %r13, %rdx
subq %rbp, %r12
movq %rdx, %rsi
leaq (%rdx,%r12), %rdi
leaq 0xf0(%r12), %rax
movl $0xff, %ecx
xorl %edx, %edx
divq %rcx
addq %rdi, %rax
incq %rax
cmpq %r10, %rax
jbe 0x5cfa
movq %rsi, %rax
notq %rax
leaq (%rax,%r10), %r12
addq %r10, %rax
addq $0xf0, %rax
xorl %edx, %edx
divq %rcx
subq %rax, %r12
cmpq $0xf, %r12
jb 0x5d21
leaq -0xf(%r12), %rax
movq %rsi, %rdi
movb $-0x10, (%rsi)
incq %rdi
cmpq $0xff, %rax
jb 0x5d2e
movb $-0x1, (%rdi)
addq $-0xff, %rax
jmp 0x5d0b
movl %r12d, %eax
shlb $0x4, %al
movq %rsi, %rdi
movb %al, (%rsi)
jmp 0x5d30
movb %al, (%rdi)
incq %rdi
movq %rbp, %rsi
movq %rdi, %rbx
movq %r12, %rdx
callq 0x1140
movq %rbx, %rcx
addl %r12d, %ebp
addl %r12d, %ecx
subl %r14d, %ebp
movq 0x38(%rsp), %rax
movl %ebp, (%rax)
subl 0x18(%rsp), %ecx
movl %ecx, %eax
addq $0x4068, %rsp           # imm = 0x4068
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x10(%rsp), %rdx
jmp 0x5c13
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %r10
jmp 0x5cb8