// File: /workspace/github_c_makefile_star2_O0/madler[P]pigz/zopfli/src/zopfli/deflate.c
// Function: ZopfliDeflate
void ZopfliDeflate(const ZopfliOptions* options, int btype, int final,
                   const unsigned char* in, size_t insize,
                   unsigned char* bp, unsigned char** out, size_t* outsize) {
 size_t offset = *outsize;
#if ZOPFLI_MASTER_BLOCK_SIZE == 0
  ZopfliDeflatePart(options, btype, final, in, 0, insize, bp, out, outsize);
#else
  size_t i = 0;
  do {
    int masterfinal = (i + ZOPFLI_MASTER_BLOCK_SIZE >= insize);
    int final2 = final && masterfinal;
    size_t size = masterfinal ? insize - i : ZOPFLI_MASTER_BLOCK_SIZE;
    ZopfliDeflatePart(options, btype, final2,
                      in, i, i + size, bp, out, outsize);
    i += size;
  } while (i < insize);
#endif
  if (options->verbose) {
    fprintf(stderr,
            "Original Size: %lu, Deflate: %lu, Compression: %f%% Removed\n",
            (unsigned long)insize, (unsigned long)(*outsize - offset),
            100.0 * (double)(insize - (*outsize - offset)) / (double)insize);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
movq %r9, -0x28(%rbp)
movq 0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
addq $0xf4240, %rax          # imm = 0xF4240
cmpq -0x20(%rbp), %rax
setae %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x3c(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x10(%rbp)
movb %al, -0x49(%rbp)
je 0x13e87
cmpl $0x0, -0x3c(%rbp)
setne %al
movb %al, -0x49(%rbp)
movb -0x49(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x3c(%rbp)
je 0x13ea6
movq -0x20(%rbp), %rax
subq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
jmp 0x13eb1
movl $0xf4240, %eax          # imm = 0xF4240
movq %rax, -0x58(%rbp)
jmp 0x13eb1
movq -0x58(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x40(%rbp), %edx
movq -0x18(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x38(%rbp), %r9
addq -0x48(%rbp), %r9
movq -0x28(%rbp), %r11
movq 0x10(%rbp), %r10
movq 0x18(%rbp), %rax
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x12d90
movq -0x48(%rbp), %rax
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x20(%rbp), %rax
jb 0x13e59
movq -0x8(%rbp), %rax
cmpl $0x0, (%rax)
je 0x13f94
movq 0xf0dc(%rip), %rax      # 0x22ff8
movq (%rax), %rdi
movq -0x20(%rbp), %rdx
movq 0x18(%rbp), %rax
movq (%rax), %rcx
movq -0x30(%rbp), %rax
subq %rax, %rcx
movq %rdx, %rax
subq %rcx, %rax
movq %rax, %xmm0
movaps 0x828d(%rip), %xmm3     # 0x1c1d0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x8291(%rip), %xmm2     # 0x1c1e0
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x828a(%rip), %xmm1     # 0x1c1f0
mulsd %xmm1, %xmm0
movq %rdx, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
leaq 0x9e3b(%rip), %rsi      # 0x1ddc8
movb $0x1, %al
callq 0x3340
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)